Auf dieser Seite wird beschrieben, wie Sie Ihre Google Cloud Hierarchie organisieren, indem Sie Projekte in Ordner einbetten.
Übersicht
In der Google Cloud Ressourcenhierarchie dienen Projekte als zentrale Organisations- und Abrechnungseinheiten für Ihre Ressourcen. Sie befinden sich zwischen Ordnern (oder der Organisationsressource) und den zugrunde liegenden Ressourcen wie VM-Instanzen und Storage-Buckets.
Ordner sind zwar ein optionaler Gruppierungsmechanismus, aber die Organisation Ihrer Projekte in Ordnern bietet mehrere wichtige Vorteile:
Skalierbare Governance: IAM-Richtlinien (Identity and Access Management) und Sicherheitsbeschränkungen werden durch hierarchiebasierte Vererbung automatisch auf mehrere Projekte angewendet.
Geschäftsanpassung: Strukturieren Sie Ihre Cloud-Umgebung so, dass sie die Abteilungen, Kostenstellen oder Entwicklungslebenszyklen (z. B. Entwicklung, Staging und Produktion) Ihres Unternehmens widerspiegelt.
Delegierte Administration: Gewähren Sie bestimmten Teams die Autonomie, ihre eigenen Projekte und Unterordner zu verwalten, ohne dass umfassende Berechtigungen auf Organisationsebene erforderlich sind.
Kostentransparenz: Gruppieren Sie zugehörige Projekte, um die Ausgabenverfolgung zu vereinfachen und die Abrechnungsanalyse für bestimmte Geschäftseinheiten oder Anwendungen zu verbessern.
Sicherheitsisolation: Richten Sie klare Vertrauensgrenzen ein, um den betroffenen Bereich von Konfigurationsänderungen zu begrenzen und Sicherheitsrisiken in verschiedenen Umgebungen zu reduzieren.
Projekt in einem Ordner erstellen
Um ein Projekt in einem Ordner zu erstellen, benötigen Sie für den Ordner die Rolle „Projektersteller“ (roles/resourcemanager.projectCreator). Diese Rolle kann von einem übergeordneten Ordner übernommen werden.
Console
- Öffnen Sie in der Google Cloud -Console die Seite „Ressourcen verwalten“.
- Zur Seite Ressourcen verwalten.
- Wählen Sie links oben auf der Seite im Drop-down-Menü Organisation Ihre Organisationsressource aus.
- Klicken Sie auf Projekt erstellen.
- Geben Sie einen Projektnamen ein.
- Klicken Sie neben dem Feld Ziel auf Durchsuchen, um den Ordner auszuwählen, unter dem Sie das Projekt erstellen möchten.
- Klicken Sie auf Erstellen.
gcloud
gcloud projects create PROJECT_ID --folder FOLDER_ID
Ersetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID des zu erstellenden ProjektsFOLDER_ID: die ID des Ordners, in dem das Projekt erstellt werden soll.
REST
Die JSON-Anfrage:
request_json= '{
name: DISPLAY_NAME, projectId: PROJECT_ID, parent: {id: PARENT_ID, type: PARENT_TYPE}
}'
Die curl-Anfrage:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/projects
Ersetzen Sie Folgendes:
PROJECT_ID: Die eindeutige Kennung des Projekts, das erstellt wird. Beispiel:my-awesome-proj-123.DISPLAY_NAME: Der Anzeigename des Projekts, das erstellt wird.PARENT_ID: die eindeutige Kennung des übergeordneten Elements, unter dem das Element erstellt wird. Beispiel:123.PARENT_TYPE: Der Typ des übergeordneten Elements, z. B.folderoderorganization.
Der Ordnername oder andere Ressourcennamen sollten keine vertraulichen Informationen enthalten. Bei jedem Verweis auf den Ordner oder die zugehörigen Ressourcen werden der Ordnername und der Ressourcenname offengelegt.
Projekt in einen Ordner verschieben
Erwägen Sie vor dem Verschieben eines Projekts in einen oder aus einem Ordner sorgfältig die Richtlinienauswirkungen. „Allow“-Richtlinien, die Sie auf Projektebene definieren, werden mit dem Projekt verschoben, Richtlinien, die von einer übergeordneten Ressource übernommen werden, jedoch nicht.
Wenn Sie ein Projekt verschieben, werden alle direkt verknüpften IAM-Richtlinien (Identity and Access Management) oder Organisationsrichtlinien mit ihm verschoben. Ein Projekt in Ihrer Ressourcenhierarchie ist jedoch auch von den Richtlinien betroffen, die es von übergeordneten Ressourcen übernimmt. Wenn ein Projekt eine IAM-Rolle übernimmt, die Nutzern die Berechtigung zur Verwendung eines bestimmten Dienstes gewährt, haben Nutzer keinen Zugriff auf diesen Dienst am Ziel, es sei denn, er übernimmt die Berechtigung auch dort.
Nehmen wir als Beispiel ein Dienstkonto, bei dem die Rolle Storage-Objekt-Ersteller an einen Nutzer in Ordner A gebunden ist. Das Dienstkonto hat Berechtigungen zum Hochladen von Daten in Cloud Storage in einem beliebigen Projekt in Ordner A. Wenn Sie eines dieser Projekte in Ordner B verschieben, der nicht die gleichen übernommenen Berechtigungen hat, kann das Dienstkonto für dieses Projekt keine Daten mehr hochladen. Dies führt zu einem Dienstausfall.
Dies gilt auch für Organisationsrichtlinien, die für den Quell- und Zielordner definiert sind. Organisationsrichtlinien werden ebenso wie IAM-Richtlinien übernommen. Folglich muss sichergestellt werden, dass die Organisationsrichtlinien zwischen dem Quell- und Zielordner konsistent sind.
Weitere Informationen zu Organisationsrichtlinien finden Sie unter Einführung in den Organisationsrichtliniendienst.
Zum Verschieben eines Projekts benötigen Sie die IAM-Rolle "Projektverschieber" (roles/resourcemanager.projectMover) sowohl für den Quellordner als auch für den Zielordner. Wenn sich die Ressource nicht in einem Ordner befindet, benötigen Sie diese Rolle für die Organisationsressource.
Diese Rollen gewähren Ihnen folgende erforderliche Berechtigungen:
resourcemanager.projects.updatefür das Projekt- Wenn sich die Ressource in einem Ordner befindet:
resourcemanager.projects.movefür den Quellordner und das Ziel - Wenn sich die Ressource nicht in einem Ordner befindet:
resourcemanager.projects.movefür die Organisationsressource
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Console
So verschieben Sie ein Projekt:
Wechseln Sie in der Google Cloud -Console zur Seite Ressourcen verwalten.
Wählen Sie Ihre Organisation links oben auf der Seite im Drop-down Organisation aus.
Klicken Sie auf die Zeile mit Ihrem Projekt, um es aus der Liste der Ressourcen auszuwählen. Klicken Sie nicht auf den Namen des Projekts, da Sie sonst zur IAM-Seite (Identity and Access Management) des Projekts weitergeleitet werden.
Klicken Sie in der Zeile auf das Optionsmenü (das Dreipunkt-Menü) und dann auf Verschieben.
Klicken Sie auf Durchsuchen, um den Ordner auszuwählen, in den das Projekt verschoben werden soll.
Klicken Sie auf Verschieben.
gcloud
Führen Sie den Befehl gcloud beta projects move aus, um ein Projekt zu verschieben:
gcloud beta projects move PROJECT_ID \ --DESTINATION_TYPE DESTINATION_ID
Ersetzen Sie Folgendes:
PROJECT_ID: Die ID oder Nummer des Projekts, das Sie verschieben möchten.DESTINATION_TYPE: Der Typ des Ziels, entwederorganizationoderfolder.DESTINATION_ID: Die ID der Organisationsressource oder des Ordners, in die bzw. den Sie das Projekt verschieben möchten.
REST
Sie können die v3-Methode projects.move verwenden, um ein Projekt zu verschieben.
Anfrage:
POST https://cloudresourcemanager.googleapis.com/v3/{name=PROJECT_NAME}:move
{
"destinationParent": DESTINATION_PARENT
}
Ersetzen Sie Folgendes:
PROJECT_NAME: der Name des Projekts, das Sie aktualisieren möchten. Beispiel:projects/415104041262.DESTINATION_PARENT: Die neue übergeordnete Organisationsressource oder der neue übergeordnete Ordner, in den Sie das Projekt verschieben möchten. Beispiel:organizations/12345678901
Bei Erfolg gibt die Anfrage einen Vorgang zurück, mit dem die Verschiebung des Projekts verfolgt werden kann.
Ordner in einen anderen Ordner verschieben
Zum Verschieben eines Ordners in einen anderen Ordner benötigen Sie für beide Ordner die Berechtigung resourcemanager.folders.move.
Console
Das Verschieben von Ordnern in andere Ordner über die Console ähnelt dem Verschieben von Projekten.
- Öffnen Sie in der Google Cloud -Console die Seite „Ressourcen verwalten“.
- Wählen Sie links oben auf der Seite im Drop-down-Menü Organisation Ihre Organisationsressource aus.
- Klicken Sie auf die Zeile Ihres Ordners, um den Ordner aus der Liste der Projekte und Ordner auszuwählen.
- Klicken Sie in der Zeile auf das Optionsmenü (das Dreipunkt-Menü) und dann auf Verschieben.
- Klicken Sie auf Durchsuchen, um den Ordner auszuwählen, in den dieser Ordner verschoben werden soll.
- Klicken Sie auf Verschieben.
gcloud
Führen Sie den folgenden Befehl aus, um einen Ordner unter die Organisationsressource zu verschieben:
gcloud resource-manager folders move FOLDER_ID \
--organization=PARENT_ID
Ersetzen Sie Folgendes:
FOLDER_ID: die ID des zu verschiebenden OrdnersPARENT_ID: die ID der übergeordneten Organisationsressource
Führen Sie den folgenden Befehl aus, um einen Ordner unter einen anderen Ordner zu verschieben:
gcloud resource-manager folders move FOLDER_ID \
--folder=PARENT_ID
Ersetzen Sie Folgendes:
FOLDER_ID: die ID des zu verschiebenden OrdnersPARENT_ID: die ID des übergeordneten Ordners
REST
Die JSON-Anfrage:
request_json= '{
destinationParent: "folders/DESTINATION_FOLDER_ID"
}'
Die curl-Anfrage zum Verschieben des Ordners:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token} \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders/DISPLAY_NAME:move
Ersetzen Sie Folgendes:
- DESTINATION_FOLDER_ID: die ID des Ordners, in den Sie einen anderen Ordner verschieben, z. B.
98765. - DISPLAY_NAME: Der Anzeigename des zu verschiebenden Ordners, z. B. „Mein Ordner“.
Die Antwort auf die Ordnerverschiebung:
{
"name": "operations/fm.1234567890",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "DISPLAY_NAME",
"operationType": "MOVE"
}
}
Die curl-Anfrage zum Abrufen des Vorgangs:
curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fm.1234567890
Die Antwort auf das Abrufen des Vorgangs:
{
"name": "operations/fm.1234567890",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "DISPLAY_NAME",
"operationType": "MOVE"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
"name": "folders/12345",
"parent": "folders/98765",
"displayName": "DISPLAY_NAME",
"lifecycleState": "ACTIVE",
"createTime": "2017-07-19T23:29:26.018Z",
"updateTime": "2017-07-20T00:54:44.295Z"
}
}
Projekte in einem Ordner ansehen oder auflisten
Um Projekte anzusehen oder aufzulisten, die direkte untergeordnete Elemente eines Ordners sind, benötigen Sie für den Ordner die Rolle „Ordnerbetrachter“ (roles/resourcemanager.folderViewer) oder „Sucher“ (roles/browser).
Console
Öffnen Sie in der Google Cloud -Console die Seite Ressourcen verwalten.
Wählen Sie im Drop-down-Menü Organisation Ihre Organisation aus.
Klicken Sie in der Ressourcenliste auf den Namen des Ordners, um ihn zu maximieren und die zugehörigen Projekte aufzurufen.
Optional: Mit der Filterleiste oben in der Liste können Sie nach einem bestimmten Projekt anhand des Namens oder der ID suchen.
gcloud
Verwenden Sie den Befehl gcloud projects list mit einem Filter, um alle Projekte aufzulisten, die direkt einem bestimmten Ordner untergeordnet sind:
gcloud projects list --filter="parent.id:FOLDER_ID AND parent.type:folder"
Ersetzen Sie FOLDER_ID durch die eindeutige ID des Ordners.
REST
Verwenden Sie die Methode projects.list mit einem Abfrageparameter, der den übergeordneten Ordner definiert.
HTTP-Anfrage: GET https://cloudresourcemanager.googleapis.com/v3/projects?parent=folders/FOLDER_ID
Beispiel eines cURL-Befehls:
Bash
curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
"https://cloudresourcemanager.googleapis.com/v3/projects?parent=folders/FOLDER_ID"
Ersetzen Sie FOLDER_ID durch die eindeutige ID des Ordners.
Projekte nach Tags oder Labels filtern (optional)
Wenn Sie viele Projekte in einem Ordner haben, können Sie Filter verwenden, um bestimmte Ressourcen anhand von Metadaten zu finden.
Console
- Geben Sie auf der Seite Ressourcen verwalten in der Filterleiste
Labels:key=valueein, um die Liste auf Projekte mit bestimmten Labels einzugrenzen. Beachten Sie, dass die Console nur eingeschränkte Unterstützung für das visuelle Filtern nach Tags bietet. Verwenden Sie die Google Cloud CLI für erweiterte Tag-Abfragen.
gcloud
Verwenden Sie das Flag --filter mit dem Attribut „tags“, um Projekte in einem Ordner aufzulisten, die einen bestimmten Tag-Wert haben:
gcloud projects list \ --filter="parent.id:FOLDER_ID AND tags.TAG_KEY_PARENT/TAG_KEY_SHORT_NAME:TAG_VALUE_SHORT_NAME"
Ersetzen Sie Folgendes:
FOLDER_ID: die eindeutige ID des Ordners.TAG_KEY_PARENT: Die ID der übergeordneten Ressource des Tag-Schlüssels, z. B. einer Organisation oder eines Projekts.TAG_KEY_SHORT_NAME: der Kurzname des Tag-Schlüssels.TAG_VALUE_SHORT_NAME: der Kurzname des Tag-Werts.
So filtern Sie nach Labels:
gcloud projects list \ --filter="parent.id:FOLDER_ID AND labels.KEY=VALUE"
Ersetzen Sie Folgendes:
FOLDER_ID: die eindeutige ID des Ordners.KEY: der Schlüssel des Labels.VALUE: der Wert des Labels.
Nächste Schritte
- Weitere Informationen zum Aufrufen und Aktualisieren von Projekten
- Weitere Informationen zu Rollen und Berechtigungen für die Projektverwaltung