Auf dieser Seite wird gezeigt, wie Sie Typen und Typanbieter Ihres Projekts für andere Projekte freigeben. Angenommen, Sie haben ein Projekt, das für die Aufrechterhaltung von vorab genehmigten Typanbietern für Ihr Unternehmen verantwortlich ist. Nun möchten Sie diese Typanbieter aus dem Projekt für andere Projekte freigeben und dieses Projekt als zentrales Repository für Typen verwenden. Sie können diese Methode auch zur Freigabe von zusammengesetzten Typen für Projekte verwenden.
Um den Zugriff einzurichten, muss ein Projektinhaber des Projekts mit dem jeweiligen Typ dem Dienstkonto des Projekts, in dem die Typen verwendet werden sollen, die Rolle deploymentmanager.typeViewer
(Beta) zuweisen. Die Rolle muss auch jenen Nutzern zugewiesen werden, die Typen aus einem anderen Projekt anzeigen und auflisten möchten.
Hinweis
- Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten, installieren Sie das gcloud-Befehlszeilentool.
- Wenn Sie die API-Beispiele in dieser Anleitung verwenden möchten, richten Sie den API-Zugriff ein.
- Lesen Sie mehr zu Deployment Manager-Konfigurationen.
- Lesen Sie mehr zu Typen.
- Lesen Sie die Dokumentation zu IAM (Identity and Access Management).
Beschränkungen
Die Nutzung dieses Features unterliegt folgenden Bedingungen:
- Durch die Zuweisung der Rolle
deploymentmanager.typeViewer
werden Berechtigungen für alle Typen im jeweiligen Projekt erteilt. Freigaben können nicht auf einzelne Typen beschränkt werden. - Diese Rolle kann
allAuthenticatedUsers
oderallUsers
nicht zugewiesen werden.
Projektzugriff für die Nutzung von Typen gewähren
Um Zugriff auf Typen zu gewähren, die zu anderen Projekten gehören, muss der Inhaber des Projekts mit den betreffenden Typen dem Google APIs-Dienstkonto des Projekts, in dem die Typen verwendet werden sollen, die Rolle deploymentmanager.typeViewer
zuweisen.
- Rufen Sie in der Google Cloud Console die IAM-Seite des Projekts auf, das die Typen konsumieren.
- Wählen Sie bei Aufforderung Ihr Projekt aus der Liste aus.
Suchen Sie nach dem Google APIs-Dienstkonto, dessen E-Mail-Adresse folgendes Format hat:
[PROJECT_NUMBER]@cloudservices.gserviceaccount.com
Notieren Sie die oben angeführte E-Mail-Adresse. Als Nächstes kann ein Projektinhaber des Projekts, in dem sich die gewünschten Typen befinden, dem Google APIs-Dienstkonto die Rolle
roles/deploymentmanager.typeViewer
zuweisen.Console
- Rufen Sie in der Google Cloud Console die IAM-Seite des Projekts auf. der die Typen enthält, die Sie freigeben möchten.
- Wählen Sie das Projekt aus der Projektliste aus.
- Klicken Sie auf Hinzufügen, um ein neues Mitglied hinzuzufügen.
- Geben Sie die E-Mail-Adresse des Dienstkontos in das Feld Mitglieder ein.
- Erweitern Sie das Drop-down-Menü Rollen und wählen Sie Sonstiges > Deployment Manager-Typbetrachter (Beta) aus.
- Klicken Sie auf Hinzufügen, um das Konto hinzuzufügen.
gcloud
Fügen Sie der IAM-Richtlinie für das Projekt mit der Google Cloud CLI eine Bindung hinzu:
gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/deploymentmanager.typeViewer
Dabei gilt:
[PROJECT_ID]
ist die ID des Projekts mit den Images, die Sie freigeben möchten.[SERVICE_ACCOUNT_EMAIL]
ist die E-Mail-Adresse des Dienstkontos in dem Projekt, für das Sie Typen freigeben möchten.
Beispiel:
gcloud projects add-iam-policy-binding database-images \ --member serviceAccount:123456789012@cloudservices.gserviceaccount.com \ --role roles/deploymentmanager.typeViewer
API
Stellen Sie in der API eine
POST
-Anfrage an die folgende URL, wobei[PROJECT_ID]
die ID des Projekts mit den Typen ist, die Sie freigeben möchten.POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicy
Der Anfragetext soll eine Liste der Bindungen enthalten, die für dieses Projekt gelten sollen. Die Rolle
roles/deploymentmanager.typeViewer
muss Teil der Bindung sein. Beispiel:{ "policy": { "version": "0", "bindings": [ { "role": "roles/owner", "members": [ "user:example@gmail.com" ] }, { "role": "roles/deploymentmanager.typeViewer", "members": [ "serviceAccount:123456789012@cloudservices.gserviceaccount.com" ] } ] }
}
Typen aus anderen Projekten in Konfigurationen verwenden
Sobald Sie Zugriff auf die Typen haben, können Sie den Typ in Ihren Konfigurationen mit folgender Syntax festlegen. Für zusammengesetzte Typen verwenden Sie:
type: [PROJECT_ID]/composite:[TYPE]
Für Typanbieter verwenden Sie:
type: [PROJECT_ID]/[TYPE]:[COLLECTION]
Wobei:
[PROJECT_ID]
ist die ID des Projekts, das den Typ besitzt.[TYPE]
ist der Name des Typanbieters oder des zusammengesetzten Typs.[COLLECTION]
ist die Ressource, die Sie erstellen möchten. Dies gilt nur für Basistypen. Weitere Informationen zum Festlegen von Basistypen finden Sie unter Typanbieter in einer Konfiguration aufrufen.
Wenn die Projekt-ID beispielsweise my-type-repository
lautet, können Sie die folgende Typspezifikation angeben:
resources: - name: a-special-vm type: my-type-repository/composite:autoscaled-igm properties: ...
Nutzern das Auflisten und Aufrufen von Typen erlauben
Wenn Sie dem Dienstkonto des Projekts die Rolle deploymentmanager.typeViewer
zuweisen, kann das Projekt diese Typen in Ihren Konfigurationen bereitstellen, Nutzer können diese Typen aber nicht aufrufen oder auflisten. Wenn Sie es bestimmten Nutzern ermöglichen möchten, Typen aufzurufen, müssen Sie jedem dieser Nutzer die Rolle deploymentmanager.typeViewer
zuweisen.
Beispiel: Damit Jane den Befehl gcloud beta deployment-manager types list --project another-project
für ein Projekt ausführen kann, das nicht ihr gehört, muss der Inhaber von another-project
Jane die Rolle deploymentmanager.typeViewer
zuweisen.
Mit der gcloud CLI können Sie Jane die Rolle so zuweisen:
gcloud projects add-iam-policy-binding another-project \
--member user:jane@gmail.com --role deploymentmanager.typeViewer
Ausführliche Anleitungen zum Hinzufügen und Entfernen von Rollen für Nutzer finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.
Weitere Informationen
- Informationen über die IAM-Rollen, die Sie gewähren können.
- Dienstkonten