Identitäten nach Domain einschränken

In Resource Manager steht eine Domaineinschränkung zur Verfügung, mit der Sie in Organisationsrichtlinien die Ressourcenfreigabe nach Domain oder Organisationsressource beschränken können. Mit dieser Einschränkung können Sie die Gruppe von Identitäten einschränken, die in Richtlinien für Identitäts- und Zugriffsverwaltung verwendet werden dürfen.

Organisationsrichtlinien können diese Einschränkung verwenden, 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 ist, wirkt sie sich auf alle Identitäten aus, denen diese Organisationsressource übergeordnet ist. 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-Konsole 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 Google Cloud-Ressourcen-IDs der Organisation können der allowed_values-Liste einer Domaineinschränkung hinzugefügt und daraus entfernt werden. Die Domaineinschränkung unterstützt keine Ablehnung 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 sind, werden von der Organisationsrichtlinie zugelassen. Alle anderen Domains werden von der Organisationsrichtlinie abgelehnt.

Sie können eine Organisationsrichtlinie zur Durchsetzung der Domaineinschränkung für alle Ressourcen in der Liste der unterstützten Ressourcen festlegen. 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 aus der Liste der Einschränkungen die Option Domaineingeschränkte Freigabe 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 Ablehnen.

  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. Optional: Klicken Sie auf Bedingung hinzufügen, um die Domaineinschränkung an ein Tag zu binden.

    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 zur YAML-Datei für die Organisationsrichtlinie, 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 Hauptkennungen von Cloud Identity, die Sie zulassen möchten, einschließlich der ID der Organisationsressource. Beispiel: is:principalSet://iam.googleapis.com/organizations/01234567890123.

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

Nur Identitäten, die zur Ressourcen-ID der Organisation oder zur Google Workspace-Domain aus der Liste der allowed_values gehören, werden für IAM-Richtlinien zugelassen, sobald diese Organisationsrichtlinie angewendet wurde. Google Workspace-Nutzer und -Gruppen müssen untergeordnete Elemente dieser Organisationsressource oder Teil dieser Google Workspace-Domain sein. 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 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.

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

Mit diesem Befehl werden alle Organisationsressourcen aufgelistet, zu denen Sie gehören, sowie die zugehörigen Ressourcen-IDs der Organisation.

API

Wenn Sie die Ressourcen-ID Ihrer Organisation mithilfe der Cloud Resource Manager API ermitteln möchten, verwenden Sie die Methode organizations.search() einschließlich einer Abfrage für Ihre 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 Organisationsressourcen-ID.

Nachdem Sie die Ressourcen-ID der Organisation erhalten haben, müssen Sie die richtige Kennung für den Satz von Hauptkonten verwenden, der dazu gehört. 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 dieser Organisationsressource zugeordnet sind, und auf alle anderen 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, 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-Kundennummer 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 Yes
altostrat.com sub.altostrat.com Zulassen: sub.altostrat.com Yes
sub.altostrat.com altostrat.com Zulassen: sub.altostrat.com Yes
sub.altostrat.com keine Zulassen: sub.altostrat.com Yes

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, bei dem 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 innerhalb einer zulässigen Domain erstellt wurden, können immer Rollen in der IAM-Richtlinie zugewiesen werden, wenn die Domaineinschränkung erzwungen wird, auch 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.

Verwenden Sie Pub/Sub als Endpunkt für eine Google Chat-App.

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