Konfigurieren von Kunden verwalteter Schlüssel für die Azure Storage-Verschlüsselung mithilfe der Azure CLIConfigure customer-managed keys for Azure Storage encryption from Azure CLI

Azure Storage unterstützt die Verschlüsselung ruhender Daten mit von Microsoft verwalteten Schlüsseln oder vom Kunden verwalteten Schlüsseln.Azure Storage supports encryption at rest with either Microsoft-managed keys or customer-managed keys. Mit von Kunden verwalteten Schlüsseln können Sie Zugriffssteuerungen erstellen, rotieren, deaktivieren und widerrufen.Customer-managed keys enable you to create, rotate, disable, and revoke access controls.

Verwenden Sie den Azure Key Vault, um Ihre Schlüssel zu verwalten und die Schlüsselnutzung zu überwachen.Use Azure Key Vault to manage your keys and audit your key usage. 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.You can either create your own keys and store them in a key vault, or you can use the Azure Key Vault APIs to generate keys. Das Speicherkonto und der Schlüsseltresor müssen sich in derselben Region befinden, dürfen aber zu verschiedenen Abonnements gehören.The storage account and the key vault must be in the same region, but they can be in different subscriptions. Weitere Informationen zum Azure-Schlüsseltresor finden Sie unter Was ist der Azure-Schlüsseltresor?For more information about Azure Key Vault, see What is Azure Key Vault?

In diesem Artikel erfahren Sie, wie Sie einen Schlüsseltresor mit von Kunden verwalteten Schlüsseln mithilfe der Azure CLI konfigurieren.This article shows how to configure a key vault with customer-managed keys using Azure CLI.

Wichtig

Die Azure Storage-Verschlüsselung mit vom Kunden verwalteten Schlüsseln erfordert, dass für den Schlüsseltresor zwei erforderliche Eigenschaften konfiguriert wurden: Vorläufiges Löschen und Nicht Bereinigen.Using customer-managed keys with Azure Storage encryption requires that the key vault have two required properties configured, Soft Delete and Do Not Purge. Diese Eigenschaften sind standardmäßig aktiviert, wenn Sie im Azure-Portal einen neuen Schlüsseltresor erstellen.These properties are enabled by default when you create a new key vault in the Azure portal. Wenn Sie diese Eigenschaften jedoch für einen vorhandenen Schlüsseltresor aktivieren möchten, müssen Sie PowerShell oder die Azure-Befehlszeilenschnittstelle verwenden.However, if you need to enable these properties on an existing key vault, you must use either PowerShell or Azure CLI. Es werden ausschließlich RSA-Schlüssel und die Schlüsselgröße 2048 unterstützt.Only RSA keys and key size 2048 are supported.

Zuweisen einer Identität zum SpeicherkontoAssign an identity to the storage account

Sie müssen zunächst eine systemseitig zugewiesene verwaltete Identität zum Speicherkonto hinzufügen, um von Kunden verwaltete Schlüssel für Ihr Speicherkonto zu aktivieren.To enable customer-managed keys for your storage account, first assign a system-assigned managed identity to the storage account. Sie verwenden diese Identität, um dem Speicherkonto die Zugriffsberechtigungen für den Schlüsseltresor zu gewähren.You'll use this managed identity to grant the storage account permissions to access the key vault.

Rufen Sie az storage account update auf, um eine verwaltete Identität mit der Azure CLI zuzuweisen.To assign a managed identity using Azure CLI, call az storage account update. Denken Sie daran, die Platzhalterwerte in den spitzen Klammern durch Ihre eigenen Werte zu ersetzen.Remember to replace the placeholder values in brackets with your own values.

az account set --subscription <subscription-id>

az storage account update \
    --name <storage-account> \
    --resource-group <resource_group> \
    --assign-identity

Weitere Informationen über die Konfiguration systemseitig zugewiesener verwalteter Identitäten mit der Azure CLI finden Sie unter Konfigurieren von verwalteten Identitäten für Azure-Ressourcen auf einem virtuellen Azure-Computer mithilfe der Azure-Befehlszeilenschnittstelle.For more information about configuring system-assigned managed identities with Azure CLI, see Configure managed identities for Azure resources on an Azure VM using Azure CLI.

Erstellen eines neuen SchlüsseltresorsCreate a new key vault

Für den Schlüsseltresor, den Sie zum Speichern von Kunden verwalteter Schlüssel für die Azure Storage-Verschlüsselung verwenden, müssen zwei wichtige Schutzeinstellungen aktiviert sein: Vorläufiges Löschen und Do Not Purge (Nicht bereinigen).The key vault that you use to store customer-managed keys for Azure Storage encryption must have two key protection settings enabled, Soft Delete and Do Not Purge. Führen Sie die folgenden Befehle aus, um mithilfe von PowerShell oder der Azure CLI einen neuen Schlüsseltresor zu erstellen, für den diese Einstellungen aktiviert sind.To create a new key vault using PowerShell or Azure CLI with these settings enabled, execute the following commands. Denken Sie daran, die Platzhalterwerte in den spitzen Klammern durch Ihre eigenen Werte zu ersetzen.Remember to replace the placeholder values in brackets with your own values.

Rufen Sie az keyvault create auf, um einen neuen Schlüsseltresor mit der Azure CLI zu erstellen.To create a new key vault using Azure CLI, call az keyvault create. Denken Sie daran, die Platzhalterwerte in den spitzen Klammern durch Ihre eigenen Werte zu ersetzen.Remember to replace the placeholder values in brackets with your own values.

az keyvault create \
    --name <key-vault> \
    --resource-group <resource_group> \
    --location <region> \
    --enable-soft-delete \
    --enable-purge-protection

Konfigurieren der Zugriffsrichtlinie für den SchlüsseltresorConfigure the key vault access policy

Konfigurieren Sie als Nächstes die Zugriffsrichtlinie für den Schlüsseltresor, sodass das Speicherkonto über die Berechtigungen für den Zugriff auf diesen verfügt.Next, configure the access policy for the key vault so that the storage account has permissions to access it. In diesem Schritt verwenden Sie die verwaltete Identität, die Sie zuvor dem Speicherkonto zugewiesen haben.In this step, you'll use the managed identity that you previously assigned to the storage account.

Rufen Sie az keyvault set-policy auf, um die Zugriffsrichtlinie für den Schlüsseltresor festzulegen.To set the access policy for the key vault, call az keyvault set-policy. Denken Sie daran, die Platzhalterwerte in den spitzen Klammern durch Ihre eigenen Werte zu ersetzen.Remember to replace the placeholder values in brackets with your own values.

storage_account_principal=$(az storage account show \
    --name <storage-account> \
    --resource-group <resource-group> \
    --query identity.principalId \
    --output tsv)
az keyvault set-policy \
    --name <key-vault> \
    --resource-group <resource_group>
    --object-id $storage_account_principal \
    --key-permissions get recover unwrapKey wrapKey

Erstellen eines neuen SchlüsselsCreate a new key

Als Nächstes erstellen Sie einen Schlüssel im Schlüsseltresor.Next, create a key in the key vault. Rufen Sie hierzu den Befehl az keyvault key create auf.To create a key, call az keyvault key create. Denken Sie daran, die Platzhalterwerte in den spitzen Klammern durch Ihre eigenen Werte zu ersetzen.Remember to replace the placeholder values in brackets with your own values.

az keyvault key create
    --name <key> \
    --vault-name <key-vault>

Konfigurieren der Verschlüsselung mit von Kunden verwalteten SchlüsselnConfigure encryption with customer-managed keys

Die Azure Storage-Verschlüsselung verwendet standardmäßig von Microsoft verwaltete Schlüssel.By default, Azure Storage encryption uses Microsoft-managed keys. Konfigurieren Sie Ihr Azure Storage-Konto für von Kunden verwaltete Schlüssel, und legen Sie fest, dass der Schlüssel dem Speicherkonto zugeordnet ist.Configure your Azure Storage account for customer-managed keys and specify the key to associate with the storage account.

Rufen Sie az storage account update auf, um die Verschlüsselungseinstellungen der Speicherkontos zu aktualisieren.To update the storage account's encryption settings, call az storage account update. In diesem Beispiel werden außerdem der Schlüsseltresor-URI und die Schlüsselversion abgefragt. Beide dieser Werte sind erforderlich, um den Schlüssel dem Speicherkonto zuzuordnen.This example also queries for the key vault URI and key version, both of which values are needed to associate the key with the storage account. Denken Sie daran, die Platzhalterwerte in den spitzen Klammern durch Ihre eigenen Werte zu ersetzen.Remember to replace the placeholder values in brackets with your own values.

key_vault_uri=$(az keyvault show \
    --name <key-vault> \
    --resource-group <resource_group> \
    --query properties.vaultUri \
    --output tsv)
key_version=$(az keyvault key list-versions \
    --name <key> \
    --vault-name <key-vault> \
    --query [].kid \
    --output tsv | cut -d '/' -f 6)
az storage account update 
    --name <storage-account> \
    --resource-group <resource_group> \
    --encryption-key-name <key> \
    --encryption-key-version $key_version \
    --encryption-key-source Microsoft.Keyvault \
    --encryption-key-vault $key_vault_uri

Aktualisieren der SchlüsselversionUpdate the key version

Wenn Sie eine neue Version eines Schlüssels erstellen, müssen Sie das Speicherkonto aktualisieren, damit dieses die neue Version nutzt.When you create a new version of a key, you'll need to update the storage account to use the new version. Rufen Sie zunächst az keyvault show zum Abfragen des Schlüsseltresor-URIs und az keyvault key list-versions zum Abfragen der Schlüsselversion auf.First, query for the key vault URI by calling az keyvault show, and for the key version by calling az keyvault key list-versions. Rufen Sie dann az storage account update auf, um die Verschlüsselungseinstellungen des Speicherkontos zu aktualisieren, damit wie im vorherigen Abschnitt gezeigt die neue Version des Schlüssels verwendet wird.Then call az storage account update to update the storage account's encryption settings to use the new version of the key, as shown in the previous section.

Nächste SchritteNext steps