Области шифрования позволяют управлять шифрованием на уровне отдельного большого двоичного объекта или контейнера. Области шифрования можно использовать для создания безопасных границ между данными, которые находятся в одной учетной записи хранения, но принадлежат разным клиентам. Дополнительные сведения об областях шифрования см. в разделе Области шифрования для хранилища BLOB-объектов.
В этой статье показано, как создать область шифрования. В ней также показано, как указать область шифрования при создании BLOB-объекта или контейнера.
Вы можете создать область шифрования, защищенную с помощью ключа, управляемого Майкрософт или управляемого клиентом, который хранится в Azure Key Vault или в управляемом модуле HSM Azure Key Vault. Чтобы создать область шифрования с помощью ключа, управляемого клиентом, необходимо сначала создать хранилище ключей или управляемый модуль HSM, а затем добавить ключ, который предполагается использовать для этой области. Хранилище ключей или управляемое устройство HSM должно иметь защиту от очистки.
Учетная запись хранения и хранилище ключей могут находиться в одном клиенте или в разных клиентах. В любом случае учетная запись хранения и хранилище ключей могут находиться в разных регионах.
При создании области шифрования она включается автоматически. После создания области шифрования вы можете указывать ее при создании BLOB-объекта. При создании контейнера вы также можете указать область шифрования по умолчанию, которая автоматически применяется ко всем BLOB-объектам в контейнере.
При настройке область шифрования плата взимается не менее чем за один месяц (30 дней). По истечении первого месяца плата за шифрование область оценивается почасовой основе. Дополнительные сведения см. в разделе "Выставление счетов для область шифрования".
Чтобы создать область шифрования на портале Azure, выполните следующие действия.
Войдите в свою учетную запись хранения на портале Azure.
В разделе "Безопасность и сеть" выберите "Шифрование".
Перейдите на вкладку областей шифрования.
Нажмите кнопку Добавить, чтобы добавить новую область шифрования.
В области Создание области шифрования введите имя новой области.
Выберите нужный тип поддержки ключа шифрования — ключи, управляемые Майкрософт, или ключи, управляемые клиентом.
- Если вы выбрали ключи, управляемые Майкрософт, нажмите кнопку Создать, чтобы создать область шифрования.
- Если вы выбрали ключи, управляемые клиентом, выберите подписку и укажите хранилище ключей и ключ, используемый для этого шифрования область. Если нужное хранилище ключей находится в другом регионе, выберите URI ключа и укажите универсальный код ресурса (URI ) ключа.
Если для учетной записи хранения включено шифрование инфраструктуры, оно автоматически будет включено и для новой области шифрования. В противном случае можно выбрать, включать ли шифрование инфраструктуры для области шифрования.
Чтобы создать область шифрования с помощью PowerShell, установите модуль PowerShell Az. Storage версии 3.4.0 или более поздней.
Создание области шифрования, защищенной с помощью ключей, управляемых Майкрософт
Чтобы создать область шифрования, защищенную ключами, управляемыми корпорацией Майкрософт, вызовите команду New-Az служба хранилища EncryptionScope с параметром-StorageEncryption
.
Если для учетной записи хранения включено шифрование инфраструктуры, оно автоматически будет включено и для новой области шифрования. В противном случае можно выбрать, включать ли шифрование инфраструктуры для области шифрования. Чтобы создать новую область с включенным шифрованием инфраструктуры, включите параметр -RequireInfrastructureEncryption
.
Не забудьте заменить значения заполнителей в примере собственными значениями.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$scopeName = "<encryption-scope>"
New-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName1 `
-StorageEncryption
Создание область шифрования, защищенного ключами, управляемыми клиентом, в том же клиенте
Чтобы создать область шифрования, защищенную ключами, управляемыми клиентом, хранящимися в хранилище ключей или управляемом HSM, который находится в том же клиенте, что и учетная запись хранения, сначала настройте управляемые клиентом ключи для учетной записи хранения. Необходимо назначить управляемое удостоверение учетной записи хранения с разрешениями на доступ к хранилищу ключей. Управляемое удостоверение может быть управляемым удостоверением, назначаемое пользователем, или управляемым удостоверением, назначаемое системой. Дополнительные сведения о настройке ключей, управляемых клиентом, см. в статье Настройка ключей, управляемых клиентом, в том же клиенте для существующей учетной записи хранения.
Чтобы предоставить разрешения управляемого удостоверения для доступа к хранилищу ключей, назначьте роль пользователя шифрования службы шифрования key Vault управляемому удостоверению.
Чтобы настроить ключи, управляемые клиентом, для использования с областью шифрования, необходимо включить защиту от очистки в хранилище ключей или управляемом модуле HSM.
В следующем примере показано, как настроить область шифрования с управляемым удостоверением, назначаемое системой. Не забудьте заменить значения заполнителей в примере собственными значениями.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$keyVaultName = "<key-vault>"
$scopeName = "<encryption-scope>"
# Assign a system-assigned managed identity to the storage account.
$storageAccount = Set-AzStorageAccount -ResourceGroupName $rgName `
-Name $accountName `
-AssignIdentity
# Assign the necessary permissions to the managed identity
# so that it can access the key vault.
$principalId = $storageAccount.Identity.PrincipalId
$keyVault = Get-AzKeyVault $keyVaultName
New-AzRoleAssignment -ObjectId $storageAccount.Identity.PrincipalId `
-RoleDefinitionName "Key Vault Crypto Service Encryption User" `
-Scope $keyVault.ResourceId
Затем вызовите команду New-AzStorageEncryptionScope с параметром -KeyvaultEncryption
и укажите URI ключа. Включать версию ключа в URI ключа необязательно. Если опустить версию ключа, то в области шифрования будет автоматически использоваться последняя версия ключа. При включении версии ключа нужно будет вручную обновлять версию ключа, чтобы использовать другую версию.
Формат URI ключа аналогичен следующим примерам и может быть создан из свойства VaultUri хранилища ключей и имени ключа:
# Without the key version
https://<key-vault>.vault.azure.net/keys/<key>
# With the key version
https://<key-vault>.vault.azure.net/keys/<key>/<version>
Если для учетной записи хранения включено шифрование инфраструктуры, оно автоматически будет включено и для новой области шифрования. В противном случае можно выбрать, включать ли шифрование инфраструктуры для области шифрования. Чтобы создать новую область с включенным шифрованием инфраструктуры, включите параметр -RequireInfrastructureEncryption
.
Не забудьте заменить значения заполнителей в примере собственными значениями.
$keyUri = $keyVault.VaultUri + "keys/" + $keyName
New-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName `
-KeyUri $keyUri `
-KeyvaultEncryption
Создание область шифрования, защищенного ключами, управляемыми клиентом, в другом клиенте
Чтобы создать область шифрования, защищенную ключами, управляемыми клиентом, хранящимися в хранилище ключей или управляемом HSM, который находится в другом клиенте, отличном от учетной записи хранения, сначала настройте управляемые клиентом ключи для учетной записи хранения. Необходимо настроить управляемое удостоверение, назначаемое пользователем, для учетной записи хранения с разрешениями на доступ к хранилищу ключей в другом клиенте. Дополнительные сведения о настройке ключей, управляемых клиентом, см. в статье Настройка ключей, управляемых клиентом, для существующей учетной записи хранения.
Чтобы настроить ключи, управляемые клиентом, для использования с областью шифрования, необходимо включить защиту от очистки в хранилище ключей или управляемом модуле HSM.
После настройки ключей, управляемых клиентом для учетной записи хранения, можно создать область шифрования для учетной записи хранения в одном клиенте, который область ключ в хранилище ключей в другом клиенте. Для создания межтенантного шифрования область потребуется универсальный код ресурса (URI) ключа.
Не забудьте заменить значения заполнителей в примере собственными значениями.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$scopeName = "<encryption-scope>"
# Construct the key URI from the key vault URI and key name.
$keyUri = $kvUri + "keys/" + $keyName
New-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName `
-KeyUri $keyUri `
-KeyvaultEncryption
Чтобы создать область шифрования с помощью Azure CLI, сначала установите Azure CLI версии 2.20.0 или более поздней.
Создание области шифрования, защищенной с помощью ключей, управляемых Майкрософт
Чтобы создать область шифрования, защищенную ключами, управляемыми корпорацией Майкрософт, вызовите команду az storage account encryption-область create, указав --key-source
параметр как Microsoft.Storage
.
Если для учетной записи хранения включено шифрование инфраструктуры, оно автоматически будет включено и для новой области шифрования. В противном случае можно выбрать, включать ли шифрование инфраструктуры для области шифрования. Чтобы создать новую область с включенным шифрованием инфраструктуры, включите параметр --require-infrastructure-encryption
и установите для него значение true
.
Не забудьте заменить значения заполнителей собственными значениями.
az storage account encryption-scope create \
--resource-group <resource-group> \
--account-name <storage-account> \
--name <encryption-scope> \
--key-source Microsoft.Storage
Создание область шифрования, защищенного ключами, управляемыми клиентом, в том же клиенте
Чтобы создать область шифрования, защищенную ключами, управляемыми клиентом, хранящимися в хранилище ключей или управляемом HSM, который находится в том же клиенте, что и учетная запись хранения, сначала настройте управляемые клиентом ключи для учетной записи хранения. Необходимо назначить управляемое удостоверение учетной записи хранения с разрешениями на доступ к хранилищу ключей. Управляемое удостоверение может быть управляемым удостоверением, назначаемое пользователем, или управляемым удостоверением, назначаемое системой. Дополнительные сведения о настройке ключей, управляемых клиентом, см. в статье Настройка ключей, управляемых клиентом, в том же клиенте для существующей учетной записи хранения.
Чтобы предоставить разрешения управляемого удостоверения для доступа к хранилищу ключей, назначьте роль пользователя шифрования службы шифрования key Vault управляемому удостоверению.
Чтобы настроить ключи, управляемые клиентом, для использования с областью шифрования, необходимо включить защиту от очистки в хранилище ключей или управляемом модуле HSM.
В следующем примере показано, как настроить область шифрования с управляемым удостоверением, назначаемое системой. Не забудьте заменить значения заполнителей в примере собственными значениями.
az storage account update \
--name <storage-account> \
--resource-group <resource_group> \
--assign-identity
principalId=$(az storage account show --name <storage-account> \
--resource-group <resource_group> \
--query identity.principalId \
--output tsv)
$kvResourceId=$(az keyvault show \
--resource-group <resource-group> \
--name <key-vault> \
--query id \
--output tsv)
az role assignment create --assignee-object-id $principalId \
--role "Key Vault Crypto Service Encryption User" \
--scope $kvResourceId
Затем вызовите команду az storage account encryption-scope с параметром --key-uri
и укажите URI ключа. Включать версию ключа в URI ключа необязательно. Если опустить версию ключа, то в области шифрования будет автоматически использоваться последняя версия ключа. При включении версии ключа нужно будет вручную обновлять версию ключа, чтобы использовать другую версию.
Формат URI ключа аналогичен следующим примерам и может быть создан из свойства хранилища ключей и имени ключа:
# Without the key version
https://<key-vault>.vault.azure.net/keys/<key>
# With the key version
https://<key-vault>.vault.azure.net/keys/<key>/<version>
Если для учетной записи хранения включено шифрование инфраструктуры, оно автоматически будет включено и для новой области шифрования. В противном случае можно выбрать, включать ли шифрование инфраструктуры для области шифрования. Чтобы создать новую область с включенным шифрованием инфраструктуры, включите параметр --require-infrastructure-encryption
и установите для него значение true
.
Не забудьте заменить значения заполнителей в примере собственными значениями.
az storage account encryption-scope create \
--resource-group <resource-group> \
--account-name <storage-account> \
--name <encryption-scope> \
--key-source Microsoft.KeyVault \
--key-uri <key-uri>
Создание область шифрования, защищенного ключами, управляемыми клиентом, в другом клиенте
Чтобы создать область шифрования, защищенную ключами, управляемыми клиентом, хранящимися в хранилище ключей или управляемом HSM, который находится в другом клиенте, отличном от учетной записи хранения, сначала настройте управляемые клиентом ключи для учетной записи хранения. Необходимо настроить управляемое удостоверение, назначаемое пользователем, для учетной записи хранения с разрешениями на доступ к хранилищу ключей в другом клиенте. Дополнительные сведения о настройке ключей, управляемых клиентом, см. в статье Настройка ключей, управляемых клиентом, для существующей учетной записи хранения.
Чтобы настроить ключи, управляемые клиентом, для использования с областью шифрования, необходимо включить защиту от очистки в хранилище ключей или управляемом модуле HSM.
После настройки ключей, управляемых клиентом для учетной записи хранения, можно создать область шифрования для учетной записи хранения в одном клиенте, который область ключ в хранилище ключей в другом клиенте. Для создания межтенантного шифрования область потребуется универсальный код ресурса (URI) ключа.
Не забудьте заменить значения заполнителей в примере собственными значениями.
az storage account encryption-scope create \
--resource-group <resource-group> \
--account-name <storage-account> \
--name <encryption-scope> \
--key-source Microsoft.KeyVault \
--key-uri <key-uri>
При создании контейнера можно указать область шифрования по умолчанию. BLOB-объекты в этом контейнере будут использовать эту область по умолчанию.
Можно создать отдельный BLOB-объект с собственной областью шифрования, если только контейнер не настроен так, чтобы все BLOB-объекты использовали область по умолчанию. Дополнительные сведения см. в разделе Области шифрования для контейнеров и BLOB-объектов.
Если клиент пытается указать область при отправке BLOB-объекта в контейнер с областью шифрования по умолчанию, и в этом контейнере настроен запрет переопределения области по умолчанию для BLOB-объектов, то операция завершится неудачно с сообщением о том, что запрос запрещен политикой шифрования контейнеров.
При отправке BLOB-объекта можно указать область шифрования для этого BLOB-объекта или использовать область шифрования по умолчанию для контейнера, если она была задана.
Чтобы изменить ключ, защищающий область, на портале Azure, выполните следующие действия.
- Перейдите на вкладку областей шифрования, чтобы просмотреть список областей шифрования для учетной записи хранения.
- Нажмите кнопку Дополнительно рядом с областью, которую вы хотите изменить.
- В панели изменения области шифрования можно изменить тип ключа шифрования с управляемого Майкрософт на управляемый клиентом или наоборот.
- Чтобы задать новый ключ, управляемый клиентом, выберите Использовать новый ключ и укажите хранилище ключей, ключ и версию ключа.
Чтобы изменить ключ, защищающий область шифрования, с ключа, управляемого клиентом, на ключ, управляемый Майкрософт, с помощью PowerShell, вызовите команду Update-AzStorageEncryptionScope и передайте параметр -StorageEncryption
:
Update-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName2 `
-StorageEncryption
Затем вызовите команду Update-AzStorageEncryptionScope и передайте параметры -KeyUri
и -KeyvaultEncryption
:
Update-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName1 `
-KeyUri $keyUri `
-KeyvaultEncryption
Чтобы изменить ключ, защищающий область шифрования, с ключа, управляемого клиентом, на ключ, управляемый Майкрософт, с помощью Azure CLI, вызовите команду az storage account encryption-scope update и передайте параметр --key-source
со значением Microsoft.Storage
:
az storage account encryption-scope update \
--account-name <storage-account> \
--resource-group <resource-group>
--name <encryption-scope> \
--key-source Microsoft.Storage
Затем вызовите команду az storage account encryption-scope update, передайте параметр --key-uri
и передайте параметр --key-source
со значением Microsoft.KeyVault
:
az storage account encryption-scope update \
--resource-group <resource-group> \
--account-name <storage-account> \
--name <encryption-scope> \
--key-source Microsoft.KeyVault \
--key-uri <key-uri>
Отключите все лишние области шифрования, чтобы избежать ненужных расходов. Дополнительные сведения см. в разделе "Выставление счетов для область шифрования".