Wenn Sie mit Infrastructure Manager eine Bereitstellung erstellen, aktualisieren oder löschen möchten, müssen Sie ein Dienstkonto verwenden. Infra Manager führt Terraform mit der Identität dieses Dienstkontos aus.
Sie benötigen kein Dienstkonto, um Informationen zu Infra Manager-Bereitstellungen aufzurufen.
Auf dieser Seite wird beschrieben, wie Sie ein Dienstkonto so konfigurieren, dass Sie Ressourcen mit Infrastructure Manager bereitstellen können.
Hinweise
- Aktivieren Sie den Infra Manager-Dienst.
- Erstellen Sie ein Dienstkonto oder identifizieren Sie ein vorhandenes Dienstkonto, das mit Infra Manager verwendet werden soll.
Zugriff auf das Dienstkonto gewähren
Wenn ein Nutzer mit Infrastructure Manager eine Bereitstellung erstellen, aktualisieren oder löschen möchte, benötigt er Zugriff auf das Dienstkonto.
Weisen Sie dem Nutzer die IAM-Rolle Dienstkontonutzer (roles/iam.serviceAccountUser
) für das Dienstkonto zu.
Berechtigungen für Infra Manager gewähren
Damit das Dienstkonto mit Infra Manager verwendet werden kann, benötigt es die Rolle Infra Manager Agent (roles/config.agent
).
Hierdurch werden Infra Manager Berechtigungen zum Erstellen, Aktualisieren und Löschen von Ressourcen gewährt.
Weitere Informationen zum Gewähren von Berechtigungen für Dienstkonten finden Sie unter Zugriff auf Dienstkonten verwalten.
Leseberechtigung für den Speicher-Bucket gewähren
Sie können einen Storage-Bucket verwenden, um die Terraform-Konfigurationen zu speichern, die von Infra Manager bereitgestellt werden.
Wenn Sie für die Konfigurationen einen Storage-Bucket verwenden und sich dieser in einem anderen Projekt als dem Projekt befindet, in dem Sie Infra Manager ausführen, muss das Dienstkonto, mit dem Sie Infra Manager aufrufen, Leseberechtigungen für den Bucket haben. Weitere Informationen zu Cloud Storage-Berechtigungen finden Sie unter IAM-Berechtigungen für Cloud Storage.
Wenn sich der Storage-Bucket im selben Projekt wie Infra Manager befindet und Sie dem Dienstkonto roles/config.agent
gewährt haben, ist die Leseberechtigung für den Bucket bereits aktiviert.
Weitere Informationen zum Hochladen einer Konfiguration in einen Speicher-Bucket finden Sie unter Terraform-Konfiguration hochladen.
Berechtigungen für in der Konfiguration definierte Ressourcen gewähren
Damit das Dienstkonto Google Cloud -Ressourcen erstellen und verwalten kann, die in der Terraform-Konfiguration definiert sind, benötigt es Berechtigungen, die speziell für diese Ressourcen gelten.
Berechtigungen, die speziell für die Google Cloud -Ressourcen gelten, die in der von Ihnen bereitgestellten Terraform-Konfiguration definiert sind. Die Berechtigung zum Erstellen einer Compute Engine-VM-Instanz hat beispielsweise den Namen
compute.instances.create
.Berechtigungen, die speziell für die Google Cloud -Ressourcen gelten und in der Terraform-Konfiguration der Bereitstellung definiert sind, die Sie aktualisieren.
Angenommen, Ihre Bereitstellung stellt eine Compute Engine-VM bereit und Sie aktualisieren die Bereitstellung mit einer Konfiguration, die keine Compute Engine-VM enthält. In diesem Fall muss das Dienstkonto beim Aktualisieren der Version Folgendes haben:
Berechtigungen für die in der neuen Konfiguration definierten Ressourcen.
Berechtigungen für die zu löschenden Ressourcen, z. B. die Compute Engine-VM in diesem Beispiel.
Informationen zu den für die Ressourcen in den Terraform-Konfigurationen erforderlichen Berechtigungen finden Sie unter Vordefinierte Rollen auswählen.
Weitere Informationen zum Gewähren von Berechtigungen für Dienstkonten finden Sie unter Zugriff auf Dienstkonten verwalten.
Zugriff auf Projekte gewähren
Zusätzliche Berechtigungen sind erforderlich, wenn sich das Dienstkonto in einem anderen Projekt als dem Projekt befindet, in dem der Infra Manager-Dienst ausgeführt wird.
So erteilen Sie diese zusätzlichen Berechtigungen:
Achten Sie darauf, dass die Einschränkung der Organisationsrichtlinie
iam.disableCrossProjectServiceAccountUsage
im Projekt mit dem Dienstkonto nicht erzwungen wird. Diese Einschränkung wird standardmäßig erzwungen.Führen Sie folgenden Befehl aus, um diese Einschränkung für die Organisationsrichtlinie zu deaktivieren:
gcloud resource-manager org-policies disable-enforce iam.disableCrossProjectServiceAccountUsage --project=SERVICE_ACCOUNT_PROJECT_ID
Ersetzen Sie SERVICE_ACCOUNT_PROJECT_ID durch die ID des Projekts, das das Dienstkonto enthält.
Weisen Sie im Projekt mit dem Dienstkonto dem Infra Manager-Dienst-Agent des Projekts, in dem Sie Bereitstellungen erstellen, die Rolle
roles/iam.serviceAccountUser
zu:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-config.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountUser"
Ersetzen Sie die Platzhalterwerte im obigen Befehl durch Folgendes:
- SERVICE_ACCOUNT_PROJECT_ID: Die Projekt-ID des Projekts, das das Dienstkonto enthält.
- INFRA_MANAGER_PROJECT_NUMBER: Die Projektnummer des Projekts, in dem Sie Bereitstellungen erstellen. Daraus ergibt sich die E-Mail-ID des Kundenservicemitarbeiters:
service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-config.iam.gserviceaccount.com
Damit Infra Manager Cloud Build-Jobs im Namen des Dienstkontos erstellen kann, weisen Sie dem Dienstkonto die Rolle
roles/iam.serviceAccountTokenCreator
zu. Diese Rolle ist für den Infra Manager-Dienst-Agent des Projekts vorgesehen, in dem Sie Bereitstellungen erstellen:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"
Nächste Schritte
- IAM
- Weitere Informationen zu Terraform mit Google Cloud
- Infrastruktur mit Infra Manager bereitstellen
- Bereitstellung aktualisieren
- Status einer Bereitstellung ansehen