Auf dieser Seite wird beschrieben, wie Sie verwaltete Arbeitslastidentitäten 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 Zertifizierungsstellen-Pools (Certificate Authority, CA) so, dass Zertifikate mit dem Zertifizierungsstellendienst ausgestellt werden. CA Service ist ein hochverfügbarer, skalierbarer Google Cloud-Dienst, mit dem die Bereitstellung, Verwaltung und Sicherheit von CA-Diensten vereinfacht und automatisiert wird. 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ät anfordern
Weitere Informationen zur Zertifikatausstellung mit dem Certificate Authority Service
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 für die Abrechnung und das Kontingent das Projekt verwendet wird, das der Zulassungsliste hinzugefügt 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 von Zertifikaten für verwaltete 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.
- Definieren Sie eine Richtlinie für die Attestierung von Arbeitslasten und erstellen Sie ein Dienstkonto.
- Konfigurieren Sie den Zertifizierungsstellendienst zum Ausstellen von Zertifikaten für verwaltete Arbeitslastidentitäten.
- Verwaltete Arbeitslastidentitäten autorisieren, um Zertifikate vom CA-Pool anzufordern
- Definieren Sie die Konfiguration der Vertrauensstellung und Zertifikatsausstellung.
- Erstellen Sie eine Konfigurationsdatei, um die Partnermetadaten für eine VM hochzuladen.
Compute Administrator:
Aktivieren Sie verwaltete Arbeitslastidentitäten für Arbeitslasten, die in Compute Engine ausgeführt werden:
Verwaltete Arbeitslastidentitäten erstellen
Mit verwalteten Arbeitslastidentitäten kann Google Cloud automatisch Anmeldedaten für Identitäten in Workload Identity-Pools für Ihre Arbeitslasten bereitstellen. Workload-Identitäten werden in einem Workload Identity-Pool definiert und in administrativen Grenzen organisiert, die als namespaces bezeichnet werden.
Erstellen Sie einen Workload Identity-Pool.
Sie müssen einen Pool im Modus TRUST_DOMAIN
erstellen, um verwaltete Arbeitslastidentitä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 Workload Identity-Pool 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 der verwalteten 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 die 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 der verwalteten Arbeitslastidentität ist die SPIFFE-Kennung, die folgendermaßen formatiert ist:
spiffe://POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID
Richtlinie für die Attestierung von Arbeitslasten definieren
In diesem Abschnitt wird beschrieben, wie Sie eine Attestierungsrichtlinie einrichten. Mit dieser Richtlinie wird festgelegt, welche Attribute für Google Cloud IAM verwendet werden, um die Identität der Arbeitslast zu überprüfen. Nach der Bestätigung kann die anrufende Arbeitslast ein Anmeldedaten empfangen. 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
Richtlinie zur Attestierung von Arbeitslasten 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 attestieren 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, Ihrer Arbeitslast ein neues Dienstkonto zuzuweisen. Erstellen Sie es dazu mit dem folgenden Befehl:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ersetzen Sie
SERVICE_ACCOUNT_NAME
durch den Namen des Dienstkontos.Erstellen Sie eine Attestierungsrichtliniendatei im JSON-Format, die auf der E-Mail-Adresse, der UID oder der Instanz-ID des Dienstkontos basiert.
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 mit der verwalteten Identität oder dem Dienstkonto abzurufen, 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 mit der VM verknüpft ist
UID des Dienstkontos
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 mit der verwalteten Identität oder dem Dienstkonto abzurufen, das Sie gerade erstellt haben:
gcloud projects describe $(gcloud config get-value project) \ --format="value(projectNumber)"
SERVICE_ACCOUNT_UID
: die UID des Dienstkontos, das mit der VM verknüpft ist
Instanz-ID
Wenn Sie eine Attestierungsrichtliniendatei erstellen möchten, die auf der Instanz-ID basiert, 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 mit der verwalteten Identität oder dem Dienstkonto abzurufen, 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 die 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-Richtliniendatei, 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 der verwalteten 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 die 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 zuvor erstellte Attestierungsrichtlinie darstellt.
Sie können die Richtlinie auch aktualisieren, indem Sie Attestierungsregeln einzeln hinzufügen oder entfernen. Führen Sie 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
Führen Sie die folgenden Befehle aus, um die Attestierungsregeln aufzulisten oder zu 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, CA) mithilfe von CA Service-Pools. Der untergeordnete CA-Pool stellt den VMs die X.509-Zertifikate für Arbeitslastidentitäten 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-Oberfläche für den Certificate Authority Service, um einen Root-CA-Pool zu konfigurieren.
gcloud
Erstellen Sie einen Stamm-CA-Pool.
Erstellen Sie den Stamm-CA-Pool auf der Ebene Enterprise, die für die langlebige Ausgabe von Zertifikaten mit geringem Volumen vorgesehen ist. Verwenden Sie dazu den Befehl
gcloud privateca pools create
.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 Stamm-CA-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. Möglicherweise werden Sie aufgefordert, die Stamm-CA zu aktivieren, wenn dies die einzige CA im Stamm-CA-Pool ist.Beispielsweise könnten Sie 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 Stamm-CA-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 Root-Zertifizierungsstelle erstellen. Weitere Informationen zu den
subject
-Feldern für die Zertifizierungsstelle finden Sie unter Inhaber.Optional: Wiederholen Sie die vorherigen Schritte, um eine weitere Stamm-CA im Stamm-CA-Pool zu erstellen. Das kann für die Rotation der Stamm-CA nützlich sein.
Untergeordnete Zertifizierungsstellen konfigurieren
Verwenden Sie die Google Cloud CLI-Oberfläche für den Certificate Authority Service, um einen untergeordneten CA-Pool und eine untergeordnete Zertifizierungsstelle zu erstellen.
Wenn Sie mehrere Szenarien für die Zertifikatausstellung haben, können Sie für jedes dieser Szenarien eine untergeordnete Zertifizierungsstelle erstellen. Außerdem können Sie durch das Hinzufügen mehrerer untergeordneter CAs in einem CA-Pool das Load Balancing von Zertifikatsanfragen verbessern.
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 kurzlebige Zertifikatausstellung 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 ähnlichen Befehl wie den 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 Zertifizierungsstelle. 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 Stamm-CA-Pools.
- REGION: die Region des Stamm-CA-Pools.
- SUBORDINATE_CA_CN: der Name der untergeordneten Zertifizierungsstelle
- SUBORDINATE_CA_ORGANIZATION: der Name der ausstellenden Organisation der untergeordneten Zertifizierungsstelle.
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
) in jedem untergeordneten CA-Pool zu. Mit dem folgendengcloud privateca pools add-iam-policy-binding
-Befehl wird die verwaltete Arbeitslastidentität autorisiert, Zertifikate aus den Zertifikatsketten des CA-Dienstes 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 Leser von CA-Dienstpools (
roles/privateca.poolReader
) in den 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.
Konfiguration für Vertrauensstellung und Zertifikatsausstellung definieren
Anhand dieser Informationen erstellen Sie eine JSON-Datei, 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 die 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 sie die Gültigkeitsdauer des ausgestellten Zertifikats einschränken kann.
- ROTATION_WINDOW_PERCENTAGE: Optional: Der Prozentsatz der Lebensdauer des Zertifikats, nach dem eine Verlängerung ausgelöst wird. Der Wert muss zwischen 1 und 100 liegen. Die Standardeinstellung ist 66 Prozent. Sie müssen den Prozentsatz des Rotationsfensters in Bezug auf die Zertifikatslaufzeit festlegen, damit die Zertifikatserneuerung mindestens 7 Tage nach der Ausstellung des Zertifikats und mindestens 7 Tage vor Ablauf des Zertifikats erfolgt.
Vertrauenskonfiguration definieren
Die trust config enthält die Trust-Anchors zur Validierung 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 PEM-formatierter CA-Zertifikate, 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 können Sie eine PEM-formatierte
trust-anchor.pem
-Datei in einen einzeiligen String codieren: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, um Anwendungen auszuführen, 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
- Authentifizierung von Arbeitslast zu Arbeitslast mit mTLS konfigurieren
- Weitere Informationen zum Erstellen von CA-Pools.
Überzeugen Sie sich selbst
Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie einfach 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