Berechtigungen und Rollen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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. EKM-Verbindungen sind auch innerhalb eines Projekts vorhanden. Projekte können weiter in Ordnern oder Organisationen organisiert werden.

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:

Rolle Berechtigungen

(roles/cloudkms.admin)

Vollzugriff auf Cloud KMS-Ressourcen mit Ausnahme von Verschlüsselungs- und Entschlüsselungsvorgängen

Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:

  • CryptoKey

Enthält 10 Inhaberberechtigungen

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.cryptoKeys.create
  • cloudkms.cryptoKeys.get
  • cloudkms.cryptoKeys.getIamPolicy
  • cloudkms.cryptoKeys.list
  • cloudkms.cryptoKeys.setIamPolicy
  • cloudkms.cryptoKeys.update

cloudkms.ekmConnections.*

  • cloudkms.ekmConnections.create
  • cloudkms.ekmConnections.get
  • cloudkms.ekmConnections.getIamPolicy
  • cloudkms.ekmConnections.list
  • cloudkms.ekmConnections.setIamPolicy
  • cloudkms.ekmConnections.update
  • cloudkms.ekmConnections.use

cloudkms.importJobs.*

  • cloudkms.importJobs.create
  • cloudkms.importJobs.get
  • cloudkms.importJobs.getIamPolicy
  • cloudkms.importJobs.list
  • cloudkms.importJobs.setIamPolicy
  • cloudkms.importJobs.useToImport

cloudkms.keyRings.*

  • cloudkms.keyRings.create
  • cloudkms.keyRings.createTagBinding
  • cloudkms.keyRings.deleteTagBinding
  • cloudkms.keyRings.get
  • cloudkms.keyRings.getIamPolicy
  • cloudkms.keyRings.list
  • cloudkms.keyRings.listEffectiveTags
  • cloudkms.keyRings.listTagBindings
  • cloudkms.keyRings.setIamPolicy

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

(roles/cloudkms.cryptoKeyDecrypter)

Bietet die Möglichkeit, Cloud KMS-Ressourcen nur zum Entschlüsseln zu verwenden.

Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:

  • CryptoKey

Enthält 1 Inhaberberechtigung

cloudkms.cryptoKeyVersions.useToDecrypt

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

(roles/cloudkms.cryptoKeyDecrypterViaDelegation)

Ermöglicht Entschlüsselungsvorgänge über andere GCP-Dienste

Enthält 1 Inhaberberechtigung

cloudkms.cryptoKeyVersions.useToDecryptViaDelegation

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/cloudkms.cryptoKeyEncrypter)

Bietet die Möglichkeit, Cloud KMS-Ressourcen nur zum Verschlüsseln zu verwenden.

Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:

  • CryptoKey

Enthält 1 Inhaberberechtigung

cloudkms.cryptoKeyVersions.useToEncrypt

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

(roles/cloudkms.cryptoKeyEncrypterDecrypter)

Bietet die Möglichkeit, Cloud KMS-Ressourcen nur zum Verschlüsseln und Entschlüsseln zu verwenden.

Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:

  • CryptoKey

Enthält 2 Inhaberberechtigungen

cloudkms.cryptoKeyVersions.useToDecrypt

cloudkms.cryptoKeyVersions.useToEncrypt

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

(roles/cloudkms.cryptoKeyEncrypterDecrypterViaDelegation)

Ermöglicht Verschlüsselungs- und Entschlüsselungsvorgänge über andere GCP-Dienste

Enthält 2 Inhaberberechtigungen

cloudkms.cryptoKeyVersions.useToDecryptViaDelegation

cloudkms.cryptoKeyVersions.useToEncryptViaDelegation

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/cloudkms.cryptoKeyEncrypterViaDelegation)

Ermöglicht Verschlüsselungsvorgänge über andere GCP-Dienste

Enthält 1 Inhaberberechtigung

cloudkms.cryptoKeyVersions.useToEncryptViaDelegation

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/cloudkms.cryptoOperator)

Aktiviert alle kryptografischen Vorgänge.

Enthält 5 Inhaberberechtigungen

cloudkms.cryptoKeyVersions.useToDecrypt

cloudkms.cryptoKeyVersions.useToEncrypt

cloudkms.cryptoKeyVersions.useToSign

cloudkms.cryptoKeyVersions.useToVerify

cloudkms.cryptoKeyVersions.viewPublicKey

cloudkms.locations.*

  • cloudkms.locations.generateRandomBytes
  • cloudkms.locations.get
  • cloudkms.locations.list

resourcemanager.projects.get

(roles/cloudkms.expertRawPKCS1)

Ermöglicht die Verwaltung von unbearbeiteten PKCS#1-Schlüsseln.

Enthält 1 Inhaberberechtigung

cloudkms.cryptoKeyVersions.manageRawPKCS1Keys

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/cloudkms.importer)

Kann folgende Vorgänge ausführen: ImportCryptoKeyVersion, CreateImportJob, ListImportJobs und GetImportJob

cloudkms.importJobs.create

cloudkms.importJobs.get

cloudkms.importJobs.list

cloudkms.importJobs.useToImport

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

(roles/cloudkms.publicKeyViewer)

Ermöglicht GetPublicKey-Vorgänge.

Enthält 1 Inhaberberechtigung

cloudkms.cryptoKeyVersions.viewPublicKey

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

(roles/cloudkms.signer)

Aktiviert Anmeldevorgänge.

Enthält 1 Inhaberberechtigung

cloudkms.cryptoKeyVersions.useToSign

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

(roles/cloudkms.signerVerifier)

Kann Anmelde-, Bestätigungs- und GetPublicKey-Vorgänge ausführen.

Enthält 3 Inhaberberechtigungen

cloudkms.cryptoKeyVersions.useToSign

cloudkms.cryptoKeyVersions.useToVerify

cloudkms.cryptoKeyVersions.viewPublicKey

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

(roles/cloudkms.verifier)

Kann Bestätigungs- und GetPublicKey-Vorgänge ausführen.

Enthält 2 Inhaberberechtigungen

cloudkms.cryptoKeyVersions.useToVerify

cloudkms.cryptoKeyVersions.viewPublicKey

cloudkms.locations.get

cloudkms.locations.list

resourcemanager.projects.get

(roles/cloudkms.viewer)

Ermöglicht Abruf- und Listenvorgänge.

cloudkms.cryptoKeyVersions.get

cloudkms.cryptoKeyVersions.list

cloudkms.cryptoKeys.get

cloudkms.cryptoKeys.list

cloudkms.ekmConnections.get

cloudkms.ekmConnections.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.

Weitere Informationen

  • 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