Informationen zum Zugriff auf verwaltete Arbeitslastidentitäten für Compute Engine finden Sie auf der Seite für Zugriffsanfragen.
Auf dieser Seite wird beschrieben, wie Sie verwaltete Arbeitslastidentitäten für Compute Engine mit der gcloud CLI konfigurieren.
Auf dieser Seite wird beschrieben, wie Sie die automatische Bereitstellung und die Lebenszyklusverwaltung verwalteter Arbeitslastidentitäten für Compute Engine einrichten. Sie konfigurieren Zertifizierungsstellenpools (Certificate Authority, CA) so, dass Zertifikate mit dem Certificate Authority Service ausgestellt werden. CA Service ist ein hochverfügbarer, skalierbarer Google Cloud Dienst, der die Bereitstellung, Verwaltung und Sicherheit von CA-Diensten vereinfacht und automatisiert. Sie können VM-Instanzen erstellen, die mit X.509-Anmeldedaten aus dem konfigurierten CA-Pool bereitgestellt werden. Diese Anmeldedaten können dann verwendet werden, um mTLS-Verbindungen zwischen Arbeitslasten herzustellen.
Hinweise
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Zugriff auf die Vorschau der verwalteten Arbeitslastidentitäten für Compute Engine anfordern
Weitere Informationen zur Zertifikatsausstellung mit dem Certificate Authority Service
Compute Engine-Arbeitslasten mit verwalteten Arbeitslastidentitäten authentifizieren
Enable the IAM and Certificate Authority Service APIs:
gcloud services enable iam.googleapis.com
privateca.googleapis.com Konfigurieren Sie die Google Cloud CLI so, dass das Projekt verwendet wird, das für Abrechnung und Kontingent auf die Zulassungsliste gesetzt wurde.
gcloud config set billing/quota_project PROJECT_ID
Ersetzen Sie PROJECT_ID durch die ID des Projekts, das der Zulassungsliste für die Vorschau der verwalteten Arbeitslastidentität hinzugefügt wurde.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen verwalteter Arbeitslastidentitäten und zum Bereitstellen verwalteter Zertifikate für Arbeitslastidentitäten benötigen:
-
So erstellen und konfigurieren Sie verwaltete Arbeitslastidentitäten:
-
IAM Workload Identity Pool Admin (
roles/iam.workloadIdentityPoolAdmin
) -
Service Account Admin (
roles/iam.serviceAccountAdmin
)
-
IAM Workload Identity Pool Admin (
-
So erstellen und konfigurieren Sie CA-Pools:
CA Service Admin (
roles/privateca.admin
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Alternativ enthält die einfache Rolle „IAM-Inhaber“ (roles/owner
) auch Berechtigungen zum Konfigurieren verwalteter Arbeitslastidentitäten.
In einer Produktionsumgebung sollten Sie keine einfachen Rollen zuweisen, Sie können sie aber in einer Entwicklungs- oder Testumgebung gewähren.
Übersicht
Führen Sie die folgenden Aufgaben aus, um verwaltete Arbeitslastidentitäten für Ihre Anwendungen zu verwenden:
Sicherheitsadministrator:
- Erstellen Sie verwaltete Arbeitslastidentitäten in einem Workload Identity-Pool.
- Arbeitslast-Attestierungsrichtlinie definieren und Dienstkonto erstellen.
- Zertifizierungsstellendienst so konfigurieren, dass Zertifikate für verwaltete Arbeitslastidentitäten ausgestellt werden
- Verwaltete Arbeitslastidentitäten autorisieren, um Zertifikate vom CA-Pool anzufordern
- Konfiguration der Vertrauensstellung und Zertifikatsausstellung definieren:
- Konfigurationsdatei zum Hochladen der Partnermetadaten für eine VM erstellen
Compute Administrator:
Aktivieren Sie verwaltete Arbeitslastidentitäten für Arbeitslasten, die in Compute Engine ausgeführt werden:
- Für einzelne VMs.
- Für verwaltete Instanzgruppen (MIGs).
Verwaltete Arbeitslastidentitäten erstellen
Mit verwalteten Arbeitslastidentitäten kann Google Cloud automatisch Anmeldedaten für Identitäten im Workload Identity-Pool für Ihre Arbeitslasten bereitstellen. Workload-Identitäten werden in einem Workload Identity-Pool definiert und in administrativen Grenzen, sogenannten Namespaces, organisiert.
Erstellen Sie einen Workload Identity-Pool.
Sie müssen einen Pool im Modus TRUST_DOMAIN
erstellen, um verwaltete Workload-Identitäten zu erstellen. Verwenden Sie den Befehl workload-identity-pools create
, um einen Workload Identity-Pool für verwaltete Workload-Identitäten zu erstellen.
gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --mode="TRUST_DOMAIN"
Ersetzen Sie Folgendes:
POOL_ID
: die eindeutige ID des Pools. Die ID muss zwischen 4 und 32 Zeichen lang sein, nur kleingeschriebene alphanumerische Zeichen und Bindestriche enthalten und mit einem alphanumerischen Zeichen beginnen und enden. Nachdem Sie einen Workload Identity-Pool erstellt haben, können Sie seine ID nicht mehr ändern.
Verwenden Sie den Befehl workload-identity-pools describe
, um zu prüfen, ob Ihr Workload Identity-Pool im Modus TRUST_DOMAIN
erstellt wurde.
gcloud iam workload-identity-pools describe POOL_ID \ --location="global"
Die Befehlsausgabe sollte in etwa so aussehen:
mode: TRUST_DOMAIN name: projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID state: ACTIVE
Wenn mode: TRUST_DOMAIN
in der Befehlsausgabe nicht vorhanden ist, prüfen Sie, ob Ihr Projekt zur Zulassungsliste für die Vorschau der verwalteten Workload Identity hinzugefügt wurde und ob Sie die gcloud CLI korrekt konfiguriert haben, um das richtige Projekt für Abrechnung und Kontingent zu verwenden. Möglicherweise müssen Sie auf eine neuere Version der gcloud CLI aktualisieren.
Namespace erstellen
Mit dem Befehl workload-identity-pools namespaces create
können Sie einen Namespace in einem Workload Identity-Pool erstellen.
gcloud iam workload-identity-pools namespaces create NAMESPACE_ID \ --workload-identity-pool="POOL_ID" \ --location="global"
Ersetzen Sie Folgendes:
NAMESPACE_ID
: die eindeutige ID des Namespace. Die ID muss zwischen 2 und 63 Zeichen lang sein, nur kleingeschriebene alphanumerische Zeichen und Bindestriche enthalten und mit einem alphanumerischen Zeichen beginnen und enden. Nachdem Sie einen Namespace erstellt haben, können Sie seine ID nicht mehr ändern.POOL_ID
: die ID des Workload Identity-Pools, die Sie zuvor erstellt haben.
Verwaltete Arbeitslastidentität erstellen
Mit dem Befehl workload-identity-pools managed-identities create
können Sie eine verwaltete Arbeitslastidentität in einem Namespace des Workload Identity-Pools erstellen.
gcloud iam workload-identity-pools managed-identities create MANAGED_IDENTITY_ID \ --namespace="NAMESPACE_ID" \ --workload-identity-pool="POOL_ID" \ --location="global"
Ersetzen Sie Folgendes:
MANAGED_IDENTITY_ID
: die eindeutige ID für die verwaltete Identität. Die ID muss zwischen 2 und 63 Zeichen lang sein, nur kleingeschriebene alphanumerische Zeichen und Bindestriche enthalten und mit einem alphanumerischen Zeichen beginnen und enden. Nachdem Sie eine verwaltete Arbeitslastidentität erstellt haben, können Sie ihre ID nicht mehr ändern.NAMESPACE_ID
: die Namespace-ID, die Sie zuvor erstellt haben.POOL_ID
: die ID des Workload Identity-Pools, die Sie zuvor erstellt haben.
Die ID Ihrer verwalteten Arbeitslastidentität ist die SPIFFE-Kennung, die so formatiert ist:
spiffe://POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID
Arbeitslast-Attestrichtlinie definieren
In diesem Abschnitt wird beschrieben, wie Sie eine Attestierungsrichtlinie einrichten. Mit dieser Richtlinie wird festgelegt, welche Attribute von Google Cloud IAM verwendet werden, um die Identität der Arbeitslast zu bestätigen. Nach der Bestätigung kann für den Anrufer-Workload ein Anmeldedatenpaar abgerufen werden. Die Überprüfung basiert auf einem der folgenden Attribute der Arbeitslast:
- VM-Instanz-ID
- E-Mail-Adresse des angehängten Dienstkontos
- UID des angehängten Dienstkontos
Arbeitslast-Attestierungsrichtlinie mit Attestierungsregeln definieren
So erstellen Sie eine Attestierungsrichtlinie, mit der Ihre Arbeitslast die verwaltete Identität verwenden kann:
Entscheiden Sie, ob Sie eine Attestierungsrichtlinie erstellen möchten, mit der Ihre Arbeitslast die verwaltete Identität über das angehängte Dienstkonto oder über die Instanz-ID bestätigen kann.
Erstellen Sie eine Attestierungsrichtliniendatei im JSON-Format.
Optional: Wenn Sie X.509-Anmeldedaten für Ihre Compute Engine-Instanz erhalten möchten, müssen Sie ein angehängtes Dienstkonto aktivieren. Wir empfehlen, ein neues Dienstkonto an Ihre Arbeitslast anzuhängen, indem Sie es zuerst mit dem folgenden Befehl erstellen:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ersetzen Sie
SERVICE_ACCOUNT_NAME
durch den Namen des Dienstkontos.Erstellen Sie eine JSON-formatierte Attestrichtliniendatei, die auf der Grundlage der E-Mail-Adresse des Dienstkontos, der UID des Dienstkontos oder der Instanz-ID attestiert.
E-Mail-Adresse des Dienstkontos
Wenn Sie eine Attestierungsrichtliniendatei erstellen möchten, die auf der E-Mail-Adresse des Dienstkontos basiert, erstellen Sie eine Datei mit dem folgenden Inhalt:
{ "attestationRules": [ { "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/type/Instance/attached_service_account.email/SERVICE_ACCOUNT_EMAIL" } ], }
Ersetzen Sie Folgendes:
WORKLOAD_PROJECT_NUMBER
: die Nummer des Projekts, das die VM-Instanz oder das Dienstkonto enthält
Führen Sie den folgenden Befehl aus, um die Projektnummer des Projekts abzurufen, das die verwaltete Identität oder das Dienstkonto enthält, das Sie gerade erstellt haben:
gcloud projects describe $(gcloud config get-value project) \ --format="value(projectNumber)"
SERVICE_ACCOUNT_EMAIL
: die E-Mail-Adresse des Dienstkontos, das an die VM angehängt ist.
Dienstkonto-UID
Wenn Sie eine Attestierungsrichtliniendatei erstellen möchten, die auf der UID des Dienstkontos basiert, erstellen Sie eine Datei mit dem folgenden Inhalt:
{ "attestationRules": [ { "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/type/Instance/attached_service_account.uid/SERVICE_ACCOUNT_UID" } ], }
Ersetzen Sie Folgendes:
WORKLOAD_PROJECT_NUMBER
: die Nummer des Projekts, das die VM-Instanz oder das Dienstkonto enthält
Führen Sie den folgenden Befehl aus, um die Projektnummer des Projekts abzurufen, das die verwaltete Identität oder das Dienstkonto enthält, das Sie gerade erstellt haben:
gcloud projects describe $(gcloud config get-value project) \ --format="value(projectNumber)"
SERVICE_ACCOUNT_UID
: Die UID des Dienstkontos, das an die VM angehängt ist.
Instanz-ID
Wenn Sie eine Attestierungsrichtliniendatei erstellen möchten, die auf der Grundlage der Instanz-ID attesten wird, erstellen Sie eine Datei mit folgendem Inhalt:
{ "attestationRules": [ { "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/uid/zones/ZONE/instances/INSTANCE_ID" } ], }
Ersetzen Sie Folgendes:
WORKLOAD_PROJECT_NUMBER
: die Nummer des Projekts, das die VM-Instanz oder das Dienstkonto enthält
Führen Sie den folgenden Befehl aus, um die Projektnummer des Projekts abzurufen, das die verwaltete Identität oder das Dienstkonto enthält, das Sie gerade erstellt haben:
gcloud projects describe $(gcloud config get-value project) \ --format="value(projectNumber)"
INSTANCE_ID
: die ID der Compute Engine-VM-Instanz
Der Wert für eine Instanz-ID muss von einer vorhandenen Compute Engine-Instanz stammen. Führen Sie den folgenden Befehl aus, um Ihre Instanz-ID abzurufen:
gcloud compute instances describe INSTANCE_NAME --zone=ZONE --format="get(id)"
INSTANCE_NAME
: Der Name der Compute Engine-VM-InstanzZONE
: die Compute Engine-VM-Zone
Erstellen Sie die Attestierungsrichtlinie mit der JSON-Datei, die Sie zuvor in diesem Dokument erstellt haben:
gcloud iam workload-identity-pools managed-identities set-attestation-rules MANAGED_IDENTITY_ID \ --namespace=NAMESPACE_ID \ --workload-identity-pool=POOL_ID \ --policy-file=PATH_TO_POLICY_JSON_FILE \ --location=global
Ersetzen Sie Folgendes:
MANAGED_IDENTITY_ID
: die eindeutige ID für die verwaltete Identität. Die ID muss zwischen 2 und 63 Zeichen lang sein, nur kleingeschriebene alphanumerische Zeichen und Bindestriche enthalten und mit einem alphanumerischen Zeichen beginnen und enden. Nachdem Sie eine verwaltete Arbeitslastidentität erstellt haben, können Sie ihre ID nicht mehr ändern.NAMESPACE_ID
: die Namespace-ID, die Sie zuvor erstellt haben.POOL_ID
: die ID des Workload Identity-Pools, die Sie zuvor erstellt haben.PATH_TO_POLICY_JSON_FILE
: Pfad zur JSON-Datei, die die von Ihnen zuvor erstellte Attestrichtlinie darstellt.
Sie können die Richtlinie auch aktualisieren, indem Sie einzelne Attestierungsregeln hinzufügen oder entfernen. Führen Sie den folgenden Befehl aus, um Ihrer Attestierungsrichtlinie eine Attestierung hinzuzufügen:
gcloud iam workload-identity-pools managed-identities add-attestation-rule MANAGED_IDENTITY_ID \ --namespace=NAMESPACE_ID \ --workload-identity-pool=POOL_ID \ --google-cloud-resource='//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/type/Instance/attached_service_account.uid/SERVICE_ACCOUNT_UID' \ --location=global
Mit den folgenden Befehlen können Sie die Attestierungsregeln auflisten oder entfernen:
gcloud iam workload-identity-pools managed-identities list-attestation-rules --help gcloud iam workload-identity-pools managed-identities remove-attestation-rule --help
Certificate Authority Service für die Ausstellung von Zertifikaten für verwaltete Arbeitslastidentitäten konfigurieren
Erstellen Sie die empfohlene Einrichtung für Stamm- und untergeordnete Zertifizierungsstellen (Certificate Authorities, CAs) mit Certificate Authority Service-Pools. Der untergeordnete CA-Pool stellt die X.509-Arbeitslastidentitätszertifikate für VMs aus.
Nachdem Sie die CA-Pools konfiguriert haben, autorisieren Sie die verwalteten Arbeitslastidentitäten, die signierten Zertifikate von den CA-Pools anzufordern und zu empfangen.
Stamm-CA-Pool konfigurieren
Verwenden Sie die Google Cloud CLI-Schnittstelle für den Certificate Authority Service, um einen Root-CA-Pool zu konfigurieren.
gcloud
Erstellen Sie den Stamm-CA-Pool.
Erstellen Sie den Stamm-CA-Pool auf der Ebene Enterprise, die für die langlebige Ausgabe von Zertifikaten mit geringem Volumen mit dem Befehl
gcloud privateca pools create
vorgesehen ist.gcloud privateca pools create ROOT_CA_POOL_ID \ --location=REGION \ --tier=enterprise
Ersetzen Sie Folgendes:
- ROOT_CA_POOL_ID: eine eindeutige ID für den Stammzertifizierungsstellen-Pool. Die ID darf bis zu 64 Zeichen lang sein und darf nur alphanumerische Zeichen in Klein- und Großschreibung, Unterstriche oder Bindestriche enthalten. Die Pool-ID muss innerhalb der Region eindeutig sein.
- REGION: die Region, in der sich der Stamm-CA-Pool befindet.
Weitere Informationen finden Sie unter CA-Pools erstellen.
Erstellen Sie mit dem Befehl
gcloud privateca roots create
eine Stamm-CA im Stamm-CA-Pool. Sie werden möglicherweise aufgefordert, die Stamm-CA zu aktivieren, wenn dies die einzige CA im Stamm-CA-Pool ist.Sie können beispielsweise einen Befehl ähnlich dem folgenden verwenden, um eine Root-Zertifizierungsstelle zu erstellen.
gcloud privateca roots create ROOT_CA_ID \ --pool=ROOT_CA_POOL_ID \ --subject "CN=ROOT_CA_CN, O=ROOT_CA_ORGANIZATION" \ --key-algorithm="ec-p256-sha256" \ --max-chain-length=1 \ --location=REGION
Ersetzen Sie Folgendes:
- ROOT_CA_ID: ein eindeutiger Name für die Stammzertifizierungsstelle. Der Name der Zertifizierungsstelle darf bis zu 64 Zeichen lang sein und darf nur alphanumerische Zeichen in Groß- und Kleinschreibung, Unterstriche oder Bindestriche enthalten. Der CA-Name muss innerhalb der Region eindeutig sein.
- ROOT_CA_POOL_ID: die ID des Stammzertifizierungsstellen-Pools.
- ROOT_CA_CN: der Name der Stammzertifizierungsstelle
- ROOT_CA_ORGANIZATION: die Organisation der Stammzertifizierungsstelle.
- REGION: die Region, in der sich der Stamm-CA-Pool befindet.
Weitere Informationen finden Sie unter Stammzertifizierungsstelle erstellen. Weitere Informationen zu den
subject
-Feldern für die Zertifizierungsstelle finden Sie unter Inhaber.Optional: Wiederholen Sie die vorherigen Schritte, um eine zusätzliche Stamm-CA im Stamm-CA-Pool zu erstellen. Das kann bei der Rotation der Stamm-CA nützlich sein.
Untergeordnete CAs konfigurieren
Verwenden Sie die Google Cloud CLI-Schnittstelle für den Certificate Authority Service, um einen untergeordneten CA-Pool und eine untergeordnete CA zu erstellen.
Wenn Sie mehrere Szenarien für die Zertifikatausstellung haben, können Sie für jedes dieser Szenarien eine untergeordnete CA erstellen. Wenn Sie einem CA-Pool mehrere untergeordnete CAs hinzufügen, können Sie außerdem ein besseres Load-Balancing von Zertifikatsanfragen erreichen.
gcloud
Verwenden Sie den Befehl gcloud privateca pools create
, um einen untergeordneten CA-Pool zu erstellen.
Erstellen Sie den untergeordneten CA-Pool auf der Ebene DevOps, die für die Ausstellung von kurzlebigen Zertifikaten mit hohem Volumen vorgesehen ist .
gcloud privateca pools create SUBORDINATE_CA_POOL_ID \ --location=REGION \ --tier=devops
Ersetzen Sie Folgendes:
- SUBORDINATE_CA_POOL_ID: eine eindeutige ID für den untergeordneten CA-Pool. Die ID darf bis zu 64 Zeichen lang sein und darf nur alphanumerische Zeichen in Groß- und Kleinschreibung, Unterstriche oder Bindestriche enthalten. Die Pool-ID muss innerhalb der Region eindeutig sein.
- REGION: die Region, in der der untergeordnete CA-Pool erstellt werden soll.
Weitere Informationen finden Sie unter CA-Pools erstellen.
Erstellen Sie mit dem Befehl
gcloud privateca subordinates create
eine untergeordnete CA im untergeordneten CA-Pool. Ändern Sie den konfigurationsbasierten Standardausstellungsmodus nicht.Beispielsweise können Sie einen Befehl ähnlich dem folgenden verwenden, um eine untergeordnete Zertifizierungsstelle zu erstellen.
gcloud privateca subordinates create SUBORDINATE_CA_ID \ --pool=SUBORDINATE_CA_POOL_ID \ --location=REGION \ --issuer-pool=ROOT_CA_POOL_ID \ --issuer-location=REGION \ --subject="CN=SUBORDINATE_CA_CN, O=SUBORDINATE_CA_ORGANIZATION" \ --key-algorithm="ec-p256-sha256" \ --use-preset-profile=subordinate_mtls_pathlen_0
Ersetzen Sie Folgendes:
- SUBORDINATE_CA_ID: ein eindeutiger Name für die untergeordnete CA. Der Name darf bis zu 64 Zeichen lang sein und darf nur alphanumerische Zeichen in Groß- und Kleinschreibung, Unterstriche oder Bindestriche enthalten. Der Poolname muss innerhalb der Region eindeutig sein.
- SUBORDINATE_CA_POOL_ID: der Name des untergeordneten CA-Pools.
- REGION: die Region, in der sich der untergeordnete CA-Pool befindet.
- ROOT_CA_POOL_ID: die ID des Stammzertifizierungsstellen-Pools.
- REGION: die Region des Stamm-CA-Pools.
- SUBORDINATE_CA_CN: der Name der untergeordneten Zertifizierungsstelle
- SUBORDINATE_CA_ORGANIZATION: der Name der Organisation, die die untergeordnete CA ausstellt.
Weitere Informationen finden Sie unter CA-Pools erstellen. Weitere Informationen zu den
subject
-Feldern für die Zertifizierungsstelle finden Sie unter Inhaber.
Verwaltete Arbeitslastidentitäten autorisieren, um Zertifikate vom CA-Pool anzufordern
Die verwalteten Arbeitslastidentitäten benötigen Berechtigungen, um Zertifikate vom CA Service anzufordern und die öffentlichen Zertifikate abzurufen.
gcloud
Weisen Sie der verwalteten Arbeitslastidentität die IAM-Rolle Anfragesteller des CA Service-Arbeitslastzertifikats (
roles/privateca.workloadCertificateRequester
) für jeden untergeordneten CA-Pool zu. Mit dem folgendengcloud privateca pools add-iam-policy-binding
-Befehl wird die verwaltete Arbeitslastidentität autorisiert, Zertifikate von den CA Service-Zertifikatsketten anzufordern.gcloud privateca pools add-iam-policy-binding SUBORDINATE_CA_POOL_ID \ --location=REGION \ --role=roles/privateca.workloadCertificateRequester \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*"
Ersetzen Sie Folgendes:
- SUBORDINATE_CA_POOL_ID: die ID für den untergeordneten CA-Pool.
- REGION: die Region des untergeordneten CA-Pools.
- PROJECT_NUMBER: die Projektnummer des Projekts, das den Workload Identity-Pool enthält.
- POOL_ID: Die ID des Workload Identity-Pools.
Weisen Sie der verwalteten Workload-Identität die IAM-Rolle CA Service Pool Reader (
roles/privateca.poolReader
) für die untergeordneten CA-Pools zu. Dadurch wird die verwaltete Arbeitslastidentität autorisiert, die signierten X.509-Zertifikate aus den Zertifikatsketten der Zertifizierungsstelle abzurufen.gcloud privateca pools add-iam-policy-binding SUBORDINATE_CA_POOL_ID \ --location=REGION \ --role=roles/privateca.poolReader \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*"
Ersetzen Sie Folgendes:
- SUBORDINATE_CA_POOL_ID: die ID für den untergeordneten CA-Pool.
- REGION: die Region des untergeordneten CA-Pools.
- PROJECT_NUMBER: die Projektnummer des Projekts, das den Workload Identity-Pool enthält.
- POOL_ID: Die ID des Workload Identity-Pools.
Vertrauens- und Zertifikatsausstellungskonfiguration definieren
Sie verwenden diese Informationen, um eine JSON-Datei zu erstellen, die beim Erstellen einer VM als Partnerdaten hochgeladen wird.
Konfiguration der Zertifikatsausstellung definieren
Die folgende Konfiguration für die Zertifikatausstellung ist erforderlich, um verwaltete Arbeitslastidentitäten für Compute Engine zu aktivieren.
{ "primary_certificate_authority_config": { "certificate_authority_config": { "ca_pool": "projects/SUBORDINATE_CA_POOL_PROJECT_ID/locations/REGION/caPools/SUBORDINATE_CA_POOL_ID" } }, "key_algorithm": "ALGORITHM", "workload_certificate_lifetime_seconds": DURATION, "rotation_window_percentage": ROTATION_WINDOW_PERCENTAGE }
Ersetzen Sie Folgendes:
- SUBORDINATE_CA_POOL_PROJECT_ID: die ID des Projekts, das den untergeordneten CA-Pool enthält.
- REGION: die Region, in der sich der untergeordnete CA-Pool befindet.
- SUBORDINATE_CA_POOL_ID: der Name des untergeordneten CA-Pools
- ALGORITHM: Der Verschlüsselungsalgorithmus, der zum Generieren des privaten Schlüssels verwendet wird. Gültige Werte sind
rsa-2048
(Standard),rsa-3072
,rsa-4096
,ecdsa-p256
undecdsa-p384
. - DURATION (optional): Die Gültigkeitsdauer des untergeordneten Zertifikats in Sekunden. Der Wert muss zwischen 3600 und 315360000 liegen. Wenn nicht angegeben, wird der Standardwert 86400 verwendet. Die tatsächliche Gültigkeit des ausgestellten Zertifikats hängt auch von der ausstellenden Zertifizierungsstelle ab, da diese die Lebensdauer des ausgestellten Zertifikats einschränken kann.
- ROTATION_WINDOW_PERCENTAGE: Optional: Der Prozentsatz der Gültigkeitsdauer des Zertifikats, bei dem eine Erneuerung ausgelöst wird. Der Wert muss zwischen 50 und 80 liegen. Der Standardwert ist 50 %. Sie müssen den Prozentsatz des Rotationsfensters in Bezug auf die Zertifikatslaufzeit festlegen, sodass die Zertifikatsverlängerung mindestens 7 Tage nach der Ausstellung des Zertifikats und mindestens 7 Tage vor dem Ablauf erfolgt.
Konfiguration der Vertrauensstellung definieren
Die Trust-Konfiguration enthält die Trust-Anchors zum Validieren von Peer-Zertifikaten. Der Support umfasst
- Ressourcen-URIs für vertrauenswürdige CA-Pools: Eine Reihe von CA-Pool-Ressourcen-URIs, denen bei der Ausstellung von Zertifikaten in derselben vertrauenswürdigen Domain vertraut wird, zu der auch die VMs gehören.
- PEM-formatierte CA-Zertifikate: Eine Reihe von PEM-formatierten CA-Zertifikaten, denen bei der Ausstellung von Zertifikaten in derselben vertrauenswürdigen Domain vertraut wird, zu der auch die VMs gehören.
{ "POOL_ID.global.PROJECT_NUMBER.workload.id.goog": { "trust_anchors": [ { "ca_pool": "projects/SUBORDINATE_CA_POOL_PROJECT_ID/locations/REGION/caPools/SUBORDINATE_CA_POOL_ID" }, { "pem_certificate": "PEM_ENCODED_CERTIFICATE" } ] } }
Ersetzen Sie Folgendes:
- POOL_ID: die ID des Workload Identity-Pools
- PROJECT_NUMBER: die Projektnummer des Projekts, das den Workload Identity-Pool enthält.
- SUBORDINATE_CA_POOL_PROJECT_ID: die ID des Projekts, das den untergeordneten CA-Pool enthält.
- REGION: die Region, in der sich der untergeordnete CA-Pool befindet
- SUBORDINATE_CA_POOL_ID: die ID des untergeordneten CA-Pools
PEM_ENCODED_CERTIFICATE: Optional: Eine Reihe zusätzlicher CA-Zertifikate im PEM-Format, denen bei der Ausstellung von Zertifikaten in derselben vertrauenswürdigen Domain vertraut wird, zu der auch die VMs gehören. Diese Zertifikate werden der Liste der Vertrauensanker des untergeordneten CA-Pools hinzugefügt. Mit dem folgenden Befehl kann eine PEM-formatierte
trust-anchor.pem
-Datei in einen einzeiligen String codiert werden:cat trust-anchor.pem | sed 's/^[ ]*//g' | sed -z '$ s/\n$//' | tr '\n' $ | sed 's/\$/\\n/g'
Konfigurationsdatei zum Hochladen der Partnermetadaten für eine VM erstellen
Erstellen Sie eine JSON-Datei, die Folgendes enthält:
- Die Konfiguration für die Arbeitslastidentität
- Die Informationen aus Konfiguration der Zertifikatsausstellung definieren
- Die Informationen aus Vertrauenskonfiguration definieren
Speichern Sie diese Datei als CONFIGS.json
. Diese Datei wird beim Erstellen von VMs verwendet, auf denen Anwendungen ausgeführt werden, die verwaltete Arbeitslastidentitäten verwenden.
Die Datei CONFIGS.json
sollte so ähnlich wie folgt aussehen:
{ "wc.compute.googleapis.com": { "entries": { "certificate-issuance-config": { "primary_certificate_authority_config": { "certificate_authority_config": { "ca_pool": "projects/PROJECT_ID/locations/REGION/caPools/SUBORDINATE_CA_POOL_ID" } }, "key_algorithm": "ALGORITHM" }, "trust-config": { "POOL_ID.global.PROJECT_NUMBER.workload.id.goog": { "trust_anchors": [{ "ca_pool": "projects/PROJECT_ID/locations/REGION/caPools/SUBORDINATE_CA_POOL_ID" }] } } } }, "iam.googleapis.com": { "entries": { "workload-identity": "spiffe://POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID" } } }
Nächste Schritte
- Fehlerbehebung bei der Authentifizierung von verwalteten Arbeitslastidentitäten für Compute Engine
- Authentifizierung von Arbeitslast zu Arbeitslast mit mTLS konfigurieren
- Weitere Informationen zum Erstellen von CA-Pools.
Überzeugen Sie sich selbst
Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
Jetzt kostenlos starten