In Resource Manager steht eine Domaineinschränkung zur Verfügung, mit der Sie in Organisationsrichtlinien die Ressourcenfreigabe auf Basis von Domains oder Organisationsressourcen beschränken können. Mithilfe dieser Einschränkung können Sie die Gruppe von Identitäten begrenzen, die gemäß den Richtlinien der Identitäts- und Zugriffsverwaltung verwendet werden dürfen.
In Organisationsrichtlinien lässt sich mit dieser Einschränkung die Ressourcenfreigabe auf Identitäten beschränken, die zu einer bestimmten Organisationsressource gehören. Alternativ können Sie können Sie eine oder mehrere Domains angeben. Ausnahmen können die pro Ordner oder Projekt gewährt werden. Weitere Informationen zum Hinzufügen Ausnahmen finden Sie unter Organisationsrichtlinie für ein Projekt überschreiben
Die Domaineinschränkung gilt nicht rückwirkend. Sobald eine Domaineinschränkung festgelegt wurde, gilt diese für Änderungen der IAM-Richtlinien, die ab diesem Zeitpunkt vorgenommen werden, und nicht für vorherige Änderungen. Die Domaineinschränkung gilt für alle IAM-Richtlinienänderungen, einschließlich Änderungen, die ein Dienst-Agent als Reaktion auf eine andere Aktion vornimmt. Wenn Sie beispielsweise einen automatisierten Dienst haben, der BigQuery-Datasets importiert, nimmt ein BigQuery-Dienst-Agent Änderungen an der IAM-Richtlinie für das neu erstellte Dataset vor. Diese Aktion würde durch die Domaineinschränkung eingeschränkt und blockiert werden.
Betrachten Sie zum Beispiel zwei ähnliche Organisationen: beispielstore.com und altostrat.com. Sie haben einer Identität aus beispielstore.com eine IAM-Rolle in altostrat.com gewährt. Später haben Sie sich dazu entschlossen, Identitäten nach Domain einzuschränken, und eine Organisationsrichtlinie mit Domaineinschränkung in altostrat.com implementiert. In diesem Fall würden die bereits vorhandenen Identitäten von beispielstore.com den Zugriff auf altostrat.com nicht verlieren. Sie könnten jedoch ab diesem Punkt IAM-Rollen nur noch Identitäten aus der Domain altostrat.com zuweisen.
Die Domaineinschränkung basiert auf der Listeneinschränkung iam.allowedPolicyMemberDomains
.
Wird diese Einschränkung für eine Google Cloud-Organisationsressource festgelegt, wirkt sie sich auf alle Identitäten aus, die dieser Organisationsressource übergeordnet sind. Wenn diese für eine Google Workspace-Domain festgelegt ist, wirkt sich dies auf alle Identitäten aus. die zu dieser Domain gehören. Dazu gehören auch Nutzerkonten, die in der in der Google Workspace-Konsole und nicht in der Google Cloud Console.
Organisationsrichtlinie festlegen
Die Domaineinschränkung ist eine Art von Listeneinschränkung.
Google Workspace-Kunden-IDs und Google Cloud-Ressourcen-IDs der Organisation können sein
der Liste „allowed_values
“ einer Domaineinschränkung hinzugefügt und daraus entfernt
Einschränkung. Das Ablehnen von Werten wird von der Domaineinschränkung nicht unterstützt.
und eine Organisationsrichtlinie kann nicht mit IDs in der denied_values
-Liste gespeichert werden.
Alle Domains, die mit einem Google Workspace-Konto oder einer in der allowed_values
aufgeführten Organisationsressource verknüpft sind, sind gemäß der Organisationsrichtlinie zulässig. Alle anderen Domains werden von der Organisationsrichtlinie abgelehnt.
Sie können eine Organisationsrichtlinie so festlegen, dass die Domaineinschränkung für alle Ressourcen gilt, die in der Liste der unterstützten Ressourcen enthalten sind. Beispiele: Cloud Storage-Buckets, BigQuery-Datasets oder Compute Engine VMs
Sie müssen die Berechtigung haben, die Organisationsrichtlinien zu ändern, um diese Einschränkung festzulegen. Die Rolle orgpolicy.policyAdmin
hat beispielsweise die Berechtigung zum Festlegen von Einschränkungen für Organisationsrichtlinien. Die Rolle resourcemanager.organizationAdmin
ist berechtigt, einen Nutzer als Organisationsrichtlinienadministrator hinzuzufügen.
Lesen Sie unter Einschränkungen verwenden, wie Richtlinien auf Organisationsebene verwaltet werden.
Console
So legen Sie eine Organisationsrichtlinie mit einer Domaineinschränkung fest:
Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.
Wählen Sie in der Projektauswahl die Organisationsressource aus, für die Sie die Organisationsrichtlinie festlegen möchten.
Wählen Sie auf der Seite Organisationsrichtlinien Domaineingeschränkte Freigabe aus der Liste der Einschränkungen.
Klicken Sie auf der Seite Richtliniendetails auf Richtlinie verwalten.
Wählen Sie unter Gilt für die Option Richtlinie der übergeordneten Ressource überschreiben aus.
Klicken Sie auf Regel hinzufügen.
Wählen Sie unter Richtlinienwerte die Option „Benutzerdefiniert“ aus. Hinweis: Die Domaineinschränkung Deny All wird nicht unterstützt.
Wählen Sie unter Richtlinientyp Zulassen aus. Hinweis: Die Einschränkung für Domaineinschränkungen unterstützt keine Werte vom Typ Deny.
Geben Sie unter Benutzerdefinierte Werte einen Ressourcen-ID der Organisation oder Google Workspace-Kundennummer in das ein.
Wenn Sie mehrere IDs hinzufügen möchten, klicken Sie auf Neuer Richtlinienwert. um ein zusätzliches Feld zu erstellen.
Klicken Sie auf Fertig.
Optional: Um die Domaineinschränkung an eine auf Bedingung hinzufügen.
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 Tool zur Bedingungserstellung 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.
Klicken Sie auf Richtlinie festlegen, um die Richtlinie zu erzwingen.
gcloud
Richtlinien können über die Google Cloud CLI festgelegt werden. Führen Sie folgenden Befehl aus, um eine Richtlinie mit Domaineinschränkung zu erstellen:
Führen Sie folgenden Befehl aus, um eine Organisationsrichtlinie mit Domaineinschränkung festzulegen:
gcloud org-policies set-policy POLICY_PATH
Dabei ist POLICY_PATH
der vollständige Pfad zu Ihrem
YAML-Datei für Organisationsrichtlinien, die so aussehen sollte:
name: organizations/ORGANIZATION_ID/policies/iam.allowedPolicyMemberDomains
spec:
rules:
- condition: # This condition applies to the values block.
expression: "resource.matchTag('ORGANIZATION_ID/environment', 'dev')"
values:
allowedValues:
- PRINCIPAL_SET
- values:
allowedValues:
- PRINCIPAL_SET
Ersetzen Sie Folgendes:
- ORGANIZATION_ID durch den ID der Organisationsressource, für die diese Richtlinie festgelegt werden soll.
PRINCIPAL_SET für Cloud Identity-Hauptidentitäten, die Sie zulassen möchten, einschließlich der Ressourcen-ID der Organisation. Beispiel:
is:principalSet://iam.googleapis.com/organizations/01234567890123
.Google Workspace-Kundennummern müssen verwendet werden für alle anderen Identitäten, die Sie zulassen möchten. Beispiel:
is:C03g5e3bc
.
Nur Identitäten, die zur Ressourcen-ID der Organisation oder
Google Workspace-Domain aus der Liste der allowed_values
wird zugelassen auf
IAM-Richtlinien, sobald diese Organisationsrichtlinie angewendet wurde.
Menschliche Google Workspace-Nutzer und ‐Gruppen müssen untergeordnete Elemente dieser Organisation sein
Ressource oder Teil dieser Google Workspace-Domain und IAM-Dienst
Konten müssen untergeordnete Elemente einer Organisationsressource sein, die mit dem
Google Workspace-Domain.
Wenn Sie beispielsweise eine Organisationsrichtlinie erstellt haben, die nur die Google Workspace-Kundennummer Ihres Unternehmens enthält, können ab diesem Punkt nur Hauptkonten dieser Domain zur IAM-Richtlinie hinzugefügt werden.
Weitere Informationen zur Verwendung von Einschränkungen in Organisationsrichtlinien finden Sie unter Einschränkungen verwenden.
Beispiel für Fehlermeldung
Bei Verstoß gegen die Domaineinschränkung, d. h., wenn versucht wird, ein Hauptkonto hinzuzufügen, das nicht in der Liste der allowed_values
enthalten ist, schlägt der Vorgang fehl und eine Fehlermeldung wird angezeigt.
Console
gcloud
ERROR: (gcloud.projects.set-iam-policy) FAILED_PRECONDITION: One or more users named in the policy do not belong to a permitted customer.
ID einer Organisationsressource abrufen
Sie können die Ressourcen-ID Ihrer Organisation über die Google Cloud Console, die gcloud CLI oder die Cloud Resource Manager API abrufen.
Console
So rufen Sie die Ressourcen-ID Ihrer Organisation über die Google Cloud Console ab:
- Öffnen Sie die Google Cloud Console:
- Wählen Sie in der Projektauswahl oben auf der Seite die Ressource Ihrer Organisation aus.
- Klicken Sie rechts auf Mehr und dann auf Einstellungen.
Auf der Seite Einstellungen wird die ID Ihrer Organisationsressource angezeigt.
gcloud
Führen Sie den folgenden Befehl aus, um die Ressourcen-ID Ihrer Organisation zu ermitteln:
gcloud organizations list
Dadurch wird eine Liste aller Organisationsressourcen ausgegeben, zu denen Sie gehören, sowie die entsprechenden Organisationsressourcen-IDs.
API
Wenn Sie die Organisationsressourcen-ID mithilfe der Cloud Resource Manager API ermitteln möchten, verwenden Sie die Methode organizations.search()
und fügen Sie eine Abfrage für Ihre Domain hinzu. Beispiel:
GET https://cloudresourcemanager.googleapis.com/v3/organizations:search{query=domain:altostrat.com}
Die Antwort enthält die Metadaten der Organisationsressource, die
gehört zu altostrat.com
, einschließlich der Ressourcen-ID der Organisation.
Nachdem Sie die Ressourcen-ID Ihrer Organisation haben, müssen Sie die richtige Kennung für die zugehörigen Hauptberechtigte verwenden. Beispiel:
principalSet://iam.googleapis.com/organizations/01234567890123
Weitere Informationen zu IAM-Hauptkennungen finden Sie unter Haupt-IDs.
Google Workspace-Kundennummer abrufen
Die von der Domaineinschränkung verwendete Google Workspace-Kundennummer kann auf zwei Arten abgerufen werden:
gcloud
Mit dem Befehl gcloud orgations list können Sie alle Organisationen auflisten lassen, für die Sie die Berechtigung resourcemanager.organizations.get
haben:
gcloud organizations list
Dieser Befehl gibt DISPLAY_NAME
, ID
(Organisations-ID) und DIRECTORY_CUSTOMER_ID
zurück. Die Google Workspace-Kundennummer ist die DIRECTORY_CUSTOMER_ID
.
API
Die Google Workspace Directory API kann zum Abrufen einer Google Workspace-Kundennummer verwendet werden.
Wenn Sie als Google Workspace-Administrator angemeldet sind, können Sie die Dokumentation zur Customers: get API-Methode aufrufen und auf Ausführen klicken. Nach der Autorisierung wird in der Antwort Ihre Kundennummer angezeigt.
Alternativ können Sie einen API-Client verwenden:
- Fordern Sie ein OAuth-Zugriffstoken für den Bereich
https://www.googleapis.com/auth/admin.directory.customer.readonly
an. Führen Sie den folgenden Befehl aus, um die Google Workspace Directory API abzufragen:
curl -# -X GET "https://www.googleapis.com/admin/directory/v1/customers/customerKey" \ -H "Authorization: Bearer $access_token" -H "Content-Type: application/json"
Dieser Befehl gibt eine JSON-Antwort mit den Kundeninformationen zurück. Die Google Workspace-Kundennummer ist die id
.
Subdomains einschränken
Wenn Sie eine Google Cloud-Organisationsressource in einer Domaineinschränkung zulassen, wird der Zugriff auf alle Ressourcen gewährt, die mit dieser Organisationsressource verknüpft sind. Der Zugriff auf alle anderen Ressourcen wird blockiert.
Wenn Sie eine Google Workspace-Kundennummer in einer Domaineinschränkung zulassen, schränkt sie den Zugriff auf alle Domains ein, die mit diesem Google Workspace-Konto verknüpft sind. Kundennummer und den Zugriff auf alle anderen blockiert. Jedes Google Workspace-Konto hat genau eine primäre Domain und keine oder mehrere sekundäre Domains. Alle Domains, die die mit der Google Workspace-Kundennummer verknüpft sind, unterliegen den Einschränkung.
Durch das Erzwingen der Domaineinschränkung für eine Ressource wird die primäre Domain und aller sekundären Domains, die auf diese Ressource und ihre Elemente in der Ressourcenhierarchie.
Beispiele für gängige Kombinationen aus Google Workspace-Domain und Subdomain finden Sie in der folgenden Tabelle:
Primäre Domain | Subdomain | Domaineinschränkung | Ist user@sub.altostrat.com zugelassen? |
---|---|---|---|
altostrat.com | keine | Zulassen: altostrat.com | Nein |
altostrat.com | sub.altostrat.com | Zulassen: altostrat.com | Ja |
altostrat.com | sub.altostrat.com | Zulassen: sub.altostrat.com | Ja |
sub.altostrat.com | altostrat.com | Zulassen: sub.altostrat.com | Ja |
sub.altostrat.com | keine | Zulassen: sub.altostrat.com | Ja |
Damit der Zugriff von Domaineinschränkungen von zwei verschiedenen Domains unterschieden werden kann, muss jede Domain mit einem anderen Google Workspace-Konto verknüpft sein. Jedes Google Workspace-Konto ist einem Organisationsknoten zugeordnet und kann eigene Organisationsrichtlinien anwenden. Dadurch können Sie altostrat.com
mit einem Google Workspace-Konto und sub.altostrat.com
mit einem anderen verknüpfen, um die Zugriffssteuerung zu verfeinern. Weitere Informationen finden Sie unter Mehrere Organisationen verwalten.
Bekannte Fehler beheben
Organisationsrichtlinien sind nicht rückwirkend. Wenn Sie eine Änderung an Ihrer Ressourcenhierarchie erzwingen möchten, die gegen eine geltende Einschränkung verstößt, können Sie die Organisationsrichtlinie deaktivieren, die Änderung vornehmen und dann die Organisationsrichtlinie wieder aktivieren.
In den folgenden Abschnitten werden bekannte Probleme mit Diensten beschrieben, die auftreten können, wenn diese Einschränkung erzwungen wird.
Google Analytics 360 mit BigQuery verknüpfen
Wenn Sie versuchen, Google Analytics 360 mit BigQuery zu verknüpfen, während die Einschränkung für die Domainbeschränkung erzwungen wird, schlägt die Aktion mit der Fehlermeldung One or more users named in the policy do not belong to a permitted
customer
fehl. Das gilt auch, wenn das Dienstkonto analytics-processing-dev@system.gserviceaccount.com
bereits direkt oder über Google-Gruppen als Editor
auf Projektebene hinzugefügt wurde.
So verknüpfen Sie Google Analytics 360 mit BigQuery:
Deaktivieren Sie die Organisationsrichtlinie, die die Domaineinschränkung enthält.
Führen Sie die Verknüpfung in Google Analytics 360 durch.
Erzwingen wieder die Domaineinschränkung.
Freigabe öffentlicher Daten
Einige Google Cloud-Produkte wie BigQuery, Cloud Run-Funktionen, Cloud Run, Cloud Storage und Pub/Sub unterstützen die Freigabe öffentlicher Daten. Wird in einer Organisationsrichtlinie eine Freigabe mit Domaineinschränkung durchgesetzt, ist die Freigabe öffentlicher Daten nicht mehr möglich.
Wenn Sie Daten öffentlich freigeben möchten, deaktivieren Sie vorübergehend die Freigabe mit Domaineinschränkung der Projektressource, auf der sich die freizugebenden Daten befinden. Nachdem Sie die Ressource öffentlich freigegeben haben, können Sie die Domaineinschränkung wieder aktivieren.
BigQuery-Logsenke für ein Rechnungskonto
Das von der BigQuery-Logsenke für Rechnungskonten verwendete Dienstkonto (Format: b*@*.iam.gserviceaccount.com
) wird als extern behandelt und von der auf die Domain beschränkten Freigabeeinschränkung in einer Organisationsrichtlinie blockiert.
So weisen Sie diesem Dienstkonto eine Rolle für ein BigQuery-Dataset in einem Projekt zu, für das die Domaineinschränkung gilt:
Deaktivieren Sie die Organisationsrichtlinie, die die Domaineinschränkung enthält.
Gewähren Sie dem entsprechenden Dienstkonto (Format:
b*@*.iam.gserviceaccount.com
) die BigQuery-Rolle, die während des Erstellens der Senke angegeben wird.Erzwingen Sie die Domaineinschränkung noch einmal.
Dienstkonto für den Cloud-Abrechnungsexport
Die Aktivierung des Abrechnungsexports zu einem Bucket schlägt wahrscheinlich fehl, wenn diese Einschränkung aktiv ist. Verwenden Sie diese Einschränkung nicht für Buckets, die für den Abrechnungsexport genutzt werden.
Die E-Mail-Adresse des Dienstkontos für den Cloud-Abrechnungsexport lautet: 509219875288-kscf0cheafmf4f6tp1auij5me8qakbin@developer.gserviceaccount.com
Logging für Speicherzugriff aktivieren
Sofern sie aktiviert ist, sperrt die Domaineinschränkung alle Domains, die in der Organisationsrichtlinie nicht ausdrücklich zugelassen sind. Dadurch wird auch der Zugriff auf Google-Dienstkonten verhindert. So richten Sie das Logging für den Speicherzugriff für einen Cloud Storage-Bucket ein, für den die Domaineinschränkung gilt:
Deaktivieren Sie die Organisationsrichtlinie, die die Domaineinschränkung enthält.
Gewähren Sie
cloud-storage-analytics@google.com
WRITE
-Zugriff auf diesen Bucket.Erzwingen Sie die Domaineinschränkung noch einmal.
Dienst-Agent-Rollen gewähren
Rollen für Dienst-Agents werden nur Dienstkonten zugewiesen. Wenn Sie diese Art von Rolle gewähren müssen, gehen Sie so vor:
Deaktivieren Sie die Organisationsrichtlinie, die die Domaineinschränkung enthält.
Gewähren Sie die Rolle „Dienst-Agent“.
Erzwingen Sie die Domaineinschränkung noch einmal.
Firebase API aktivieren
Wenn diese Option aktiviert ist, werden durch die Domaineinschränkung die Dienstkonten blockiert, die in der Organisationsrichtlinie nicht zulässig sind. Dadurch ist es nicht möglich, die Firebase API zu aktivieren. Dazu sind bei der Aktivierung der API externe Dienstkonten erforderlich. Nach dem Aktivieren der API können Sie die Domaineinschränkung sicher erzwingen, ohne die Funktion der Firebase API zu beeinträchtigen. So aktivieren Sie die Firebase API:
Deaktivieren Die Organisationsrichtlinie mit der Domaineinschränkung.
Aktivieren Sie die Firebase Management API.
Erzwingen wieder die Domaineinschränkung.
Google-Gruppen
Wenn die Domaineinschränkung in Ihrer Organisation erzwungen wird, können Sie neu erstellten Google-Gruppen möglicherweise keine Rollen zuweisen, auch wenn die Gruppen zu einer zulässigen Domain gehören. Der Grund dafür ist, dass es bis zu 24 Stunden dauern kann, damit eine Gruppe vollständig über Google Cloud propagiert. Wenn Sie einer neu erstellten Google-Gruppe keine Rolle zuweisen können, warten Sie 24 Stunden und versuchen Sie es dann noch einmal.
Außerdem wird bei der Prüfung, ob eine Gruppe zu einer zulässigen Domain gehört, nur die Domain der Gruppe ausgewertet. Die Funktion wertet nicht die Domains der Gruppenmitglieder. Dadurch können Projektadministratoren Domaineinschränkung umgehen, indem externe Mitglieder zu Google hinzugefügt werden Gruppen und weisen diesen dann Rollen zu.
Damit Projektadministratoren die Domaineinschränkung nicht umgehen können, sollte der Google Workspace-Administrator dafür sorgen, dass Gruppeninhaber Mitgliedern von außerhalb der Domain keinen Zugriff auf den Administratorbereich in Google Workspace gewähren können.
Kontozugriff erzwingen
Wenn Sie den Kontozugriff für ein Projekt unter Verletzung von Domaineinschränkungen erzwingen müssen, gehen Sie so vor:
Entfernen Sie die Organisationsrichtlinie, die die Domaineinschränkung enthält.
Gewähren Sie Kontozugriff auf das Projekt.
Implementieren Sie die Organisationsrichtlinie mit der Domaineinschränkung noch einmal.
Alternativ können Sie einer Google-Gruppe, die die entsprechenden Dienstkonten enthält, Zugriff gewähren:
Erstellen Sie eine Google-Gruppe innerhalb der zugelassenen Domain.
Im Administratorbereich von Google Workspace können Sie die Domaineinschränkung für diese Gruppe deaktivieren.
Fügen Sie der Gruppe das Dienstkonto hinzu.
Gewähren Sie mithilfe der IAM-Richtlinie Zugriff auf die Google-Gruppe.
Verwenden Sie Pub/Sub als Endpunkt für eine Google Chat-App.
Wenn Sie versuchen, Veröffentlichungsrechte für dein Thema gewähren Google Chat API-Dienstkonto hinzugefügt haben, werden Sie möglicherweise blockiert, Freigabeeinschränkung ist aktiviert. Folgen Sie der Anleitung, um den Kontozugriff zu erzwingen.