Share via


Konfigurieren von kundenseitig verwalteten Schlüsseln für eine Azure Elastic SAN-Instanz

Alle Daten, die in ein Elastic SAN-Volume geschrieben werden, werden automatisch mit einem Datenverschlüsselungsschlüssel (DATA Encryption Key, DEK) verschlüsselt. Azure verwendet die Umschlagverschlüsselung, um den Datenverschlüsselungsschlüssel mit einem Schlüssel für die Schlüsselverschlüsselung (Key Encryption Key, KEK) zu verschlüsseln. Standardmäßig wird der Schlüssel für die Schlüsselverschlüsselung plattformseitig (von Microsoft) verwaltet, Sie können jedoch eigene Schlüssel erstellen und verwalten.

In diesem Artikel wird beschrieben, wie Sie die Verschlüsselung einer Elastic SAN-Volumegruppe mit kundenseitig verwalteten Schlüsseln, die in Azure Key Vault gespeichert sind, konfigurieren.

Begrenzungen

Die folgende Liste enthält die Regionen, in denen Elastic SAN derzeit verfügbar ist, und zeigt, in welchen Regionen zonenredundanter Speicher (ZRS) sowie lokal redundanter Speicher (LRS) oder nur LRS unterstützt wird:

  • Südafrika, Norden - LRS
  • Ostasien - LRS
  • Asien, Südosten – LRS
  • Brasilien, Süden - LRS
  • Kanada, Mitte - LRS
  • Frankreich, Mitte – LRS und ZRS
  • Deutschland, Westen-Mitte - LRS
  • Australien, Osten: LRS
  • Europa, Norden – LRS und ZRS
  • Europa, Westen – LRS und ZRS
  • Vereinigtes Königreich, Süden: LRS
  • Japan, Osten - LRS
  • Südkorea, Mitte - LRS
  • USA (Mitte)
  • USA, Osten: LRS
  • USA, Süden-Mitte: LRS
  • USA, Osten 2: LRS
  • USA, Westen 2 – LRS und ZRS
  • USA, Westen 3: LRS
  • Schweden, Mitte: LRS
  • Schweiz, Norden - LRS

Voraussetzungen

Um die in diesem Artikel beschriebenen Vorgänge auszuführen, müssen Sie Ihr Azure-Konto und die Verwaltungstools, die Sie verwenden möchten, vorbereiten. Die Vorbereitung umfasst die Installation der erforderlichen Module, die Anmeldung bei Ihrem Konto und das Festlegen von Variablen für PowerShell und die Azure CLI. Diese Variablen werden im gesamten Artikel verwendet. Wenn Sie sie jetzt festlegen, können Sie in allen Beispielen dieselben Variablen verwenden.

So führen Sie die in diesem Artikel beschriebenen Schritte mit PowerShell aus:

  1. Installieren Sie die aktuelle Version von Azure PowerShell, sofern noch nicht geschehen.

  2. Installieren Sie nach der Installation von Azure PowerShell mit Install-Module -Name Az.ElasticSan -Repository PSGallery mindestens Version 0.1.2 der Elastic SAN-Erweiterung.

  3. Melden Sie sich bei Azure an.

    Connect-AzAccount
    

Erstellen der Variablen für die PowerShell-Beispiele in diesem Artikel

Kopieren Sie den Beispielcode, und ersetzen Sie den Platzhaltertext durch Ihre eigenen Werte. Verwenden Sie die gleichen Variablen in allen Beispielen in diesem Artikel:

# Define some variables
# The name of the resource group where the resources will be deployed.
$RgName          = "ResourceGroupName"

# The name of the Elastic SAN that contains the volume group to be configured.
$EsanName        = "ElasticSanName"

# The name of the Elastic SAN volume group to be configured.
$EsanVgName      = "ElasticSanVolumeGroupName"

# The region where the new resources will be created.
$Location        = "Location"

# The name of the Azure Key Vault that will contain the KEK.
$KvName          = "KeyVaultName"

# The name of the Azure Key Vault key that is the KEK.
$KeyName         = "KeyName"

# The name of the user-assigned managed identity, if applicable.
$ManagedUserName = "ManagedUserName"

Konfigurieren des Schlüsseltresors

Sie können einen neuen oder vorhandenen Schlüsseltresor verwenden, um kundenseitig verwaltete Schlüssel zu speichern. Die verschlüsselte Ressource und der Schlüsseltresor können sich in verschiedenen Regionen oder Abonnements im selben Microsoft Entra ID-Mandanten befinden. Weitere Informationen zu Azure Key Vault finden Sie unter Informationen zu Azure Key Vault und Grundlegende Konzepte von Azure Key Vault.

Bei der Verwendung kundenseitig verwalteter Schlüssel mit Verschlüsselung muss für den Schlüsseltresor sowohl vorläufiges Löschen als auch der Schutz vor endgültigem Löschen (Löschschutz) aktiviert sein. Das vorläufige Löschen ist standardmäßig aktiviert, wenn Sie einen neuen Schlüsseltresor erstellen, und kann nicht deaktiviert werden. Sie können den Löschschutz beim Erstellen des Schlüsseltresors oder später aktivieren. Die Azure Elastic SAN-Verschlüsselung unterstützt RSA-Schlüssel mit einer Größe von 2.048, 3.072 und 4.096 Bit.

Azure Key Vault unterstützt die Autorisierung mit Azure RBAC über ein Azure RBAC-Berechtigungsmodell. Microsoft empfiehlt die Verwendung des Azure RBAC-Berechtigungsmodells gegenüber den Zugriffsrichtlinien für Schlüsseltresore. Weitere Informationen finden Sie unter Gewähren der Berechtigung zum Zugreifen auf einen Azure-Schlüsseltresor für Anwendungen mit Azure RBAC.

Die Vorbereitung eines Schlüsseltresors als Speicher für Ihre Schlüssel für die Schlüsselverschlüsselung (KEKs) für Volumengruppen umfasst zwei Schritte:

  • Erstellen Sie einen neuen Schlüsseltresor mit aktiviertem Schutz vor vorläufigem und endgültigem Löschen, oder aktivieren Sie den Löschschutz für einen vorhandenen Schlüsseltresor.
  • Erstellen Sie eine Azure RBAC-Rolle, oder weisen Sie eine Azure RBAC-Rolle zu, die über die Berechtigungen zum Sichern, Erstellen, Löschen, Abrufen des Imports, Abrufen der Liste, Aktualisieren und Wiederherstellen verfügt.

Im Beispiel unten geschieht Folgendes:

  • Erstellt einen neuen Schlüsseltresor mit aktiviertem Schutz vor vorläufigem und endgültigem Löschen.
  • Ruft den Benutzerprinzipalnamen (User Principal Name, UPN) Ihres Benutzerkontos ab.
  • Weist Ihrem Konto die Rolle „Kryptografiebeauftragter für Schlüsseltresore“ für den neuen Schlüsseltresor zu.

Verwenden Sie die in diesem Artikel zuvor definierten Variablen.

# Setup the parameters to create the key vault.
$NewKvArguments = @{
    Name                    = $KvName
    ResourceGroupName       = $RgName
    Location                = $Location
    EnablePurgeProtection   = $true
    EnableRbacAuthorization = $true
}

# Create the key vault.
$KeyVault = New-AzKeyVault @NewKvArguments

# Get the UPN of the currently loggged in user.
$MyAccountUpn = (Get-AzADUser -SignedIn).UserPrincipalName

# Setup the parameters to create the role assignment.
$CrptoOfficerRoleArguments = @{
    SignInName         = $MyAccountUpn
    RoleDefinitionName = "Key Vault Crypto Officer"
    Scope              = $KeyVault.ResourceId
}

# Assign the Cypto Officer role to your account for the key vault.
New-AzRoleAssignment @CrptoOfficerRoleArguments

Informationen zum Aktivieren des Löschschutzes für einen vorhandenen Schlüsseltresor mit PowerShell finden Sie unter Azure Key Vault-Wiederherstellungsverwaltung mit Schutz durch vorläufiges Löschen und Bereinigungsschutz.

Weitere Informationen zum Zuweisen einer RBAC-Rolle mit PowerShell finden Sie unter Zuweisen von Azure-Rollen mithilfe von Azure PowerShell.

Hinzufügen eines Schlüssels

Als Nächstes fügen Sie im Schlüsseltresor einen Schlüssel hinzu. Bevor Sie den Schlüssel hinzufügen, stellen Sie sicher, dass Sie sich selbst die Rolle Key Vault-Kryptografiebeauftragter zugewiesen haben.

Die Azure Storage- und Elastic SAN-Verschlüsselung unterstützt RSA-Schlüssel mit einer Größe von 2.048, 3.072 und 4.096 Bit. Weitere Informationen zu unterstützten Schlüsseltypen finden Sie unter Informationen zu Schlüsseln.

Verwenden Sie die folgenden Beispielbefehle, um dem Schlüsseltresor mit PowerShell einen Schlüssel hinzuzufügen. Verwenden Sie die in diesem Artikel zuvor definierten Variablen.

# Get the key vault where the key is to be added.
$KeyVault = Get-AzKeyVault -ResourceGroupName $RgName -VaultName $KvName

# Setup the parameters to add the key to the vault.
$NewKeyArguments = @{
    Name        = $KeyName
    VaultName   = $KeyVault.VaultName
    Destination = "Software"
}

# Add the key to the vault.
$Key = Add-AzKeyVaultKey @NewKeyArguments

Auswählen einer Strategie für die Schlüsselrotation

Das Befolgen kryptografischer bewährter Methoden bedeutet, den Schlüssel, der Ihre Elastic SAN-Volumegruppe schützt, in regelmäßigen Abständen (in der Regel mindestens alle zwei Jahre) zu rotieren. Azure Elastic SAN ändert den Schlüssel im Schlüsseltresor nie, Sie können jedoch eine Schlüsselrotationsrichtlinie konfigurieren, um den Schlüssel entsprechend Ihren Complianceanforderungen zu rotieren. Weitere Informationen finden Sie unter Konfigurieren der automatischen Kryptografieschlüsselrotation in Azure Key Vault.

Nachdem der Schlüssel im Schlüsseltresor rotiert wurde, muss die Verschlüsselungskonfiguration für Ihre Elastic SAN-Volumegruppe aktualisiert werden, um die neue Schlüsselversion zu verwenden. Kundenseitig verwaltete Schlüssel unterstützen sowohl die automatische als auch die manuelle Aktualisierung der Version des Schlüssels für die Schlüsselverschlüsselung. Entscheiden Sie, welchen Ansatz Sie verwenden möchten, bevor Sie kundenseitig verwaltete Schlüssel für eine neue oder eine vorhandene Volumegruppe konfigurieren.

Weitere Informationen zur Schlüsselrotation finden Sie unter Aktualisieren der Schlüsselversion.

Wichtig

Wenn Sie den Schlüssel oder die Schlüsselversion ändern, ändert sich der Schutz des Stammdaten-Verschlüsselungsschlüssels, die Daten in Ihrer Azure Elastic SAN-Volumegruppe bleiben jedoch jederzeit verschlüsselt. Es sind keine weiteren Maßnahmen Ihrerseits erforderlich, um den Schutz Ihrer Daten zu gewährleisten. Das Rotieren der Schlüsselversion hat keine Auswirkungen auf die Leistung und führt nicht zu einer Downtime.

Automatische Rotation der Schlüsselversion

Azure Elastic SAN kann den kundenseitig verwalteten Schlüssel, der für die Verschlüsselung verwendet wird, automatisch aktualisieren, um die aktuelle Schlüsselversion aus dem Schlüsseltresor zu verwenden. Elastic SAN überprüft den Schlüsseltresor täglich auf eine neue Version des Schlüssels. Sobald eine neue Version verfügbar ist, wird automatisch die aktuelle Version des Schlüssels für die Verschlüsselung verwendet. Wenn Sie einen Schlüssel drehen, warten Sie 24 Stunden, bevor Sie die ältere Version deaktivieren.

Wichtig

Wenn die Elastic SAN-Volumegruppe für die manuelle Aktualisierung der Schlüsselversion konfiguriert wurde und Sie dies in ein automatisches Update ändern möchten, ändern Sie die Schlüsselversion in eine leere Zeichenfolge. Weitere Informationen zum manuellen Ändern der Schlüsselversion finden Sie unter Automatisches Update der Schlüsselversion.

Manuelle Rotation der Schlüsselversion

Wenn Sie die Schlüsselversion manuell aktualisieren möchten, geben Sie den URI für eine bestimmte Version beim Konfigurieren der Verschlüsselung mit kundenseitig verwalteten Schlüsseln explizit an. Wenn Sie den URI angeben, aktualisiert Elastic SAN die Schlüsselversion nicht automatisch, wenn eine neue Version im Schlüsseltresor erstellt wird. Damit Elastic SAN eine neue Schlüsselversion verwenden kann, müssen Sie sie manuell aktualisieren.

So ermitteln Sie den URI für eine bestimmte Version eines Schlüssels im Azure-Portal:

  1. Navigieren Sie zu Ihrem Schlüsseltresor.
  2. Wählen Sie unter Objekte die Option Schlüssel aus.
  3. Wählen Sie den gewünschten Schlüssel aus, um dessen Versionen anzuzeigen.
  4. Wählen Sie eine Schlüsselversion aus, um die Einstellungen für diese Version anzuzeigen.
  5. Kopieren Sie den Wert im Feld Schlüsselbezeichner, das den URI enthält.
  6. Speichern Sie den kopierten Text, damit Sie ihn später beim Konfigurieren der Verschlüsselung für Ihre Volumegruppe verwenden können.

Screenshot showing key vault key URI in Azure portal.

Auswählen einer verwalteten Identität zum Autorisieren des Zugriffs auf den Schlüsseltresor

Wenn Sie kundenseitig verwaltete Verschlüsselungsschlüssel für eine Elastic SAN-Volumegruppe aktivieren, müssen Sie eine verwaltete Identität angeben, mit der der Zugriff auf den Schlüsseltresor, der den Schlüssel enthält, autorisiert wird. Die verwaltete Identität muss über die folgenden Berechtigungen verfügen:

  • get
  • wrapKey
  • unwrapKey

Bei der verwalteten Identität, die für den Zugriff auf den Schlüsseltresor autorisiert ist, kann es sich um eine benutzerseitig oder eine systemseitig zugewiesene verwaltete Identität handeln. Informationen zu systemseitig zugewiesenen und benutzerseitig zugewiesenen verwalteten Identitäten finden Sie unter Arten von verwalteten Identitäten.

Beim Erstellen einer Volumegruppe wird automatisch eine systemseitig zugewiesene Identität für diese Gruppe erstellt. Wenn Sie eine benutzerseitig zugewiesene Identität verwenden möchten, erstellen Sie diese, bevor Sie kundenseitig verwaltete Verschlüsselungsschlüssel für Ihre Volumegruppe konfigurieren. Informationen zum Erstellen und Verwalten einer benutzerseitig zugewiesenen verwalteten Identität finden Sie unter Benutzerseitig zugewiesene verwaltete Identitäten verwalten.

Verwenden einer benutzerseitig zugewiesenen verwalteten Identität zum Autorisieren des Zugriffs

Wenn Sie kundenseitig verwaltete Schlüssel für eine neue Volumegruppe aktivieren, müssen Sie eine benutzerseitig zugewiesene verwaltete Identität angeben. Eine vorhandene Volumegruppe unterstützt entweder eine benutzerseitig zugewiesene verwaltete Identität oder eine systemseitig zugewiesene verwaltete Identität zur Konfiguration kundenseitig verwalteter Schlüssel.

Wenn Sie kundenseitig verwaltete Schlüssel mit einer benutzerseitig zugewiesenen verwalteten Identität konfigurieren, wird die benutzerseitig zugewiesene verwaltete Identität verwendet, um den Zugriff auf den Schlüsseltresor zu autorisieren, der den Schlüssel enthält. Sie müssen die benutzerseitig zugewiesene Identität erstellen, bevor Sie kundenseitig verwaltete Schlüssel konfigurieren.

Eine benutzerseitig zugewiesene verwaltete Identität ist eine eigenständige Azure-Ressource. Weitere Informationen zu benutzerseitig zugewiesenen verwalteten Identitäten finden Sie unter Arten von verwalteten Identitäten. Informationen zum Erstellen und Verwalten einer benutzerseitig zugewiesenen verwalteten Identität finden Sie unter Benutzerseitig zugewiesene verwaltete Identitäten verwalten.

Die benutzerseitig zugewiesene verwaltete Identität muss über Berechtigungen für den Zugriff auf den Schlüssel in dem Schlüsseltresor verfügen. Sie können entweder manuell Berechtigungen für die Identität erteilen oder eine integrierte Rolle mit Schlüsseltresorbereich zuweisen, um diese Berechtigungen zu erteilen.

Das folgende Beispiel veranschaulicht die Vorgehensweise:

  • Erstellen Sie eine neue benutzerseitig zugewiesene verwaltete Identität.
  • Warten Sie, bis die Erstellung der benutzerseitig zugewiesenen Identität abgeschlossen ist.
  • Rufen Sie die PrincipalId aus der neuen Identität ab.
  • Weisen Sie der neuen Identität eine RBAC-Rolle für den Bereich des Schlüsseltresors zu.

Verwenden Sie die in diesem Artikel zuvor definierten Variablen.

# Create a new user-assigned managed identity.
$UserIdentity = New-AzUserAssignedIdentity -ResourceGroupName $RgName -Name $ManagedUserName -Location $Location

Tipp

Warten Sie etwa eine Minute, bis die benutzerseitig zugewiesene Identität erstellt wurde, bevor Sie fortfahren.

# Get the `PrincipalId` for the new identity.
$PrincipalId = $UserIdentity.PrincipalId

# Setup the parameters to assign the Crypto Service Encryption User role.
$CryptoUserRoleArguments = @{
    ObjectId           = $PrincipalId
    RoleDefinitionName = "Key Vault Crypto Service Encryption User"
    Scope              = $KeyVault.ResourceId
}

# Assign the Crypto Service Encryption User role to the managed identity so it can access the key in the vault.
New-AzRoleAssignment @CryptoUserRoleArguments

Verwenden einer systemseitig zugewiesenen verwalteten Identität zum Autorisieren des Zugriffs

Eine systemseitig zugewiesene verwaltete Identität ist einer Instanz eines Azure-Diensts zugeordnet, z. B. einer Azure Elastic SAN-Volumegruppe.

Die systemseitig zugewiesene verwaltete Identität muss über Berechtigungen für den Zugriff auf den Schlüssel in dem Schlüsseltresor verfügen. In diesem Artikel wird die Rolle Kryptografiedienstverschlüsselung für Schlüsseltresore für die systemseitig zugewiesene verwaltete Identität im Bereich des Schlüsseltresors verwendet, um diese Berechtigungen zu gewähren.

Beim Erstellen einer Volumegruppe wird automatisch eine systemseitig zugewiesene Identität für diese Gruppe erstellt, wenn der Parameter -IdentityType "SystemAssigned" mit dem Befehl New-AzElasticSanVolumeGroup angegeben wird. Die systemseitig zugewiesene Identität ist erst verfügbar, nachdem die Volumegruppe erstellt wurde. Sie müssen der Identität auch eine entsprechende Rolle wie Kryptografiedienstverschlüsselung für Schlüsseltresore zuweisen, bevor diese auf den Verschlüsselungsschlüssel im Schlüsseltresor zugreifen kann. Während der Erstellung einer Volumegruppe können Sie also keine kundenseitig verwalteten Schlüssel zur Verwendung einer systemseitig zugewiesenen verwalteten Identität konfigurieren. Wenn Sie eine neue Volumegruppe mit kundenseitig verwalteten Schlüsseln erstellen, müssen Sie beim Erstellen der Volumegruppe eine benutzerseitig zugewiesene Identität verwenden. Sie können nach der Erstellung eine systemseitig zugewiesene Identität konfigurieren.

Verwenden Sie diesen Beispielcode, um der systemseitig zugewiesenen verwalteten Identität die erforderliche RBAC-Rolle für den Bereich des Schlüsseltresors zuzuweisen. Verwenden Sie die in diesem Artikel zuvor definierten Variablen.

# Get the Elastic SAN volume group.
$ElasticSanVolumeGroup = Get-AzElasticSanVolumeGroup -Name $EsanVgName -ElasticSanName $EsanName -ResourceGroupName $RgName

# Generate a system-assigned identity if one does not already exist.
If ($ElasticSanVolumeGroup.IdentityPrincipalId -eq $null) {
Update-AzElasticSanVolumeGroup -ResourceGroupName $RgName -ElasticSanName $EsanName -Name $EsanVgName -IdentityType "SystemAssigned"}

# Get the `PrincipalId` (system-assigned identity) of the volume group.
$PrincipalId = $ElasticSanVolumeGroup.IdentityPrincipalId

# Setup the parameters to assign the Crypto Service Encryption User role.
$CryptoUserRoleArguments = @{
    ObjectId           = $PrincipalId
    RoleDefinitionName = "Key Vault Crypto Service Encryption User"
    Scope              = $KeyVault.ResourceId
}

# Assign the Crypto Service Encryption User role.
New-AzRoleAssignment @CryptoUserRoleArguments

Konfigurieren von kundenseitig verwalteten Schlüsseln für eine Volumegruppe

Wählen Sie die Registerkarte für das Azure PowerShell-Modul oder die Azure CLI aus, um Anweisungen zum Konfigurieren von kundenseitig verwalteten Verschlüsselungsschlüsseln mithilfe Ihres bevorzugten Verwaltungstools zu erhalten.

Sie haben PowerShell ausgewählt. Wählen Sie nun die Registerkarte zum Konfigurieren der Einstellungen beim Erstellen einer neuen Volumegruppe oder die Registerkarte zum Aktualisieren der Einstellungen für eine vorhandenen Volumegruppe aus.

Verwenden Sie dieses Beispiel, um während der Erstellung einer neuen Volumegruppe mit PowerShell kundenseitig verwaltete Schlüssel mit automatischer Aktualisierung der Schlüsselversion zu konfigurieren:

# Setup the parameters to create the volume group.
$NewVgArguments        = @{
    Name                         = $EsanVgName
    ElasticSanName               = $EsanName
    ResourceGroupName            = $RgName
    ProtocolType                 = "Iscsi"
    Encryption                   = "EncryptionAtRestWithCustomerManagedKey"
    KeyName                      = $KeyName
    KeyVaultUri                  = $KeyVault.VaultUri
    IdentityType                 = "UserAssigned"
    IdentityUserAssignedIdentity = @{$UserIdentity.Id=$UserIdentity}
    EncryptionIdentityEncryptionUserAssignedIdentity = $UserIdentity.Id
}

# Create the volume group.
New-AzElasticSanVolumeGroup @NewVgArguments

Um während der Erstellung einer neuen Volumegruppe mit PowerShell kundenseitig verwaltete Schlüssel mit manueller Aktualisierung der Schlüsselversion zu konfigurieren, fügen Sie wie im folgenden Beispiel gezeigt den KeyVersion-Parameter hinzu:

# Setup the parameters to create the volume group.
$NewVgArguments        = @{
    Name                         = $EsanVgName
    ElasticSanName               = $EsanName
    ResourceGroupName            = $RgName
    ProtocolType                 = "Iscsi"
    Encryption                   = "EncryptionAtRestWithCustomerManagedKey"
    KeyName                      = $KeyName
    KeyVaultUri                  = $KeyVault.VaultUri
    KeyVersion                   = $Key.Version
    IdentityType                 = "UserAssigned"
    IdentityUserAssignedIdentity = @{$UserIdentity.Id=$UserIdentity}
    EncryptionIdentityEncryptionUserAssignedIdentity = $UserIdentity.Id
}

# Create the volume group.
New-AzElasticSanVolumeGroup @NewVgArguments

Nächste Schritte