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

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 von PowerShell konfigurieren.This article shows how to configure a key vault with customer-managed keys using PowerShell.

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 für das Zuweisen einer verwalteten Identität mithilfe von PowerShell Set-AzStorageAccount auf.To assign a managed identity using PowerShell, call Set-AzStorageAccount. 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.

$storageAccount = Set-AzStorageAccount -ResourceGroupName <resource_group> `
    -Name <storage-account> `
    -AssignIdentity

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

Erstellen eines neuen SchlüsseltresorsCreate a new key vault

Rufen Sie zum Erstellen eines neuen Schlüsseltresors mit PowerShell New-AzKeyVault auf.To create a new key vault using PowerShell, call New-AzKeyVault. 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.

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.

$keyVault = New-AzKeyVault -Name <key-vault> `
    -ResourceGroupName <resource_group> `
    -Location <location> `
    -EnableSoftDelete `
    -EnablePurgeProtection

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 zum Festlegen der Zugriffsrichtlinie für den Schlüsseltresor Set-AzKeyVaultAccessPolicy auf.To set the access policy for the key vault, call Set-AzKeyVaultAccessPolicy. Denken Sie daran, die Platzhalterwerte in Klammern durch Ihre eigenen Werte zu ersetzen und die in den vorherigen Beispielen definierten Variablen zu verwenden.Remember to replace the placeholder values in brackets with your own values and to use the variables defined in the previous examples.

Set-AzKeyVaultAccessPolicy `
    -VaultName $keyVault.VaultName `
    -ObjectId $storageAccount.Identity.PrincipalId `
    -PermissionsToKeys wrapkey,unwrapkey,get,recover

Erstellen eines neuen SchlüsselsCreate a new key

Als Nächstes erstellen Sie einen Schlüssel im Schlüsseltresor.Next, create a new key in the key vault. Rufen Sie zum Erstellen eines neuen Schlüssels Add-AzKeyVaultKey auf.To create a new key, call Add-AzKeyVaultKey. Denken Sie daran, die Platzhalterwerte in Klammern durch Ihre eigenen Werte zu ersetzen und die in den vorherigen Beispielen definierten Variablen zu verwenden.Remember to replace the placeholder values in brackets with your own values and to use the variables defined in the previous examples.

$key = Add-AzKeyVaultKey -VaultName $keyVault.VaultName -Name <key> -Destination 'Software'

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. In diesem Schritt konfigurieren Sie Ihr Azure Storage-Konto für von Kunden verwaltete Schlüssel und legen den Schlüssel fest, der dem Speicherkonto zugeordnet werden soll.In this step, configure your Azure Storage account to use customer-managed keys and specify the key to associate with the storage account.

Rufen Sie Set-AzStorageAccount auf, um die Verschlüsselungseinstellungen des Speicherkontos zu aktualisieren.Call Set-AzStorageAccount to update the storage account's encryption settings. Denken Sie daran, die Platzhalterwerte in Klammern durch Ihre eigenen Werte zu ersetzen und die in den vorherigen Beispielen definierten Variablen zu verwenden.Remember to replace the placeholder values in brackets with your own values and to use the variables defined in the previous examples.

Set-AzStorageAccount -ResourceGroupName $storageAccount.ResourceGroupName `
    -AccountName $storageAccount.StorageAccountName `
    -KeyvaultEncryption `
    -KeyName $key.Name `
    -KeyVersion $key.Version `
    -KeyVaultUri $keyVault.VaultUri

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 Get-AzKeyVaultKey auf, um die neueste Version des Schlüssels abzurufen.First, call Get-AzKeyVaultKey to get the latest version of the key. Rufen Sie dann Set-AzStorageAccount 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 Set-AzStorageAccount 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