Zugriffssteuerung mit IAM

Auf dieser Seite werden die IAM-Rollen für Certificate Authority Service beschrieben.

CA Service verwendet IAM-Rollen (Identity and Access Management) für die Zugriffssteuerung. Mit IAM steuern Sie den Zugriff, indem Sie festlegen, wer (Identität) welchen Zugriff (Rolle) auf welche Ressource hat. IAM-Rollen enthalten eine Reihe von Berechtigungen, mit denen Nutzer bestimmte Aktionen auf Google Cloud-Ressourcen ausführen können. Wenn Sie beim Zuweisen von IAM-Rollen das Prinzip der geringsten Berechtigung befolgen, können Sie die Integrität von Certificate Authority Service-Ressourcen schützen und die Sicherheit des Zertifizierungsstellenpools sowie der gesamten Public-Key-Infrastruktur (PKI) selbst verwalten.

Weitere Informationen zum Zuweisen von IAM-Rollen zu einem Nutzer oder Dienstkonto finden Sie in der IAM-Dokumentation unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

Vordefinierte Rollen

In der folgenden Tabelle sind die vordefinierten IAM-Rollen und die zugehörigen Berechtigungen aufgeführt:

Rolle Berechtigungen Beschreibung
CA Service Auditor
roles/privateca.auditor
privateca.caPools.get
privateca.caPools.getIamPolicy
privateca.caPools.list
privateca.certificateAuthorities.list
privateca.certificateAuthorities.get
privateca.certificateTemplates.get
privateca.certificateTemplates.getIamPolicy
privateca.certificateTemplates.list
privateca.certificates.list
privateca.certificates.get
privateca.locations.get
privateca.locations.list
privateca.operations.get
privateca.operations.list
privateca.certificateRevocationLists.list
privateca.certificateRevocationLists.get
privateca.certificateRevocationLists.getIamPolicy
resourcemanager.projects.get
resourcemanager.projects.list
Die Rolle „CA Service Auditor“ hat Lesezugriff auf alle CA Service-Ressourcen und kann Attribute des Zertifizierungsstellenpools, der Zertifizierungsstelle, Zertifikate, Sperrlisten, IAM-Richtlinien und Projekte abrufen und auflisten. Wir empfehlen, diese Rolle Personen zuzuweisen, die für die Validierung der Sicherheit und den Betrieb des Zertifizierungsstellenpools verantwortlich sind und keine täglichen Aufgaben für die Verwaltung des Dienstes haben.
CA Service-Zertifikatforderer
roles/privateca.certificateRequester
privateca.certificates.create Mit der Rolle „CA Service Certificate Anforderer“ können Zertifikatsanfragen an einen CA-Pool gesendet werden. Wir empfehlen, diese Rolle vertrauenswürdigen Personen zuzuweisen, die Zertifikate anfordern dürfen.

Ein Nutzer mit dieser Rolle kann beliebige Zertifikate gemäß der Ausstellungsrichtlinie anfordern.

Im Gegensatz zur Rolle „CA Service Certificate Manager“ erlaubt diese Rolle dem Nutzer nicht, das neu ausgestellte Zertifikat abzurufen oder aufzulisten oder Informationen zum CA-Pool abzurufen.
Ersteller von CA Service-Arbeitslastzertifikaten
roles/privateca.workloadCertificateRequester
privateca.certificates.createForSelf Ein CA Service Workload Certificate-Anforderer kann vom CA-Dienst Zertifikate mit der Identität des Aufrufers anfordern.
CA Service-Zertifikatmanager
roles/privateca.certificateManager
Alle Berechtigungen von roles/privateca.auditor sowie:
privateca.certificates.create
Ein CA Service-Zertifikatmanager kann Anfragen zur Zertifikatsausstellung an einen CA-Pool wie den CA Service Certificate Anforderer senden. Darüber hinaus übernimmt diese Rolle auch die Berechtigungen der Rolle „CA Service Auditor“. Wir empfehlen, diese Rolle Personen zuzuweisen, die für das Erstellen, Tracking und Überprüfen von Zertifikatsanfragen für einen Zertifizierungsstellenpool verantwortlich sind, z. B. Manager oder leitender Entwickler.
Nutzer der CA Service-Zertifikatsvorlage
roles/privateca.templateUser
privateca.certificateTemplates.get
privateca.certificateTemplates.list
privateca.certificateTemplates.use
Ein Nutzer von CA Service-Zertifikatsvorlagen kann Zertifikatsvorlagen lesen, auflisten und verwenden.
Operation Manager für CA Service
roles/privateca.caManager
Alle Berechtigungen von roles/privateca.auditor sowie:
privateca.certificates.update
privateca.caPools.create
privateca.caPools.delete
privateca.caPools.update
privateca.certificateAuthorities.create
privateca.certificateAuthorities.delete
privateca.certificateAuthorities.update
privateca.certificateRevocationLists.update
privateca.certificateTemplates.create
privateca.certificateTemplates.delete
privateca.certificateTemplates.update
privateca.certificates.update
privateca.operations.cancel
privateca.operations.delete
resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.create
Ein CA Service Operation Manager kann CA-Pools und CAs erstellen, aktualisieren und löschen. Mit dieser Rolle können auch Zertifikate widerrufen und Cloud Storage-Buckets erstellt werden. Außerdem bietet er dieselben Funktionen wie der CA Service Auditor. Mit dieser Rolle sind Personen dafür verantwortlich, CA-Pools in der Organisation zu konfigurieren und bereitzustellen sowie die Ausstellungsrichtlinie des CA-Pools zu konfigurieren.

Mit dieser Rolle können keine Zertifikate erstellt werden. Verwenden Sie dazu die Rollen „CA Service Certificate Requester“, „CA Service Certificate Manager“ oder „CA Service Admin“.
CA Service-Administrator
roles/privateca.admin
Alle Berechtigungen von roles/privateca.certificateManager und roles/privateca.caManager sowie:
privateca.*.setIamPolicy
privateca.caPools.use
privateca.operations.cancel
privateca.operations.delete
privateca.resourcemanager.projects.get
privateca.resourcemanager.projects.list
storage.buckets.create
Die Rolle „CA Service Admin“ übernimmt die Berechtigungen der Rollen „CA Service Operation Manager“ und „CA Service Certificate Manager“. Diese Rolle kann alle Aktionen innerhalb von CA Service ausführen. 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. In dieser Rolle können Einzelpersonen alle Verwaltungsaufgaben ausführen, darunter das Zuweisen von Rechten an andere und das Verwalten von Zertifikatsanfragen in CA Service. Wir empfehlen Ihnen, eine besondere Steuerungs- und Zugriffsberechtigung für dieses Rollenkonto zu implementieren, um den unbefugten Zugriff oder die unbefugte Nutzung zu verhindern.

Rolle „CA Service-Agent“

Wenn Sie beim Erstellen der Zertifizierungsstelle vorhandene Cloud KMS-Signaturschlüssel oder Cloud Storage-Buckets bereitstellen, muss dem Dienstkonto des CA-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 Signaturschlüssel zu verwenden und den öffentlichen Schlüssel zu lesen. roles/viewer ist erforderlich, um den Schlüssel für die Einbindung von Cloud Monitoring zu überwachen.

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 auf die Einbindung von Cloud Monitoring zu überwachen. Weitere Informationen finden Sie unter IAM-Rollen für Cloud Storage.

Führen Sie die folgenden Befehle aus, wenn Sie über die API auf den Dienst zugreifen.

  1. Erstellen Sie ein Dienstkonto mit der Rolle „Dienst-Agent“.

    gcloud

    gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_ID
    

    Wobei:

    • PROJECT_ID ist die eindeutige Kennung des Projekts, in dem der Zertifizierungsstellenpool erstellt wird.
  2. Weisen Sie Ihrem Dienstkonto die Rollen roles/cloudkms.signerVerifier und roles/viewer mit dem folgenden gcloud-Befehl zu.

    Wenn vorhandene Cloud KMS-Signaturschlüssel bereitgestellt werden:

    gcloud

    gcloud kms keys add-iam-policy-binding 'CRYPTOKEY_NAME' \
      --keyring='KEYRING_NAME' \
      --location='LOCATION' \
      --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \
      --role='roles/cloudkms.signerVerifier'
    

    Wobei:

    • CRYPTOKEY_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 der Name Ihres Dienstkontos.
    gcloud kms keys add-iam-policy-binding 'CRYPTOKEY_NAME' \
      --keyring='KEYRING_NAME' \
      --location='LOCATION' \
      --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \
      --role='roles/viewer'
    

    Wenn vorhandene Cloud Storage-Buckets bereitgestellt werden, verwenden Sie das gsutil-Befehlszeilentool, um die erforderlichen Rollen für den Cloud Storage-Bucket zu binden.

    gsutil

    gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com:roles/storage.objectAdmin gs://BUCKET_NAME
    

    Wobei:

    • PROJECT_NUMBER ist die eindeutige Kennung Ihres Dienstkontos.
    • BUCKET_NAME ist der Name Ihres Cloud Storage-Buckets.
    gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com:roles/storage.legacyBucketReader gs://BUCKET_NAME
    

API-Berechtigungen

In der folgenden Tabelle sind die Berechtigungen aufgeführt, die der Aufrufer haben muss, um die einzelnen Methoden in der CA Service API aufzurufen:

Berechtigung Beschreibung
privateca.caPools.create Erstellen Sie einen CA-Pool.
privateca.caPools.update CA-Pool aktualisieren
privateca.caPools.list CA-Pools in einem Projekt auflisten.
privateca.caPools.get CA-Pool abrufen.
privateca.caPools.delete Löschen Sie einen Zertifizierungsstellenpool.
privateca.caPools.use Verwenden Sie einen CA-Pool.
privateca.caPools.getIamPolicy Rufen Sie die IAM-Richtlinie des Zertifizierungsstellenpools ab.
privateca.caPools.setIamPolicy Legen Sie eine IAM-Richtlinie für den Zertifizierungsstellenpool fest.
privateca.certificateAuthorities.create Erstellen Sie eine Zertifizierungsstelle.
privateca.certificateAuthorities.delete CA zum Löschen vormerken
privateca.certificateAuthorities.get Fordern Sie einen Zertifizierungsantrag einer Zertifizierungsstelle oder einer Zertifizierungsstelle an.
privateca.certificateAuthorities.list CAs in einem Projekt auflisten.
privateca.certificateAuthorities.update Zertifizierungsstelle aktualisieren, einschließlich Aktivieren, 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 Rufen Sie ein Zertifikat und die zugehörigen Metadaten ab.
privateca.certificates.list Hiermit werden alle Zertifikate in einer Zertifizierungsstelle aufgelistet.
privateca.certificates.update Metadaten eines Zertifikats aktualisieren, einschließlich Widerruf
privateca.certificateRevocationLists.get Rufen Sie eine Zertifikatssperrliste (Certificate Revocation List, CRL) in einer Zertifizierungsstelle ab.
privateca.certificateRevocationLists.getIamPolicy Rufen Sie die IAM-Richtlinie für eine Zertifikatssperrliste ab.
privateca.certificateRevocationLists.list Listen Sie alle Zertifikatssperrlisten in einer Zertifizierungsstelle auf.
privateca.certificateRevocationLists.setIamPolicy Legen Sie die IAM-Richtlinie für eine Zertifikatssperrliste fest.
privateca.certificateRevocationLists.update Aktualisieren Sie eine Zertifikatssperrliste.
privateca.certificateTemplates.create Erstellen Sie eine Zertifikatsvorlage.
privateca.certificateTemplates.get Rufen Sie eine Zertifikatsvorlage ab.
privateca.certificateTemplates.list Listet alle Zertifikatsvorlagen auf.
privateca.certificateTemplates.update Aktualisieren Sie eine Zertifikatsvorlage.
privateca.certificateTemplates.delete Löschen Sie eine Zertifikatsvorlage.
privateca.certificateTemplates.getIamPolicy IAM-Richtlinie für eine Zertifikatsvorlage abrufen.
privateca.certificateTemplates.setIamPolicy IAM-Richtlinie für eine Zertifikatsvorlage festlegen.
privateca.certificateTemplates.use Verwenden Sie eine Zertifikatsvorlage.
privateca.operations.cancel Lange laufenden Vorgang abbrechen.
privateca.operations.delete Lange laufenden Vorgang löschen.
privateca.operations.get Vorgang mit langer Ausführungszeit abrufen
privateca.operations.list Vorgänge mit langer Ausführungszeit in einem Projekt auflisten.

Nächste Schritte