Zugriffssteuerung mit IAM

Auf dieser Seite werden die IAM-Rollen für den 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 für 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 der Certificate Authority Service-Ressourcen schützen und die Sicherheit des CA-Pools und der gesamten Public Key Infrastructure (PKI) verwalten.

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 mit jeder Rolle verknüpften 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 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.
CA Service-Zertifikatsanfragesteller
roles/privateca.certificateRequester
privateca.certificates.create Mit der Rolle „CA Service-Zertifikatsanfragesteller“ 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 anfordern, die der Ausstellungsrichtlinie unterliegen.

Im Gegensatz zur Rolle „CA Service Certificate Manager“ 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-Arbeitslastzertifikats
roles/privateca.workloadCertificateRequester
privateca.certificates.createForSelf Ein Anfragesteller des CA Service-Arbeitslastzertifikats kann Zertifikate von CA Service mit der Identität des Anrufers anfordern.
Zertifikatverwalter für CA Service
roles/privateca.certificateManager
Alle Berechtigungen von roles/privateca.auditor, plus:
privateca.certificates.create
Ein CA Service-Zertifikatsmanager kann wie der CA Service-Zertifikatsanfragesteller Anfragen zur Zertifikatsausstellung an einen CA-Pool senden. Außerdem erbt diese Rolle auch 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 CA-Pool verantwortlich sind, z. B. einem Manager oder einem Lead Engineer.
Nutzer der CA Service-Zertifikatsvorlage
roles/privateca.templateUser
privateca.certificateTemplates.get
privateca.certificateTemplates.list
privateca.certificateTemplates.use
Ein Nutzer der CA Service-Zertifikatsvorlage 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. Sie umfasst auch dieselben Fähigkeiten wie der CA Service Auditor. In dieser Rolle sind Personen 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“, „Zertifikatverwalter für CA Service“ oder „CA Service-Administrator“.
Leser von CA-Dienstpools
roles/privateca.poolReader
privateca.caPools.get Ein Nutzer mit der Rolle „Leser von CA-Dienstpools“ kann CA-Pools in CA Service lesen.
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
resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.create
Die Rolle „CA Service Admin“ erbt Berechtigungen von den Rollen „CA Service Operation Manager“ und „CA Service Certificate Manager“. Diese Rolle kann alle Aktionen im CA-Dienst 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, sobald der Dienst eingerichtet ist. Mit dieser Rolle können Personen alle Aspekte der Administration ausführen, einschließlich der Zuweisung von Berechtigungen an andere und der Verwaltung 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 Sie vorhandene Cloud KMS-Schlüssel oder Cloud Storage-Buckets angeben, muss dem Dienstkonto des CA Service Service Agent (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. Dadurch kann der Dienst-Agent inaktive 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 für die Überwachung des Buckets für die Cloud Monitoring-Integration erforderlich. 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.

  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 CA-Pool erstellt wird.
  2. Weisen Sie Ihrem Dienstkonto die erforderlichen Rollen mit dem folgenden gcloud-Befehl zu:

    Wenn vorhandene Cloud KMS-Schlüssel angegeben 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 gilt:

      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-Speicherort, an dem Sie Ihren Schlüsselbund erstellt haben.
    • PROJECT_NUMBER ist die Projektnummer des Projekts in Google Cloud , das den Schlüssel enthält.
  3. Weisen Sie Ihrem Dienstkonto die Rollen roles/storage.objectAdmin und roles/storage.legacyBucketReader mit dem folgenden gcloud-Befehl zu.

    Wenn vorhandene Cloud Storage-Buckets angegeben 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.objectAdmin
    

    Wobei:

    • BUCKET_NAME ist der Name Ihres Cloud Storage-Buckets.
    • 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 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 CA-Pool.
privateca.caPools.use Verwenden Sie einen CA-Pool.
privateca.caPools.getIamPolicy Rufen Sie die IAM-Richtlinie des CA-Pools ab.
privateca.caPools.setIamPolicy IAM-Richtlinie für den CA-Pool festlegen
privateca.certificateAuthorities.create Erstellen Sie eine CA.
privateca.certificateAuthorities.delete Sie können eine CA zum Löschen vormerken.
privateca.certificateAuthorities.get Fordern Sie eine CA- oder CA-Zertifikatsignierungsanfrage an.
privateca.certificateAuthorities.list Zertifizierungsstellen in einem Projekt auflisten.
privateca.certificateAuthorities.update Aktualisieren einer CA, einschließlich Aktivieren, Aktivieren, Deaktivieren und Wiederherstellen der CA.
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 Ein Zertifikat und seine Metadaten abrufen.
privateca.certificates.list Alle Zertifikate in einer CA auflisten.
privateca.certificates.update Metadaten eines Zertifikats aktualisieren, einschließlich des Widerrufs.
privateca.certificateRevocationLists.get Zertifikatssperrliste (Certificate Revocation List, CRL) von einer Zertifizierungsstelle abrufen
privateca.certificateRevocationLists.getIamPolicy IAM-Richtlinie für eine Zertifikatsperrliste abrufen.
privateca.certificateRevocationLists.list Alle CRLs in einer Zertifizierungsstelle auflisten
privateca.certificateRevocationLists.setIamPolicy IAM-Richtlinie für eine CRL festlegen
privateca.certificateRevocationLists.update CRL aktualisieren
privateca.certificateTemplates.create Erstellen Sie eine Zertifikatsvorlage.
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 Zertifikatvorlage abrufen.
privateca.certificateTemplates.setIamPolicy IAM-Richtlinie für eine Zertifikatsvorlage festlegen
privateca.certificateTemplates.use Verwenden Sie eine Zertifikatsvorlage.
privateca.operations.cancel Vorgang mit langer Ausführungszeit abbrechen
privateca.operations.delete Lange laufenden Vorgang 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