Dela via


Kryptering av säkra resurser i Azure Automation

Azure Automation skyddar tillgångar som autentiseringsuppgifter, certifikat, anslutningar och krypterade variabler använder olika krypteringsnivåer. Detta bidrar till att förbättra säkerheten för dessa tillgångar. Dessutom krypteras även runbooks och DSC-skript för att säkerställa större säkerhet och sekretess för kundkoden. Kryptering i Azure Automation följer två modeller, beroende på vilken nyckel på den översta nivån som används för kryptering:

  • Använda Microsoft-hanterade nycklar
  • Använda nycklar som du hanterar

Microsoft-hanterade nycklar

Som standard använder ditt Azure Automation-konto Microsoft-hanterade nycklar.

Varje säker tillgång krypteras och lagras i Azure Automation med hjälp av en unik nyckel (datakrypteringsnyckel) som genereras för varje automationskonto. Dessa nycklar själva krypteras och lagras i Azure Automation med hjälp av ännu en unik nyckel som genereras för varje konto som kallas en kontokrypteringsnyckel (AEK). Dessa kontokrypteringsnycklar krypterade och lagrade i Azure Automation med hjälp av Microsoft-hanterade nycklar.

Nycklar som du hanterar med Key Vault

Du kan hantera kryptering av säkra tillgångar för ditt Automation-konto med dina egna nycklar. När du anger en kundhanterad nyckel på Automation-kontots nivå används den nyckeln för att skydda och styra åtkomsten till kontokrypteringsnyckeln för Automation-kontot. Detta används i sin tur för att kryptera och dekryptera alla säkra tillgångar. Kundhanterade nycklar ger större flexibilitet att skapa, rotera, inaktivera och återkalla åtkomstkontroller. Du kan också granska krypteringsnycklarna som används för att skydda dina säkra tillgångar.

Använd Azure Key Vault för att lagra kundhanterade nycklar. Du kan antingen skapa egna nycklar och lagra dem i ett nyckelvalv, eller så kan du använda Azure Key Vault-API:erna för att generera nycklar.

Om du aktiverar Azure Firewall i Azure Key Vault blockeras åtkomst från Azure Automation-runbooks för den tjänsten. Åtkomst blockeras även när brandväggsfelet för att tillåta betrodda Microsoft-tjänster är aktiverat, eftersom Automation inte ingår i listan över betrodda tjänster. Med en aktiverad brandvägg kan åtkomst endast göras med hjälp av en Hybrid Runbook Worker och en tjänstslutpunkt för virtuellt nätverk. Men när du aktiverar den privata länken för Key Vault förlorar Azure Automation åtkomsten till Key Vault. Även om du aktiverar en privat länk för Hybrid Runbook Worker tillåter den endast åtkomst till Azure Automation-tjänsten och inte till Key Vault.

Mer information om Azure Key Vault finns i Vad är Azure Key Vault?

Användning av kundhanterade nycklar för ett Automation-konto

När du använder kryptering med kundhanterade nycklar för ett Automation-konto omsluter Azure Automation kontokrypteringsnyckeln med den kundhanterade nyckeln i det associerade nyckelvalvet. Aktivering av kundhanterade nycklar påverkar inte prestanda och kontot krypteras omedelbart med den nya nyckeln, utan fördröjning.

Ett nytt Automation-konto krypteras alltid med hjälp av Microsoft-hanterade nycklar. Det går inte att aktivera kundhanterade nycklar när kontot skapas. Kundhanterade nycklar lagras i Azure Key Vault och nyckelvalvet måste etableras med åtkomstprinciper som ger nyckelbehörighet till den hanterade identitet som är associerad med Automation-kontot. Den hanterade identiteten är endast tillgänglig när automationskontot har skapats.

När du ändrar nyckeln som används för säker tillgångskryptering i Azure Automation, genom att aktivera eller inaktivera kundhanterade nycklar, uppdatera nyckelversionen eller ange en annan nyckel, ändras krypteringen av kontokrypteringsnyckeln, men de säkra tillgångarna i ditt Azure Automation-konto behöver inte krypteras om.

Kommentar

Om du vill aktivera kundhanterad nyckel med hjälp av AZURE Automation REST API-anrop måste du använda api version 2020-01-13-preview.

Förutsättningar för att använda kundhanterade nycklar i Azure Automation

Innan du aktiverar kundhanterade nycklar för ett Automation-konto måste du se till att följande krav uppfylls:

Generera och tilldela en ny systemtilldelad identitet för ett Automation-konto

Om du vill använda kundhanterade nycklar med ett Automation-konto måste ditt Automation-konto autentisera mot nyckelvalvet som lagrar kundhanterade nycklar. Azure Automation använder systemtilldelade hanterade identiteter för att autentisera kontot med Azure Key Vault. Mer information om hanterade identiteter finns i Vad är hanterade identiteter för Azure-resurser?

Med hjälp av PowerShell

Använd PowerShell-cmdleten Set-AzAutomationAccount för att ändra ett befintligt Azure Automation-konto. Parametern -AssignSystemIdentity genererar och tilldelar en ny systemtilldelad identitet för Automation-kontot som ska användas med andra tjänster som Azure Key Vault. Mer information finns i Vad är hanterade identiteter för Azure-resurser? och Om Azure Key Vault. Kör följande kod:

# Revise variables with your actual values.
$resourceGroup = "ResourceGroupName"
$automationAccount = "AutomationAccountName"
$vaultName = "KeyVaultName"
$keyName = "KeyName"

Set-AzAutomationAccount `
    -ResourceGroupName $resourceGroup `
    -Name $automationAccount `
    -AssignSystemIdentity

Utdata bör se ut ungefär så här:

Utdata från cmdleten Set-AzAutomationAccount.

PrincipalId Hämta för senare användning. Kör följande kod:

$principalID = (Get-AzAutomationAccount `
    -ResourceGroupName $resourceGroup `
    -Name $automationAccount).Identity.PrincipalId

$principalID

Använda REST

Konfigurera en systemtilldelad hanterad identitet till Automation-kontot med hjälp av följande REST API-anrop:

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

Begärandetext:

{ 
 "identity": 
 { 
  "type": "SystemAssigned" 
  } 
}

Systemtilldelad identitet för Automation-kontot returneras i ett svar som liknar följande:

{
 "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"
 },
..
}

Konfiguration av key vault-åtkomstprincipen

När en systemtilldelad hanterad identitet har tilldelats automationskontot konfigurerar du åtkomst till nyckelvalvet som lagrar kundhanterade nycklar. Azure Automation kräver behörigheterna Get, Recover, WrapKey och UnwrapKey för att identiteten ska få åtkomst till de kundhanterade nycklarna.

Med hjälp av PowerShell

Använd PowerShell-cmdleten Set-AzKeyVaultAccessPolicy för att bevilja nödvändiga behörigheter. Använd sedan Add-AzKeyVaultKey för att skapa en nyckel i nyckelvalvet. Kör följande kod:

Set-AzKeyVaultAccessPolicy `
    -VaultName $vaultName `
    -ObjectId $principalID `
    -PermissionsToKeys Get, Recover, UnwrapKey, WrapKey

Add-AzKeyVaultKey `
    -VaultName $vaultName `
    -Name $keyName `
    -Destination 'Software'

Utdata bör se ut ungefär så här:

Utdata från cmdleten Add-AzKeyVaultKey.

Använda REST

Åtkomstprincipen kan anges med hjälp av följande REST API-anrop:

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

Begärandetext:

{
  "properties": {
    "accessPolicies": [
      {
        "tenantId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
        "objectId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
        "permissions": {
          "keys": [
            "get",
            "recover",
            "wrapKey",
            "unwrapKey"
          ],
          "secrets": [],
          "certificates": []
        }
      }
    ]
  }
}

Kommentar

Fälten tenantId och objectId måste anges med värden för identity.tenantId respektive identity.principalId från svaret från den hanterade identiteten för Automation-kontot.

Konfigurera om Automation-kontot för att använda kundhanterad nyckel

Om du vill växla ditt Automation-konto från Microsoft-hanterade nycklar till kundhanterade nycklar kan du utföra den här ändringen med hjälp av Azure PowerShell eller med en Azure Resource Manager-mall.

Med hjälp av PowerShell

Använd PowerShell-cmdleten Set-AzAutomationAccount för att konfigurera om Automation-kontot för att använda kundhanterade nycklar.

$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 

Du kan verifiera ändringen genom att köra följande kommando:

(Get-AzAutomationAccount `
    -ResourceGroupName $resourceGroup `
    -Name $automationAccount).Encryption `
    |  ConvertTo-Json 

Utdata bör se ut ungefär så här:

Utdata från cmdleten Get-AzAutomationAccount.

Använda REST

Använd följande REST API-anrop:

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

Begärandetext:

{
	"identity": {
	"type": "SystemAssigned"
	},
	"properties": {
		"encryption": {
			"keySource": "Microsoft.Keyvault",
			"keyvaultProperties": {
				"keyName": "sample-vault-key",
				"keyvaultUri": "https://sample-vault-key12.vault.azure.net",
				"keyVersion": "7c73556c521340209371eaf623cc099d"
			}
		}
	}
}

Exempelsvar

{
  "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"
    },
    ..
  }
}

Rotation av en kundhanterad nyckel

Du kan rotera en kundhanterad nyckel i Azure Key Vault enligt dina efterlevnadsprinciper. När nyckeln roteras måste du uppdatera Automation-kontot för att använda den nya nyckel-URI:n.

Om du roterar nyckeln utlöses inte omkryptering av säkra tillgångar i Automation-kontot. Det krävs ingen ytterligare åtgärd.

Återkallande av åtkomst till en kundhanterad nyckel

Om du vill återkalla åtkomsten till kundhanterade nycklar använder du PowerShell eller Azure CLI. Mer information finns i Azure Key Vault PowerShell eller Azure Key Vault CLI. Om du återkallar åtkomst blockeras åtkomsten till alla säkra tillgångar i Automation-kontot eftersom krypteringsnyckeln inte är tillgänglig för Azure Automation.

Nästa steg