Os âmbitos de encriptação permitem-lhe gerir a encriptação ao nível de um contentor ou blob individual. Você pode usar escopos de criptografia para criar limites seguros entre dados que residem na mesma conta de armazenamento, mas pertencem a clientes diferentes. Para obter mais informações sobre escopos de criptografia, consulte Escopos de criptografia para armazenamento de Blob.
Este artigo mostra como criar um escopo de criptografia. Ele também mostra como especificar um escopo de criptografia quando você cria um blob ou contêiner.
Você pode criar um escopo de criptografia protegido com uma chave gerenciada pela Microsoft ou com uma chave gerenciada pelo cliente armazenada em um Cofre de Chaves do Azure ou em um HSM (Modelo de Segurança de Hardware Gerenciado) do Cofre de Chaves do Azure. Para criar um escopo de criptografia com uma chave gerenciada pelo cliente, você deve primeiro criar um cofre de chaves ou HSM gerenciado e adicionar a chave que pretende usar para o escopo. O cofre de chaves ou o HSM gerenciado deve ter a proteção contra limpeza habilitada.
A conta de armazenamento e o cofre de chaves podem estar no mesmo locatário ou em locatários diferentes. Em ambos os casos, a conta de armazenamento e o cofre de chaves podem estar em regiões diferentes.
Um escopo de criptografia é ativado automaticamente quando você o cria. Depois de criar o escopo de criptografia, você pode especificá-lo ao criar um blob. Você também pode especificar um escopo de criptografia padrão ao criar um contêiner, que se aplica automaticamente a todos os blobs no contêiner.
Quando você configura um escopo de criptografia, é cobrado por um mínimo de um mês (30 dias). Após o primeiro mês, as cobranças por um escopo de criptografia são rateadas por hora. Para obter mais informações, consulte Cobrança de escopos de criptografia.
Para criar um escopo de criptografia no portal do Azure, siga estas etapas:
Navegue para a sua conta de armazenamento no portal do Azure.
Em Segurança + rede , selecione Encriptação.
Selecione a guia Escopos de Criptografia.
Clique no botão Adicionar para adicionar um novo escopo de criptografia.
No painel Criar Escopo de Criptografia, insira um nome para o novo escopo.
Selecione o tipo desejado de suporte a chaves de criptografia, chaves gerenciadas pela Microsoft ou chaves gerenciadas pelo cliente.
- Se você selecionou chaves gerenciadas pela Microsoft, clique em Criar para criar o escopo de criptografia.
- Se você selecionou Chaves gerenciadas pelo cliente, selecione uma assinatura e especifique um cofre de chaves e uma chave a ser usada para esse escopo de criptografia. Se o cofre de chaves desejado estiver em uma região diferente, selecione Inserir URI de chave e especifique o URI de chave.
Se a criptografia de infraestrutura estiver habilitada para a conta de armazenamento, ela será automaticamente habilitada para o novo escopo de criptografia. Caso contrário, você pode escolher se deseja habilitar a criptografia de infraestrutura para o escopo de criptografia.
Para criar um escopo de criptografia com o PowerShell, instale o módulo Az.Storage PowerShell, versão 3.4.0 ou posterior.
Criar um escopo de criptografia protegido por chaves gerenciadas pela Microsoft
Para criar um escopo de criptografia protegido por chaves gerenciadas pela Microsoft, chame o comando New-AzStorageEncryptionScope com o -StorageEncryption
parâmetro.
Se a criptografia de infraestrutura estiver habilitada para a conta de armazenamento, ela será automaticamente habilitada para o novo escopo de criptografia. Caso contrário, você pode escolher se deseja habilitar a criptografia de infraestrutura para o escopo de criptografia. Para criar o novo escopo com a criptografia de infraestrutura habilitada, inclua o -RequireInfrastructureEncryption
parâmetro.
Lembre-se de substituir os valores de espaço reservado no exemplo por seus próprios valores:
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$scopeName = "<encryption-scope>"
New-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName1 `
-StorageEncryption
Criar um escopo de criptografia protegido por chaves gerenciadas pelo cliente no mesmo locatário
Para criar um escopo de criptografia protegido por chaves gerenciadas pelo cliente armazenadas em um cofre de chaves ou HSM gerenciado que esteja no mesmo locatário que a conta de armazenamento, primeiro configure chaves gerenciadas pelo cliente para a conta de armazenamento. Você deve atribuir uma identidade gerenciada à conta de armazenamento que tenha permissões para acessar o cofre de chaves. A identidade gerenciada pode ser uma identidade gerenciada atribuída pelo usuário ou uma identidade gerenciada atribuída pelo sistema. Para saber mais sobre como configurar chaves gerenciadas pelo cliente, consulte Configurar chaves gerenciadas pelo cliente no mesmo locatário para uma conta de armazenamento existente.
Para conceder as permissões de identidade gerenciada para acessar o cofre de chaves, atribua a função Usuário de Criptografia do Serviço de Criptografia do Cofre da Chave à identidade gerenciada.
Para configurar chaves gerenciadas pelo cliente para uso com um escopo de criptografia, a proteção contra limpeza deve ser habilitada no cofre de chaves ou no HSM gerenciado.
O exemplo a seguir mostra como configurar um escopo de criptografia com uma identidade gerenciada atribuída ao sistema. Lembre-se de substituir os valores de espaço reservado no exemplo por seus próprios valores:
$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
Em seguida, chame o comando New-AzStorageEncryptionScope com o parâmetro e especifique o -KeyvaultEncryption
URI da chave. Incluir a versão da chave no URI da chave é opcional. Se você omitir a versão da chave, o escopo de criptografia usará automaticamente a versão de chave mais recente. Se você incluir a versão da chave, deverá atualizá-la manualmente para usar uma versão diferente.
O formato do URI de chave é semelhante aos exemplos a seguir e pode ser construído a partir da propriedade VaultUri do cofre de chaves e do nome da chave:
# 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>
Se a criptografia de infraestrutura estiver habilitada para a conta de armazenamento, ela será automaticamente habilitada para o novo escopo de criptografia. Caso contrário, você pode escolher se deseja habilitar a criptografia de infraestrutura para o escopo de criptografia. Para criar o novo escopo com a criptografia de infraestrutura habilitada, inclua o -RequireInfrastructureEncryption
parâmetro.
Lembre-se de substituir os valores de espaço reservado no exemplo por seus próprios valores:
$keyUri = $keyVault.VaultUri + "keys/" + $keyName
New-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName `
-KeyUri $keyUri `
-KeyvaultEncryption
Criar um escopo de criptografia protegido por chaves gerenciadas pelo cliente em um locatário diferente
Para criar um escopo de criptografia protegido por chaves gerenciadas pelo cliente armazenadas em um cofre de chaves ou HSM gerenciado que esteja em um locatário diferente da conta de armazenamento, primeiro configure chaves gerenciadas pelo cliente para a conta de armazenamento. Você deve configurar uma identidade gerenciada atribuída pelo usuário para a conta de armazenamento que tenha permissões para acessar o cofre de chaves no outro locatário. Para saber mais sobre como configurar chaves gerenciadas pelo cliente entre locatários, consulte Configurar chaves gerenciadas pelo cliente entre locatários para uma conta de armazenamento existente.
Para configurar chaves gerenciadas pelo cliente para uso com um escopo de criptografia, a proteção contra limpeza deve ser habilitada no cofre de chaves ou no HSM gerenciado.
Depois de configurar chaves gerenciadas pelo cliente entre locatários para a conta de armazenamento, você pode criar um escopo de criptografia na conta de armazenamento em um locatário que tenha como escopo uma chave em um cofre de chaves no outro locatário. Você precisará do URI da chave para criar o escopo de criptografia entre locatários.
Lembre-se de substituir os valores de espaço reservado no exemplo por seus próprios valores:
$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
Para criar um escopo de criptografia com a CLI do Azure, primeiro instale a CLI do Azure versão 2.20.0 ou posterior.
Criar um escopo de criptografia protegido por chaves gerenciadas pela Microsoft
Para criar um escopo de criptografia protegido por chaves gerenciadas pela Microsoft, chame o comando az storage account encryption-scope create, especificando o --key-source
parâmetro como Microsoft.Storage
.
Se a criptografia de infraestrutura estiver habilitada para a conta de armazenamento, ela será automaticamente habilitada para o novo escopo de criptografia. Caso contrário, você pode escolher se deseja habilitar a criptografia de infraestrutura para o escopo de criptografia. Para criar o novo escopo com a criptografia de infraestrutura habilitada, inclua o --require-infrastructure-encryption
parâmetro e defina seu valor como true
.
Lembre-se de substituir os valores de espaço reservado pelos seus próprios valores:
az storage account encryption-scope create \
--resource-group <resource-group> \
--account-name <storage-account> \
--name <encryption-scope> \
--key-source Microsoft.Storage
Criar um escopo de criptografia protegido por chaves gerenciadas pelo cliente no mesmo locatário
Para criar um escopo de criptografia protegido por chaves gerenciadas pelo cliente armazenadas em um cofre de chaves ou HSM gerenciado que esteja no mesmo locatário que a conta de armazenamento, primeiro configure chaves gerenciadas pelo cliente para a conta de armazenamento. Você deve atribuir uma identidade gerenciada à conta de armazenamento que tenha permissões para acessar o cofre de chaves. A identidade gerenciada pode ser uma identidade gerenciada atribuída pelo usuário ou uma identidade gerenciada atribuída pelo sistema. Para saber mais sobre como configurar chaves gerenciadas pelo cliente, consulte Configurar chaves gerenciadas pelo cliente no mesmo locatário para uma conta de armazenamento existente.
Para conceder as permissões de identidade gerenciada para acessar o cofre de chaves, atribua a função Usuário de Criptografia do Serviço de Criptografia do Cofre da Chave à identidade gerenciada.
Para configurar chaves gerenciadas pelo cliente para uso com um escopo de criptografia, a proteção contra limpeza deve ser habilitada no cofre de chaves ou no HSM gerenciado.
O exemplo a seguir mostra como configurar um escopo de criptografia com uma identidade gerenciada atribuída ao sistema. Lembre-se de substituir os valores de espaço reservado no exemplo por seus próprios valores:
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
Em seguida, chame o comando az storage account encryption-scope com o parâmetro e especifique o --key-uri
URI da chave. Incluir a versão da chave no URI da chave é opcional. Se você omitir a versão da chave, o escopo de criptografia usará automaticamente a versão de chave mais recente. Se você incluir a versão da chave, deverá atualizá-la manualmente para usar uma versão diferente.
O formato do URI de chave é semelhante aos exemplos a seguir e pode ser construído a partir da propriedade vaultUri do cofre de chaves e do nome da chave:
# 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>
Se a criptografia de infraestrutura estiver habilitada para a conta de armazenamento, ela será automaticamente habilitada para o novo escopo de criptografia. Caso contrário, você pode escolher se deseja habilitar a criptografia de infraestrutura para o escopo de criptografia. Para criar o novo escopo com a criptografia de infraestrutura habilitada, inclua o --require-infrastructure-encryption
parâmetro e defina seu valor como true
.
Lembre-se de substituir os valores de espaço reservado no exemplo por seus próprios valores:
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>
Criar um escopo de criptografia protegido por chaves gerenciadas pelo cliente em um locatário diferente
Para criar um escopo de criptografia protegido por chaves gerenciadas pelo cliente armazenadas em um cofre de chaves ou HSM gerenciado que esteja em um locatário diferente da conta de armazenamento, primeiro configure chaves gerenciadas pelo cliente para a conta de armazenamento. Você deve configurar uma identidade gerenciada atribuída pelo usuário para a conta de armazenamento que tenha permissões para acessar o cofre de chaves no outro locatário. Para saber mais sobre como configurar chaves gerenciadas pelo cliente entre locatários, consulte Configurar chaves gerenciadas pelo cliente entre locatários para uma conta de armazenamento existente.
Para configurar chaves gerenciadas pelo cliente para uso com um escopo de criptografia, a proteção contra limpeza deve ser habilitada no cofre de chaves ou no HSM gerenciado.
Depois de configurar chaves gerenciadas pelo cliente entre locatários para a conta de armazenamento, você pode criar um escopo de criptografia na conta de armazenamento em um locatário que tenha como escopo uma chave em um cofre de chaves no outro locatário. Você precisará do URI da chave para criar o escopo de criptografia entre locatários.
Lembre-se de substituir os valores de espaço reservado no exemplo por seus próprios valores:
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>
Para exibir os escopos de criptografia de uma conta de armazenamento no portal do Azure, navegue até a configuração Escopos de Criptografia para a conta de armazenamento. Nesse painel, você pode habilitar ou desabilitar um escopo de criptografia ou alterar a chave de um escopo de criptografia.
Para exibir detalhes de uma chave gerenciada pelo cliente, incluindo o URI e a versão da chave e se a versão da chave é atualizada automaticamente, siga o link na coluna Chave .
Para listar os escopos de criptografia disponíveis para uma conta de armazenamento com o PowerShell, chame o comando Get-AzStorageEncryptionScope . Lembre-se de substituir os valores de espaço reservado no exemplo por seus próprios valores:
Get-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName
Para listar todos os escopos de criptografia em um grupo de recursos por conta de armazenamento, use a sintaxe de pipeline:
Get-AzStorageAccount -ResourceGroupName $rgName | Get-AzStorageEncryptionScope
Para listar os escopos de criptografia disponíveis para uma conta de armazenamento com a CLI do Azure, chame o comando az storage account encryption-scope list . Lembre-se de substituir os valores de espaço reservado no exemplo por seus próprios valores:
az storage account encryption-scope list \
--account-name <storage-account> \
--resource-group <resource-group>
Ao criar um contêiner, você pode especificar um escopo de criptografia padrão. Os blobs nesse contêiner usarão esse escopo por padrão.
Um blob individual pode ser criado com seu próprio escopo de criptografia, a menos que o contêiner esteja configurado para exigir que todos os blobs usem o escopo padrão. Para obter mais informações, consulte Escopos de criptografia para contêineres e blobs.
Para criar um contêiner com um escopo de criptografia padrão no portal do Azure, primeiro crie o escopo de criptografia conforme descrito em Criar um escopo de criptografia. Em seguida, siga estas etapas para criar o contêiner:
Navegue até a lista de contêineres em sua conta de armazenamento e selecione o botão Adicionar para criar um contêiner.
Expanda as Configurações avançadas no painel Novo contêiner .
Na lista suspensa Escopo de criptografia, selecione o escopo de criptografia padrão para o contêiner.
Para exigir que todos os blobs no contêiner usem o escopo de criptografia padrão, marque a caixa de seleção Usar este escopo de criptografia para todos os blobs no contêiner. Se essa caixa de seleção estiver marcada, um blob individual no contêiner não poderá substituir o escopo de criptografia padrão.
Para criar um contêiner com um escopo de criptografia padrão com o PowerShell, chame o comando New-AzStorageContainer, especificando o escopo do -DefaultEncryptionScope
parâmetro. Para forçar todos os blobs em um contêiner a usar o escopo padrão do contêiner, defina o -PreventEncryptionScopeOverride
parâmetro como true
.
$containerName1 = "container1"
$ctx = New-AzStorageContext -StorageAccountName $accountName -UseConnectedAccount
# Create a container with a default encryption scope that cannot be overridden.
New-AzStorageContainer -Name $containerName1 `
-Context $ctx `
-DefaultEncryptionScope $scopeName1 `
-PreventEncryptionScopeOverride $true
Para criar um contêiner com um escopo de criptografia padrão com a CLI do Azure, chame o comando az storage container create, especificando o escopo para o --default-encryption-scope
parâmetro. Para forçar todos os blobs em um contêiner a usar o escopo padrão do contêiner, defina o --prevent-encryption-scope-override
parâmetro como true
.
O exemplo a seguir usa sua conta do Microsoft Entra para autorizar a operação para criar o contêiner. Você também pode usar a chave de acesso da conta. Para obter mais informações, consulte Autorizar o acesso a dados de blob ou fila com a CLI do Azure.
az storage container create \
--account-name <storage-account> \
--resource-group <resource-group> \
--name <container> \
--default-encryption-scope <encryption-scope> \
--prevent-encryption-scope-override true \
--auth-mode login
Se um cliente tentar especificar um escopo ao carregar um blob para um contêiner que tenha um escopo de criptografia padrão e o contêiner estiver configurado para impedir que os blobs substituam o escopo padrão, a operação falhará com uma mensagem indicando que a solicitação é proibida pela política de criptografia de contêiner.
Ao carregar um blob, você pode especificar um escopo de criptografia para esse blob ou usar o escopo de criptografia padrão para o contêiner, se um tiver sido especificado.
Para alterar a chave que protege um escopo no portal do Azure, siga estas etapas:
- Navegue até a guia Escopos de Criptografia para exibir a lista de escopos de criptografia para a conta de armazenamento.
- Selecione o botão Mais ao lado do escopo que você deseja modificar.
- No painel Editar escopo de criptografia, você pode alterar o tipo de criptografia de chave gerenciada pela Microsoft para chave gerenciada pelo cliente ou vice-versa.
- Para selecionar uma nova chave gerenciada pelo cliente, selecione Usar uma nova chave e especifique o cofre de chaves, a chave e a versão da chave .
Para alterar a chave que protege um escopo de criptografia de uma chave gerenciada pelo cliente para uma chave gerenciada pela Microsoft com o PowerShell, chame o comando Update-AzStorageEncryptionScope e passe o -StorageEncryption
parâmetro:
Update-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName2 `
-StorageEncryption
Em seguida, chame o comando Update-AzStorageEncryptionScope e passe os -KeyUri
parâmetros and -KeyvaultEncryption
:
Update-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName1 `
-KeyUri $keyUri `
-KeyvaultEncryption
Para alterar a chave que protege um escopo de criptografia de uma chave gerenciada pelo cliente para uma chave gerenciada pela Microsoft com a CLI do Azure, chame o comando az storage account encryption-scope update e passe o parâmetro com o --key-source
valor Microsoft.Storage
:
az storage account encryption-scope update \
--account-name <storage-account> \
--resource-group <resource-group>
--name <encryption-scope> \
--key-source Microsoft.Storage
Em seguida, chame o comando az storage account encryption-scope update, passe o parâmetro e passe o parâmetro com o --key-uri
--key-source
valor :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>
Desative todos os escopos de criptografia que não são necessários para evitar cobranças desnecessárias. Para obter mais informações, consulte Cobrança de escopos de criptografia.