Os escopos de criptografia permitem gerenciar a criptografia no nível de um blob ou contêiner individual. É possível usar escopos de criptografia para criar limites seguros entre os 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 blobs.
Este artigo mostra como criar um novo 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 Azure Key Vault ou em um Modelo de Segurança de Hardware (HSM) gerenciado pelo Azure Key Vault. 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 você pretende usar para o escopo. O cofre de chaves ou o HSM gerenciado deve ter a proteção de 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 é habilitado 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.
Ao configurar um escopo de criptografia, você será cobrado por um mínimo de um mês (30 dias). Após o primeiro mês, os encargos para um escopo de criptografia são rateados por hora. Para obter mais informações, confira Cobrança para escopos de criptografia.
Para criar um escopo de criptografia no portal do Azure, siga estas etapas:
Navegue até sua conta de armazenamento no portal do Azure.
Em Segurança + Rede, selecione Criptografia.
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 à chave 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, escolha uma assinatura e especifique um cofre de chaves e uma chave para usar nesse 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á habilitada automaticamente 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 parâmetro -StorageEncryption
.
Se a criptografia de infraestrutura estiver habilitada para a conta de armazenamento, ela será habilitada automaticamente 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 parâmetro -RequireInfrastructureEncryption
.
Lembre-se de substituir os valores de espaço reservado no exemplo pelos 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 da conta de armazenamento, primeiro configure as 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, confira 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 de Usuário de Criptografia do Serviço de Criptografia do Key Vault à identidade gerenciada.
Para configurar chaves gerenciadas pelo cliente para uso com um escopo de criptografia, a proteção de limpeza deve ser habilitada no cofre de chaves ou HSM gerenciado.
O exemplo a seguir mostra como configurar um escopo de criptografia com uma identidade gerenciada atribuída pelo sistema. Lembre-se de substituir os valores de espaço reservado no exemplo pelos 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 -KeyvaultEncryption
e especifique o URI da chave. A inclusão da versão de chave no URI de chave é opcional. Se você omitir a versão de chave, o escopo de criptografia usará automaticamente a versão de chave mais recente. Se você incluir a versão de chave, deverá atualizar a versão de chave manualmente para usar uma versão diferente.
O formato do URI da 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á habilitada automaticamente 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 parâmetro -RequireInfrastructureEncryption
.
Lembre-se de substituir os valores de espaço reservado no exemplo pelos 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 as 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, confira 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 de limpeza deve ser habilitada no cofre de chaves ou 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 com escopo para uma chave em um cofre de chaves no outro locatário. Você precisará do URI de chave para criar o escopo de criptografia entre locatários.
Lembre-se de substituir os valores de espaço reservado no exemplo pelos 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 parâmetro --key-source
como Microsoft.Storage
.
Se a criptografia de infraestrutura estiver habilitada para a conta de armazenamento, ela será habilitada automaticamente 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 parâmetro --require-infrastructure-encryption
e defina seu valor como true
.
Lembre-se de substituir os valores dos espaços reservados 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.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 da conta de armazenamento, primeiro configure as 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, confira 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 de Usuário de Criptografia do Serviço de Criptografia do Key Vault à identidade gerenciada.
Para configurar chaves gerenciadas pelo cliente para uso com um escopo de criptografia, a proteção de limpeza deve ser habilitada no cofre de chaves ou HSM gerenciado.
O exemplo a seguir mostra como configurar um escopo de criptografia com uma identidade gerenciada atribuída pelo sistema. Lembre-se de substituir os valores de espaço reservado no exemplo pelos 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 --key-uri
e especifique o URI da chave. A inclusão da versão de chave no URI de chave é opcional. Se você omitir a versão de chave, o escopo de criptografia usará automaticamente a versão de chave mais recente. Se você incluir a versão de chave, deverá atualizar a versão de chave manualmente para usar uma versão diferente.
O formato do URI da 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á habilitada automaticamente 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 parâmetro --require-infrastructure-encryption
e defina seu valor como true
.
Lembre-se de substituir os valores de espaço reservado no exemplo 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.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 as 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, confira 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 de limpeza deve ser habilitada no cofre de chaves ou 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 com escopo para uma chave em um cofre de chaves no outro locatário. Você precisará do URI de chave para criar o escopo de criptografia entre locatários.
Lembre-se de substituir os valores de espaço reservado no exemplo 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.KeyVault \
--key-uri <key-uri>
Para exibir os escopos de criptografia para 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 pelos 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 do 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 pelos 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. Por padrão, os blobs nesse contêiner usarão esse escopo.
Um blob individual pode ser criado com seu próprio escopo de criptografia, a menos que o contêiner seja 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. Depois, 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 para Usar esse 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 para o parâmetro -DefaultEncryptionScope
. Para forçar todos os blobs em um contêiner a usar o escopo padrão do contêiner, defina o parâmetro -PreventEncryptionScopeOverride
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 parâmetro --default-encryption-scope
. Para forçar todos os blobs em um contêiner a usar o escopo padrão do contêiner, defina o parâmetro --prevent-encryption-scope-override
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, confira Autorizar o acesso a dados de blob ou de filas 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 em 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 do 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 parâmetro -StorageEncryption
:
Update-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName2 `
-StorageEncryption
Em seguida, chame o comando Update-AzStorageEncryptionScope e passe os parâmetros -KeyUri
e -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 --key-source
com o 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 --key-uri
e passe o parâmetro --key-source
com o 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>
Desabilite os escopos de criptografia que não são necessários para evitar cobranças desnecessárias. Para obter mais informações, confira Cobrança para escopos de criptografia.