Mit Tags können Sie Richtlinien auf Basis der Bedingung festlegen, ob eine Ressource ein bestimmtes Tag hat. Mit Tags und der bedingten Erzwingung von Organisationsrichtlinien können Sie die Ressourcen in Ihrer Hierarchie zentral steuern.
Hinweis
Weitere Informationen zu Tags und ihrer Funktionsweise finden Sie in der Übersicht zu Tags.
Eine ausführliche Anleitung zur Verwendung von Tags finden Sie unter Tags erstellen und verwalten.
Organisationsrichtlinie mit Tags festlegen
Mithilfe von Tags können Sie bestimmen, wo eine Organisationsrichtlinie wirksam werden soll. Dazu müssen Sie eine Bedingung in der YAML-Datei der Organisationsrichtlinie angeben. Sie können die Bedingung so festlegen, dass sie mit einem bestimmten Tag-Schlüssel/Wert-Paar übereinstimmt. Dies setzt voraus, dass ein bestimmter Tag-Wert festgelegt wird, damit die Organisationsrichtlinie erzwungen wird.
Die meisten Organisationsrichtlinien werden beim Erstellen oder Aktualisieren einer Ressource ausgewertet und erzwungen. Einem Tag können keine Tags an eine Ressource angehängt werden, sodass bedingte Organisationsrichtlinien Tags bei einer Ressource nicht bewerten können, wenn sie erstellt wird, sondern nur für Tags, die von übergeordneten Ressourcen übernommen werden.
Tags werden für Organisations-, Ordner- und Projektressourcen ausgewertet. Die meisten Ressourcen unter Projekten in der Ressourcenhierarchie werden nicht durch die Organisationsrichtlinie bewertet, mit bestimmten Ausnahmen, z. B. Cloud Run-Diensten. Informationen zu Einschränkungen für Organisationsrichtlinien finden Sie unter Einschränkungen für Organisationsrichtlinien.
Beispiel einer Listenrichtlinie
Das folgende Beispiel zeigt, wie Sie eine Organisationsrichtliniendatei festlegen, die die Einschränkung gcp.resourceLocations
erzwingt. Diese Organisationsrichtlinie verwendet sowohl bedingte als auch bedingungsfreie Werte, die in derselben Richtliniendatei festgelegt sind.
Console
So legen Sie die Organisationsrichtlinie fest:
Öffnen Sie in der Google Cloud Console die Seite Organisationsrichtlinien.
Klicken Sie oben auf der Seite auf Projektauswahl.
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 eine Einschränkung aus der Liste aus. Die Seite Richtliniendetails für diese Einschränkung sollte angezeigt werden.
Zum Anpassen der Organisationsrichtlinie für diese Ressource klicken Sie auf Bearbeiten.
Wählen Sie auf der Seite Bearbeiten die Option Anpassen aus.
Wählen Sie unter Richtlinienerzwingung eine Erzwingungsoption aus:
Wählen Sie Mit übergeordneter Ressource zusammenführen aus, um die Organisationsrichtlinien zusammenzuführen und zu evaluieren. Weitere Informationen zur Übernahme und zur Ressourcenhierarchie finden Sie unter Informationen zu Evaluierungen der Hierarchie.
Wählen Sie Ersetzen aus, um Richtlinien zu überschreiben, die von einer übergeordneten Ressource übernommen wurden.
Klicken Sie auf Regel hinzufügen.
Wählen Sie unter Richtlinienwerte aus, ob diese Organisationsrichtlinie alle Werte zulassen, alle Werte ablehnen oder einen benutzerdefinierten Satz von Werten angeben soll.
- Welche spezifischen Werte von der Richtlinie akzeptiert werden, hängt vom Dienst ab, für den die Richtlinie gilt. Eine Liste der Einschränkungen und der akzeptierten Werte finden Sie unter Einschränkungen für Organisationsrichtlinien.
Klicken Sie optional auf Bedingung hinzufügen, um die Organisationsrichtlinie von einem Tag abhängig zu machen.
Geben Sie im Feld Titel einen Namen für die Bedingung ein.
Geben Sie im Feld Beschreibung eine Beschreibung für die Bedingung ein. Die Beschreibung enthält Kontext zu den erforderlichen Tags und deren Auswirkungen auf Ressourcen.
Sie können den Builder für IAM-Bedingungen verwenden, um eine Bedingung zu erstellen, für die ein bestimmtes Tag erforderlich ist, damit die Einschränkung wirksam wird.
Wählen Sie im Drop-down-Menü Bedingungstyp die Option Tag aus.
Wählen Sie den Operator für Ihre Bedingung aus. Um ein ganzes Tag abzugleichen, verwenden Sie den Operator Matches. Verwenden Sie zum Abgleich eines Tag-Schlüssels und eines Tag-Werts den Operator Matches ID
Wenn Sie den Operator Übereinstimmungen ausgewählt haben, geben Sie den Namen des Tags mit dem Wert ein. Wenn Sie den Operator Übereinstimmungs-ID ausgewählt haben, geben Sie die Schlüssel- und Wert-IDs ein.
Sie können mehrere Bedingungen erstellen, indem Sie auf Hinzufügen klicken. Wenn Sie eine weitere Bedingung hinzufügen, können Sie die bedingte Logik so einstellen, dass sie alle erfordert, indem Sie auf Und umschalten. Sie können die bedingte Logik festlegen, dass nur eine der Bedingungen erfüllt sein muss, indem Sie auf Oder umschalten.
Sie können einen Ausdruck löschen, indem Sie auf das große X rechts neben den Bedingungsfeldern klicken.
Wenn Sie mit der Bearbeitung der Bedingungen fertig sind, klicken Sie auf Speichern.
Die folgende Abbildung zeigt eine Beispielkonfiguration einer Organisationsrichtlinie, die Bedingungen enthält.
Mit dem Bedingungseditor können Sie einen bedingten Ausdruck programmatisch erstellen. Außerdem wird ein programmatisches Rendering Ihrer aktuellen Bedingungen dargestellt.
- Mit dem Bedingungseditor können Sie den logischen Operator
!
anwenden. Mit der Abfrage!resource.matchTag('ORGANIZATION_ID/location', 'us-west1')
würde die Einschränkung der Organisationsrichtlinie beispielsweise auf jede Ressource angewendet werden, die nicht das Tagus-west1
hat.
- Mit dem Bedingungseditor können Sie den logischen Operator
Klicken Sie auf Speichern, um den Vorgang abzuschließen und die Organisationsrichtlinie anzuwenden.
gcloud
Legen Sie die Organisationsrichtlinie mit dem folgenden Befehl fest:
gcloud org-policies set-policy POLICY_PATH
Dabei ist POLICY_PATH
der vollständige Pfad zur JSON-Datei der Organisationsrichtlinie, die in etwa so aussehen sollte:
{ "name":"RESOURCE_TYPE/RESOURCE_ID/policies/gcp.resourceLocations", "spec":{ "rules":[ { // As there is no condition specified, this allowedValue is enforced // unconditionally. "values":{ "allowedValues": ["us-east1-locations"] }, }, { // This condition applies to the values block. "condition":{ "expression":"resource.matchTag('ORGANIZATION_ID/location', 'us-west1')" }, "values":{ "allowedValues": ["us-west1-locations"] } } ] } }
Wobei:
RESOURCE_TYPE
istorganizations
,folders
oderprojects
.RESOURCE_ID
ist je nach Ressourcentyp, der inRESOURCE_TYPE
angegeben ist, Ihre Organisations-ID, Ordner-ID, Projekt-ID oder Projektnummer.ORGANIZATION_ID
ist die übergeordnete Organisation Ihres Tag-Schlüssels.
Bei der obigen Organisationsrichtlinie wird für die Ressource und alle untergeordneten Ressourcen die Einschränkung gcp.resourceLocations
erzwungen, wobei für allowedValues
nur us-east1-locations
zulässig ist. Für jede dieser Ressourcen mit dem Tag location: us-west1
wird die Einschränkung gcp.resourceLocations
erzwungen, wobei allowedValues
den Wert us-east1-locations
und us-west1-locations
hat.
Auf diese Weise können sowohl bedingte als auch bedingungsfreie Wertesätze für eine Einschränkung in einer einzigen Organisationsrichtlinie erzwungen werden.
Beispiel einer booleschen Richtlinie
Das folgende Beispiel zeigt, wie Sie eine Organisationsrichtliniendatei festlegen, die die Einschränkung compute.disableSerialPortAccess
erzwingt. Diese Organisationsrichtlinie gibt an, dass alle seriellen Ports für Ressourcen zugänglich sind. Sie verwendet jedoch eine Bedingung, um den Zugriff auf die seriellen Ports nur auf Ressourcen mit dem entsprechenden Tag einzuschränken.
Console
So legen Sie die Organisationsrichtlinie fest:
Öffnen Sie in der Google Cloud Console die Seite Organisationsrichtlinien.
Klicken Sie oben auf der Seite auf Projektauswahl.
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 eine Einschränkung aus der Liste aus. Die Seite Richtliniendetails für diese Einschränkung sollte angezeigt werden.
Zum Anpassen der Organisationsrichtlinie für diese Ressource klicken Sie auf Bearbeiten.
Wählen Sie auf der Seite Bearbeiten die Option Anpassen aus.
Klicken Sie auf Regel hinzufügen.
Wählen Sie unter Erzwingung aus, ob die Erzwingung dieser Organisationsrichtlinie aktiviert oder deaktiviert werden soll.
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 nur eine unbedingte Regel hinzufügen. Andernfalls kann die Richtlinie nicht gespeichert werden.
Geben Sie im Feld Titel einen Namen für die Bedingung ein.
Geben Sie im Feld Beschreibung eine Beschreibung für die Bedingung ein. Die Beschreibung enthält Kontext zu den erforderlichen Tags und deren Auswirkungen auf Ressourcen.
Sie können den Builder für IAM-Bedingungen verwenden, um eine Bedingung zu erstellen, für die ein bestimmtes Tag erforderlich ist, damit die Einschränkung wirksam wird.
Wählen Sie im Drop-down-Menü Bedingungstyp die Option Tag aus.
Wählen Sie den Operator für Ihre Bedingung aus. Um ein ganzes Tag abzugleichen, verwenden Sie den Operator Matches. Verwenden Sie zum Abgleich eines Tag-Schlüssels und eines Tag-Werts den Operator Matches ID
Wenn Sie den Operator Übereinstimmungen ausgewählt haben, geben Sie den Namen des Tags mit dem Wert ein. Wenn Sie den Operator Übereinstimmungs-ID ausgewählt haben, geben Sie die Schlüssel- und Wert-IDs ein.
Sie können mehrere Bedingungen erstellen, indem Sie auf Hinzufügen klicken. Wenn Sie eine weitere Bedingung hinzufügen, können Sie die bedingte Logik so einstellen, dass sie alle erfordert, indem Sie auf Und umschalten. Sie können die bedingte Logik festlegen, dass nur eine der Bedingungen erfüllt sein muss, indem Sie auf Oder umschalten.
Sie können einen Ausdruck löschen, indem Sie auf das große X rechts neben den Bedingungsfeldern klicken.
Wenn Sie mit der Bearbeitung der Bedingungen fertig sind, klicken Sie auf Speichern.
Eine Organisationsrichtlinie mit einer erzwungenen Bedingung darf nur eine unbedingte Regel haben. Klicken Sie auf Regel hinzufügen und legen Sie fest, ob die Erzwingung dieser Organisationsrichtlinie standardmäßig aktiviert oder deaktiviert sein soll.
Die folgende Abbildung zeigt eine Beispielkonfiguration einer Organisationsrichtlinie, die Bedingungen enthält.
Mit dem Bedingungseditor können Sie einen bedingten Ausdruck programmatisch erstellen. Außerdem wird ein programmatisches Rendering Ihrer aktuellen Bedingungen dargestellt.
- Mit dem Bedingungseditor können Sie den logischen Operator
!
anwenden. Mit der Abfrage!resource.matchTag('ORGANIZATION_ID/location', 'us-west1')
würde die Einschränkung der Organisationsrichtlinie beispielsweise auf jede Ressource angewendet werden, die nicht das Tagus-west1
hat.
- Mit dem Bedingungseditor können Sie den logischen Operator
Klicken Sie auf Speichern, um den Vorgang abzuschließen und die Organisationsrichtlinie anzuwenden.
gcloud
Legen Sie die Organisationsrichtlinie mit dem folgenden Befehl fest:
gcloud org-policies set-policy POLICY_PATH
Dabei ist POLICY_PATH
der vollständige Pfad zur JSON-Datei der Organisationsrichtlinie, die in etwa so aussehen sollte:
{ "name": "RESOURCE_TYPE/RESOURCE_ID/policies/gcp.disableSerialPortAccess", "spec": { "rules": [ { "condition": { "expression": "resource.matchTag(\"ORGANIZATION_ID/disableSerialAccess\", \"yes\")" }, "enforce": true }, { "enforce": false } ] } }
Wobei:
RESOURCE_TYPE ist
organizations
,folders
oderprojects
.RESOURCE_ID ist Ihre Organisations-ID, Ordner-ID, Projekt-ID oder Projektnummer.
ORGANIZATION_ID
ist die übergeordnete Organisation Ihres Tag-Schlüssels.
Bei der obigen Organisationsrichtlinie wird für die Ressource und alle untergeordneten Ressourcen die Einschränkung gcp.disableSerialPortAccess
erzwungen.
Alle Ressourcen mit dem Tag disableSerialAccess: yes
werden von der Organisationsrichtlinie abgelehnt. Für jede Ressource ohne das Tag disableSerialAccess: yes
wird die Einschränkung nicht erzwungen.
Einschränkungen bedingt zu Organisationsrichtlinien hinzufügen
Sie können Tags verwenden, um Ressourcenrichtlinien basierend auf den angehängten Tags bedingt hinzuzufügen. Sie können innerhalb einer Organisationsrichtlinie mehrere Bedingungen hinzufügen. Damit können Sie genau steuern, auf welche Ressourcen die Organisationsrichtlinie angewendet werden soll.
Common Expression Language bzw. CEL ist die Ausdruckssprache, die zur Angabe bedingter Ausdrücke verwendet wird. Ein bedingter Ausdruck besteht aus einer oder mehreren Anweisungen, die mithilfe logischer Operatoren (&&
, ||
oder !
) verknüpft werden. Weitere Informationen finden Sie in der CEL-Spezifikation und der zugehörigen Sprachdefinition.
Mit einer Organisationsrichtlinie können Sie die Standorte einschränken, an denen Ressourcen basierend auf den auf diese Ressourcen angewendeten Tags erstellt werden können. Erstellen Sie dazu eine Organisationsrichtlinie, die die Einschränkung gcp.resourceLocations
erzwingt und verwenden Sie Bedingungen, um die Erzwingung auf bestimmte Ressourcen zu beschränken.
Erstellen Sie zuerst die temporäre Datei /tmp/policy.yaml
, die Ihre Organisationsrichtlinie enthält:
name: organizations/ORGANIZATION_ID/policies/gcp.resourceLocations spec: rules: - condition: expression: resource.matchTag("ORGANIZATION_ID/location", "us-east") values: allowedValues: - in:us-east1-locations - condition: expression: resource.matchTag("ORGANIZATION_ID/location", "us-west") values: allowedValues: - in:us-west1-locations - values: deniedValues: - in:asia-south1-locations
Dabei ist ORGANIZATION_ID
die übergeordnete Organisation des Tag-Schlüssels.
Im obigen Beispiel wird jede Ressource, an die das Tag location: us-east
angehängt ist, auf Standorte innerhalb der Wertegruppe us-east1-locations
beschränkt. Jede Ressource, an die das Tag location: us-west
angehängt ist, ist auf Standorte innerhalb der Wertegruppe us-west1-locations
beschränkt. Alle Ressourcen in der Organisation werden von Standorten innerhalb der Wertgruppe asia-south1-locations
blockiert.
Legen Sie die Richtlinie dann mit dem Befehl set-policy
fest:
gcloud org-policies set-policy /tmp/policy.yaml
Übernahme von Organisationsrichtlinien
Listeneinschränkungen der Organisationsrichtlinie, die mithilfe von Tags aktiviert werden, werden gemäß den normalen Regeln für die Übernahme mit der vorhandenen Organisationsrichtlinie zusammengeführt. Diese bedingten Regeln gelten nur, wenn die Bedingung erfüllt ist.
Boolesche Einschränkungen der Organisationsrichtlinie, die mithilfe von Tags aktiviert werden, überschreiben die vorhandene Organisationsrichtlinie. Da boolesche Richtlinien nur zwei Zustände haben können, wahr oder falsch, müssen alle bedingten Anweisungen das Gegenteil der nicht bedingten Anweisung sein, um zu verhindern, dass mehrere Tags miteinander im Konflikt stehen.
Stellen Sie sich beispielsweise eine Organisationsrichtlinie vor, die die Einschränkung disableSerialPortAccess
erzwingt. Der bedingungsfreie Wert, der verwendet wird, wenn keine Bedingungen ihn überschreiben, ist wahr. Daher müssen alle anderen bedingten Anweisungen für diese Richtlinie auf falsch gesetzt werden, damit keine Konflikte auftreten.
Nächste Schritte
Weitere Informationen zur Verwendung von Tags finden Sie auf der Seite Tags erstellen und verwalten.
Weitere Informationen zum Erstellen und Verwalten von Einschränkungen für Organisationsrichtlinien finden Sie unter Einschränkungen verwenden.