Projekte in Ordnern verwalten

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: Wenden Sie IAM-Richtlinien (Identity and Access Management) und Sicherheitsbeschränkungen automatisch auf mehrere Projekte an, indem Sie die hierarchiebasierte Übernahme nutzen.

  • Geschäftliche Ausrichtung: Strukturieren Sie Ihre Cloud-Umgebung so, dass sie die Abteilungen, Kostenstellen oder Entwicklungslebenszyklen Ihrer Organisation widerspiegelt (z. B. Entwicklung, Staging und Produktion).

  • Delegierte Verwaltung: 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 verwandte Projekte, um die Ausgabenverfolgung zu vereinfachen und die Abrechnungsanalyse für bestimmte Geschäftseinheiten oder Anwendungen zu verbessern.

  • Sicherheitsisolation: Legen Sie klare Vertrauensgrenzen fest, 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

  1. Öffnen Sie in der Google Cloud Console die Seite Ressourcen verwalten.

    Öffnen Sie die Google Cloud Console

  2. Zur Seite Ressourcen verwalten.
  3. Wählen Sie links oben auf der Seite im Drop-down-Menü Organisation Ihre Organisationsressource aus.
  4. Klicken Sie auf Projekt erstellen.
  5. Geben Sie einen Projektnamen ein.
  6. Klicken Sie neben dem Feld Ziel auf Durchsuchen, um den Ordner auszuwählen, unter dem Sie das Projekt erstellen möchten.
  7. Klicken Sie auf Erstellen.

gcloud

  gcloud projects create PROJECT_ID --folder FOLDER_ID

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des zu erstellenden Projekts
  • FOLDER_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 zu erstellenden Projekts Beispiel: my-awesome-proj-123
  • DISPLAY_NAME: der Anzeigename des zu erstellenden Projekts
  • PARENT_ID: die eindeutige Kennung des übergeordneten Elements, unter dem das Projekt erstellt wird Beispiel: 123
  • PARENT_TYPE: der Typ des übergeordneten Elements, z. B. folder oder organization

Der Ordnername oder andere Ressourcennamen sollten keine vertraulichen Informationen enthalten. Jeder Verweis auf den Ordner oder zugehörige Ressourcen macht den Ordnernamen und den Ressourcennamen sichtbar.

Projekt in einen Ordner verschieben

Erwägen Sie vor dem Verschieben eines Projekts in einen oder aus einem Ordner sorgfältig die Richtlinienauswirkungen. 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.update für das Projekt
  • Wenn sich die Ressource in einem Ordner befindet:resourcemanager.projects.move für den Quellordner und das Ziel
  • Wenn sich die Ressource nicht in einem Ordner befindet:resourcemanager.projects.move für die Organisationsressource

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Console

So verschieben Sie ein Projekt:

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie links oben auf der Seite im Drop-down-Menü Organisation Ihre Organisation aus.

  3. Klicken Sie auf die Zeile mit dem Projekt, um es aus der Liste der Ressourcen auszuwählen. Klicken Sie nicht auf den Namen des Projekts. Dadurch gelangen Sie zur Seite „IAM“ (Identity and Access Management) des Projekts.

  4. Klicken Sie auf das Dreipunkt-Menü in der Zeile und dann auf Verschieben.

  5. Klicken Sie auf Durchsuchen , um den Ordner auszuwählen, in den das Projekt verschoben werden soll.

  6. Klicken Sie auf Verschieben.

gcloud

Führen Sie den gcloud beta projects move Befehl 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, entweder organization oder folder.
  • 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 projects.move Methode 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, unter die bzw. 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.

  1. Öffnen Sie in der Google Cloud Console die Seite Ressourcen verwalten.

    Öffnen Sie die Google Cloud Console

  2. Wählen Sie links oben auf der Seite im Drop-down-Menü Organisation Ihre Organisationsressource aus.
  3. Klicken Sie auf die Zeile Ihres Ordners, um den Ordner aus der Liste der Projekte und Ordner auszuwählen.
  4. Klicken Sie auf das Dreipunkt-Menü in der Zeile und dann auf Verschieben.
  5. Klicken Sie auf Durchsuchen , um den Ordner auszuwählen, in den dieser Ordner verschoben werden soll.
  6. 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 Ordners
  • PARENT_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 Ordners
  • PARENT_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, unter 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 direkt einem Ordner untergeordnet sind, benötigen Sie für den Ordner die Rolle „Ordnerbetrachter“ (roles/resourcemanager.folderViewer) oder „Browser“ (roles/browser).

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Ressourcen verwalten.

    Öffnen Sie die Seite „Ressourcen verwalten“.

  2. Wählen Sie im Drop-down-Menü Organisation Ihre Organisation aus.

  3. Klicken Sie in der Ressourcenliste auf den Namen des Ordners, um ihn zu maximieren und seine Projekte anzusehen.

    Optional: Verwenden Sie die Leiste Filter oben in der Liste, um nach einem bestimmten Projekt anhand des Namens oder der ID zu 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 mit Filtern bestimmte Ressourcen anhand von Metadaten finden.

Console

  • Geben Sie auf der Seite Ressourcen verwalten in der Leiste Filter Labels:key=value ein, um die Liste auf Projekte mit bestimmten Labels zu beschränken. Die Console bietet nur eingeschränkte Unterstützung für die visuelle Filterung nach Tags. 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. eine Organisation oder ein Projekt
  • 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