Области шифрования позволяют управлять шифрованием на уровне отдельного blob или контейнера. Области шифрования можно использовать для создания безопасных границ между данными, которые находятся в одной учетной записи хранения, но принадлежат разным клиентам. Дополнительные сведения об областях шифрования см. в разделе Области шифрования для хранилища BLOB-объектов.
В этой статье показано, как создать область шифрования. Данный пример также показывает, как указать область шифрования при создании объекта Blob или контейнера.
Вы можете создать область шифрования, защищенную ключом, управляемым Корпорацией Майкрософт, или ключом, управляемым клиентом, хранящимся в Azure Key Vault или в управляемой аппаратной модели безопасности Azure Key Vault (HSM). Чтобы создать область шифрования с ключом, управляемым клиентом, необходимо сначала создать хранилище ключей или управляемый HSM и добавить ключ, который вы планируете использовать для области. Хранилище ключей или управляемое устройство HSM должно иметь включённую защиту от удаления.
Учетная запись хранения и хранилище ключей могут находиться в одном арендаторе или в разных арендаторах. В любом случае учетная запись хранения и хранилище ключей могут находиться в разных регионах.
Область шифрования автоматически включена при его создании. После создания области шифрования её можно указать при создании блоба. При создании контейнера можно также указать область шифрования по умолчанию, которая автоматически применяется ко всем blob-объектам в контейнере.
При настройке области шифрования плата взимается не менее чем за один месяц (30 дней). По истечении первого месяца плата за услугу шифрования начисляется пропорционально на почасовой основе. Дополнительные сведения см. в разделе Выставление счетов за области шифрования.
Чтобы создать область шифрования на портале Azure, выполните следующие действия.
Войдите в свою учетную запись хранения на портале Azure.
В разделе "Безопасность и сеть" выберите "Шифрование".
Перейдите на вкладку "Области шифрования ".
Нажмите кнопку "Добавить ", чтобы добавить новую область шифрования.
В области создания области шифрования введите имя новой области.
Выберите нужный тип поддержки ключа шифрования, управляемые корпорацией Майкрософт или ключи, управляемые клиентом.
- Если вы выбрали ключи, управляемые корпорацией Майкрософт, нажмите кнопку "Создать ", чтобы создать область шифрования.
- Если вы выбрали ключи, управляемые клиентом, выберите подписку и укажите хранилище ключей и ключ, используемый для этой области шифрования. Если нужное хранилище ключей находится в другом регионе, выберите Ввести URI ключа и укажите URI ключа.
Если для учетной записи хранения включено шифрование инфраструктуры, она автоматически будет включена для новой области шифрования. В противном случае можно выбрать, следует ли включить шифрование инфраструктуры для области шифрования.
Чтобы создать область шифрования с помощью PowerShell, установите модуль PowerShell Az.Storage версии 3.4.0 или более поздней версии.
Создание области шифрования, защищенной ключами, управляемыми корпорацией Майкрософт
Чтобы создать область шифрования, защищенную ключами, управляемыми Корпорацией Майкрософт, вызовите команду New-AzStorageEncryptionScope с параметром -StorageEncryption
.
Если для учетной записи хранения включено шифрование инфраструктуры, она автоматически будет включена для новой области шифрования. В противном случае можно выбрать, следует ли включить шифрование инфраструктуры для области шифрования. Чтобы создать новую область с включенным шифрованием инфраструктуры, включите -RequireInfrastructureEncryption
параметр.
Не забудьте заменить значения заполнителей в примере собственными значениями:
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$scopeName = "<encryption-scope>"
New-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName1 `
-StorageEncryption
Создание области шифрования, защищенной ключами, управляемыми клиентом, в одном клиенте
Чтобы создать область шифрования, защищенную ключами, управляемыми клиентом, хранящимися в хранилище ключей или управляемом HSM, который находится в том же клиенте, что и учетная запись хранения, сначала настройте управляемые клиентом ключи для учетной записи хранения. Необходимо присвоить управляемое удостоверение учетной записи хранилища, имеющего разрешения на доступ к хранилищу ключей. Управляемое удостоверение может быть управляемым удостоверением, назначаемое пользователем, или управляемым удостоверением, назначаемое системой. Дополнительные сведения о настройке ключей, управляемых клиентом, см. в статье Настройка ключей, управляемых клиентом, в том же клиенте для существующей учетной записи хранения.
Чтобы предоставить управляемому удостоверению разрешения на доступ к Key Vault, назначьте этому удостоверению роль пользователя шифрования криптографической службы 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-scope 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 Crypto Service Encryption User.
Чтобы настроить управляемые клиентом ключи для использования с областью шифрования, необходимо включить защиту очистки в хранилище ключей или управляемом 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 в этом контейнере будут использовать такую область действия по умолчанию.
Если клиент пытается указать область шифрования при отправке блоба в контейнер, который имеет область шифрования по умолчанию и настроен на предотвращение переопределения этой области, то операция завершается ошибкой с сообщением о том, что запрос отклонён политикой шифрования контейнера.
При отправке большого двоичного объекта можно указать область шифрования для этого большого двоичного объекта или использовать область шифрования по умолчанию для контейнера, если она была указана.
Чтобы изменить ключ, который защищает область на портале 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>