Identitäten nach Domain einschränken

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.

Mit dieser Einschränkung können Sie in Organisationsrichtlinien die Ressourcenfreigabe auf Identitäten beschränken, die zu einer bestimmten Organisationsressource gehören. Alternativ können Sie eine oder mehrere Domains angeben. Ausnahmen können dann pro Ordner oder pro Projekt gewährt werden. Weitere Informationen zum Hinzufügen von 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.

Wenn diese Einschränkung für eine Google Cloud-Organisationsressource festgelegt wird, wirkt sie sich auf alle Identitäten aus, die dieser Organisationsressource übergeordnet sind. Wird diese Einschränkung für eine Google Workspace-Domain festgelegt, wirkt sie sich auf alle Identitäten unter dieser Domain aus. Dies gilt auch für Nutzerkonten, die in der Google Workspace-Konsole und nicht in der Google Cloud Console verwaltet werden.

Organisationsrichtlinie festlegen

Die Domaineinschränkung ist eine Art von Listeneinschränkung. Google Workspace-Kundennummern und Google Cloud-Organisationsressourcen-IDs können der Liste allowed_values einer Domaineinschränkung hinzugefügt und daraus entfernt werden. Die Domaineinschränkung unterstützt keine abgelehnten Werte und eine Organisationsrichtlinie kann nicht mit IDs in der Liste denied_values 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:

  1. Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.

    Zu den Organisationsrichtlinien

  2. Wählen Sie in der Projektauswahl die Organisationsressource aus, für die Sie die Organisationsrichtlinie festlegen möchten.

  3. Wählen Sie auf der Seite Organisationsrichtlinien in der Liste der Einschränkungen die Option Freigabe mit Domainbeschränkung aus.

  4. Klicken Sie auf der Seite Richtliniendetails auf Richtlinie verwalten.

  5. Wählen Sie unter Gilt für die Option Richtlinie der übergeordneten Ressource überschreiben aus.

  6. Klicken Sie auf Regel hinzufügen.

  7. Wählen Sie unter Richtlinienwerte die Option „Benutzerdefiniert“ aus. Hinweis: Die Einschränkung für Domaineinschränkungen unterstützt nicht die Option Alle ablehnen.

  8. Wählen Sie unter Richtlinientyp Zulassen aus. Hinweis: Die Einschränkung für Domaineinschränkungen unterstützt keine Werte vom Typ Deny.

  9. Geben Sie unter Benutzerdefinierte Werte eine Ressourcen-ID der Organisation oder eine Google Workspace-Kundennummer in das Feld ein.

  10. Wenn Sie mehrere IDs hinzufügen möchten, klicken Sie auf Neuer Richtlinienwert, um ein zusätzliches Feld zu erstellen.

  11. Klicken Sie auf Fertig.

  12. Klicken Sie optional auf Bedingung hinzufügen, um die Domaineinschränkung von einem Tag abhängig zu machen.

    1. Geben Sie im Feld Titel einen Namen für die Bedingung ein.

    2. 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.

    3. 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.

      1. Wählen Sie auf dem Tab Builder für IAM-Bedingungen im Drop-down-Menü Bedingungstyp die Option Tag aus.

      2. 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

      3. 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.

      4. 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.

      5. Sie können einen Ausdruck löschen, indem Sie auf das große X rechts neben den Bedingungsfeldern klicken.

      6. Wenn Sie mit der Bearbeitung der Bedingungen fertig sind, klicken Sie auf Speichern.

  13. 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 einer Domaineinschränkung festzulegen:

gcloud org-policies set-policy POLICY_PATH

Dabei ist POLICY_PATH der vollständige Pfad zur YAML-Datei der Organisationsrichtlinie, die in etwa 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 die ID der Organisationsressource, für die diese Richtlinie festgelegt werden soll.
  • PRINCIPAL_SET für Cloud Identity-Hauptkonto-IDs, die Sie zulassen möchten, einschließlich der Ressourcen-ID der Organisation. Beispiel: is:principalSet://iam.googleapis.com/organizations/01234567890123.

    Für alle anderen Identitäten, die Sie zulassen möchten, müssen Google Workspace-Kundennummern verwendet werden. Beispiel: is:C03g5e3bc.

Nur Identitäten, die der Organisationsressourcen-ID oder Google Workspace-Domain aus der Liste der allowed_values angehören, werden in IAM-Richtlinien zugelassen, sobald diese Organisationsrichtlinie angewendet wurde. Nutzer und Gruppen von Google Workspace müssen untergeordnete Elemente dieser Organisationsressource oder Teil dieser Google Workspace-Domain sein und IAM-Dienstkonten müssen untergeordnete Elemente einer Organisationsressource sein, die mit der angegebenen Google Workspace-Domain verknüpft ist.

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

Screenshot der 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:

  1. Öffnen Sie die Google Cloud Console:

    Weiter zur Google Cloud Console

  2. Wählen Sie in der Projektauswahl oben auf der Seite die Ressource Ihrer Organisation aus.
  3. Klicken Sie auf der rechten Seite auf das Dreipunkt-Menü 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 zu altostrat.com gehört, einschließlich der Organisationsressourcen-ID.

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-Hauptkonto-IDs finden Sie unter Hauptkonto-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:

  1. Fordern Sie ein OAuth-Zugriffstoken für den Bereich https://www.googleapis.com/auth/admin.directory.customer.readonly an.
  2. 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, wird der Zugriff auf alle Domains eingeschränkt, die mit dieser Google Workspace-Kundennummer verknüpft sind. Der Zugriff auf alle anderen Domains wird blockiert. Jedes Google Workspace-Konto hat genau eine primäre Domain und keine oder mehrere sekundäre Domains. Alle Domains, die der Google Workspace-Kundennummer zugeordnet sind, unterliegen der Einschränkung.

Durch das Erzwingen der Domaineinschränkung auf eine Ressource können Sie die primäre Domain und alle sekundären Domains, die auf diese Ressource und alle ihre untergeordneten Elemente in der Ressourcenhierarchie zugreifen können, steuern.

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:

  1. Deaktivieren Sie die Organisationsrichtlinie, die die Domaineinschränkung enthält.

  2. Verknüpfen Sie die Konten in Google Analytics 360.

  3. Erzwingen Sie die Domaineinschränkung noch einmal.

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:

  1. Deaktivieren Sie die Organisationsrichtlinie, die die Domaineinschränkung enthält.

  2. Gewähren Sie dem entsprechenden Dienstkonto (Format: b*@*.iam.gserviceaccount.com) die BigQuery-Rolle, die während des Erstellens der Senke angegeben wird.

  3. 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:

  1. Deaktivieren Sie die Organisationsrichtlinie, die die Domaineinschränkung enthält.

  2. Gewähren Sie cloud-storage-analytics@google.com WRITE-Zugriff auf diesen Bucket.

  3. 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öchten, gehen Sie so vor:

  1. Deaktivieren Sie die Organisationsrichtlinie, die die Domaineinschränkung enthält.

  2. Weisen Sie dem Dienst-Agent die Rolle zu.

  3. 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:

  1. Deaktivieren Sie die Organisationsrichtlinie, die die Domaineinschränkung enthält.

  2. Aktivieren Sie die Firebase Management API.

  3. Erzwingen Sie die Domaineinschränkung noch einmal.

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. Das liegt daran, dass es bis zu 24 Stunden dauern kann, bis eine Gruppe vollständig in Google Cloud übernommen wurde. 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 Domains der Mitglieder der Gruppe werden nicht ausgewertet. Projektadministratoren können die Domaineinschränkung umgehen, indem sie Google-Gruppen externe Mitglieder hinzufügen und diesen Google-Gruppen dann Rollen zuweisen.

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:

  1. Entfernen Sie die Organisationsrichtlinie, die die Domaineinschränkung enthält.

  2. Gewähren Sie Kontozugriff auf das Projekt.

  3. 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:

  1. Erstellen Sie eine Google-Gruppe innerhalb der zugelassenen Domain.

  2. Im Administratorbereich von Google Workspace können Sie die Domaineinschränkung für diese Gruppe deaktivieren.

  3. Fügen Sie der Gruppe das Dienstkonto hinzu.

  4. 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, dem Dienstkonto der Google Chat API Veröffentlichungsrechte für Ihr Thema zu gewähren, werden Sie möglicherweise blockiert, wenn die Einschränkung für die Freigabe von eingeschränkten Domains aktiviert ist. Folgen Sie dieser Anleitung, um den Kontozugriff zu erzwingen.