Zugriffssteuerung mit IAM

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

Der CA-Dienst verwendet IAM-Rollen (Identity and Access Management) für die Zugriffssteuerung. Mit IAM steuern Sie den Zugriff, indem Sie festlegen, (Identität) hat welchen Zugriff (welche Rolle) auf welche Ressource. IAM-Rollen enthalten eine Reihe von Berechtigungen, mit denen Nutzer bestimmte Aktionen für Google Cloud-Ressourcen ausführen können. Wenn Sie beim Gewähren von IAM-Rollen das Prinzip der geringsten Berechtigung einhalten, können Sie die Integrität der Ressourcen des Zertifizierungsstellen-Dienstes schützen und die Sicherheit des CA-Pools und der Public-Key-Infrastruktur (PKI) insgesamt 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 damit verbundenen 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, Zertifikate, Widerrufslisten, IAM-Richtlinien und Projekte abrufen und auflisten. Wir empfehlen, diese Rolle Personen zuzuweisen, die für die Validierung der Sicherheit und den Betrieb des CA-Pools verantwortlich sind und keine täglichen Aufgaben zur Verwaltung des Dienstes haben.
CA Service Certificate Requester
roles/privateca.certificateRequester
privateca.certificates.create Ein Nutzer mit der Rolle „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 beliebige Zertifikate gemäß der Ausstellungsrichtlinie anfordern.

Im Gegensatz zur Rolle „Zertifikat-Manager für CA Service“ kann der Nutzer mit dieser Rolle das neu ausgestellte Zertifikat nicht abrufen oder auflisten und auch keine Informationen zum CA-Pool abrufen.
Anforderer von CA Service-Arbeitslastzertifikaten
roles/privateca.workloadCertificateRequester
privateca.certificates.createForSelf Ein Antragsteller für CA Service-Arbeitslastzertifikate kann Zertifikate vom CA Service mit der Identität des Aufrufers anfordern.
Zertifikatmanager für CA Service
roles/privateca.certificateManager
Alle Berechtigungen von roles/privateca.auditor, plus:
privateca.certificates.create
Ein CA Service Certificate Manager kann Anfragen zur Zertifikatsausstellung an einen CA-Pool wie den CA Service Certificate Requester senden. Außerdem werden dieser Rolle die Berechtigungen der Rolle „CA-Dienstrevisor“ vererbt. Wir empfehlen, diese Rolle Personen zuzuweisen, die für das Erstellen, Verfolgen und Überprüfen von Zertifikatsanfragen in einem CA-Pool verantwortlich sind, z. B. einem Manager oder Lead Engineer.
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, plus:
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 außerdem dieselben Funktionen 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 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, plus:
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-Dienstadministrator“ erbt Berechtigungen von den Rollen „CA-Dienst-Betriebsmanager“ und „CA-Dienst-Zertifikatsmanager“. Diese Rolle kann alle Aktionen im CA-Dienst ausführen. Ein CA-Dienstadministrator kann IAM-Richtlinien für den Zertifizierungsstellenpool festlegen und Cloud Storage-Buckets erstellen. Wir empfehlen, diese Rolle selten zuzuweisen, nachdem der Dienst eingerichtet ist. In dieser Rolle können Einzelpersonen alle Aspekte der Verwaltung ausführen, einschließlich der Zuweisung von Rechten an andere Personen und der Verwaltung von Zertifikatsanfragen im CA Service. Wir empfehlen Ihnen, ein spezielles Steuerelement und den Zugriff auf dieses Rollenkonto zu implementieren, um unbefugten Zugriff oder unbefugte Nutzung zu verhindern.

Rolle „CA Service-Kundenservicemitarbeiter“

Wenn Sie vorhandene Cloud KMS-Signaturschlüssel oder Cloud Storage-Buckets werden während der CA-Erstellung Dienst-Agent-Dienstkonto (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com) muss der Zugriff auf die entsprechende Ressource gewährt wurde.

Für Cloud KMS ist roles/cloudkms.signerVerifier zur Verwendung des und den öffentlichen Schlüssel lesen. roles/viewer ist erforderlich, um den Schlüssel für die Cloud Monitoring-Integration zu überwachen.

Für Cloud Storage ist roles/storage.objectAdmin erforderlich, um den CA-Zertifikat und Zertifikatssperrlisten in einen Bucket. roles/storage.legacyBucketReader ist erforderlich, um den Bucket für die Cloud Monitoring-Integration zu überwachen. Weitere Informationen 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 „Kundenservicemitarbeiter“.

    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. Gewähren Sie dem Dienstkonto mit dem folgenden gcloud-Befehl die Rollen roles/cloudkms.signerVerifier und roles/viewer.

    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-Speicherort, 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'
    
  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 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.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 haben muss, um in der CA Service API:

Berechtigung Beschreibung
privateca.caPools.create Erstellen Sie einen CA-Pool.
privateca.caPools.update Aktualisieren Sie einen Zertifizierungsstellenpool.
privateca.caPools.list CA-Pools in einem Projekt auflisten
privateca.caPools.get Rufen Sie einen CA-Pool ab.
privateca.caPools.delete Löschen Sie einen Zertifizierungsstellenpool.
privateca.caPools.use Verwenden Sie einen Zertifizierungsstellenpool.
privateca.caPools.getIamPolicy Rufen Sie die IAM-Richtlinie des CA-Pools 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 Rufen Sie eine CA- oder CA-Anfrage zur Zertifikatsignatur ab.
privateca.certificateAuthorities.list Zertifizierungsstellen in einem Projekt auflisten
privateca.certificateAuthorities.update CA 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 Listet alle Zertifikate in einer Zertifizierungsstelle auf.
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 CRL 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 Zertifikatsvorlage aktualisieren
privateca.certificateTemplates.delete Löschen Sie eine Zertifikatsvorlage.
privateca.certificateTemplates.getIamPolicy IAM-Richtlinie für eine Zertifikatvorlage abrufen
privateca.certificateTemplates.setIamPolicy Legen Sie eine IAM-Richtlinie für eine Zertifikatsvorlage fest.
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 Rufen Sie einen lang andauernden Vorgang ab.
privateca.operations.list Vorgänge mit langer Ausführungszeit in einem Projekt auflisten

Nächste Schritte