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 konfigurieren, damit 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 Sie mit Infra Manager verwenden möchten.
Zugriff auf das Dienstkonto gewähren
Wenn Sie Infrastructure Manager verwenden möchten, um ein Deployment zu erstellen, zu aktualisieren oder zu löschen, muss ein einzelner Nutzer Zugriff auf das Dienstkonto haben.
Weisen Sie dem Nutzer die IAM-Rolle Dienstkontonutzer (roles/iam.serviceAccountUser) für das Dienstkonto zu.
Berechtigungen für Infra Manager erteilen
Für die Arbeit mit Infra Manager benötigt das Dienstkonto die Rolle „Infra Manager-Agent“ (roles/config.agent).
Dadurch werden Berechtigungen für Infra Manager zum Erstellen, Aktualisieren und Löschen von Ressourcen gewährt:
gcloud projects add-iam-policy-binding INFRA_MANAGER_PROJECT_ID \
--member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
--role="roles/config.agent"
Ersetzen Sie:
INFRA_MANAGER_PROJECT_ID: Die Projekt-ID des Projekts, in dem Sie Bereitstellungen erstellen.
SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse des Dienstkontos.
Weitere Informationen zum Zuweisen von Berechtigungen zu Dienstkonten finden Sie unter Zugriff auf Dienstkonten verwalten.
Leseberechtigung für den Storage-Bucket erteilen
Sie können einen Storage-Bucket verwenden, um die Terraform-Konfigurationen zu speichern, die von Infra Manager bereitgestellt werden.
Wenn Sie einen Storage-Bucket für die Konfigurationen verwenden und sich dieser Storage-Bucket in einem anderen Projekt als dem Projekt befindet, in dem Sie Infra Manager ausführen, müssen Sie dafür sorgen, dass das Dienstkonto, mit dem Sie Infra Manager aufrufen, die Leseberechtigung für den Bucket hat. 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 erteilen
Zum Erstellen und Verwalten von Google Cloud -Ressourcen, die in der Terraform-Konfiguration definiert sind, benötigt das Dienstkonto Berechtigungen, die für diese Ressourcen spezifisch sind.
Berechtigungen, die für die Google Cloud Ressourcen gelten, die in der Terraform-Konfiguration definiert sind, die Sie bereitstellen. Die Berechtigung zum Erstellen einer Compute Engine-VM-Instanz ist beispielsweise
compute.instances.create.Berechtigungen, die für die Google Cloud Ressourcen spezifisch sind, die in der Terraform-Konfiguration des Deployments definiert sind, das Sie aktualisieren.
Angenommen, bei der Bereitstellung wird eine Compute Engine-VM bereitgestellt und Sie aktualisieren die Bereitstellung dann mit einer Konfiguration, die keine Compute Engine-VM enthält. Wenn Sie die Überarbeitung in diesem Fall aktualisieren, benötigt das Dienstkonto:
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.
Hilfe beim Ermitteln der für die Ressourcen in den Terraform-Konfigurationen erforderlichen Berechtigungen finden Sie unter Vordefinierte Rollen auswählen.
Weitere Informationen zum Zuweisen von Berechtigungen zu Dienstkonten finden Sie unter Zugriff auf Dienstkonten verwalten.
Zugriff für mehrere Projekte gewähren
Zusätzliche Berechtigungen sind erforderlich, wenn sich das angegebene 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:
Das Dienstkonto muss die Infra Manager-Agent-Rolle (
roles/config.agent) im Projekt haben, in dem Infra Manager ausgeführt wird. Eine Anleitung zum Erteilen von Berechtigungen finden Sie unter Berechtigungen für Infra Manager erteilen.Optional: Wenn Sie Developer Connect verwenden, um eine Terraform-Konfiguration bereitzustellen, weisen Sie dem Dienstkonto die Rolle
roles/iam.serviceAccountTokenCreatorzu.Achten Sie darauf, dass die Einschränkung der Organisationsrichtlinie
iam.disableCrossProjectServiceAccountUsageim 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_IDErsetzen 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.serviceAccountUserzu: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:
- 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 Dienst-Agents:
service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-config.iam.gserviceaccount.com
Weisen Sie dem Cloud Build-Dienst-Agent im Projekt, in dem Sie Bereitstellungen erstellen, die Rolle Ersteller von Dienstkonto-Tokens (
roles/iam.serviceAccountTokenCreator) zu. Damit Infra Manager Terraform mit Cloud Build ausführen kann, benötigt der Cloud Build-Dienst-Agent im Projekt mit dem Dienstkonto im Rahmen der projektübergreifenden Einrichtung zusätzliche Berechtigungen: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
- Deployment aktualisieren
- Status eines Deployments ansehen