Auf dieser Seite wird beschrieben, wie Sie den zertifikatbasierten Zugriff (Certificate-Based Access, CBA) mithilfe von Richtlinien für den kontextsensitiven Zugriff erzwingen, die auf einer Nutzergruppe basieren.
Sie können den Zugriff auf alle Google Cloud Dienste einschränken, indem Sie eine CBA-Zugriffsebene an eine Nutzergruppe binden. Diese Einschränkung gilt für alle Clientanwendungen, die Google Cloud APIs aufrufen.
Optional können Sie die Einschränkungen auf bestimmte Clientanwendungen anwenden oder bestimmte Anwendungen ausnehmen. Die Anwendungen umfassen sowohl Drittanbieteranwendungen als auch von Google entwickelte Anwendungen wie Cloud Console für die Google Cloud -Konsole und Google Cloud SDK für die Google Cloud CLI.
Hinweis
Erstellen Sie eine Zugriffsebene für den zertifikatbasierten Zugriff, die Zertifikate erfordert, um den Zugriff auf Ressourcen zu bestimmen.
Eine Nutzergruppe erstellen
Erstellen Sie eine Nutzergruppe mit den Mitgliedern, denen basierend auf der CBA-Zugriffsebene Zugriff gewährt werden soll.
Rolle „Administrator für Cloud-Zugriffsbindungen“ zuweisen
Weisen Sie der Nutzergruppe die Rolle Cloud Access Binding Admin zu.
Sie benötigen ausreichende Berechtigungen, um IAM-Berechtigungen auf Organisationsebene hinzuzufügen. Sie benötigen mindestens die Rollen Organisationsadministrator und Administrator für Cloud Access Binding.
Console
Rufen Sie in der Console IAM auf.
Klicken Sie auf dem Tab Berechtigungen auf Zugriff gewähren und konfigurieren Sie Folgendes:
- Neue Prinzipale: Geben Sie die Gruppe an, der Sie die Rolle zuweisen möchten.
- Wählen Sie für die Option Rolle auswählen die Option Access Context Manager > Administrator für Cloud-Zugriffsbindungen aus.
- Klicken Sie auf Speichern.
gcloud
Anmelden:
gcloud auth loginWeisen Sie die Rolle
GcpAccessAdminmit folgendem Befehl zu:gcloud organizations add-iam-policy-binding ORG_ID \ --member=user:EMAIL \ --role=roles/accesscontextmanager.gcpAccessAdminORG_IDist die ID Ihrer Organisation. Wenn Sie Ihre Organisations-ID noch nicht haben, können Sie sie mit dem folgenden Befehl ermitteln:gcloud organizations listEMAIList die E-Mail-Adresse der Person oder Gruppe, der Sie die Rolle zuweisen möchten.
CBA-Zugriffsebene an eine Nutzergruppe binden
Bei dieser Bindungsoption gilt die CBA-Zugriffsebene für alle Clientanwendungen für die von Ihnen angegebene Nutzergruppe.
Rufen Sie in der Console die Seite „Zugriffsrichtlinie für Console und APIs“ auf:
Wählen Sie eine Organisation aus und klicken Sie auf Auswählen.
Klicken Sie auf Zugriff verwalten, um die Nutzergruppen auszuwählen, die Zugriff haben sollen.
Klicken Sie auf Hinzufügen und konfigurieren Sie Folgendes:
- Mitgliedergruppen: Geben Sie die Gruppe an, der Sie Zugriff gewähren möchten. Sie können nur Gruppen auswählen, die nicht bereits an eine Zugriffsebene gebunden sind.
- Zugriffsebenen auswählen: Wählen Sie die CBA-Zugriffsebene aus, die auf die Gruppe angewendet werden soll.
- Klicken Sie auf Speichern.
CBA-Zugriffsebene an eine Nutzergruppe und bestimmte Anwendungen binden
In einigen Anwendungsfällen, z. B. bei Anwendungen, die Clientzertifikate unterstützen, ist das Binden einer CBA-Zugriffsebene an eine Nutzergruppe möglicherweise zu allgemein. Mit dieser Option können Sie CBA-Zugriffsebenen auf Anwendungen anwenden, die Clientzertifikate unterstützen.
Im folgenden Beispiel wird eine CBA-Zugriffsebene an die Google Cloud Console, die gcloud CLI und die OAuth-Anwendung eines Nutzers gebunden.
Melden Sie sich in der gcloud CLI an.
gcloud auth application-default loginErstellen Sie eine
policy_file.yaml-Datei.Sie können Anwendungen anhand ihrer OAuth-Client-ID angeben. Wenn Sie Google-Anwendungen angeben möchten, verwenden Sie den Anwendungsnamen, z. B.
Cloud Consolefür dieGoogle Cloud -Konsole. Es werden nur die Google Cloud -Konsole und Google Cloud SDK-Google-Anwendungen unterstützt.scopedAccessSettings: - scope: clientScope: restrictedClientApplication: name: Cloud Console activeSettings: accessLevels: - CBA_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: name: Google Cloud SDK activeSettings: accessLevels: - CBA_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID_1 activeSettings: accessLevels: - CBA_ACCESS_LEVELErsetzen Sie Folgendes:
- CLIENT_ID_1: Die OAuth-Client-ID.
- CBA_ACCESS_LEVEL: Der Name einer CBA-Zugriffsebene im Format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
Erstellen Sie die Bindung der CBA-Zugriffsebene.
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=policy_file.yamlErsetzen Sie Folgendes:
GROUP_KEY: die eindeutige Gruppen-IDORG_ID: die Organisations-ID
gcloud
Sie können die eindeutige Gruppen-ID als GROUP_KEY verwenden. Verwenden Sie den folgenden Befehl, um die eindeutige Gruppen-ID abzurufen:
gcloud identity groups describe EMAILErsetzen Sie EMAIL durch die E-Mail-Adresse Ihrer Gruppe. Die eindeutige Gruppen-ID ist der Wert, der nach
/im Gruppennamen zurückgegeben wird. Die eindeutige Gruppen-ID ingroups/01gf8i8311xalqgist beispielsweise01gf8i8311xalqg.REST
Sie können die eindeutige Gruppen-ID als GROUP_KEY verwenden. Wenn Sie die eindeutige Gruppen-ID über die REST API abrufen möchten, können Sie die Methode
getfür die Gruppenressource aufrufen. Die eindeutige Gruppen-ID wird im Feldidder Gruppenressource zurückgegeben.Optional: Aktualisieren Sie eine vorhandene Bindung der Zugriffsebene.
gcloud access-context-manager cloud-bindings update \ --binding='BINDING_NAME' \ --binding-file=policy_file.yamlErsetzen Sie BINDING_NAME durch den Namen der Bindung, der beim Erstellen der Bindung automatisch generiert wurde.
Anwendung von einer Bindung ausnehmen
Eine weitere Möglichkeit, eine CBA-Zugriffsebene anzuwenden, ohne Clientanwendungen zu blockieren, die keine Clientzertifikate unterstützen, besteht darin, diese Anwendungen von der Richtlinie auszunehmen.
Bei den folgenden Schritten wird davon ausgegangen, dass Sie bereits eine Zugriffsebene für die clientzertifikatbasierte Authentifizierung erstellt haben, die Zertifikate erfordert, um den Zugriff auf Ressourcen zu bestimmen.
Erstellen Sie eine Zugriffsebene für Ausnahmen mit einer der folgenden Methoden.
- Benutzerdefinierte Zugriffsebene: Geben Sie
trueals Wert in der CEL-Ausdrucksbedingung an. - Einfache Zugriffsebene:
Erstellen Sie eine Zugriffsebene auf Grundlage von IP-Bereichen, indem Sie die IP-Subnetzwerke
0.0.0.0/0und::/0angeben, die IPv4 bzw. IPv6 entsprechen.
- Benutzerdefinierte Zugriffsebene: Geben Sie
Erstellen Sie eine
exemption_file.yaml-Datei.scopedAccessSettings: - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID_2 activeSettings: accessLevels: - EXEMPT_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: name: APPLICATION_NAME_2 activeSettings: accessLevels: - EXEMPT_ACCESS_LEVELErsetzen Sie Folgendes:
- CLIENT_ID_2: die OAuth-Client-ID
- APPLICATION_NAME_2: der Name der Anwendung
- EXEMPT_ACCESS_LEVEL: Der Name einer Zugriffsebene für Ausnahmen im Format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
Erstellen Sie die Richtlinie für die Bindung von Ausnahmen.
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=exemption_file.yamlErsetzen Sie Folgendes:
- GROUP_KEY: die eindeutige Gruppen-ID
- ORG_ID: die Organisations-ID