Verschlüsselung sicherer Ressourcen in Azure Automation

Azure Automation schützt Ressourcen wie Anmeldeinformationen, Zertifikate und Verbindungen, und verschlüsselte Variablen weisen verschiedene Verschlüsselungsebenen auf. Dadurch wird die Sicherheit dieser Ressourcen verbessert. Darüber hinaus werden auch Runbooks und DSC-Skripts verschlüsselt, um eine höhere Sicherheit und höheren Datenschutz für Code, Runbooks und DSC-Skripts der Kundschaft zu gewährleisten. Die Verschlüsselung in Azure Automation folgt zwei Modellen, je nach dem verwendeten Schlüssel der obersten Ebene für die Verschlüsselung:

  • Verwendung der von Microsoft verwalteten Schlüssel
  • Verwenden von Schlüsseln, die Sie verwalten

Von Microsoft verwaltete Schlüssel

Standardmäßig verwendet Ihr Azure Automation-Konto von Microsoft verwaltete Schlüssel.

Jede sichere Ressource wird in Azure Automation mit einem eindeutigen Schlüssel (Datenverschlüsselungsschlüssel), der für jedes Automation-Konto generiert wird, verschlüsselt und gespeichert. Diese Schlüssel selbst werden mithilfe eines anderen eindeutigen Schlüssels, der für jedes Konto generiert wird, verschlüsselt und in Azure Automation gespeichert. Dieser Schlüssel wird als Kontoverschlüsselungsschlüssel (Account Encryption Key, AEK) bezeichnet. Diese Kontoverschlüsselungsschlüssel werden mithilfe von von Microsoft verwalteten Schlüsseln in Azure Automation verschlüsselt und gespeichert.

Schlüssel, die Sie mit Key Vault verwalten

Sie können die Verschlüsselung sicherer Ressourcen für Ihr Automation-Konto mit Ihren eigenen Schlüsseln verwalten. Wenn Sie einen kundenseitig verwalteten Schlüssel auf der Ebene des Automation-Kontos angeben, wird dieser Schlüssel zum Schutz und zur Kontrolle des Zugriffs auf den Kontoverschlüsselungsschlüssel für das Automation-Konto verwendet. Dieser wiederum wird zum Ver- und Entschlüsseln aller sicheren Ressourcen verwendet. Vom Kunden verwaltete Schlüssel bieten größere Flexibilität beim Erstellen, Rotieren, Deaktivieren und Widerrufen von Zugriffssteuerungen. Sie können auch die zum Schutz Ihrer sicheren Ressourcen verwendeten Verschlüsselungsschlüssel überwachen.

Verwenden Sie Azure Key Vault, um kundenseitig verwaltete Schlüssel zu speichern. Sie können entweder Ihre eigenen Schlüssel erstellen und in einem Schlüsseltresor speichern oder mit den Azure Key Vault-APIs Schlüssel generieren.

Das Aktivieren der Azure Firewall für Azure Key Vault blockiert den Zugriff von Azure Automation-Runbooks für diesen Dienst. Der Zugriff wird auch dann blockiert, wenn die Firewallausnahme zum Zulassen vertrauenswürdiger Microsoft-Dienste aktiviert ist, da Automation nicht zur Liste der vertrauenswürdigen Dienste gehört. Bei aktivierter Firewall kann der Zugriff nur mithilfe eines Hybrid Runbook Workers und eines VNT-Dienstendpunkts erfolgen. Wenn Sie jedoch die private Verbindung für Key Vault aktivieren, verliert Azure Automation den Zugriff auf den Key Vault. Selbst wenn Sie eine private Verbindung für den Hybrid Runbook Worker aktivieren, wird der Zugriff nur auf den Azure Automation-Dienst gewährt, nicht auf den Key Vault.

Weitere Informationen zum Azure-Schlüsseltresor finden Sie unter Was ist der Azure-Schlüsseltresor?

Verwenden von kundenseitig verwalteten Schlüsseln für ein Automation-Konto

Wenn Sie die Verschlüsselung mit kundenseitig verwalteten Schlüsseln für ein Automation-Konto verwenden, wird der Kontoverschlüsselungsschlüssel von Azure Automation mit dem kundenseitig verwalteten Schlüssel im zugeordneten Schlüsseltresor umschlossen. Das Aktivieren von kundenseitig verwalteten Schlüsseln wirkt sich nicht auf die Leistung aus. Das Konto wird ohne Verzögerung sofort mit dem neuen Schlüssel verschlüsselt.

Ein neues Automation-Konto wird immer mit von Microsoft verwalteten Schlüsseln verschlüsselt. Es ist nicht möglich, zum Zeitpunkt der Kontoerstellung vom Kunden verwaltete Schlüssel zu aktivieren. Kundenseitig verwaltete Schlüssel werden in Azure Key Vault gespeichert. Für den Schlüsseltresor müssen Zugriffsrichtlinien bereitgestellt werden, mit denen Schlüsselberechtigungen für die verwaltete Identität erteilt werden, die dem Automation-Konto zugeordnet ist. Die verwaltete Identität ist erst verfügbar, nachdem das Automatisierungskonto erstellt wurde.

Wenn Sie den für die Verschlüsselung sicherer Azure Automation-Ressourcen verwendeten Schlüssel ändern, indem Sie kundenseitig verwaltete Schlüssel aktivieren oder deaktivieren, die Schlüsselversion aktualisieren oder einen anderen Schlüssel angeben, wird die Verschlüsselung des Kontoverschlüsselungsschlüssels zwar geändert, aber die sicheren Ressourcen in Ihrem Azure Automation-Konto müssen nicht erneut verschlüsselt werden.

Hinweis

Um kundenseitig verwaltete Schlüssel mithilfe von Azure Automation REST-API-Aufrufen zu aktivieren, müssen Sie die API-Version 2020-01-13-preview verwenden.

Voraussetzungen für die Verwendung kundenseitig verwalteter Schlüssel in Azure Automation

Vor dem Aktivieren kundenseitig verwalteter Schlüssel für ein Automation-Konto müssen Sie sicherstellen, dass die folgenden Voraussetzungen erfüllt sind:

Generieren und Zuweisen einer neuen systemseitig zugewiesenen Identität für ein Automation-Konto

Wenn Sie kundenseitig verwaltete Schlüssel mit einem Automation-Konto verwenden möchten, muss sich Ihr Automation-Konto bei dem Schlüsseltresor authentifizieren, der kundenseitig verwaltete Schlüssel speichert. Azure Automation verwendet systemseitig zugewiesene verwaltete Identitäten, um das Konto bei Azure Key Vault zu authentifizieren. Weitere Informationen zu verwalteten Identitäten finden Sie unter Was sind verwaltete Identitäten für Azure-Ressourcen?.

Mithilfe von PowerShell

Verwenden Sie das PowerShell-Cmdlet Set-AzAutomationAccount, um ein vorhandenes Azure Automation-Konto zu ändern. Der Parameter -AssignSystemIdentity generiert eine neue systemseitig zugewiesene Identität für das Automation-Konto und weist diese zu, um sie mit anderen Diensten wie Azure Key Vault zu verwenden. Weitere Informationen finden Sie unter Was sind verwaltete Identitäten für Azure-Ressourcen? und Informationen zu Azure Key Vault. Führen Sie den folgenden Code aus:

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

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

Die Ausgabe sollte in etwa wie folgt aussehen:

Output from Set-AzAutomationAccount cmdlet.

Ermitteln Sie die PrincipalId zur späteren Verwendung. Führen Sie den folgenden Code aus:

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

$principalID

Verwenden von REST

Konfigurieren einer systemseitig zugewiesenen verwalteten Identität mit dem folgenden REST-API-Aufruf für das Automation-Konto:

PATCH https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name?api-version=2020-01-13-preview

Anforderungstext:

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

Die systemseitig zugewiesene Identität für das Automation-Konto wird in einer Antwort ähnlich der folgenden zurückgegeben:

{
 "name": "automation-account-name",
 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/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 der Key Vault-Zugriffsrichtlinie

Nachdem dem Automation-Konto eine systemseitig zugewiesene verwaltete Identität zugewiesen wurde, konfigurieren Sie den Zugriff auf den Schlüsseltresor, in dem kundenseitig verwaltete Schlüssel gespeichert sind. Azure Automation erfordert, dass die Identität über die Vorgangsberechtigungen Get, Recover, WrapKey und UnwrapKey verfügt, um auf die kundenseitig verwalteten Schlüssel zuzugreifen.

Mithilfe von PowerShell

Verwenden Sie das PowerShell-Cmdlet Set-AzKeyVaultAccessPolicy, um die erforderlichen Berechtigungen zu erteilen. Verwenden Sie dann das Cmdlet Add-AzKeyVaultKey, um einen Schlüssel im Schlüsseltresor zu erstellen. Führen Sie den folgenden Code aus:

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

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

Die Ausgabe sollte in etwa wie folgt aussehen:

Output from Add-AzKeyVaultKey cmdlet.

Verwenden von REST

Die Zugriffsrichtlinie kann mit dem folgenden REST-API-Aufruf festgelegt werden:

PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/accessPolicies/add?api-version=2018-02-14

Anforderungstext:

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

Hinweis

Für die Felder tenantId und objectId müssen die Werte von identity.tenantId und identity.principalId aus der Antwort der verwalteten Identität für das Automation-Konto bereitgestellt werden.

Neukonfigurieren des Automation-Kontos für die Verwendung von kundenseitig verwalteten Schlüsseln

Wenn Sie Ihr Automation-Konto von von Microsoft verwalteten Schlüsseln auf kundenseitig verwaltete Schlüssel umstellen möchten, können Sie diese Änderung mittels Azure PowerShell oder mit einer Azure Resource Manager-Vorlage vornehmen.

Mithilfe von PowerShell

Verwenden Sie das PowerShell-Cmdlet Set-AzAutomationAccount, um das Automation-Konto so neu zu konfigurieren, dass es kundenseitig verwaltete Schlüssel verwendet.

$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 

Sie können die Änderung verifizieren, indem Sie den folgenden Befehl ausführen:

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

Die Ausgabe sollte in etwa wie folgt aussehen:

Output from Get-AzAutomationAccount cmdlet.

Verwenden von REST

Verwenden Sie den folgenden REST-API-Aufruf:

PATCH https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name?api-version=2020-01-13-preview

Anforderungstext:

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

Beispiel für eine Antwort

{
  "name": "automation-account-name",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/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 eines kundenseitig verwalteten Schlüssels

Sie können einen vom Kunden verwalteten Schlüssel in Azure Key Vault entsprechend Ihren Konformitätsrichtlinien rotieren. Wenn der Schlüssel rotiert wurde, müssen Sie das Automation-Konto aktualisieren, damit der neue Schlüssel-URI verwendet wird.

Durch Rotieren des Schlüssels wird keine Neuverschlüsselung sicherer Ressourcen im Automation-Konto ausgelöst. Es ist keine weitere Aktion erforderlich.

Widerrufen des Zugriffs auf einen kundenseitig verwalteten Schlüssel

Zum Widerrufen des Zugriffs auf von Kunden verwaltete Schlüssel können Sie PowerShell oder die Azure-Befehlszeilenschnittstelle verwenden. Weitere Informationen finden Sie unter Azure Key Vault – PowerShell oder Azure Key Vault – CLI. Durch das Widerrufen des Zugriffs wird der Zugriff auf alle sicheren Ressourcen im Automation-Konto wirksam blockiert, da Azure Automation keinen Zugriff mehr auf den Verschlüsselungsschlüssel hat.

Nächste Schritte