Zugriffssteuerung mit IAM
Auf dieser Seite werden die IAM-Rollen für den Certificate Authority Service beschrieben.
Der CA Service verwendet IAM-Rollen (Identity and Access Management) für die Zugriffssteuerung. Mit IAM steuern Sie den Zugriff, indem Sie definieren, wer (Identität) welchen Zugriff (Rolle) auf welche Ressource hat. IAM-Rollen enthalten eine Reihe von Berechtigungen, mit denen Nutzer bestimmte Aktionen für Google Cloud Ressourcen ausführen können. Wenn Sie beim Zuweisen von IAM-Rollen dem Prinzip der geringsten Berechtigung folgen, können Sie die Integrität der Certificate Authority Service-Ressourcen schützen und die Sicherheit des CA-Pools sowie der gesamten Public-Key-Infrastruktur (PKI) verwalten.
Informationen zum Zuweisen von IAM-Rollen zu einem Nutzer oder Dienstkonto finden Sie unter Zugriff auf Ressourcen zuweisen, ändern und widerrufen in der IAM-Dokumentation.
Vordefinierte Rollen
In der folgenden Tabelle sind die vordefinierten IAM-Rollen und die Berechtigungen aufgeführt, die mit den einzelnen Rollen verknüpft sind:
| Rolle | Berechtigungen | Beschreibung |
|---|---|---|
CA Service-Auditorroles/privateca.auditor |
privateca.caPools.getprivateca.caPools.getIamPolicyprivateca.caPools.listprivateca.certificateAuthorities.listprivateca.certificateAuthorities.getprivateca.certificateTemplates.getprivateca.certificateTemplates.getIamPolicyprivateca.certificateTemplates.listprivateca.certificates.listprivateca.certificates.getprivateca.locations.getprivateca.locations.listprivateca.operations.getprivateca.operations.listprivateca.certificateRevocationLists.listprivateca.certificateRevocationLists.getprivateca.certificateRevocationLists.getIamPolicyresourcemanager.projects.getresourcemanager.projects.list
|
Die Rolle „CA Service-Auditor“ hat Lesezugriff auf alle CA Service-Ressourcen und kann Eigenschaften des CA-Pools, der Zertifizierungsstelle, der Zertifikate, der Sperrlisten, der IAM-Richtlinien und der Projekte abrufen und auflisten. Wir empfehlen, diese Rolle Personen zuzuweisen, die für die Validierung der Sicherheit und des Betriebs des CA-Pools verantwortlich sind und keine täglichen Aufgaben zur Verwaltung des Dienstes haben. |
Zertifizierungsstellen-Service-Zertifikatsanfragestellerroles/privateca.certificateRequester |
privateca.certificates.create
|
Ein CA Service-Zertifikatsanfragesteller kann Zertifikatsanfragen an einen CA-Pool senden. Wir empfehlen, diese Rolle vertrauenswürdigen Personen zuzuweisen, die Zertifikate anfordern dürfen. Ein Nutzer mit dieser Rolle kann gemäß der Ausstellungsrichtlinie beliebige Zertifikate anfordern. Im Gegensatz zur Rolle „CA Service-Zertifikatmanager“ kann der Nutzer mit dieser Rolle das neu ausgestellte Zertifikat nicht abrufen oder auflisten und keine Informationen zum CA-Pool abrufen. |
Anfragesteller des CA Service-Arbeitslastzertifikatsroles/privateca.workloadCertificateRequester |
privateca.certificates.createForSelf
|
Ein Anfragesteller des CA Service-Arbeitslastzertifikats kann Zertifikate von CA Service mit der Identität des Anrufers anfordern. |
CA Service-Zertifikatmanagerroles/privateca.certificateManager |
Alle Berechtigungen von roles/privateca.auditor sowie:privateca.certificates.create
|
Ein CA Service-Zertifikatmanager kann wie ein CA Service-Zertifikatsanfragesteller Anfragen zur Zertifikatsausstellung an einen CA-Pool senden. Außerdem erbt diese Rolle die Berechtigungen der Rolle „CA Service-Auditor“. Wir empfehlen, diese Rolle Personen zuzuweisen, die für das Erstellen, Nachverfolgen und Überprüfen von Zertifikatsanfragen in einem Zertifizierungsstellenpool verantwortlich sind, z. B. einem Manager oder einem leitenden Entwickler. |
Nutzer der CA Service-Zertifikatsvorlageroles/privateca.templateUser |
privateca.certificateTemplates.getprivateca.certificateTemplates.listprivateca.certificateTemplates.use
|
Ein Nutzer der CA Service-Zertifikatsvorlage kann Zertifikatsvorlagen lesen, auflisten und verwenden. |
Operation Manager für CA Serviceroles/privateca.caManager |
Alle Berechtigungen von roles/privateca.auditor sowie:privateca.certificates.updateprivateca.caPools.createprivateca.caPools.deleteprivateca.caPools.updateprivateca.certificateAuthorities.createprivateca.certificateAuthorities.deleteprivateca.certificateAuthorities.updateprivateca.certificateRevocationLists.updateprivateca.certificateTemplates.createprivateca.certificateTemplates.deleteprivateca.certificateTemplates.updateprivateca.certificates.updateprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
Ein Operation Manager für CA Service kann CA-Pools und Zertifizierungsstellen erstellen, aktualisieren und löschen. Mit dieser Rolle können auch Zertifikate widerrufen und Cloud Storage-Buckets erstellt werden. Außerdem hat diese Rolle dieselben Berechtigungen wie der CA Service-Auditor. Personen mit dieser Rolle sind für die Konfiguration und Bereitstellung von CA-Pools in der Organisation sowie für die Konfiguration der Ausstellungsrichtlinie des CA-Pools verantwortlich. Mit dieser Rolle können keine Zertifikate erstellt werden. Verwenden Sie dazu die Rollen „CA Service-Zertifikatsanfragesteller“, „CA Service-Zertifikatmanager“ oder „CA Service-Administrator“. |
Leser von CA-Dienstpoolsroles/privateca.poolReader |
privateca.caPools.get |
Ein Nutzer mit der Rolle „Leser von CA-Dienstpools“ kann CA-Pools im CA Service lesen. |
CA Service-Administratorroles/privateca.admin |
Alle Berechtigungen von roles/privateca.certificateManager,
und roles/privateca.caManager, sowie:privateca.*.setIamPolicyprivateca.caPools.useprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
Die Rolle „CA Service-Administrator“ erbt Berechtigungen von den Rollen „Operation Manager für CA Service“ und „CA Service-Zertifikatmanager“. Mit dieser Rolle können alle Aktionen im CA Service ausgeführt werden. Ein CA Service-Administrator kann IAM-Richtlinien für den CA-Pool festlegen und Cloud Storage-Buckets erstellen. Wir empfehlen, diese Rolle nur selten zuzuweisen, nachdem der Dienst eingerichtet wurde. Personen mit dieser Rolle können alle Aspekte der Verwaltung ausführen, einschließlich des Zuweisens von Rechten an andere und des Verwalten von Zertifikatsanfragen im CA Service. Wir empfehlen, eine spezielle Steuerung und einen speziellen Zugriff auf dieses Rollenkonto zu implementieren, um unbefugten Zugriff oder unbefugte Nutzung zu verhindern. |
Dienst-Agent-Rolle für CA Service
Wenn vorhandene Cloud KMS-Schlüssel oder Cloud Storage-Buckets bereitgestellt werden, muss dem Dienstkonto des CA Service-Dienst-Agents (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com) Zugriff auf die entsprechende Ressource gewährt werden.
Für Cloud KMS ist roles/cloudkms.signerVerifier erforderlich, um den Signierschlüssel zu verwenden und den öffentlichen Schlüssel zu lesen. roles/viewer ist erforderlich, um den Schlüssel für die Cloud Monitoring-Integration zu überwachen.
Für vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK), die zum Verschlüsseln inaktiver Daten verwendet werden, ist die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter erforderlich. Damit kann der Dienst-Agent ruhende Daten verschlüsseln und entschlüsseln.
Für Cloud Storage ist roles/storage.objectAdmin erforderlich, um das CA-Zertifikat und die Zertifikatssperrlisten in einen Bucket zu schreiben. roles/storage.legacyBucketReader ist erforderlich, um den Bucket für die Cloud Monitoring-Integration zu überwachen. Weitere Informationen finden Sie unter IAM-Rollen für Cloud Storage.
Wenn Sie über die API auf den Dienst zugreifen, führen Sie die folgenden Befehle aus.
Erstellen Sie ein Dienstkonto mit der Dienst-Agent-Rolle.
gcloud
gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_IDWobei:
- PROJECT_ID ist die eindeutige Kennung des Projekts, in dem der CA-Pool erstellt wird.
Gewähren Sie Ihrem Dienstkonto die erforderlichen Rollen mit dem folgenden
gcloud-Befehl.Wenn vorhandene Cloud KMS-Schlüssel bereitgestellt werden:
gcloud
Für Cloud KMS-Signierschlüssel:
gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.signerVerifier'gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/viewer'Für Cloud KMS-Verschlüsselungsschlüssel:
gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.cryptoKeyEncrypterDecrypter'Wobei:
- „KEY_NAME“ ist der Name Ihres Schlüssels.
- „KEYRING_NAME“ ist der Name Ihres Schlüsselbunds.
- „LOCATION“ ist der Cloud KMS-Standort, an dem Sie Ihren Schlüsselbund erstellt haben.
- „PROJECT_NUMBER“ ist die Projektnummer des Google Cloud Projekts, das den Schlüssel enthält.
Gewähren Sie Ihrem Dienstkonto die Rollen
roles/storage.objectAdminundroles/storage.legacyBucketReadermit dem folgendengcloud-Befehl.Wenn vorhandene Cloud Storage-Buckets bereitgestellt werden:
gcloud
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \ --role=roles/storage.objectAdminWobei:
- BUCKET_NAME ist der Name Ihres Cloud Storage-Bucket.
- PROJECT_NUMBER ist die eindeutige Kennung Ihres Dienstkontos.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \ --role=roles/storage.legacyBucketReader
API-Berechtigungen
In der folgenden Tabelle sind die Berechtigungen aufgeführt, die der Aufrufer zum Aufrufen der einzelnen Methoden in der CA Service API benötigt:
| Berechtigung | Beschreibung |
|---|---|
privateca.caPools.create |
Zertifizierungsstellenpool erstellen. |
privateca.caPools.update |
CA-Pool aktualisieren. |
privateca.caPools.list |
CA-Pools in einem Projekt auflisten. |
privateca.caPools.get |
CA-Pool abrufen. |
privateca.caPools.delete |
CA-Pool löschen. |
privateca.caPools.use |
CA-Pool verwenden. |
privateca.caPools.getIamPolicy |
IAM-Richtlinie des CA-Pools abrufen. |
privateca.caPools.setIamPolicy |
IAM-Richtlinie für den CA-Pool festlegen. |
privateca.certificateAuthorities.create |
Zertifizierungsstelle erstellen. |
privateca.certificateAuthorities.delete |
Zertifizierungsstelle zum Löschen vormerken. |
privateca.certificateAuthorities.get |
Zertifizierungsstelle oder Zertifikatsignierungsanfrage der Zertifizierungsstelle abrufen. |
privateca.certificateAuthorities.list |
Zertifizierungsstellen in einem Projekt auflisten. |
privateca.certificateAuthorities.update |
Zertifizierungsstelle aktualisieren, einschließlich Aktivieren, Deaktivieren und Wiederherstellen der Zertifizierungsstelle. |
privateca.certificates.create |
Zertifikate von CA Service anfordern. |
privateca.certificates.createForSelf |
Zertifikate von CA Service mit der Identität des Anrufers anfordern. |
privateca.certificates.get |
Zertifikat und zugehörige Metadaten abrufen. |
privateca.certificates.list |
Alle Zertifikate in einer Zertifizierungsstelle auflisten. |
privateca.certificates.update |
Metadaten eines Zertifikats aktualisieren, einschließlich des Widerrufs. |
privateca.certificateRevocationLists.get |
Zertifikatssperrliste (Certificate Revocation List, CRL) in einer Zertifizierungsstelle abrufen. |
privateca.certificateRevocationLists.getIamPolicy |
IAM-Richtlinie für eine Zertifikatssperrliste abrufen. |
privateca.certificateRevocationLists.list |
Alle Zertifikatssperrlisten in einer Zertifizierungsstelle auflisten. |
privateca.certificateRevocationLists.setIamPolicy |
IAM-Richtlinie für eine Zertifikatssperrliste festlegen. |
privateca.certificateRevocationLists.update |
Zertifikatssperrliste aktualisieren. |
privateca.certificateTemplates.create |
Zertifikatsvorlage erstellen. |
privateca.certificateTemplates.get |
Zertifikatsvorlage abrufen. |
privateca.certificateTemplates.list |
Alle Zertifikatsvorlagen auflisten. |
privateca.certificateTemplates.update |
Zertifikatsvorlage aktualisieren. |
privateca.certificateTemplates.delete |
Zertifikatsvorlage löschen. |
privateca.certificateTemplates.getIamPolicy |
IAM-Richtlinie für eine Zertifikatsvorlage abrufen. |
privateca.certificateTemplates.setIamPolicy |
IAM-Richtlinie für eine Zertifikatsvorlage festlegen. |
privateca.certificateTemplates.use |
Zertifikatsvorlage verwenden. |
privateca.operations.cancel |
Vorgang mit langer Ausführungszeit abbrechen. |
privateca.operations.delete |
Vorgang mit langer Ausführungszeit löschen. |
privateca.operations.get |
Vorgang mit langer Ausführungszeit abrufen. |
privateca.operations.list |
Lange laufende Vorgänge in einem Projekt auflisten. |
Nächste Schritte
- Informationen dazu, wie IAM die Verwaltung von Berechtigungen und Zugriffsbereichen für Google Cloud Ressourcen zentralisiert.
- Informationen zum Konfigurieren von IAM-Richtlinien.
- Weitere Informationen zu vom Kunden verwalteten Verschlüsselungsschlüsseln (Customer-Managed Encryption Keys, CMEK).