In diesem Dokument wird beschrieben, wie Sie die automatische Bereitstellung und die Lebenszyklusverwaltung verwalteter Arbeitslastidentitäten für Compute Engine einrichten. Sie konfigurieren CA-Pools so, dass Zertifikate mit Certificate Authority Service (CA) ausgestellt werden. Dies ist ein hochverfügbarer, skalierbarer Google Cloud Dienst, der die Bereitstellung, Verwaltung und Sicherheit von CA-Diensten vereinfacht und automatisiert. Jede VM wird mit X.509-Anmeldedaten aus dem konfigurierten CA-Pool bereitgestellt. Diese Anmeldedaten können dann zum Herstellen von mTLS-Verbindungen verwendet werden.
Hinweis
- Lesen Sie die Dokumentation Verwaltete Arbeitslastidentitäten – Übersicht.
Aktivieren Sie die Compute Engine API:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable compute.googleapis.com
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 von VMs benötigen, die verwaltete Zertifikate für die Identitätsföderation von Arbeitslasten zur Authentifizierung bei anderen Arbeitslasten verwenden:
-
Compute-Instanzadministrator (Version 1) (
roles/compute.instanceAdmin.v1) -
Service Account User (
roles/iam.serviceAccountUser)
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.
Übersicht
Mit verwalteten Arbeitslastidentitäten für Compute Engine können Sie wechselseitig authentifizierte und verschlüsselte Kommunikation zwischen zwei beliebigen Compute Engine-VMs implementieren. Arbeitslastanwendungen, die auf den konfigurierten VMs ausgeführt werden, können die X.509-Anmeldedaten für mTLS pro VM verwenden. Der Gast-Agent rotiert diese mTLS-Zertifikate automatisch und aktualisiert die Anmeldedaten auf der VM.
Mit verwalteten Arbeitslastidentitäten können Sie die Identität für Ihre Arbeitslasten zentral verwalten. Compute Engine-VMs können autorisiert werden, eine Arbeitslastidentität zu empfangen, die auf Schlüsselattributen wie der Instanz-ID, dem Instanznamen oder dem angehängten Dienstkonto basiert. Damit die Arbeitslasten bestätigt werden können, muss der Compute-Administrator oder ‑Entwickler VM-Instanzen für die Arbeitslast mit einem übereinstimmenden Instanznamen, einer übereinstimmenden Instanz-ID, einem übereinstimmenden Dienstkontonamen oder einer übereinstimmenden Dienstkonto-ID erstellen.
Verwaltete Arbeitslastidentitäten entsprechen dem Open-Source-Standard Secure Production Identity Framework for Everyone (SPIFFE).
SPIFFE-IDs für Google Cloud Arbeitslasten haben das folgende Format:
spiffe://<TRUST_DOMAIN/ns/NAMESPACE/sa/WORKLOAD_ID.
Die TRUST_DOMAIN entspricht einem IAM-Workload Identity-Pool (Identity and Access Management).
Verwaltete Arbeitslastidentitäten werden in einem Workload Identity-Pool definiert, der als Container der obersten Ebene für Arbeitslastidentitäten mit einer gemeinsamen Vertrauensgrenze dient. In einem Workload Identity-Pool werden Identitäten in administrativen Grenzen organisiert, die als Namespaces bezeichnet werden. Damit eine Arbeitslast eine verwaltete Identität erhält, müssen Sie Attestierungsrichtlinien definieren, um sie zu autorisieren. Eine Richtlinie zur Arbeitslastattestierung sorgt dafür, dass nur vertrauenswürdige Arbeitslasten eine verwaltete Identität bestätigen können.
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.
- Richtlinie zur Arbeitslastattestierung definieren
- Certificate Authority Service so konfigurieren, dass Zertifikate für verwaltete Arbeitslastidentitäten ausgestellt werden
- Verwaltete Arbeitslastidentitäten autorisieren, um Zertifikate vom CA-Pool anzufordern
- Konfiguration für Vertrauen und Zertifikatausstellung im Workload Identity-Pool definieren
Compute Administrator:
- Instanzen für die Verwendung von Arbeitslastidentitäten für einzelne Compute Engine-Instanzen konfigurieren
- Zugriff auf Anmeldedaten für Arbeitslasten auf einer Linux-Instanz
Verwaltete Arbeitslastidentitäten in der Identitäts- und Zugriffsverwaltung konfigurieren
Folgen Sie der Anleitung unter Authentifizierung von verwalteten Arbeitslastidentitäten konfigurieren .
In dieser Anleitung wird beschrieben, wie Sie Folgendes ausführen:
- Erstellen Sie einen Workload Identity-Pool.
- Erstellen Sie Namespaces im Workload Identity-Pool. Sie verwenden die Namespaces, um administrative Grenzen für Ihre verwalteten Arbeitslastidentitäten zu erstellen, z. B. einen Namespace für jede der Anwendungen, die Ihrer Organisation gehören.
- Erstellen Sie eine verwaltete Arbeitslastidentität in einem Namespace im Workload Identity-Pool. Sie können beispielsweise einen Namespace für eine Anwendung erstellen und in diesem Namespace verwaltete Identitäten für die Mikrodienste erstellen, die diese Anwendung unterstützen.
- Optional: Erstellen Sie ein Dienstkonto, um Attestierungsregeln basierend auf der Dienstkonto-ID zu erstellen.
- Erstellen Sie eine Attestierungsrichtlinie für Arbeitslasten, mit der Ihre Arbeitslast Anmeldedaten für die verwaltete Arbeitslastidentität erhalten kann. Compute Engine-VMs können autorisiert werden, eine verwaltete Arbeitslastidentität anhand von Schlüsselattributen wie der Instanz-ID, dem Instanznamen oder dem angehängten Dienstkonto zu empfangen.
- Konfigurieren Sie den Certificate Authority Service so, dass Zertifikate für verwaltete Arbeitslastidentitäten ausgestellt werden:
- Stamm-CA-Pool konfigurieren
- Untergeordnete CAs konfigurieren
- Verwalteten Workload Identity-Pool autorisieren, um Zertifikate vom CA-Pool anzufordern
Verwaltete Arbeitslastidentitäten für einzelne Compute-Instanzen aktivieren
Sie können verwaltete Arbeitslastidentitäten für eine Compute-Instanz aktivieren, wenn Sie die Instanz erstellen oder die Konfiguration für eine vorhandene Instanz aktualisieren.
Instanzen mit aktivierten verwalteten Arbeitslastidentitäten erstellen
So erstellen Sie eine Compute-Instanz, um das Feature für verwaltete Arbeitslastidentitäten für die Instanz zu aktivieren:
- Wenn die Attestierung der Instanz für die Workload Identity auf einem Dienstkonto basiert, geben Sie dieses Dienstkonto an.
Fügen Sie die Flags
--identityund--identity-certificateein.
gcloud
Verwenden Sie den Befehl gcloud alpha compute instances create, um eine neue Instanz zu erstellen.
Wenn Sie ein Dienstkonto für die Attestierung verwenden, geben Sie die Dienstkontoinformationen beim Erstellen der Instanz an.
Sie können dem Befehl zusätzliche Zeilen hinzufügen, um die Instanz zu konfigurieren, z. B. den Maschinentyp und das Image, anstatt die Standardwerte zu verwenden. Weitere Informationen finden Sie unter VM-Instanz erstellen und starten.
gcloud alpha compute instances create INSTANCE_NAME \ --zone=INSTANCE_ZONE \ --service-account SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --identity=//TRUST_DOMAIN/ns/NAMESPACE/sa/WORKLOAD_IDENTIFIER \ --identity-certificate \ ...
Ersetzen Sie Folgendes:
INSTANCE_NAME: Ein eindeutiger Name für die Instanz. Weitere Informationen zu gültigen Instanznamen finden Sie unter Ressourcen benennen.INSTANCE_ZONE: Die Zone, in der die Instanz erstellt wird.SERVICE_ACCOUNT_NAME: der Name des Dienstkontos, das die verwaltete Identität der Arbeitslast empfangen darf.PROJECT_ID: die ID des Projekts, in dem das Dienstkonto erstellt wurde.TRUST_DOMAIN: Die ID für die Vertrauensdomäne im folgenden Format:$POOL_ID.global.$PROJECT_NUMBER.workload.id.goog
Für den Wert der Vertrauenswürdigkeitsdomain werden die folgenden Platzhalter verwendet:
POOL_ID: der Name des Workload Identity-PoolsPROJECT_NUMBER: die Projektnummer des Projekts, in dem der Workload Identity-Pool erstellt wurde
NAMESPACE: der Name des Namespace, der die Richtlinie zur Arbeitslastbestätigung enthält, die die Arbeitslast autorisiert, eine verwaltete Arbeitslastidentität zu bestätigenWORKLOAD_IDENTIFIER: der Name der verwalteten Workload Identity, die im Namespace des Workload Identity-Pools erstellt wurde
Verwaltete Arbeitslastidentitäten auf vorhandenen Instanzen aktivieren
Aktualisieren Sie die Instanz so, dass Folgendes konfiguriert wird, um verwaltete Arbeitslastidentitäten für eine vorhandene Compute-Instanz zu aktivieren:
- Wenn die Attestierung der Instanz für die Workload Identity auf einem Dienstkonto basiert und die Instanz noch kein angehängtes Dienstkonto hat, erstellen Sie ein Dienstkonto und hängen Sie es an die Instanz an.
- Aktivieren Sie das Feature mit dem Flag
--identity-certificateund geben Sie mit dem Flag--identityan, welche verwaltete Arbeitslastidentität verwendet werden soll. Starten Sie die VM neu.
gcloud
Verwenden Sie den Befehl gcloud alpha compute instances update, um die Konfiguration für eine Instanz zu aktualisieren.
Wenn der Instanz noch kein Dienstkonto angehängt ist, hängen Sie das Dienstkonto an die Instanz an.
Aktualisieren Sie die Konfiguration für eine vorhandene Instanz, um verwaltete Arbeitslastidentitäten zu aktivieren.
gcloud alpha compute instances update INSTANCE_NAME \ --zone=ZONE \ --identity-certificate \ --identity=//TRUST_DOMAIN/ns/NAMESPACE/sa/WORKLOAD_IDENTIFIER
Ersetzen Sie Folgendes:
INSTANCE_NAME: der Name der InstanzZONE: die Zone, in der sich die Instanz befindet.TRUST_DOMAIN: Die ID für die Vertrauensdomäne im folgenden Format:none $POOL_ID.global.$PROJECT_NUMBER.workload.id.goog
Für den Wert der Vertrauensdomäne werden die folgenden Platzhalter verwendet: *
POOL_ID: der Name des Workload Identity-Pools *PROJECT_NUMBER: die Projektnummer des Projekts, in dem der Workload Identity-Pool erstellt wurde +NAMESPACE: der Name des Namespace, der die Workload-Attestierungsrichtlinie enthält, die die Workload autorisiert, eine verwaltete Workload-Identität zu bestätigen +WORKLOAD_IDENTIFIER: der Name der verwalteten Workload-Identität, die im Namespace des Workload Identity-Pools erstellt wurdeHalten Sie die VM an.
gcloud alpha compute instances stop INSTANCE_NAME \ --zone=ZONE
Ersetzen Sie Folgendes:
INSTANCE_NAME: der Name der InstanzZONE: die Zone, in der sich die Instanz befindet.
Starten Sie die VM.
gcloud alpha compute instances start INSTANCE_NAME \ --zone=ZONE
Ersetzen Sie Folgendes:
INSTANCE_NAME: der Name der InstanzZONE: die Zone, in der sich die Instanz befindet.
Zugriff auf Anmeldedaten für Arbeitslasten auf einer Linux-VM
Nachdem Sie eine Compute-Instanz erstellt und gestartet haben, die verwaltete Arbeitslastidentitäten verwendet, wird die Rotation der Anmeldedaten für die Instanz automatisch von der Google Cloud Infrastruktur (einschließlich des Gast-Agents) bereitgestellt und verwaltet.
Die Arbeitslastzertifikate, einschließlich des privaten Schlüssels und der Vertrauens-Bundles, werden in einem bestimmten Verzeichnis im Dateisystem der VM platziert: /var/run/secrets/workload-spiffe-credentials. Anwendungen können die Zertifikate, den privaten Schlüssel und das Vertrauens-Bundle direkt aus dem Dateisystem lesen, um mTLS-Verbindungen herzustellen.
Der Compute Engine-Gast-Agent im Gastbetriebssystem führt einen Aktualisierungsjob für die Arbeitslast aus und erstellt bei Bedarf das Verzeichnis /var/run/secrets/workload-spiffe-credentials. Die Verzeichnisberechtigungen sind auf 0755 (rwxr-xr-x) festgelegt.
Das Verzeichnis enthält die folgenden Dateien, die mit 0644 (rw-r--r--)-Berechtigungen erstellt wurden:
private_key.pem: Ein privater Schlüssel im PEM-Formatcertificates.pem: Ein Paket von PEM-formatierten X.509-Zertifikaten, die für andere VMs als Clientzertifikatskette bereitgestellt oder als Serverzertifikatskette verwendet werden können.ca_certificates.pem: Ein Paket aus PEM-formatierten X.509-Zertifikaten, die als Trust-Anchors verwendet werden können, wenn Sie die Zertifikate von Peers validieren.spiffe://POOL_ID.global.PROJECT_NUMBER.workload.id.googconfig_status: Eine Logdatei mit Fehlermeldungen.
Anmeldedaten und Vertrauens-Bundle aktualisieren
Die Compute Engine-Steuerungsebene rotiert automatisch die Anmeldedaten für verwaltete Arbeitslastidentitäten und die Vertrauensanker regelmäßig.
Wenn Ihre Anwendungen über das Dateisystem auf die Anmeldedaten und das Vertrauens-Bundle für die Arbeitslast zugreifen, aktualisiert der Compute Engine-Gastagent die Anmeldedaten und das Vertrauens-Bundle automatisch, z. B. wenn die mTLS-Zertifikate rotiert werden.
Konfiguration der Zertifikatsausstellung und des Vertrauens aktualisieren
Sie können die Konfiguration der Zertifikatsausstellung und der Vertrauenskonfiguration für eine VM ändern, die verwaltete Arbeitslastidentitäten verwendet.
Einzelne Compute Engine-VMs aktualisieren
Wenn Sie die Konfiguration der Zertifikatsausstellung und der Vertrauenskonfiguration aktualisieren möchten, müssen Sie den Workload Identity-Pool aktualisieren. Verwenden Sie den Befehl gcloud alpha iam workload-identity-pools update wie im folgenden Beispiel:
gcloud alpha iam workload-identity-pools update WORKLOAD_IDENTITY_POOL_ID \
--location="global" \
--inline-certificate-issuance-config-file=CIC_JSON_FILE_PATH \
--inline-trust-config-file=TC_JSON_FILE_PATH \
--project=PROJECT_ID
Ersetzen Sie Folgendes:
WORKLOAD_IDENTITY_POOL_ID: Die ID des Workload Identity-Pools.CIC_JSON_FILE_PATH: Der Pfad zur neuen JSON-formatierten Konfigurationsdatei für die Zertifikatausstellung (cic.json).TC_JSON_FILE_PATH: Optional: Der Pfad zur neuen JSON-formatierten Datei mit der Vertrauenskonfiguration (tc.json). Wenn Ihre Arbeitslasten über verschiedene Vertrauensbereiche hinweg authentifiziert werden, müssen Sie diese Datei angeben. Andernfalls können Sie die Einstellung--inline-trust-configweglassen.PROJECT_ID: Der Name Ihres Google Cloud -Projekts.
Fehlerbehebung
Methoden zur Diagnose und Behebung häufiger Fehler im Zusammenhang mit dem Abrufen von Arbeitslastanmeldedaten finden Sie in der Dokumentation Fehlerbehebung bei der Authentifizierung von Arbeitslasten.
Informationen zur Fehlerbehebung bei falsch konfigurierten Pools oder Attestrichtlinien finden Sie in den Audit-Logs für Workload Identity-Pools.
Nächste Schritte
- Weitere Informationen zu den folgenden Konzepten: