Wenn Sie gegenseitige TLS-Verbindungen (mTLS) zwischen Compute Engine-Arbeitslasten herstellen möchten, können Sie die gcloud CLI verwenden, um verwaltete Arbeitslastidentitäten zu konfigurieren und die automatische Bereitstellung und Lebenszyklusverwaltung von Zertifikaten einzurichten. Für die Zertifikatsausstellung können Sie entweder eine von Google verwaltete Standardzertifizierungsstelle oder eine selbstverwaltete Zertifizierungsstelle mit dem Certificate Authority Service verwenden.
Hinweis
Erstellen oder wählen Sie ein Google Cloud -Projekt aus.
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Project Creator“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Informationen zum Zuweisen von Rollen
-
Erstellen Sie ein Projekt in Google Cloud :
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Projekt in Google Cloud , das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Projekt in Google Cloud aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
Informieren Sie sich über verwaltete Arbeitslastidentitäten.
Informationen zur Zertifikatsausstellung mit dem Certificate Authority Service
Compute Engine-Arbeitslasten mit verwalteten Arbeitslastidentitäten authentifizieren
Aktivieren Sie die IAM- und Certificate Authority Service-APIs, falls sie noch nicht aktiviert sind:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollengcloud services enable iam.googleapis.com
privateca.googleapis.com Konfigurieren Sie die Google Cloud CLI so, dass ein Projekt für die Abrechnung und das Kontingent verwendet wird.
gcloud config set billing/quota_project PROJECT_ID
Ersetzen Sie PROJECT_ID durch die ID des Projekts.
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 (
-
Zum Erstellen und Konfigurieren von 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 von verwalteten 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 einen Workload Identity-Pool.
- Zertifizierungsstelle konfigurieren (um eine Zertifizierungsstellenoption auszuwählen, Zertifizierungsstellen zu konfigurieren und den Pool zu aktualisieren).
- Erstellen Sie verwaltete Arbeitslastidentitäten im Workload Identity-Pool.
- Definieren Sie eine Attestierungsrichtlinie für Arbeitslasten und erstellen Sie ein Dienstkonto.
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).
Erstellen Sie einen Workload Identity-Pool.
Wenn Sie verwaltete Arbeitslastidentitäten konfigurieren möchten, müssen Sie einen Pool im Modus
TRUST_DOMAINerstellen.gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --mode="TRUST_DOMAIN"
Ersetzen Sie POOL_ID durch die eindeutige ID für den Pool. 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.
Führen Sie den Befehl
workload-identity-pools describeaus, um zu prüfen, ob Ihr Workload Identity-Pool im ModusTRUST_DOMAINerstellt wurde.gcloud iam workload-identity-pools describe POOL_ID \ --location="global"
Die Ausgabe sieht etwa so aus:
mode: TRUST_DOMAIN name: projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID state: ACTIVE
Wenn
mode: TRUST_DOMAINin der Befehlsausgabe nicht vorhanden ist, prüfen Sie, ob Sie die gcloud CLI korrekt konfiguriert haben, um das richtige Projekt für Abrechnung und Kontingent zu verwenden. Prüfen Sie, ob Sie die aktuelle Version der gcloud CLI nutzen.
CA-Option auswählen
Wählen Sie zum Signieren Ihrer Arbeitslastzertifikate die Zertifizierungsstellenoption (CA) aus, die am besten zu Ihrem Anwendungsfall passt:
Von Google verwaltete Standard-CA: Verwenden Sie diese Option für eine vollständig verwaltete, kostenlose Lösung. Die Standardzertifizierungsstelle bietet eine gemeinsame Root of Trust für alleGoogle Cloud -Nutzer.
Benutzerdefinierte Zertifizierungsstelle: Verwenden Sie diese Option, um Ihre eigene Public-Key-Infrastruktur (PKI) über den Certificate Authority Service zu konfigurieren. Diese Option ist geeignet, wenn Sie eine benutzerdefinierte Root of Trust benötigen oder Signaturschlüssel in einem Hardware Security Module (HSM) speichern müssen, um Compliance-Anforderungen zu erfüllen. Der Certificate Authority Service wird separat von der verwalteten Arbeitslastidentität in Rechnung gestellt. Weitere Informationen finden Sie unter CA Service – Preise.
Zertifizierungsstelle konfigurieren
Standard-Zertifizierungsstelle
Wenn Sie die Standard-CA an den Workload Identity-Pool binden möchten, aktualisieren Sie den Workload Identity-Pool mit dem Flag use-default-shared-ca.
gcloud iam workload-identity-pools update TRUST_DOMAIN_NAME \
--location="global" \
--use-default-shared-ca \
--project=PROJECT_ID
Ersetzen Sie Folgendes:
TRUST_DOMAIN_NAME: Der Name der Vertrauensdomäne.PROJECT_ID: die Projekt-ID
Benutzerdefinierte Zertifizierungsstelle
So konfigurieren Sie verwaltete Arbeitslastidentitäten mit einer benutzerdefinierten CA:
- CA Service so konfigurieren, dass Zertifikate für verwaltete Arbeitslastidentitäten ausgestellt werden
- Binden Sie die Zertifizierungsstellen an den Workload Identity-Pool.
- Verwaltete Arbeitslastidentitäten autorisieren, um Zertifikate vom CA-Pool anzufordern
CA Service so konfigurieren, dass Zertifikate für verwaltete Arbeitslastidentitäten ausgestellt werden
Erstellen Sie die empfohlene Konfiguration für Stamm- und untergeordnete Zertifizierungsstellen (CAs) mithilfe von Certificate Authority Service-Pools. Der untergeordnete CA-Pool stellt die X.509-Arbeitslastidentitätszertifikate für VMs aus.
Die CA-Pools, die für die Ausstellung von Zertifikaten für Compute Engine-VMs mithilfe von verwalteten Arbeitslastidentitäten konfiguriert sind, müssen sich in derselben Region wie die VM befinden. Wenn Sie eine multiregionale Architektur für Sicherheit gegen regionale Ausfälle entwerfen möchten, empfehlen wir, für jede Region Ihrer Arbeitslast einen untergeordneten CA-Pool des Certificate Authority Service zu konfigurieren. So kann jede Ihrer Compute Engine-VMs auf einen untergeordneten Certificate Authority Service-CA-Pool in der Region verweisen.
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 Stamm-CA-Pool zu konfigurieren.
Sie können einen CA-Pool nach dem Erstellen nicht mehr verschieben oder exportieren.
Erstellen Sie den Root-CA-Pool in der Enterprise-Stufe, indem Sie den Befehl
gcloud privateca pools createausführen. Die Stufe Enterprise ist für die Ausstellung langlebiger Zertifikate mit geringem Volumen vorgesehen.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 eine Stamm-CA im Stamm-CA-Pool, indem Sie den Befehl
gcloud privateca roots createausführen. Möglicherweise werden Sie aufgefordert, die Root-CA zu aktivieren, wenn dies die einzige CA im Root-CA-Pool ist.Sie können beispielsweise einen Befehl wie den folgenden verwenden, um eine Stamm-CA 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 Stamm-CA. 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 Name der Zertifizierungsstelle 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 Stamm-CA.
- 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 zusätzliche Stamm-CA im Stamm-CA-Pool zu erstellen. Dies kann für die Rotation der Stamm-Zertifizierungsstelle nützlich sein.
Untergeordnete Zertifizierungsstellen konfigurieren
Verwenden Sie die Google Cloud CLI-Schnittstelle für den Certificate Authority Service, um einen untergeordneten CA-Pool und eine untergeordnete Zertifizierungsstelle zu erstellen.
Wenn Sie mehrere Szenarien für die Zertifikatsausstellung haben, können Sie für jedes dieser Szenarien eine untergeordnete Zertifizierungsstelle erstellen. Wenn Sie einem CA-Pool mehrere untergeordnete Zertifizierungsstellen hinzufügen, können Sie außerdem ein besseres Load Balancing von Zertifikatsanfragen erreichen.
Verwenden Sie den Befehl gcloud privateca pools create, um einen untergeordneten CA-Pool zu erstellen.
Erstellen Sie den untergeordneten CA-Pool in der DevOps-Stufe. Diese Stufe ist für die Ausstellung von kurzlebigen Zertifikaten in großen Mengen vorgesehen.
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 createeine untergeordnete Zertifizierungsstelle im untergeordneten CA-Pool. Ändern Sie nicht den standardmäßigen konfigurationsbasierten Ausstellungsmodus.Sie können beispielsweise einen 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 Name der Zertifizierungsstelle 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 Organisation, die die untergeordnete Zertifizierungsstelle ausstellt.
Weitere Informationen finden Sie unter CA-Pools erstellen. Weitere Informationen zu den
subject-Feldern für die Zertifizierungsstelle finden Sie unter Inhaber.
Zertifizierungsstellen an den Workload Identity-Pool binden
Nachdem Sie Ihre CA-Hierarchie erstellt haben, binden Sie die CAs an den Workload Identity-Pool, indem Sie den Pool mit der Konfiguration für die Zertifikatsausstellung der einzelnen CAs aktualisieren.
Erstellen Sie eine
issuance-config.yaml-Datei mit folgendem Inhalt:inlineCertificateIssuanceConfig: caPools: REGION: projects/PROJECT_ID/locations/REGION/caPools/SUBORDINATE_CA_POOL_ID keyAlgorithm: RSA_2048 lifetime: 86400s rotationWindowPercentage: 50
Ersetzen Sie in der Datei Folgendes:
REGION: Die Region, in der sich der untergeordnete CA-Pool befindet.PROJECT_ID: Die ID des Projekts, das den untergeordneten CA-Pool enthält.SUBORDINATE_CA_POOL_ID: Die ID des untergeordneten CA-Pools.
Führen Sie den folgenden Befehl aus, um den Workload Identity-Pool zu aktualisieren:
gcloud iam workload-identity-pools update POOL_ID \ --location="global" \ --inline-certificate-issuance-config-file=ISSUANCE_CONFIG_FILE
Ersetzen Sie Folgendes:
POOL_IDist die eindeutige ID des Pools.ISSUANCE_CONFIG_FILE: Der Pfad zur Dateiissuance-config.yaml.
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.
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/name/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 Arbeitslastidentitä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/name/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.
Verwaltete Arbeitslastidentitäten erstellen
Verwaltete Arbeitslastidentitäten ermöglichen Google Cloud , automatisch Anmeldedaten für Identitäten des Workload Identity-Pools für Ihre Arbeitslasten bereitzustellen. Workload Identities werden in einem Workload Identity-Pool definiert und in administrativen Grenzen, sogenannten Namespaces, organisiert.
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 eines 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-ID, die so formatiert ist:
spiffe://POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID
Richtlinie zur Arbeitslastattestierung definieren
In diesem Abschnitt wird beschrieben, wie Sie eine Attestierungsrichtlinie einrichten. Diese Richtlinie bestimmt, welche Attribute von Google Cloud IAM verwendet werden, um die Identität der Arbeitslast zu überprüfen. Nach der Überprüfung kann die aufrufende Arbeitslast ein Berechtigungsnachweis erhalten.
Die Überprüfung basiert auf einem der folgenden Attribute der Arbeitslast:
- E-Mail-Adresse des angehängten Dienstkontos
- UID des angehängten Dienstkontos
- Name der VM-Instanz
- VM-Instanz-ID
Richtlinie zur Arbeitslastattestierung 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 mithilfe des angehängten Dienstkontos, des Instanznamens oder der Instanz-ID attestieren kann.
Erstellen Sie eine JSON-formatierte Attestierungsrichtliniendatei.
Optional: Wenn Sie X.509-Anmeldedaten auf Ihrer Compute Engine-Instanz erhalten möchten, müssen Sie ein angehängtes Dienstkonto aktivieren. Wir empfehlen, ein neues Dienstkonto an Ihre Arbeitslast anzuhängen. Erstellen Sie es zuerst mit dem folgenden Befehl:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ersetzen Sie
SERVICE_ACCOUNT_NAMEdurch den Namen des Dienstkontos.Erstellen Sie eine JSON-formatierte Attestierungsrichtliniendatei, die auf der E-Mail-Adresse des Dienstkontos, der Dienstkonto-UID, dem Instanznamen oder der Instanz-ID basiert.
E-Mail-Adresse des Dienstkontos
So erstellen Sie eine Attestierungsrichtliniendatei, die auf der E-Mail-Adresse des Dienstkontos basiert: Erstellen Sie eine Datei mit folgendem 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ältFü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 folgendem 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ältFühren Sie den folgenden Befehl aus, um die Projektnummer des Projekts abzurufen, das die verwaltete Identität oder das Dienstkonto enthält, die 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
Führen Sie den folgenden Befehl aus, um die eindeutige ID des Dienstkontos abzurufen:
gcloud iam service-accounts describe SERVICE_ACCOUNT_EMAIL\ --format="value(uniqueId)"Instanzname
Erstellen Sie eine Datei mit folgendem Inhalt, um eine Attestierungsrichtliniendatei zu erstellen, die auf dem Instanznamen basiert:
{ "attestationRules": [ { "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/name/zones/ZONE/instances/INSTANCE_NAME" } ], }Ersetzen Sie Folgendes:
WORKLOAD_PROJECT_NUMBER: die Nummer des Projekts, das die VM-Instanz oder das Dienstkonto enthältFü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)"
ZONE: die Compute Engine-VM-ZoneINSTANCE_NAME: der Name einer neuen oder vorhandenen Compute Engine-VM-Instanz
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ältFü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 Compute Engine-VM-Instanz-IDDer 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-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 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 zuvor erstellte Attestierungsrichtlinie darstellt.
Sie können die Richtlinie auch aktualisieren, indem Sie Attestierungsregeln einzeln 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
Führen Sie die folgenden Befehle aus, um zu erfahren, wie 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
Optional: Vertrauensföderation zwischen Workload Identity-Pools aktivieren
Wenn Sie die gegenseitige Authentifizierung für Arbeitslasten in verschiedenen Vertrauensdomänen aktivieren möchten, können Sie die Vertrauensföderation konfigurieren.
Erstellen Sie eine
trust-config.yaml-Datei mit folgendem Inhalt:inlineTrustConfig: additionalTrustBundles: POOL_ID.global.PROJECT_NUMBER.workload.id.goog: trustAnchors: - pemCertificate: "-----BEGIN CERTIFICATE-----\nPEM_ENCODED_CERTIFICATE\n-----END CERTIFICATE-----"
Ersetzen Sie in der Datei Folgendes:
POOL_ID: Die ID des Workload Identity-Pools, mit dem Sie eine Föderation herstellen möchten.PROJECT_NUMBER: Die Projektnummer des Workload Identity-Pools, mit dem Sie eine Föderation herstellen möchten.PEM_ENCODED_CERTIFICATE: Das PEM-codierte Stamm-CA-Zertifikat des Workload Identity-Pools, mit dem Sie eine Föderation herstellen möchten.
Führen Sie den folgenden Befehl aus, um den Workload Identity-Pool mit der Vertrauenskonfiguration zu aktualisieren:
gcloud iam workload-identity-pools update POOL_ID \ --location="global" \ --inline-trust-config-file=TRUST_CONFIG_FILE
Ersetzen Sie Folgendes:
POOL_ID: die eindeutige ID des Pools.TRUST_CONFIG_FILE: der Pfad zur Dateitrust-config.yaml.
Nächste Schritte
- Fehlerbehebung bei der Authentifizierung von verwalteten Arbeitslastidentitäten für Compute Engine
- Authentifizierung von Arbeitslast zu Arbeitslast mit mTLS konfigurieren
- Load Balancing mit Backend-mTLS mithilfe einer verwalteten Arbeitslastidentität einrichten
- Weitere Informationen zum Erstellen von CA-Pools.
Überzeugen Sie sich selbst
Wenn Sie mit Google Cloudnoch 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