Auf dieser Seite erfahren Sie, wie Sie benutzerdefinierte Beschränkungen des Organisationsrichtliniendienstes verwenden, um bestimmte Vorgänge für die folgenden Google Cloud Ressourcen von einzuschränken:
developerconnect.googleapis.com/Connectiondeveloperconnect.googleapis.com/GitRepositoryLink
Sie können beispielsweise eine benutzerdefinierte Beschränkung erstellen, um nur Verbindungen zu einer Art von Quellcode-Verwaltungsplattform zuzulassen, z. B. GitHub. Oder Sie können eine benutzerdefinierte Beschränkung erstellen, um nur Verbindungen zuzulassen, die eine bestimmte Service Directory-Ressource angeben. Wenn Sie die Service Directory-Ressource benötigen, können Sie dafür sorgen, dass bei Aufrufen Ihres Quellcode-Verwaltungstools eines Drittanbieters ein bestimmter Endpunkt verwendet wird.
Weitere Informationen zu Organisationsrichtlinien finden Sie unter Benutzerdefinierte Organisationsrichtlinien.
Informationen zu Organisationsrichtlinien und Beschränkungen
Mit dem Organisationsrichtliniendienst von Google Cloud können Sie die Ressourcen Ihrer Organisation zentral und programmatisch steuern. Als Administrator für Organisationsrichtlinien können Sie eine Organisationsrichtlinie definieren, also eine Reihe von Beschränkungen, die für Ressourcen vonGoogle Cloud und nachfolgende Elemente dieser Ressourcen in der Ressourcenhierarchie vonGoogle Cloud gelten. Sie können Organisationsrichtlinien auf Organisations-, Ordner- oder Projektebene erzwingen.
Die Organisationsrichtlinie bietet vordefinierte Beschränkungen für verschiedene Google Cloud Dienste von. Wenn Sie jedoch eine detailliertere, anpassbare Steuerung der spezifischen Felder wünschen, die in Ihren Organisationsrichtlinien beschränkt werden, können Sie auch benutzerdefinierte Beschränkungen erstellen und diese benutzerdefinierten Beschränkungen in einer Organisationsrichtlinie verwenden.
Übernahme von Richtlinien
Standardmäßig werden Organisationsrichtlinien von den Nachfolgerelementen der Ressourcen übernommen, für die Sie die Richtlinie erzwingen. Wenn Sie beispielsweise eine Richtlinie für einen Ordner erzwingen, erzwingt Google Cloud die Richtlinie für alle Projekte in dem Ordner. Weitere Informationen zu diesem Verhalten und zu dessen Änderung finden Sie unter Regeln für die Bewertung der Hierarchie.
Hinweise
Sie müssen Ihre Organisations-ID kennen.
Weitere Informationen zu Organisationsrichtlinien und -beschränkungen sowie zu ihrer Funktionsweise finden Sie unter Einführung in den Organisationsrichtliniendienst.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Organization Policy Administrator (roles/orgpolicy.policyAdmin) für die Organisationsressource zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Organisationsrichtlinien benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Benutzerdefinierte Einschränkung erstellen
Eine benutzerdefinierte Beschränkung wird in einer YAML-Datei durch die Ressourcen, Methoden, Bedingungen und Aktionen definiert, die von dem Dienst unterstützt werden, für den Sie die Organisationsrichtlinie erzwingen. Bedingungen für Ihre benutzerdefinierten Beschränkungen werden mithilfe der Common Expression Language (CEL) definiert. Weitere Informationen zum Erstellen von Bedingungen in benutzerdefinierten Beschränkungen mit CEL finden Sie im Abschnitt CEL unter Benutzerdefinierte Beschränkungen erstellen und verwalten.
Zum Erstellen einer benutzerdefinierten Beschränkung erstellen Sie eine YAML-Datei im folgenden Format:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- CREATE
- UPDATE
condition: "CONDITION
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
Ersetzen Sie Folgendes:
ORGANIZATION_ID: Ihre Organisations-ID, z. B.123456789.CONSTRAINT_NAME: Name, den Sie für Ihre neue benutzerdefinierte Einschränkung verwenden möchten. Eine benutzerdefinierte Einschränkung muss mitcustom.beginnen und darf nur Großbuchstaben, Kleinbuchstaben oder Ziffern enthalten, z. B.custom.onlyAllowGitHubConnection. Die maximale Länge dieses Feldes beträgt 70 Zeichen.RESOURCE_NAME: Der vollständig qualifizierte Name der Ressource vonGoogle Cloud , die das Objekt und das Feld enthält, das Sie beschränken möchten. Beispiel:developerconnect.googleapis.com/ConnectionCONDITION: eine CEL-Bedingung, die für eine Darstellung einer unterstützten Dienstressource geschrieben wird. Dieses Feld hat eine maximale Länge von 1000 Zeichen. Weitere Informationen zu den verfügbaren Ressourcen, auf die Bedingungen geschrieben werden können, finden Sie unter Unterstützte Ressourcen. Beispiel:"has(resource.githubConfig)".ACTION: Aktion, die ausgeführt werden soll, wennconditionerfüllt ist. Mögliche Werte sindALLOWundDENY.DISPLAY_NAME: Ein nutzerfreundlicher Name für die Einschränkung. Dieses Feld hat eine maximale Länge von 200 Zeichen.DESCRIPTION: Eine nutzerfreundliche Beschreibung der Einschränkung, die als Fehlermeldung angezeigt werden soll, wenn die Richtlinie verletzt wird Dieses Feld hat eine maximale Länge von 2000 Zeichen.
Weitere Informationen zum Erstellen einer benutzerdefinierten Einschränkung finden Sie unter Benutzerdefinierte Einschränkungen definieren.
Benutzerdefinierte Einschränkung einrichten
Console
So erstellen Sie eine benutzerdefinierte Einschränkung:
- Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.
- Wählen Sie in der Projektauswahl das Projekt aus, für das Sie die Organisationsrichtlinie festlegen möchten.
- Klicken Sie auf Benutzerdefinierte Einschränkung.
- Geben Sie im Feld Anzeigename einen für Menschen lesbaren Namen für die Einschränkung ein. Dieser Name wird in Fehlermeldungen verwendet und kann zur Identifizierung und Fehlerbehebung dienen. Verwenden Sie keine personenidentifizierbaren Informationen (PII) oder vertraulichen Daten in Anzeigenamen, da dieser Name in Fehlermeldungen angezeigt werden kann. Dieses Feld kann bis zu 200 Zeichen enthalten.
-
Geben Sie im Feld Einschränkungs-ID die ID ein, die Sie für Ihre neue benutzerdefinierte
Einschränkung verwenden möchten. Eine benutzerdefinierte Einschränkung kann nur Buchstaben (einschließlich Groß- und Kleinbuchstaben) oder
Ziffern enthalten, z. B.
custom.onlyAllowGitHubConnection. Dieses Feld kann bis zu 70 Zeichen enthalten, ohne das Präfix (custom.), z. B.organizations/123456789/customConstraints/custom. Beziehen Sie keine personenidentifizierbaren Informationen oder vertraulichen Daten in die Einschränkungs-ID ein, da sie in Fehlermeldungen preisgegeben werden könnten. - Geben Sie im Feld Beschreibung eine für Menschen lesbare Beschreibung der Einschränkung ein. Diese Beschreibung wird als Fehlermeldung verwendet, wenn die Richtlinie verletzt wird. Geben Sie Details dazu an, warum die Richtlinienverletzung aufgetreten ist und wie sie behoben werden kann. Beziehen Sie keine personenidentifizierbaren Informationen oder vertraulichen Daten in die Beschreibung ein, da sie in Fehlermeldungen preisgegeben werden könnten. Dieses Feld kann bis zu 2000 Zeichen enthalten.
-
Wählen Sie im Feld Ressourcentyp den Namen der Google Cloud REST-Ressource
aus, die das Objekt und das Feld enthält, das Sie einschränken möchten, z. B.
container.googleapis.com/NodePool. Die meisten Ressourcentypen unterstützen bis zu 20 benutzerdefinierte Einschränkungen. Wenn Sie versuchen, weitere benutzerdefinierte Einschränkungen zu erstellen, schlägt der Vorgang fehl. -
Diese Einschränkung
kann nur für die REST-
CREATEMethode erzwungen werden. - Klicken Sie auf Bedingung bearbeiten, um eine Bedingung zu definieren.
-
Erstellen Sie im Bereich Bedingung hinzufügen eine CEL-Bedingung, die auf eine unterstützte
Dienstressource verweist, z. B.
resource.management.autoUpgrade == false. Dieses Feld kann bis zu 1000 Zeichen enthalten. Details zur Verwendung von CEL finden Sie unter Common Expression Language. Weitere Informationen zu den Dienstressourcen, die Sie in Ihren benutzerdefinierten Einschränkungen verwenden können, finden Sie unter Dienste, die benutzerdefinierte Einschränkungen unterstützen. - Klicken Sie auf Speichern.
- Wählen Sie unter Aktion aus, ob die ausgewertete Methode zugelassen oder abgelehnt werden soll, wenn die Bedingung erfüllt ist.
- Klicken Sie auf Einschränkung erstellen.
Die unterstützten Methoden für jeden Dienst finden Sie unter Dienste, die benutzerdefinierte Einschränkungen unterstützen.
Die Aktion „Ablehnen“ bedeutet, dass der Vorgang zum Erstellen oder Aktualisieren der Ressource blockiert wird, wenn die Bedingung als „true“ ausgewertet wird.
Die Aktion „Zulassen“ bedeutet, dass der Vorgang zum Erstellen oder Aktualisieren der Ressource nur zulässig ist, wenn die Bedingung als „true“ ausgewertet wird. Alle anderen Fälle außer den in der Bedingung explizit aufgeführten werden blockiert.
Wenn Sie in jedes Feld einen Wert eingegeben haben, wird rechts die entsprechende YAML-Konfiguration für diese benutzerdefinierte Einschränkung angezeigt.
gcloud
- Zum Erstellen einer benutzerdefinierten Beschränkung erstellen Sie eine YAML-Datei im folgenden Format:
-
ORGANIZATION_ID: Ihre Organisations-ID, z. B.123456789. -
CONSTRAINT_NAME: Der Name, den Sie für Ihre neue benutzerdefinierte Einschränkung verwenden möchten. Eine benutzerdefinierte Einschränkung kann nur Buchstaben (einschließlich Groß- und Kleinbuchstaben) oder Ziffern enthalten, z. B.custom.onlyAllowGitHubConnection. Dieses Feld kann bis zu 70 Zeichen enthalten, ohne das Präfix (custom.), z. B.organizations/123456789/customConstraints/custom. Beziehen Sie keine personenidentifizierbaren Informationen oder vertraulichen Daten in die Einschränkungs-ID ein, da sie in Fehlermeldungen preisgegeben werden könnten. -
RESOURCE_NAME: Der vollständig qualifizierte Name der Google Cloud Ressource von, die das Objekt und das Feld enthält, das Sie beschränken möchten. Beispiel:developerconnect.googleapis.com/Connection. Die meisten Ressourcentypen unterstützen bis zu 20 benutzerdefinierte Einschränkungen. Wenn Sie versuchen, weitere benutzerdefinierte Einschränkungen zu erstellen, schlägt der Vorgang fehl. -
methodTypes: Die REST-Methoden, für die die Einschränkung erzwungen wird. Kann nurCREATEsein. -
CONDITION: eine CEL-Bedingung, die für eine Darstellung einer unterstützten Dienst ressource geschrieben wird. Dieses Feld kann bis zu 1000 Zeichen enthalten. Beispiel:"has(resource.githubConfig)". -
ACTION: Aktion, die ausgeführt werden soll, wenn dieconditionerfüllt ist. Kann nurALLOWsein. -
DISPLAY_NAME: Ein für Menschen lesbarer Name für die Einschränkung. Dieser Name wird in Fehlermeldungen verwendet und kann zur Identifizierung und Fehlerbehebung dienen. Verwenden Sie keine personenidentifizierbaren Informationen oder vertraulichen Daten in Anzeigenamen, da dieser Name in Fehlermeldungen angezeigt werden kann. Dieses Feld kann bis zu 200 Zeichen enthalten. -
DESCRIPTION: Eine nutzerfreundliche Beschreibung der Einschränkung, die als Fehlermeldung angezeigt werden soll, wenn die Richtlinie verletzt wird. Dieses Feld kann bis zu 2000 Zeichen enthalten. -
Nachdem Sie die YAML-Datei für eine neue benutzerdefinierte Beschränkung erstellt haben, müssen Sie sie einrichten, um sie
für Organisationsrichtlinien in Ihrer Organisation verfügbar zu machen. Verwenden Sie den Befehl
gcloud org-policies set-custom-constraint, um eine benutzerdefinierte Einschränkung einzurichten: -
Verwenden Sie den
gcloud org-policies list-custom-constraintsBefehl, um zu prüfen, ob die benutzerdefinierte Einschränkung vorhanden ist:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resourceTypes: RESOURCE_NAME methodTypes: - CREATE condition: "CONDITION" actionType: ACTION displayName: DISPLAY_NAME description: DESCRIPTION
Ersetzen Sie Folgendes:
Die unterstützten Methoden für jeden Dienst finden Sie unter Dienste, die benutzerdefinierte Einschränkungen unterstützen.
Weitere Informationen zu den verfügbaren Ressourcen, auf die Bedingungen geschrieben werden können, finden Sie unter Unterstützte Ressourcen.
Die Aktion „Zulassen“ bedeutet, dass der Vorgang zum Erstellen oder Aktualisieren der Ressource zulässig ist, wenn die Bedingung als „true“ ausgewertet wird. Das bedeutet auch, dass alle anderen Fälle außer dem in der Bedingung explizit aufgeführten blockiert werden.
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Ersetzen Sie CONSTRAINT_PATH durch den vollständigen Pfad zu Ihrer benutzerdefinierten Einschränkungsdatei. Beispiel: /home/user/customconstraint.yaml.
Nach Abschluss dieses Vorgangs sind Ihre benutzerdefinierten Beschränkungen als Organisationsrichtlinien in der Liste der Google Cloud Organisationsrichtlinien von verfügbar.
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Ersetzen Sie ORGANIZATION_ID durch die ID Ihrer Organisationsressource.
Weitere Informationen finden Sie unter Organisationsrichtlinien aufrufen.
Benutzerdefinierte Organisationsrichtlinie erzwingen
Sie können eine Beschränkung erzwingen, indem Sie eine Organisationsrichtlinie erstellen, die darauf verweist, und diese Organisationsrichtlinie dann auf eine Ressource von Google Cloud anwenden.Console
- Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.
- Wählen Sie in der Projektauswahl das Projekt aus, für das Sie die Organisationsrichtlinie festlegen möchten.
- Wählen Sie auf der Seite Organisationsrichtlinien die gewünschte Einschränkung aus, um die Seite Richtliniendetails aufzurufen.
- Zum Konfigurieren der Organisationsrichtlinie für diese Ressource klicken Sie auf Richtlinie verwalten.
- Wählen Sie auf der Seite Richtlinie bearbeiten die Option Richtlinie der übergeordneten Ressource überschreiben aus.
- Klicken Sie auf Regel hinzufügen.
- Wählen Sie im Abschnitt Erzwingung aus, ob diese Organisationsrichtlinie erzwungen werden soll oder nicht.
- Klicken Sie optional auf Bedingung hinzufügen, um die Organisationsrichtlinie von einem Tag abhängig zu machen. Wenn Sie einer Organisationsrichtlinie eine bedingte Regel hinzufügen, müssen Sie mindestens eine unbedingte Regel hinzufügen, da die Richtlinie sonst nicht gespeichert werden kann. Weitere Informationen finden Sie unter Organisationsrichtlinien mit Tags eingrenzen.
- Klicken Sie auf Änderungen testen , um die Auswirkungen der Organisationsrichtlinie zu simulieren. Weitere Informationen finden Sie unter Änderungen an Organisationsrichtlinien mit dem Richtliniensimulator testen.
- Klicken Sie auf Probelaufrichtlinie festlegen, um die Organisationsrichtlinie im Probelaufmodus zu erzwingen. Weitere Informationen finden Sie unter Organisationsrichtlinien testen.
- Nachdem Sie geprüft haben, ob die Organisationsrichtlinie im Probelaufmodus wie gewünscht funktioniert, legen Sie die Live-Richtlinie fest, indem Sie auf Richtlinie festlegen klicken.
gcloud
- Wenn Sie eine Organisationsrichtlinie mit booleschen Regeln erstellen möchten, erstellen Sie eine YAML-Richtliniendatei, die auf die Beschränkung verweist:
-
PROJECT_ID: Das Projekt, für das Sie die Einschränkung erzwingen möchten. -
CONSTRAINT_NAME: Der Name, den Sie für Ihre benutzerdefinierte Beschränkung definiert haben. Beispiel:custom.onlyAllowGitHubConnection. -
Führen Sie den folgenden Befehl mit dem
dryRunSpecFlag aus, um die Organisationsrichtlinie im Probelaufmodus zu erzwingen: -
Nachdem Sie geprüft haben, ob die Organisationsrichtlinie im Probelaufmodus wie gewünscht funktioniert, legen Sie die
Live-Richtlinie mit dem
org-policies set-policyBefehl und demspecFlag fest:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true dryRunSpec: rules: - enforce: true
Ersetzen Sie Folgendes:
gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec
Ersetzen Sie POLICY_PATH durch den vollständigen Pfad zur YAML-Datei Ihrer Organisationsrichtlinie. Es kann bis zu 15 Minuten dauern, bis die Richtlinie wirksam wird.
gcloud org-policies set-policy POLICY_PATH --update-mask=spec
Ersetzen Sie POLICY_PATH durch den vollständigen Pfad zur YAML-Datei Ihrer Organisationsrichtlinie. Es kann bis zu 15 Minuten dauern, bis die Richtlinie wirksam wird.
Unterstützte Ressourcen von Developer Connect
Developer Connect unterstützt benutzerdefinierte Beschränkungen für alle Felder für Erstellungs- und Aktualisierungsvorgänge für die folgenden Ressourcen:
Nächste Schritte
- Weitere Informationen zum Organisationsrichtliniendienst.
- Organisationsrichtlinien erstellen und verwalten
- Eine vollständige Liste der vordefinierten Einschränkungen für Organisationsrichtlinien finden Sie hier.