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:
Role | Permissions |
---|---|
Cloud KMS Admin( Provides access to Cloud KMS resources, except for access to restricted resource types and cryptographic operations. Lowest-level resources where you can grant this role:
|
|
Cloud KMS Autokey Admin( Enables management of AutokeyConfig. |
|
Cloud KMS Autokey User( Grants ability to use KeyHandle resources. |
|
Cloud KMS CryptoKey Decrypter( Provides ability to use Cloud KMS resources for decrypt operations only. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Decrypter Via Delegation( Enables Decrypt operations via other Google Cloud services |
|
Cloud KMS CryptoKey Encrypter( Provides ability to use Cloud KMS resources for encrypt operations only. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Encrypter/Decrypter( Provides ability to use Cloud KMS resources for encrypt and decrypt operations only. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Encrypter/Decrypter Via Delegation( Enables Encrypt and Decrypt operations via other Google Cloud services |
|
Cloud KMS CryptoKey Encrypter Via Delegation( Enables Encrypt operations via other Google Cloud services |
|
Cloud KMS Crypto Operator( Enables all Crypto Operations. |
|
Cloud KMS EkmConnections Admin( Enables management of EkmConnections. |
|
Cloud KMS Expert Raw AES-CBC Key Manager( Enables raw AES-CBC keys management. |
|
Cloud KMS Expert Raw AES-CTR Key Manager( Enables raw AES-CTR keys management. |
|
Cloud KMS Expert Raw PKCS#1 Key Manager( Enables raw PKCS#1 keys management. |
|
Cloud KMS Importer( Enables ImportCryptoKeyVersion, CreateImportJob, ListImportJobs, and GetImportJob operations |
|
Cloud KMS Protected Resources Viewer( Enables viewing protected resources. |
|
Cloud KMS CryptoKey Public Key Viewer( Enables GetPublicKey operations |
|
Cloud KMS CryptoKey Signer( Enables Sign operations |
|
Cloud KMS CryptoKey Signer/Verifier( Enables Sign, Verify, and GetPublicKey operations |
|
Cloud KMS CryptoKey Verifier( Enables Verify and GetPublicKey operations |
|
Cloud KMS Viewer( Enables Get and List operations. |
|
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.
- Erteilen Sie Mitgliedern Ihres IT-Sicherheitsteams die Rolle "Cloud KMS-Administrator" (
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 Rolleowner
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.
- Für Schlüsselbunde können Sie die Methode
cloudkms.keyRings.testIamPermissions
aufrufen. - Für Schlüssel können Sie die Methode
cloudkms.cryptoKeys.testIamPermissions
aufrufen. - Für Schlüsselimportjobs können Sie die Methode
cloudkms.keyRings.importJobs.testIamPermissions
aufrufen. - Für EKM-Verbindungen können Sie die Methode
cloudkms.ekmConnections.testIamPermissions
aufrufen.
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