Rollenverwaltung für verwaltetes HSM

Hinweis

Von Key Vault werden zwei Arten von Ressourcen unterstützt: Tresore und verwaltete HSMs. In diesem Artikel werden verwaltete HSMs behandelt. Informationen zum Verwalten eines Tresors finden Sie unter Verwalten von Key Vault mit der Azure CLI.

Eine Übersicht über verwaltete HSMs finden Sie unter Was ist verwaltetes HSM von Azure Key Vault? (Vorschauversion). Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

In diesem Artikel erfahren Sie, wie Sie Rollen für die Datenebene eines verwalteten HSM verwalten. Weitere Informationen zum Zugriffssteuerungsmodell für verwaltete HSMs finden Sie unter Zugriffssteuerung für verwaltetes HSM.

Damit ein Sicherheitsprinzipal (beispielsweise ein Benutzer, ein Dienstprinzipal, eine Gruppe oder eine verwaltete Identität) Vorgänge auf der Datenebene eines verwalteten HSM ausführen kann, muss ihm eine Rolle zugewiesen werden, die die Ausführung dieser Vorgänge ermöglicht. Wenn Sie also beispielsweise einer Anwendung das Ausführen eines Signierungsvorgangs mit einem Schlüssel erlauben möchten, muss ihr eine Rolle zugewiesen werden, die „Microsoft.KeyVault/managedHSM/keys/sign/action“ als eine der Datenaktionen enthält. Eine Rolle kann in einem bestimmten Bereich zugewiesen werden. Die lokale RBAC für verwaltete HSMs unterstützt zwei Bereiche: HSM-weit (/ oder /keys) und schlüsselspezifisch (/keys/<keyname>).

Eine Liste mit allen integrierten Rollen für verwaltete HSMs sowie mit den zulässigen Vorgängen finden Sie unter Integrierte Rollen der lokalen RBAC für verwaltete HSMs.

Voraussetzungen

Für die Verwendung der Azure CLI-Befehle in diesem Artikel benötigen Sie Folgendes:

Azure Cloud Shell

Azure hostet Azure Cloud Shell, eine interaktive Shell-Umgebung, die Sie über Ihren Browser nutzen können. Sie können entweder Bash oder PowerShell mit Cloud Shell verwenden, um mit Azure-Diensten zu arbeiten. Sie können die vorinstallierten Befehle von Cloud Shell verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.

Starten von Azure Cloud Shell:

Option Beispiel/Link
Wählen Sie rechts oben in einem Code- oder Befehlsblock die Option Ausprobieren aus. Durch die Auswahl von Ausprobieren wird der Code oder Befehl nicht automatisch in Cloud Shell kopiert. Screenshot: Beispiel von „Jetzt testen“ für Azure Cloud Shell.
Rufen Sie https://shell.azure.com auf, oder klicken Sie auf die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen. Schaltfläche zum Starten von Azure Cloud Shell.
Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus. Screenshot: Schaltfläche „Cloud Shell“ im Azure-Portal

So verwenden Sie Azure Cloud Shell:

  1. Starten Sie Cloud Shell.

  2. Wählen Sie die Schaltfläche Kopieren für einen Codeblock (oder Befehlsblock) aus, um den Code oder Befehl zu kopieren.

  3. Fügen Sie den Code oder Befehl mit STRG+UMSCHALT+V unter Windows und Linux oder CMD+UMSCHALT+V unter macOS in die Cloud Shell-Sitzung ein.

  4. Drücken Sie die EINGABETASTE, um den Code oder Befehl auszuführen.

Anmelden bei Azure

Geben Sie Folgendes ein, um sich über die Befehlszeilenschnittstelle bei Azure anzumelden:

az login

Weitere Informationen zu den Anmeldeoptionen für die Befehlszeilenschnittstelle finden Sie unter Anmelden mit der Azure CLI.

Erstellen einer neuen Rollenzuweisung

Zuweisen von Rollen für alle Schlüssel

Verwenden Sie den Befehl az keyvault role assignment create, um dem durch den Benutzerprinzipalnamen user2@contoso.com identifizierten Benutzer die Rolle Kryptografiebenutzer für verwaltete HSMs für alle Schlüssel (Bereich /keys) in „ContosoHSM“ zuzuweisen.

az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com  --scope /keys

Zuweisen einer Rolle für einen bestimmten Schlüssel

Verwenden Sie den Befehl az keyvault role assignment create, um dem durch den Benutzerprinzipalnamen user2@contoso.com identifizierten Benutzer die Rolle Kryptografiebenutzer für verwaltete HSMs für einen bestimmten Schlüssel namens myrsakey zuzuweisen.

az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com  --scope /keys/myrsakey

Auflisten der vorhandenen Rollenzuweisungen

Verwenden Sie az keyvault role assignment list, um Rollenzuweisungen aufzulisten.

Alle Rollenzuweisungen im Bereich „/“ (Standard ohne Angabe von „--scope“) für alle Benutzer (Standard ohne Angabe von „--assignee“):

az keyvault role assignment list --hsm-name ContosoMHSM

Alle Rollenzuweisungen auf der HSM-Ebene für einen bestimmten Benutzer ( user1@contoso.com ):

az keyvault role assignment list --hsm-name ContosoMHSM --assignee user@contoso.com

Hinweis

Wird für Bereich „/“ (oder „/keys“) festgelegt, werden mit dem Auflistungsbefehl nur alle Rollenzuweisungen auf der obersten Ebene aufgeführt, aber keine Rollenzuweisungen auf der Ebene einzelner Schlüssel.

Alle Rollenzuweisungen für eine*n bestimmte*n Benutzer*in (user2@contoso.com) und einen bestimmten Schlüssel (myrsakey).

az keyvault role assignment list --hsm-name ContosoMHSM --assignee user2@contoso.com --scope /keys/myrsakey

Eine bestimmte Rollenzuweisung für die Rolle Managed HSM Crypto Officer (Kryptoverantwortlicher für verwaltete HSMs), einen bestimmten Benutzer ( user2@contoso.com ) und einen bestimmten Schlüssel (myrsakey):

az keyvault role assignment list --hsm-name ContosoMHSM --assignee user2@contoso.com --scope /keys/myrsakey --role "Managed HSM Crypto Officer"

Löschen einer Rollenzuweisung

Verwenden Sie den Befehl az keyvault role assignment delete, um die Rolle Managed HSM Crypto Officer (Kryptoverantwortlicher für verwaltete HSMs) zu löschen, die dem/der Benutzer*in user2@contoso.com für den Schlüssel myrsakey2 zugewiesen ist:

az keyvault role assignment delete --hsm-name ContosoMHSM --role "Managed HSM Crypto Officer" --assignee user2@contoso.com  --scope /keys/myrsakey2

Auflisten aller verfügbaren Rollendefinitionen

Verwenden Sie den Befehl az keyvault role definition list, um alle Rollendefinitionen aufzulisten:

az keyvault role definition list --hsm-name ContosoMHSM

Erstellen einer neuen Rollendefinition

Verwaltetes HSM verfügt über mehrere integrierte (vordefinierte) Rollen, die für die gängigsten Verwendungsszenarien nützlich sind. Sie können eine eigene Rolle mit einer Liste spezifischer Aktionen definieren, die die Rolle ausführen darf. Anschließend können Sie diese Rolle Prinzipalen zuweisen, um Ihnen die Berechtigungen für die angegebenen Aktionen zu erteilen.

Führen Sie unter Verwendung einer JSON-Zeichenfolge den Befehl az keyvault role definition create für eine Rolle namens My Custom Role aus.

az keyvault role definition create --hsm-name ContosoMHSM --role-definition '{
    "roleName": "My Custom Role",
    "description": "The description of the custom rule.",
    "actions": [],
    "notActions": [],
    "dataActions": [
        "Microsoft.KeyVault/managedHsm/keys/read/action"
    ],
    "notDataActions": []
}'

Verwenden Sie den Befehl az keyvault role definition create für eine Rolle aus einer Datei mit dem Namen my-custom-role-definition.json, die die JSON-Zeichenfolge für eine Rollendefinition enthält. Siehe Beispiel oben.

az keyvault role definition create --hsm-name ContosoMHSM --role-definition @my-custom-role-definition.json

Anzeigen der Details einer Rollendefinition

Verwenden Sie den Befehl az keyvault role definition show, um mithilfe des Namens (GUID) Details zu einer bestimmten Rollendefinition anzuzeigen.

az keyvault role definition show --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Aktualisieren einer benutzerdefinierten Rollendefinition

Verwenden Sie den Befehl az keyvault role definition update, um mithilfe einer JSON-Zeichenfolge eine Rolle namens My Custom Role zu aktualisieren.

az keyvault role definition create --hsm-name ContosoMHSM --role-definition '{
            "roleName": "My Custom Role",
            "name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-
        xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "description": "The description of the custom rule.",
            "actions": [],
            "notActions": [],
            "dataActions": [
                "Microsoft.KeyVault/managedHsm/keys/read/action",
                "Microsoft.KeyVault/managedHsm/keys/write/action",
                "Microsoft.KeyVault/managedHsm/keys/backup/action",
                "Microsoft.KeyVault/managedHsm/keys/create"
            ],
            "notDataActions": []
        }'

Löschen von benutzerdefinierten Rollendefinition

Verwenden Sie den Befehl az keyvault role definition delete, um mithilfe des Namens (GUID) Details zu einer bestimmten Rollendefinition anzuzeigen.

az keyvault role definition delete --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Hinweis

Integrierte Rollen können nicht gelöscht werden. Wenn benutzerdefinierte Rollen gelöscht werden, werden alle Rollenzuweisungen, die diese benutzerdefinierte Rolle verwenden, außer Kraft gesetzt.

Nächste Schritte