Berechtigungen und Rollen

In Cloud KMS sind Ressourcen in einer Hierarchie organisiert. Diese Hierarchie unterstützt Sie bei der Verwaltung und dem Zugriff auf Ressourcen mit verschiedenen Granularitätsstufen. Schlüssel sind in Schlüsselbunden und Schlüsselbunde innerhalb eines Projekts enthalten. Projekte können weiter in Ordnern oder Organisationen organisiert sein.

In diesem Thema werden weitere Details zur Ressourcenhierarchie in Cloud KMS beschrieben. Weitere Informationen zu Google Cloud-Ressourcen im Allgemeinen finden Sie unter Ressourcenhierarchie.

Ressourcenhierarchie

Der Bereich einer IAM-Rolle ändert sich je nach Ebene der Ressourcenhierarchie, in der die Rolle gewährt wird. Diese Tabelle zeigt die effektiven Funktionen, die von der Cloud KMS CryptoKey-Verschlüsselerrolle (roles/cloudkms.cryptoKeyEncrypter) auf verschiedenen Hierarchieebenen gewährt werden.

Sie können den Zugriff auf Schlüssel oder Schlüsselbunde verwalten, aber nicht auf einzelne Schlüsselversionen.

Ressourcenhierarchie Rechte
Organisation Mit allen Schlüsseln in allen Projekten der Organisation verschlüsseln
Ordner Mit allen Schlüsseln in allen Projekten im Ordner verschlüsseln
Projekt Mit allen Schlüsseln im Projekt verschlüsseln
Schlüsselbund Mit allen Schlüsseln auf dem Schlüsselbund verschlüsseln
Schlüssel Nur mit diesem Schlüssel verschlüsseln

Sicherheitsgrundsätze

IAM unterstützt die Durchsetzung der Sicherheitsgrundsätze der Aufgabentrennung und der geringsten Berechtigung:

  • Wenn Sie das Prinzip der Aufgabentrennung erzwingen, hat kein einzelnes Mitglied den gesamten Zugriff, der zum Ausführen einer kritischen Geschäftsfunktion erforderlich ist. Zum Beispiel kann ein Bankangestellter nur dann Beträge von einem Konto einziehen, wenn der Kontoinhaber physisch vorhanden ist und die Transaktion initiiert.

  • Wenn Sie das Prinzip der geringsten Berechtigung erzwingen, hat ein Mitglied nur die Mindestzugriffsebene, die erforderlich ist, um die spezifischen Geschäftsfunktionen dieses Mitglieds abzuschließen. So erhält ein Bankangestellter beispielsweise nicht automatisch die Möglichkeit, eine Kundenfinanzierung zu genehmigen.

Vordefinierte Rollen

IAM bietet vordefinierte Rollen für den Zugriff auf jede Art von Google Cloud-Ressourcen. Wenn keine vordefinierte Rolle Ihren Anforderungen entspricht, können Sie eine benutzerdefinierte Rolle erstellen.

IAM bietet für Cloud KMS die folgenden vordefinierten Rollen:

Role Permissions

Cloud KMS Admin
(roles/cloudkms.admin)

Provides full access to Cloud KMS resources, except encrypt and decrypt operations.

Lowest-level resources where you can grant this role:

  • CryptoKey
  • cloudkms.cryptoKeyVersions.create
  • cloudkms.cryptoKeyVersions.destroy
  • cloudkms.cryptoKeyVersions.get
  • cloudkms.cryptoKeyVersions.list
  • cloudkms.cryptoKeyVersions.restore
  • cloudkms.cryptoKeyVersions.update
  • cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
  • cloudkms.cryptoKeyVersions.useToEncryptViaDelegation
  • cloudkms.cryptoKeys.*
  • cloudkms.importJobs.*
  • cloudkms.keyRings.*
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get

Cloud KMS CryptoKey Decrypter
(roles/cloudkms.cryptoKeyDecrypter)

Provides ability to use Cloud KMS resources for decrypt operations only.

Lowest-level resources where you can grant this role:

  • CryptoKey
  • cloudkms.cryptoKeyVersions.useToDecrypt
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get

Cloud KMS CryptoKey Decrypter Via Delegation
(roles/cloudkms.cryptoKeyDecrypterViaDelegation)

Enables Decrypt operations via other GCP services

  • cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Cloud KMS CryptoKey Encrypter
(roles/cloudkms.cryptoKeyEncrypter)

Provides ability to use Cloud KMS resources for encrypt operations only.

Lowest-level resources where you can grant this role:

  • CryptoKey
  • cloudkms.cryptoKeyVersions.useToEncrypt
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get

Cloud KMS CryptoKey Encrypter/Decrypter
(roles/cloudkms.cryptoKeyEncrypterDecrypter)

Provides ability to use Cloud KMS resources for encrypt and decrypt operations only.

Lowest-level resources where you can grant this role:

  • CryptoKey
  • cloudkms.cryptoKeyVersions.useToDecrypt
  • cloudkms.cryptoKeyVersions.useToEncrypt
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get

Cloud KMS CryptoKey Encrypter/Decrypter Via Delegation
(roles/cloudkms.cryptoKeyEncrypterDecrypterViaDelegation)

Enables Encrypt and Decrypt operations via other GCP services

  • cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
  • cloudkms.cryptoKeyVersions.useToEncryptViaDelegation
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Cloud KMS CryptoKey Encrypter Via Delegation
(roles/cloudkms.cryptoKeyEncrypterViaDelegation)

Enables Encrypt operations via other GCP services

  • cloudkms.cryptoKeyVersions.useToEncryptViaDelegation
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Cloud KMS Crypto Operator
(roles/cloudkms.cryptoOperator)

Enables all Crypto Operations.

  • cloudkms.cryptoKeyVersions.useToDecrypt
  • cloudkms.cryptoKeyVersions.useToEncrypt
  • cloudkms.cryptoKeyVersions.useToSign
  • cloudkms.cryptoKeyVersions.useToVerify
  • cloudkms.cryptoKeyVersions.viewPublicKey
  • cloudkms.locations.*
  • resourcemanager.projects.get

Cloud KMS Expert Raw PKCS#1 Key Manager
(roles/cloudkms.expertRawPKCS1)

Enables raw PKCS#1 keys management.

  • cloudkms.cryptoKeyVersions.manageRawPKCS1Keys
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Cloud KMS Importer
(roles/cloudkms.importer)

Enables ImportCryptoKeyVersion, CreateImportJob, ListImportJobs, and GetImportJob operations

  • cloudkms.importJobs.create
  • cloudkms.importJobs.get
  • cloudkms.importJobs.list
  • cloudkms.importJobs.useToImport
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get

Cloud KMS CryptoKey Public Key Viewer
(roles/cloudkms.publicKeyViewer)

Enables GetPublicKey operations

  • cloudkms.cryptoKeyVersions.viewPublicKey
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get

Cloud KMS CryptoKey Signer
(roles/cloudkms.signer)

Enables Sign operations

  • cloudkms.cryptoKeyVersions.useToSign
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get

Cloud KMS CryptoKey Signer/Verifier
(roles/cloudkms.signerVerifier)

Enables Sign, Verify, and GetPublicKey operations

  • cloudkms.cryptoKeyVersions.useToSign
  • cloudkms.cryptoKeyVersions.useToVerify
  • cloudkms.cryptoKeyVersions.viewPublicKey
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get

Cloud KMS CryptoKey Verifier
(roles/cloudkms.verifier)

Enables Verify and GetPublicKey operations

  • cloudkms.cryptoKeyVersions.useToVerify
  • cloudkms.cryptoKeyVersions.viewPublicKey
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get

Cloud KMS Viewer
(roles/cloudkms.viewer)

Enables Get and List operations.

  • cloudkms.cryptoKeyVersions.get
  • cloudkms.cryptoKeyVersions.list
  • cloudkms.cryptoKeys.get
  • cloudkms.cryptoKeys.list
  • cloudkms.importJobs.get
  • cloudkms.importJobs.list
  • cloudkms.keyRings.get
  • cloudkms.keyRings.list
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get

Benutzerdefinierte Rollen

Neben vordefinierten Rollen können Sie benutzerdefinierte Rollen erstellen. Mit benutzerdefinierten Rollen können Sie das Prinzip der geringsten Berechtigung erzwingen und dafür die Mindestberechtigungen erteilen, die zum Ausführen einer bestimmten Aufgabe erforderlich sind.

Eine benutzerdefinierte Rolle enthält eine oder mehrere Berechtigungen, die in der IAM-Referenz aufgeführt sind. Berechtigungen für die Cloud Key Management Service API beginnen mit dem String cloudkms. Weitere Informationen finden Sie unter Supportstufen für Berechtigungen in benutzerdefinierten Rollen.

Informationen zu den Berechtigungen, die zum Aufrufen einer bestimmten Cloud Key Management Service API-Methode erforderlich sind, finden Sie in der API-Referenz dieser Methode.

Allgemeine Richtlinien für die Zugriffsverwaltung in Cloud KMS

Wir empfehlen, einfache projektweite Rollen wie owner, editor und viewer zu vermeiden. Diese Rollen trennen die Möglichkeit zur Verwaltung von Schlüsseln nicht von der Möglichkeit, die Schlüssel für kryptografische Vorgänge zu verwenden. Sie werden für Produktionsumgebungen nicht empfohlen. Verwenden Sie stattdessen vordefinierte Rollen oder erstellen Sie benutzerdefinierte Rollen, die Ihren Geschäftsanforderungen entsprechen.

Die folgenden Beispiele veranschaulichen einige gute Sicherheitsrichtlinien:

  • Bei einer großen oder komplexen Organisation können Sie sich für einen Ansatz wie den folgenden entscheiden:

    • Erteilen Sie Mitgliedern Ihres IT-Sicherheitsteams die Rolle "Cloud KMS-Administrator" (roles/cloudkms.admin) für alle Projekte. Wenn verschiedene Teammitglieder verschiedene Aspekte des Lebenszyklus eines Schlüssels übernehmen, können Sie diesen Teammitgliedern eine detailliertere Rolle zuweisen, z. B. die Rolle Cloud KMS-Importer“ (roles/cloudkms.importer).
    • Gewähren Sie Nutzern oder Anwendungen, die verschlüsselte Daten lesen oder schreiben, die Rolle "Cloud KMS-Verschlüsseler/Entschlüsseler" (roles/cloudkms.cryptoKeyEncrypterDecrypter).
    • Gewähren Sie Nutzern oder Anwendungen, die den öffentlichen Teil eines Schlüssels für die asymmetrische Verschlüsselung benötigen, die Rolle "Cloud KMS Public Key Viewer" (roles/cloudkms.publicKeyViewer).
    • Vordefinierte Rollen erstellen, die den geschäftlichen Anforderungen entsprechen Beispielsweise muss ein Nutzer möglicherweise die Kontingente eines Projekts überwachen und Logdaten aufrufen.
  • Für eine kleine Organisation mit einfachen Sicherheitsanforderungen können Sie einen einfacheren Ansatz verfolgen, indem Sie eine breite Rolle wie Administrator der Organisation (roles/resourcemanager.organizationAdmin) zuweisen. Dieser Ansatz wird möglicherweise nicht mit Ihren laufenden Anforderungen skaliert.

  • Hosten Sie Ihre Schlüssel möglicherweise in einem separaten Google Cloud-Projekt von den Daten, die durch diese Schlüssel geschützt sind. Ein Nutzer mit einer einfachen oder umfangreichen Rolle in einem Projekt, z. B. editor, kann diese Rolle nicht verwenden, um Zugriff auf Schlüssel in einem anderen Projekt zu gewähren.

  • Weisen Sie keinem Mitglied die Rolle owner zu. Ohne die Rolle owner kann kein Mitglied im Projekt sowohl einen Schlüssel erstellen als auch zum Entschlüsseln von Daten oder Signieren verwenden, es sei denn, diesem Mitglied wird jede dieser Berechtigungen erteilt. Wenn Sie einen umfassenden Administratorzugriff gewähren möchten, ohne die Möglichkeit zum Verschlüsseln oder Entschlüsseln zu gewähren, weisen Sie stattdessen die Rolle Cloud KMS-Administrator“ (roles/cloudkms.admin) zu.

  • Um den Zugriff auf verschlüsselte Daten wie Kundendaten zu beschränken, können Sie einschränken, wer auf den Schlüssel zugreifen kann und wer den Schlüssel zur Entschlüsselung verwenden kann. Bei Bedarf können Sie detaillierte benutzerdefinierte Rollen erstellen, die Ihren Geschäftsanforderungen entsprechen.

Berechtigungen prüfen

Für jeden Cloud KMS-Objekttyp, für den Sie detaillierte IAM-Berechtigungen festlegen können, hat dieses Objekt die Methode testIamPermissions. Die Methode testIamPermissions gibt die Berechtigungen zurück, die dem Aufrufer für dieses Objekt erteilt wurden.

Sie können keine IAM-Berechtigungen für eine Schlüsselversion festlegen, sodass der Objekttyp CryptoKeyVersion diese Methode nicht hat.

Die Methode testIamPermissions eines Objekts gibt einen TestIamPermissionsResponse zurück.

Beispiele für den Aufruf von testIamPermissions-Methoden finden Sie in der Dokumentation zum Testen von Berechtigungen in der IAM-Dokumentation.

Nächste Schritte

  • Erfahren Sie, wie IAM die Verwaltung von Berechtigungen und Zugriffsbereichen für Google Cloud-Ressourcen zentralisiert.
  • Informationen zu den verschiedenen Arten von Cloud KMS-Objekten