Поделиться через


Хранилище Microsoft.StorageAccounts/encryptionScopes 2020-08-01-preview

Определение ресурсов Bicep

Тип ресурса storageAccounts/encryptionScopes можно развернуть с помощью операций, предназначенных для следующих операций:

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Чтобы создать ресурс Microsoft.Storage/storageAccounts/encryptionScopes, добавьте следующий Bicep в шаблон.

resource symbolicname 'Microsoft.Storage/storageAccounts/encryptionScopes@2020-08-01-preview' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    keyVaultProperties: {
      keyUri: 'string'
    }
    source: 'string'
    state: 'string'
  }
}

Значения свойств

Microsoft.Storage/storageAccounts/encryptionScopes

Имя Описание Ценность
имя Имя ресурса струна

Ограничения целостности:
Минимальная длина = 3
Максимальная длина = 63 (обязательно)
родитель В Bicep можно указать родительский ресурс для дочернего ресурса. Это свойство необходимо добавить, только если дочерний ресурс объявлен за пределами родительского ресурса.

Дополнительные сведения см. в разделе Дочерний ресурс за пределами родительского ресурса.
Символьное имя ресурса типа: storageAccounts
свойства Свойства области шифрования. EncryptionScopeProperties

EncryptionScopeKeyVaultProperties (Свойства EncryptionScopeKeyVault)

Имя Описание Ценность
keyUri Идентификатор объекта для объекта ключа хранилища ключей. При применении область шифрования будет использовать ключ, на который ссылается идентификатор, чтобы включить поддержку ключей, управляемых клиентом, в этой области шифрования. струна

EncryptionScopeProperties

Имя Описание Ценность
keyVaultProperties Свойства хранилища ключей для области шифрования. Это обязательное поле, если для атрибута области шифрования "источник" задано значение Microsoft.KeyVault. EncryptionScopeKeyVaultProperties (Свойства EncryptionScopeKeyVault)
источник Поставщик области шифрования. Возможные значения (без учета регистра): Microsoft.Storage, Microsoft.KeyVault. Microsoft.KeyVault
"Microsoft.Storage"
государство Состояние области шифрования. Возможные значения (без учета регистра): включено, отключено. "Отключено"
"Включено"

Определение ресурса шаблона ARM

Тип ресурса storageAccounts/encryptionScopes можно развернуть с помощью операций, предназначенных для следующих операций:

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Чтобы создать ресурс Microsoft.Storage/storageAccounts/encryptionScopes, добавьте следующий код JSON в шаблон.

{
  "type": "Microsoft.Storage/storageAccounts/encryptionScopes",
  "apiVersion": "2020-08-01-preview",
  "name": "string",
  "properties": {
    "keyVaultProperties": {
      "keyUri": "string"
    },
    "source": "string",
    "state": "string"
  }
}

Значения свойств

Microsoft.Storage/storageAccounts/encryptionScopes

Имя Описание Ценность
apiVersion Версия API «2020-08-01-превью»
имя Имя ресурса струна

Ограничения целостности:
Минимальная длина = 3
Максимальная длина = 63 (обязательно)
свойства Свойства области шифрования. EncryptionScopeProperties
тип Тип ресурса "Microsoft.Storage/storageAccounts/encryptionScopes"

EncryptionScopeKeyVaultProperties (Свойства EncryptionScopeKeyVault)

Имя Описание Ценность
keyUri Идентификатор объекта для объекта ключа хранилища ключей. При применении область шифрования будет использовать ключ, на который ссылается идентификатор, чтобы включить поддержку ключей, управляемых клиентом, в этой области шифрования. струна

EncryptionScopeProperties

Имя Описание Ценность
keyVaultProperties Свойства хранилища ключей для области шифрования. Это обязательное поле, если для атрибута области шифрования "источник" задано значение Microsoft.KeyVault. EncryptionScopeKeyVaultProperties (Свойства EncryptionScopeKeyVault)
источник Поставщик области шифрования. Возможные значения (без учета регистра): Microsoft.Storage, Microsoft.KeyVault. Microsoft.KeyVault
"Microsoft.Storage"
государство Состояние области шифрования. Возможные значения (без учета регистра): включено, отключено. "Отключено"
"Включено"

Примеры использования

Определение ресурса Terraform (поставщик AzAPI)

Тип ресурса storageAccounts/encryptionScopes можно развернуть с помощью операций, предназначенных для следующих операций:

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Чтобы создать ресурс Microsoft.Storage/storageAccounts/encryptionScopes, добавьте следующий объект Terraform в шаблон.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Storage/storageAccounts/encryptionScopes@2020-08-01-preview"
  name = "string"
  parent_id = "string"
  body = {
    properties = {
      keyVaultProperties = {
        keyUri = "string"
      }
      source = "string"
      state = "string"
    }
  }
}

Значения свойств

Microsoft.Storage/storageAccounts/encryptionScopes

Имя Описание Ценность
имя Имя ресурса струна

Ограничения целостности:
Минимальная длина = 3
Максимальная длина = 63 (обязательно)
идентификатор_родителя Идентификатор ресурса, который является родительским для этого ресурса. Идентификатор ресурса типа: storageAccounts
свойства Свойства области шифрования. EncryptionScopeProperties
тип Тип ресурса "Microsoft.Storage/storageAccounts/encryptionScopes@2020-08-01-preview"

EncryptionScopeKeyVaultProperties (Свойства EncryptionScopeKeyVault)

Имя Описание Ценность
keyUri Идентификатор объекта для объекта ключа хранилища ключей. При применении область шифрования будет использовать ключ, на который ссылается идентификатор, чтобы включить поддержку ключей, управляемых клиентом, в этой области шифрования. струна

EncryptionScopeProperties

Имя Описание Ценность
keyVaultProperties Свойства хранилища ключей для области шифрования. Это обязательное поле, если для атрибута области шифрования "источник" задано значение Microsoft.KeyVault. EncryptionScopeKeyVaultProperties (Свойства EncryptionScopeKeyVault)
источник Поставщик области шифрования. Возможные значения (без учета регистра): Microsoft.Storage, Microsoft.KeyVault. Microsoft.KeyVault
"Microsoft.Storage"
государство Состояние области шифрования. Возможные значения (без учета регистра): включено, отключено. "Отключено"
"Включено"

Примеры использования

Примеры Terraform

Простой пример развертывания Storage Encryption Scope.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}

provider "azapi" {
  skip_provider_registration = false
}

data "azapi_client_config" "current" {}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westus"
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "vault" {
  type      = "Microsoft.KeyVault/vaults@2023-02-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = "${var.resource_name}-kv"
  location  = var.location
  body = {
    properties = {
      accessPolicies = [
        {
          objectId = data.azapi_client_config.current.object_id
          permissions = {
            certificates = []
            keys         = ["Get", "Create", "Delete", "List", "Restore", "Recover", "UnwrapKey", "WrapKey", "Purge", "Encrypt", "Decrypt", "Sign", "Verify", "GetRotationPolicy"]
            secrets      = []
            storage      = []
          }
          tenantId = data.azapi_client_config.current.tenant_id
        },
        {
          objectId = azapi_resource.storageAccount.identity[0].principal_id
          permissions = {
            certificates = []
            keys         = ["Get", "UnwrapKey", "WrapKey"]
            secrets      = []
            storage      = []
          }
          tenantId = data.azapi_client_config.current.tenant_id
        }
      ]
      createMode                   = "default"
      enablePurgeProtection        = true
      enableRbacAuthorization      = false
      enableSoftDelete             = true
      enabledForDeployment         = false
      enabledForDiskEncryption     = false
      enabledForTemplateDeployment = false
      publicNetworkAccess          = "Enabled"
      sku = {
        family = "A"
        name   = "standard"
      }
      tenantId = data.azapi_client_config.current.tenant_id
    }
  }
  depends_on = [azapi_resource.storageAccount]
}

resource "azapi_resource" "storageAccount" {
  type      = "Microsoft.Storage/storageAccounts@2023-05-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = "${var.resource_name}sa"
  location  = var.location
  identity {
    type         = "SystemAssigned"
    identity_ids = []
  }
  body = {
    kind = "StorageV2"
    properties = {
      accessTier                   = "Hot"
      allowBlobPublicAccess        = true
      allowCrossTenantReplication  = false
      allowSharedKeyAccess         = true
      defaultToOAuthAuthentication = false
      dnsEndpointType              = "Standard"
      encryption = {
        keySource = "Microsoft.Storage"
        services = {
          queue = {
            keyType = "Service"
          }
          table = {
            keyType = "Service"
          }
        }
      }
      isHnsEnabled       = false
      isLocalUserEnabled = true
      isNfsV3Enabled     = false
      isSftpEnabled      = false
      minimumTlsVersion  = "TLS1_2"
      networkAcls = {
        bypass              = "AzureServices"
        defaultAction       = "Allow"
        ipRules             = []
        resourceAccessRules = []
        virtualNetworkRules = []
      }
      publicNetworkAccess      = "Enabled"
      supportsHttpsTrafficOnly = true
    }
    sku = {
      name = "Standard_LRS"
    }
  }
}

# Commenting out first access policy due to provider state tracking issues
# resource "azapi_resource" "accessPolicy" {
#   type      = "Microsoft.KeyVault/vaults/accessPolicies@2023-02-01"
#   parent_id = azapi_resource.vault.id
#   name      = "add"
#   body = {
#     properties = {
#       accessPolicies = [{
#         objectId = data.azapi_client_config.current.object_id
#         permissions = {
#           certificates = []
#           keys         = ["Get", "Create", "Delete", "List", "Restore", "Recover", "UnwrapKey", "WrapKey", "Purge", "Encrypt", "Decrypt", "Sign", "Verify", "GetRotationPolicy"]
#           secrets      = []
#           storage      = []
#         }
#         tenantId = data.azapi_client_config.current.tenant_id
#       }]
#     }
#   }
# }

# Commenting out storage account access policy due to provider state tracking issues
# resource "azapi_resource" "accessPolicy_1" {
#   type      = "Microsoft.KeyVault/vaults/accessPolicies@2023-02-01"
#   parent_id = azapi_resource.vault.id
#   name      = "add"
#   body = {
#     properties = {
#       accessPolicies = [{
#         objectId = azapi_resource.storageAccount.identity[0].principal_id
#         permissions = {
#           certificates = []
#           keys         = ["Get", "UnwrapKey", "WrapKey"]
#           secrets      = []
#           storage      = []
#         }
#         tenantId = data.azapi_client_config.current.tenant_id
#       }]
#     }
#   }
# }

resource "azapi_resource" "key" {
  type      = "Microsoft.KeyVault/vaults/keys@2023-02-01"
  parent_id = azapi_resource.vault.id
  name      = "${var.resource_name}-key"
  body = {
    properties = {
      kty     = "RSA"
      keySize = 2048
      keyOps  = ["encrypt", "decrypt", "sign", "verify", "wrapKey", "unwrapKey"]
    }
  }
}

resource "azapi_resource" "encryptionScope" {
  type      = "Microsoft.Storage/storageAccounts/encryptionScopes@2023-05-01"
  parent_id = azapi_resource.storageAccount.id
  name      = "${var.resource_name}-scope"
  body = {
    properties = {
      keyVaultProperties = {
        keyUri = azapi_resource.key.output.properties.keyUriWithVersion
      }
      source = "Microsoft.KeyVault"
      state  = "Enabled"
    }
  }
  depends_on = [azapi_resource.vault]
}