In diesem Dokument wird erläutert, wie Sie Ihre vorhandenen Zugriffsbindungen verwalten, die definieren, wie Zugriffsrichtlinien auf Ihre Nutzergruppen oder Dienstkonten angewendet werden. Sie können diese Bindungen nach Bedarf ansehen, ändern und löschen. Zugriffsbindungen bestimmen, wie Zugriffsebenen und Sitzungssteuerungen auf eine Nutzergruppe oder ein Dienstkonto angewendet werden.
Informationen zum Erstellen von Zugriffsbindungen für Nutzer sowie weitere Details zu Zugriffsebenen und Sitzungssteuerungen finden Sie unter Richtlinien mit Zugriffsbindungen auf Nutzergruppen anwenden.
Weitere Informationen zum Erstellen von Zugriffsbindungen für Dienstkonten, siehe Kontextsensitiven Zugriff für Dienstkonten konfigurieren.
Zugriffsbindungen auflisten
So listen Sie alle zuvor erstellten Zugriffsbindungen für Nutzergruppen auf:
gcloud
Führen Sie den folgenden Befehl aus, um alle Zugriffsbindungen für Nutzer mithilfe der gcloud CLI aufzulisten. Wenn Sie Zugriffsbindungen für Dienstkonten auflisten möchten, müssen Sie einen Filter verwenden.
gcloud access-context-manager cloud-bindings list \
--organization ORGANIZATION_ID
ORG_ID: Ihre Organisations-ID.
Wenn die Property access-context-manager/organization nicht festgelegt wurde, ersetzen Sie ORG_ID im optionalen Flag --organization durch die ID der Organisation, die Sie beim Erstellen der Rolle GcpAccessAdmin verwendet haben.
Wenn Sie Zugriffsbindungen für bestimmte Ressourcen auflisten möchten, können Sie ein Filterflag verwenden.
--filter="FILTER"
Ersetzen Sie FILTER durch einen Filter, der die Ressource beschreibt, an die die Zugriffsrichtlinie gebunden ist. Beispiele:
- Nutzergruppen:
principal:group_key
Dienstkonten:
principal:service_account OR principal:service_account_project_number
REST API
Führen Sie den folgenden Befehl aus, um alle USER_LOGIN-Zugriffsbindungen aufzulisten:
curl -H "X-Goog-User-Project: PROJECT_ID" -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://accesscontextmanager.googleapis.com/v1/organizations/ORGANIZATION_ID/gcpUserAccessBindings"
Wenn Sie Zugriffsbindungen für bestimmte Ressourcen auflisten möchten, können Sie einen Filterparameter verwenden.
curl -H "X-Goog-User-Project: PROJECT_ID" -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://accesscontextmanager.googleapis.com/v1/organizations/ORGANIZATION_ID/gcpUserAccessBindings?filter=FILTER"
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Projekts.ORGANIZATION_ID: die ID der Organisation.FILTER: ein Filter, der die Ressource beschreibt, an die die Zugriffsrichtlinie gebunden ist. Beispiele:Nutzergruppen:
principal:group_keyDienstkonten:
principal:service_account OR principal:service_account_project_number
Zugriffsbindung ansehen
Nachdem die Zugriffsbindungen für eine Gruppe von Nutzern erstellt wurden, wird der Zugriff auf die Google Cloud Console und Google Cloud APIs gemäß der Erfüllung der gebundenen Zugriffsebene gesteuert.
Sie können die Details der erstellten Zugriffsbindung ansehen, sie bearbeiten oder löschen.
Console
Rufen Sie in der Google Cloud Console die Seite Access Context Manager auf.
Wählen Sie ein Projekt aus, wenn Sie dazu aufgefordert werden. Die Zugriffsbindungen werden auf der Seite Access Context Manager aufgeführt.
gcloud
Führen Sie den folgenden Befehl aus, um die Details einer Zugriffsbindung aufzurufen:
gcloud access-context-manager cloud-bindings describe \
--binding=BINDING_ID
BINDING_ID ist die ID der Zugriffsbindung oder die vollqualifizierte Kennzeichnung für die Zugriffsbindung.
API
Details einer Zugriffsbindung ansehen:
HTTP-Methode und URL:
GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/BINDING_ID"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
"groupKey": "045jfvxd0ybeul8",
"accessLevels": [
"accessPolicies/305009197125/accessLevels/device_lock"
],
"dryRunAccessLevels": [
"accessPolicies/305009197125/accessLevels/another"
]
}
Zugriffsbindung aktualisieren
Sie können eine Zugriffsbindung aktualisieren, um Folgendes zu tun:
- Hinzufügen, Entfernen oder Ändern von Anwendungen, auf die eine Richtlinie angewendet wird.
- Ändern der Zugriffsebenen für eine Anwendung in einer Nutzergruppe.
- Eine neue Zugriffsebene für Probeläufe hinzufügen oder eine vorhandene in eine Live-Ebene hochstufen.
Console
Rufen Sie in der Google Cloud Console die Seite Access Context Manager auf.
Wählen Sie ein Projekt aus, wenn Sie dazu aufgefordert werden.
Wählen Sie auf der Seite Access Context Manager eine Zugriffsbindung aus und klicken Sie dann auf Bearbeiten, um sie zu aktualisieren.
Sie können Zugriffsbindungen mit Zugriffsebenen für Testläufe oder Sitzungs steuerungen in der Google Cloud Console nicht aktualisieren.
gcloud
Erstellen Sie eine YAML-Bindungsdatei.
gcloud access-context-manager cloud-bindings update \ --binding=ACCESS_BINDING \ --binding-file=BINDING_FILE_PATH \ --level=DEFAULT_ACCESS_LEVEL \ --dry-run-level=DEFAULT_DRY_RUN_ACCESS_LEVEL [ --session-length=DEFAULT_SESSION_LENGTH ] [ --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD ]Ersetzen Sie Folgendes:
-
ACCESS_BINDINGhat das Formatorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. -
BINDING_FILE_PATH: Der Pfad zur YAML-Datei, die das Zugriffsbindungsschema enthält.
Die Bindungsdatei unterstützt nur
scopedAccessSettings. -
DEFAULT_ACCESS_LEVEL: Der optionale Name der Zugriffsebene im Format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Ersetzen SiePOLICY_IDdurch die ID der Zugriffsrichtlinie undACCESS_LEVEL_NAMEdurch den Namen der Zugriffsebene. - DEFAULT_DRY_RUN_ACCESS_LEVEL_2: Ein optionaler Name der Zugriffsebene im Format `accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME`. Fügen Sie dieses Flag hinzu, um die angegebene Zugriffsebene für Probeläufe standardmäßig auf alle Anwendungen anzuwenden, wenn sie nicht in der YAML-Datei angegeben sind.
-
DEFAULT_SESSION_LENGTH: Die optionale Sitzungsdauer im Stundenformat,
z. B.
15hfür 15 Stunden oder2hfür zwei Stunden. -
DEFAULT_SESSION_REAUTH_METHOD: Die optionale Methode, mit der Nutzer aufgefordert werden, ihre
Identität noch einmal zu bestätigen. Sie muss eine der folgenden sein:
LOGIN: Die Standardanmeldung anwenden, die MFA oder andere von Workspace definierte Faktoren umfassen kann.PASSWORD: Nur ein Passwort anfordern, auch wenn andere Faktoren definiert sind. Wenn Passwörter mit einem externen IdP verwaltet werden, werden Nutzer zum IdP weitergeleitet. Wenn die IdP-Sitzung aktiv ist, werden Nutzer implizit neu authentifiziert. Wenn der IdP nicht aktiv ist, müssen sich Nutzer über den IdP anmelden.SECURITY_KEY: Einen Hardware-Sicherheitsschlüssel anfordern.
Zusammenwirken der Argumente
--levelund--binding-file- Wenn Sie nur
--binding-fileverwenden, werden die Richtlinien nur auf die Anwendungen in der Datei angewendet. - Wenn Sie nur
--levelverwenden, gilt die Zugriffsebene für alle Anwendungen. - Wenn Sie beide verwenden, werden die Regeln kombiniert. Der Wert
--levelgilt für alle Anwendungen, während die Richtlinien in der YAML-Datei, die mit--binding-fileangegeben wird, nur für die in der Datei definierten Anwendungen gelten.
Mit Sitzungssteuerungen arbeiten
- Verwenden Sie
--session-lengthund--session-reauth-method, um Standard-Sitzungssteuerungen für alle Anwendungen festzulegen. - Wenn Sie auch Sitzungssteuerungen in der YAML-Datei definieren, überschreiben diese Sitzungssteuerungen die Standardeinstellungen für diese spezifischen Anwendungen.
- Sie müssen
--session-lengthund--session-reauth-methodzusammen verwenden.
Wenn Sie eine Standardzugriffsebene oder eine Standardzugriffsebene für Probeläufe entfernen möchten, geben Sie einen leeren String an, z. B.
--level=oder--dry-run-level=. Wenn diese Argumente nicht angegeben werden, nimmt der Befehlupdatekeine Änderungen vor.Wenn Sie eine Sitzungssteuerung entfernen möchten, legen Sie
--session-length=0fest.-
API
Erstellen Sie einen JSON-Text.
{ "accessLevels": [ "DEFAULT_ACCESS_LEVEL" ], "scopedAccessSettings": [ { "scope": { "clientScope": { "restrictedClientApplication": { "clientId": "CLIENT_ID" } } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_A" ], "sessionSettings": { "sessionLength": "SESSION_LENGTH", "sessionReauthMethod": "SESSION_REAUTH_METHOD", "sessionLengthEnabled": true } } }, { "scope": { "clientScope": { "restrictedClientApplication": { "name": "CLIENT_NAME" } } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_C" ] } } ] }Ersetzen Sie Folgendes:
-
DEFAULT_ACCESS_LEVEL: Der optionale Name der Zugriffsebene im Format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Ersetzen SiePOLICY_IDdurch die ID der Zugriffsrichtlinie undACCESS_LEVEL_NAMEdurch den Namen der Zugriffsebene. - CLIENT_ID: Die OAuth-Client-ID. Wenn eine Anwendung
sessionSettingsenthält, können Sie entwederclientIdodernameverwenden. - ACCESS_LEVEL_A: Ein Name der Zugriffsebene im Format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. - SESSION_LENGTH: Die Sitzungsdauer im ISO 8601-Format für die Dauer, z. B.
30mfür 30 Minuten oder2hfür zwei Stunden. SESSION_REAUTH_METHOD: Die optionale Methode, mit der Nutzer aufgefordert werden, ihre Identität noch einmal zu bestätigen. Sie muss eine der folgenden sein:
LOGIN: Die Standardanmeldung anwenden, die MFA oder andere von Workspace definierte Faktoren umfassen kann.PASSWORD: Nur ein Passwort anfordern, auch wenn andere Faktoren definiert sind. Wenn Passwörter mit einem externen IdP verwaltet werden, werden Nutzer zum IdP weitergeleitet. Wenn die IdP-Sitzung aktiv ist, werden Nutzer implizit neu authentifiziert. Wenn der IdP nicht aktiv ist, müssen sich Nutzer über den IdP anmelden.SECURITY_KEY: Einen Hardware-Sicherheitsschlüssel anfordern.
CLIENT_NAME: Der Clientname. Wenn eine Anwendung
sessionSettingsenthält, können Sie entwedernameoderclientIdverwenden.ACCESS_LEVEL_C: Ein Name der Zugriffsebene im Format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
-
DEFAULT_ACCESS_LEVEL: Der optionale Name der Zugriffsebene im Format
Senden Sie die PATCH-Anfrage.
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?updateMask=FIELD_MASKErsetzen Sie Folgendes:
-
ACCESS_BINDINGhat das Formatorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. - FIELD_MASK: Eine erforderliche, durch Kommas getrennte Liste der Felder, die Sie aktualisieren möchten. Dadurch wird der API mitgeteilt, welche Teile der Zugriffsbindung geändert werden sollen.
fieldMasksollte die JSON-Schlüssel der obersten Ebene im Anfragetext enthalten, die Sie aktualisieren möchten. Dazu könnenaccessLevels,dryRunAccessLevelsundscopedAccessSettingsgehören.Wenn der Vorgang erfolgreich war, sollten Sie eine Darstellung des JSON-Objekts erhalten. Bei einem Problem erhalten Sie eine Fehlermeldung.
-
Zugriffsbindungen löschen
Console
Rufen Sie in der Google Cloud Console die Seite Access Context Manager auf.
Wählen Sie ein Projekt aus, wenn Sie dazu aufgefordert werden.
Wählen Sie auf der Seite Access Context Manager eine Zugriffsbindung aus und klicken Sie dann auf Löschen.
gcloud
gcloud access-context-manager cloud-bindings delete \
--binding ACCESS_BINDING
Ersetzen Sie Folgendes:
-
ACCESS_BINDINGhat das Formatorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. -
ACCESS_BINDING_NAMEist der eindeutige String, der für die Kennzeichnungnamezurückgegeben wurde, als die Zugriffsbindung erstellt wurde.
API
Ersetzen Sie vor der Verwendung der Anfragedaten Folgendes:
-
ACCESS_BINDING_NAMEist der eindeutige String, der für die Kennzeichnungnamezurückgegeben wurde, als die Zugriffsbindung erstellt wurde.
HTTP-Methode und URL:
DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | Select-Object -Expand Content
Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort erhalten.