Encriptação de recursos seguros na Automatização do Azure
A Automação do Azure protege ativos como credenciais, certificados, conexões e variáveis criptografadas que estão usando vários níveis de criptografia. Isso ajuda a aumentar a segurança desses ativos. Além disso, para garantir maior segurança e privacidade para o código do cliente, runbooks e scripts DSC também são criptografados. A criptografia na Automação do Azure segue dois modelos, dependendo da chave de nível superior usada para criptografia:
- Usando chaves gerenciadas pela Microsoft
- Usando chaves que você gerencia
Chaves gerenciadas pela Microsoft
Por padrão, sua conta de Automação do Azure usa chaves gerenciadas pela Microsoft.
Cada ativo seguro é criptografado e armazenado na Automação do Azure usando uma chave exclusiva (chave de Criptografia de Dados) que é gerada para cada conta de automação. Essas chaves em si são criptografadas e armazenadas na Automação do Azure usando outra chave exclusiva que é gerada para cada conta chamada Chave de Criptografia de Conta (AEK). Essas chaves de criptografia de conta criptografadas e armazenadas na Automação do Azure usando chaves gerenciadas pela Microsoft.
Chaves que você gerencia com o Cofre da Chave
Você pode gerenciar a criptografia de ativos seguros para sua conta de automação com suas próprias chaves. Quando especifica uma chave gerida pelo cliente no nível da conta de Automatização, essa chave é utilizada para proteger e controlar o acesso à chave de encriptação de conta da conta de Automatização. Esta, por sua vez, é utilizada para encriptar e desencriptar todos os recursos protegidos. As chaves gerenciadas pelo cliente oferecem maior flexibilidade para criar, girar, desabilitar e revogar controles de acesso. Também pode auditar as chaves de encriptação utilizadas para proteger os seus recursos.
Use o Azure Key Vault para armazenar chaves gerenciadas pelo cliente. Você pode criar suas próprias chaves e armazená-las em um cofre de chaves ou pode usar as APIs do Cofre de Chaves do Azure para gerar chaves.
Habilitar o Firewall do Azure no Cofre da Chave do Azure bloqueia o acesso dos runbooks da Automação do Azure para esse serviço. O acesso será bloqueado mesmo quando a exceção de firewall para permitir serviços Microsoft fidedignos estiver ativada, uma vez que a Automatização não faz parte da lista de serviços fidedignos. Com um firewall habilitado, o acesso só pode ser feito usando um Runbook Worker híbrido e um ponto de extremidade de serviço de rede virtual. No entanto, quando você habilita o link Privado para o Cofre da Chave, a Automação do Azure perde o acesso ao Cofre da Chave. Mesmo que você habilite um link privado para o Hybrid Runbook Worker, ele permitirá o acesso apenas ao serviço de Automação do Azure e não ao Cofre da Chave.
Para obter mais informações sobre o Azure Key Vault, consulte O que é o Azure Key Vault?
Uso de chaves gerenciadas pelo cliente para uma conta de automação
Quando você usa a criptografia com chaves gerenciadas pelo cliente para uma conta de Automação, a Automação do Azure encapsula a chave de criptografia da conta com a chave gerenciada pelo cliente no cofre de chaves associado. Habilitar chaves gerenciadas pelo cliente não afeta o desempenho e a conta é criptografada com a nova chave imediatamente, sem qualquer atraso.
Uma nova conta de automação é sempre criptografada usando chaves gerenciadas pela Microsoft. Não é possível ativar chaves gerenciadas pelo cliente no momento em que a conta é criada. As chaves gerenciadas pelo cliente são armazenadas no Cofre de Chaves do Azure e o cofre de chaves deve ser provisionado com políticas de acesso que concedam permissões de chave à identidade gerenciada associada à conta de Automação. A identidade gerenciada fica disponível somente depois que a conta de automação é criada.
Quando você modifica a chave que está sendo usada para a criptografia segura de ativos da Automação do Azure, habilitando ou desabilitando chaves gerenciadas pelo cliente, atualizando a versão da chave ou especificando uma chave diferente, a criptografia da chave de criptografia de conta muda, mas os ativos seguros em sua conta de Automação do Azure não precisam ser criptografados novamente.
Nota
Para habilitar a chave gerenciada pelo cliente usando chamadas de API REST da Automação do Azure, você precisa usar a versão da api 2020-01-13-preview.
Pré-requisitos para usar chaves gerenciadas pelo cliente na Automação do Azure
Antes de habilitar chaves gerenciadas pelo cliente para uma conta de automação, você deve garantir que os seguintes pré-requisitos sejam atendidos:
- Um Cofre da Chave do Azure com as propriedades Excluir suavemente e Não limpar habilitadas. Essas propriedades são necessárias para permitir a recuperação de chaves se houver exclusão acidental.
- Apenas as chaves RSA são suportadas com a encriptação da Automação do Azure. Para obter mais informações sobre chaves, consulte Sobre chaves, segredos e certificados do Cofre de Chaves do Azure.
- A conta de automação e o cofre de chaves podem estar em assinaturas diferentes, mas precisam estar no mesmo locatário do Microsoft Entra.
- Ao usar o PowerShell, verifique se o módulo Azure Az PowerShell está instalado. Para instalar ou atualizar, consulte Como instalar o módulo Azure Az PowerShell.
Gerar e atribuir uma nova identidade atribuída ao sistema para uma conta de automação
Para usar chaves gerenciadas pelo cliente com uma conta de automação, sua conta de automação precisa se autenticar no cofre de chaves que armazena chaves gerenciadas pelo cliente. A Automação do Azure usa identidades gerenciadas atribuídas pelo sistema para autenticar a conta com o Azure Key Vault. Para obter mais informações sobre identidades gerenciadas, consulte O que são identidades gerenciadas para recursos do Azure?
Através do PowerShell
Use o cmdlet do PowerShell Set-AzAutomationAccount para modificar uma conta de Automação do Azure existente. O -AssignSystemIdentity
parâmetro gera e atribui uma nova identidade atribuída ao sistema para a conta de Automação usar com outros serviços, como o Azure Key Vault. Para obter mais informações, consulte O que são identidades gerenciadas para recursos do Azure? e Sobre o Cofre de Chaves do Azure. Execute o seguinte código:
# Revise variables with your actual values.
$resourceGroup = "ResourceGroupName"
$automationAccount = "AutomationAccountName"
$vaultName = "KeyVaultName"
$keyName = "KeyName"
Set-AzAutomationAccount `
-ResourceGroupName $resourceGroup `
-Name $automationAccount `
-AssignSystemIdentity
O resultado deve ser algo semelhante ao seguinte:
Obtenha o PrincipalId
para uso posterior. Execute o seguinte código:
$principalID = (Get-AzAutomationAccount `
-ResourceGroupName $resourceGroup `
-Name $automationAccount).Identity.PrincipalId
$principalID
Utilizar REST
Configure uma identidade gerenciada atribuída ao sistema para a conta de automação usando a seguinte chamada de API REST:
PATCH https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name?api-version=2020-01-13-preview
Corpo do pedido:
{
"identity":
{
"type": "SystemAssigned"
}
}
A identidade atribuída pelo sistema para a conta de automação é retornada em uma resposta semelhante à seguinte:
{
"name": "automation-account-name",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name",
..
"identity": {
"type": "SystemAssigned",
"principalId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"tenantId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
},
..
}
Configuração da política de acesso ao Cofre da Chave
Depois que uma identidade gerenciada atribuída ao sistema é atribuída à conta de automação, você configura o acesso ao cofre de chaves que armazena chaves gerenciadas pelo cliente. A Automação do Azure requer as permissões de operação Get, Recover, WrapKey e UnwrapKey para que a identidade acesse as chaves gerenciadas pelo cliente.
Através do PowerShell
Use o cmdlet do PowerShell Set-AzKeyVaultAccessPolicy para conceder as permissões necessárias. Em seguida, use Add-AzKeyVaultKey para criar uma chave no cofre de chaves. Execute o seguinte código:
Set-AzKeyVaultAccessPolicy `
-VaultName $vaultName `
-ObjectId $principalID `
-PermissionsToKeys Get, Recover, UnwrapKey, WrapKey
Add-AzKeyVaultKey `
-VaultName $vaultName `
-Name $keyName `
-Destination 'Software'
O resultado deve ser algo semelhante ao seguinte:
Utilizar REST
A política de acesso pode ser definida usando a seguinte chamada à API REST:
PUT https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/accessPolicies/add?api-version=2018-02-14
Corpo do pedido:
{
"properties": {
"accessPolicies": [
{
"tenantId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
"objectId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"permissions": {
"keys": [
"get",
"recover",
"wrapKey",
"unwrapKey"
],
"secrets": [],
"certificates": []
}
}
]
}
}
Nota
Os campos tenantId e objectId devem ser fornecidos com valores de identity.tenantId e identity.principalId , respectivamente, a partir da resposta da identidade gerenciada para a conta de automação.
Reconfigurar a conta de automação para usar a chave gerenciada pelo cliente
Se quiser mudar sua conta de Automação de chaves gerenciadas pela Microsoft para chaves gerenciadas pelo cliente, você pode executar essa alteração usando o Azure PowerShell ou com um modelo do Azure Resource Manager.
Através do PowerShell
Use o cmdlet do PowerShell Set-AzAutomationAccount para reconfigurar a conta de automação para usar chaves gerenciadas pelo cliente.
$vaultURI = (Get-AzKeyVault -VaultName $vaultName).VaultUri
$keyVersion = (Get-AzKeyVaultKey -VaultName $vaultName -KeyName $keyName).Version
Set-AzAutomationAccount `
-ResourceGroupName $resourceGroup `
-Name $automationAccount `
-AssignSystemIdentity `
-KeyName $keyName `
-KeyVaultUri $vaultURI `
-KeyVersion $keyVersion `
-KeyVaultEncryption
Você pode verificar a alteração executando o seguinte comando:
(Get-AzAutomationAccount `
-ResourceGroupName $resourceGroup `
-Name $automationAccount).Encryption `
| ConvertTo-Json
O resultado deve ser algo semelhante ao seguinte:
Utilizar REST
Use a seguinte chamada à API REST:
PATCH https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name?api-version=2020-01-13-preview
Corpo do pedido:
{
"identity": {
"type": "SystemAssigned"
},
"properties": {
"encryption": {
"keySource": "Microsoft.Keyvault",
"keyvaultProperties": {
"keyName": "sample-vault-key",
"keyvaultUri": "https://sample-vault-key12.vault.azure.net",
"keyVersion": "7c73556c521340209371eaf623cc099d"
}
}
}
}
Resposta da amostra
{
"name": "automation-account-name",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name",
..
"properties": {
..
"encryption": {
"keyvaultProperties": {
"keyName": "sample-vault-key",
"keyvaultUri": "https://sample-vault-key12.vault.azure.net",
"keyVersion": "7c73556c521340209371eaf623cc099d"
},
"keySource": "Microsoft.Keyvault"
},
..
}
}
Rotação de uma chave gerenciada pelo cliente
Você pode girar uma chave gerenciada pelo cliente no Cofre de Chaves do Azure de acordo com suas políticas de conformidade. Quando a chave é girada, você deve atualizar a conta de automação para usar o novo URI de chave.
Girar a chave não aciona a recriptografia de ativos seguros na conta de automação. Não é necessária nenhuma ação adicional.
Revogação do acesso a uma chave gerenciada pelo cliente
Para revogar o acesso a chaves gerenciadas pelo cliente, use o PowerShell ou a CLI do Azure. Para obter mais informações, consulte Azure Key Vault PowerShell ou Azure Key Vault CLI. A revogação do acesso bloqueia efetivamente o acesso a todos os ativos seguros na conta de Automação, pois a chave de criptografia é inacessível pela Automação do Azure.
Próximos passos
- Para saber mais sobre as diretrizes de segurança, consulte Práticas recomendadas de segurança na Automação do Azure.
- Para compreender o Azure Key Vault, consulte O que é o Azure Key Vault?.
- Para trabalhar com certificados, consulte Gerenciar certificados na Automação do Azure.
- Para lidar com credenciais, consulte Gerenciar credenciais na Automação do Azure.
- Para usar variáveis de Automação, Gerenciar variáveis na Automação do Azure.
- Para obter ajuda ao trabalhar com conexões, consulte Gerenciar conexões na Automação do Azure.