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 einer Domain- oder Organisationsressource einschränken können. Mit dieser Einschränkung können Sie die Gruppe von Identitäten einschränken, die in Richtlinien für die Identitäts- und Zugriffsverwaltung verwendet werden dürfen.

In Organisationsrichtlinien kann diese Einschränkung verwendet werden, um die Ressourcenfreigabe auf Identitäten zu beschränken, die zu einer bestimmten Organisationsressource gehören. Alternativ können Sie eine oder mehrere Domains angeben. Ausnahmen können 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. Wenn diese Einschränkung für eine Google Workspace-Domain festgelegt wird, wirkt sie sich auf alle Identitäten unter dieser Domain aus. Dies gilt auch für Nutzerkonten, die in der Google Workspace Console und nicht in der Google Cloud Console verwaltet werden.

Organisationsrichtlinie festlegen

Die Domaineinschränkung ist eine Art von Listeneinschränkung. Google Workspace-Kunden-IDs und Ressourcen-IDs der Google Cloud-Organisation können der allowed_values-Liste einer Domaineinschränkung hinzugefügt und daraus entfernt werden. Die Domaineinschränkung unterstützt nicht das Ablehnen von Werten und eine Organisationsrichtlinie kann nicht mit IDs in der denied_values-Liste gespeichert werden.

Alle Domains, die mit einem Google Workspace-Konto oder einer Organisationsressource verknüpft sind, die in der allowed_values aufgeführt ist, werden von der Organisationsrichtlinie zugelassen. Alle anderen Domains werden von der Organisationsrichtlinie abgelehnt.

Sie können eine Organisationsrichtlinie erstellen, die die Domaineinschränkung für jede Ressource in der Liste der unterstützten Ressourcen bedingt. Zum Beispiel 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 die Option Domaineingeschränkte Freigabe aus der Liste der Einschränkungen 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 Domaineinschränkung unterstützt Deny All nicht.

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

  9. Geben Sie unter Benutzerdefinierte Werte eine Organisationsressourcen-ID oder eine Google Workspace-Kunden-ID 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. Optional: Klicken Sie auf Bedingung hinzufügen, um die Domaineinschränkung für ein Tag festzulegen.

    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 Tool zur Bedingungserstellung 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 den folgenden Befehl aus, um eine Organisationsrichtlinie mit der Domaineinschränkung festzulegen:

gcloud org-policies set-policy POLICY_PATH

Dabei ist POLICY_PATH der vollständige Pfad zu Ihrer 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 die ID der Organisationsressource, für die diese Richtlinie festgelegt werden soll.
  • PRINCIPAL_SET für Cloud Identity-Hauptkonten, 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 zur ID der Organisationsressource oder zur Google Workspace-Domain aus der Liste der allowed_values gehören, werden für IAM-Richtlinien zugelassen, sobald diese Organisationsrichtlinie angewendet wurde. Menschliche Google Workspace-Nutzer und -Gruppen müssen dieser Organisationsressource oder Teil dieser Google Workspace-Domain untergeordnet sein und IAM-Dienstkonten müssen einer Organisationsressource untergeordnet sein, die mit der jeweiligen 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 [Constraints/resource-manager/docs/organization-policy/using-constraints#list-constraint).

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.

Ressourcen-ID einer Organisation 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. Rufen Sie die Google Cloud Console auf:

    Weiter zur Google Cloud Console

  2. Wählen Sie in der Projektauswahl oben auf der Seite Ihre Organisationsressource aus.
  3. Klicken Sie rechts auf Mehr und dann auf Einstellungen.

Auf der Seite Einstellungen wird die Ressourcen-ID Ihrer Organisation angezeigt.

gcloud

Führen Sie den folgenden Befehl aus, um die Ressourcen-ID Ihrer Organisation zu ermitteln:

gcloud organizations list

Dieser Befehl listet alle Organisationsressourcen, zu denen Sie gehören, sowie die entsprechenden Organisationsressourcen-IDs auf.

API

Um die Ressourcen-ID der Organisation mithilfe der Cloud Resource Manager API zu ermitteln, verwenden Sie die Methode organizations.search(), einschließlich einer Abfrage Ihrer Domain. 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 ID der Organisationsressource.

Nachdem Sie die Ressourcen-ID der Organisation ermittelt haben, müssen Sie die richtige Kennzeichnung für die zugehörigen Hauptkonten verwenden. Beispiel:

principalSet://iam.googleapis.com/organizations/01234567890123

Weitere Informationen zu IAM-Hauptkennungen finden Sie unter Hauptkennungen.

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, und der Zugriff auf alle anderen blockiert.

Wenn Sie eine Google Workspace-Kundennummer in einer Domaineinschränkung zulassen, wird der Zugriff auf alle Domains beschränkt, die mit dieser Google Workspace-Kundennummer verknüpft sind, und der 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 mit der Google Workspace-Kunden-ID verknüpft sind, unterliegen der Einschränkung.

Durch das Erzwingen der Domaineinschränkung für eine Ressource werden die primäre Domain und alle sekundären Domains gesteuert, die auf diese Ressource und ihre Nachfolger in der Ressourcenhierarchie zugreifen können.

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, wenn die Domaineinschrä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, auch wenn das Dienstkonto analytics-processing-dev@system.gserviceaccount.com bereits als Editor auf Projektebene hinzugefügt wurde, entweder direkt oder über Google Groups.

So verknüpfen Sie Google Analytics 360 mit BigQuery:

  1. Deaktivieren Sie die Organisationsrichtlinie mit der Domaineinschränkung.

  2. Führen Sie die Verknüpfung in Google Analytics 360 durch.

  3. Erzwingen Sie die Domaineinschränkung noch einmal.

Freigabe öffentlicher Daten

Einige Google Cloud-Produkte, wie BigQuery, Cloud Functions, 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 mit der Domaineinschränkung.

  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 mit der Domaineinschränkung.

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

  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 mit der Domaineinschränkung.

  2. Aktivieren Sie die Firebase Management API.

  3. Erzwingen Sie die Domaineinschränkung noch einmal.

Google-Gruppen

Google-Gruppen, die in einer zulässigen Domain erstellt wurden, können immer Rollen in der IAM-Richtlinie gewährt werden, wenn die Domaineinschränkung erzwungen wird, selbst wenn die Gruppe Mitglieder von außerhalb dieser Domain enthält.

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.

Pub/Sub als Endpunkt für eine Google Chat-Anwendung verwenden.

Wenn Sie dem Google Chat API-Dienstkonto Veröffentlichungsrechte für Ihr Thema gewähren und die Einschränkung der eingeschränkten Domainfreigabe aktiviert ist, werden Sie möglicherweise blockiert. Folgen Sie der Anleitung, um den Kontozugriff zu erzwingen.