Google Cloud Console und die Google Cloud APIs schützen

In diesem Dokument erfahren Sie, wie Sie den Zugriff auf die Google Cloud Console und Google Cloud APIs mithilfe der kontextbasierten Regeln sichern.

Der kontextsensitive Zugriff für die Google Cloud Console und die Google Cloud APIs schränkt den Zugriff auf die Google Cloud Console und die Google Cloud APIs mit kontextbasierten Regeln ein. Es ist Teil von BeyondCorp Enterprise. Damit wird dafür gesorgt, dass Personen und Gruppen in Ihrer Organisation, die die definierten Zugriffsanforderungen erfüllen, auf die Google Cloud Console und die Google Cloud APIs (einschließlich des Zugriffs über die Google Cloud CLI) zugreifen können.

Führen Sie die folgenden Schritte aus, um die Google Cloud Console und Google Cloud APIs zu sichern:

  1. [Optional] Stellen Sie Endpoint Verification auf Geräten in Ihrer Organisation bereit.
  2. Erstellen Sie eine Zugriffsebene in Access Context Manager.
  3. Erstellen Sie eine Gruppe von Nutzern, die kontextsensitive Einschränkungen unterliegen.
  4. Rufen Sie die erforderlichen Identity and Access Management-Berechtigungen ab.
  5. Erstellen Sie eine Zugriffsbindung, die kontextsensitive Regeln für die Google Cloud Console und die Google Cloud APIs erzwingt.

[Optional] Endpunktprüfung bereitstellen

Wenn Sie den Zugriff auf die Google Cloud Console und die Google Cloud APIs mithilfe der Geräteattribute absichern möchten, stellen Sie die Endpunktprüfung auf Geräten in Ihrer Organisation bereit.

Die Endpunktprüfung wird für Nutzer von macOS, Windows und Linux als Chrome-Erweiterung auf Computern und Laptops ausgeführt. Ein Administrator kann den Dienst über die Google Admin-Konsole auf den unternehmenseigenen Geräten der Organisation bereitstellen oder Mitglieder der Organisation können ihn selbst installieren.

Zugriffsebene erstellen

Sie müssen eine Zugriffsebene definieren, die verwendet werden kann, um den Zugriff auf die Google Cloud Console und die Google Cloud APIs zu bestimmen. Dazu müssen Sie in Access Context Manager eine einfache Zugriffsebene erstellen.

Gruppe von Nutzern erstellen

Erstellen Sie eine Nutzergruppe, die an kontextsensitive Einschränkungen gebunden sein soll. Alle Nutzer in dieser Gruppe, die auch Mitglieder Ihrer Organisation sind, müssen die zuvor erstellte Zugriffsebene haben, um auf die Google Cloud Console und die Google Cloud APIs zugreifen zu können.

Erforderliche IAM-Berechtigungen gewähren

Erteilen Sie die IAM-Berechtigungen auf Organisationsebene, die zum Erstellen von Access Context Manager-Zugriffsbindungen erforderlich sind.

Console

  1. Rufen Sie in der Google Cloud Console die Seite IAM & Verwaltung auf.

    IAM & Verwaltung aufrufen

  2. Klicken Sie auf Hinzufügen und konfigurieren Sie Folgendes:

    • Neue Mitglieder: Geben Sie Nutzer oder Gruppe an, um die Berechtigungen zu erteilen.
    • Rolle auswählen: Wählen Sie Access Context Manager > Administrator für Cloud-Zugriffsbindungen aus.
  3. Klicken Sie auf Speichern.

gcloud

  1. Prüfen Sie, ob Sie über ausreichende Berechtigungen verfügen, um IAM-Berechtigungen auf Organisationsebene hinzuzufügen. Sie benötigen mindestens die Rolle Organisationsadministrator.

    Nachdem Sie überprüft haben, ob Sie die richtigen Berechtigungen haben, melden Sie sich mit folgendem an:

    gcloud auth login
    
  2. Weisen Sie die Rolle GcpAccessAdmin mit folgendem Befehl zu:

    gcloud organizations add-iam-policy-binding ORG_ID \
      --member=user:EMAIL \
      --role=roles/accesscontextmanager.gcpAccessAdmin
    
    • ORG_ID ist die ID Ihrer Organisation. Wenn Sie Ihre Organisations-ID noch nicht haben, können Sie sie mit dem folgenden Befehl ermitteln:

       gcloud organizations list
      
    • EMAIL ist die E-Mail-Adresse der Person oder Gruppe, der Sie die Rolle zuweisen möchten.

Zugriffsbindung erstellen

Eine Zugriffsbindung ist eine Zuordnung zwischen der von Ihnen erstellten Gruppe von Nutzern und der Zugriffsebene für Access Context Manager, die Sie für den Zugriff auf die Google Cloud Console und Google Cloud APIs definiert haben.

Sie haben folgende Möglichkeiten, eine Zugriffsbindung zu erstellen:

  • Zugriffsbindung zwischen einer Gruppe und einer Zugriffsebene.
  • Zugriffsbindung zwischen einer Gruppe und einer Zugriffsebene mit Probelaufkonfiguration. Mit der Probelaufkonfiguration können Sie eine Zugriffsbindung zwischen einer Gruppe und einer Probelaufzugriffsebene oder zwischen einer Gruppe, einer Zugriffsebene und einer Probelaufzugriffsebene erstellen.

Zugriffsbindung mit einer Zugriffsebene erstellen

Console

  1. Rufen Sie in der Google Cloud Console die Seite BeyondCorp Enterprise auf.

    Zu BeyondCorp Enterprise

  2. Wählen Sie eine Organisation aus und klicken Sie auf Auswählen.

  3. Klicken Sie auf Zugriff verwalten, um zu bestimmen, welche Nutzergruppen Zugriff haben sollen.

  4. Klicken Sie auf Hinzufügen und konfigurieren Sie Folgendes:

    • Mitgliedergruppen: Geben Sie die Gruppe an, der Sie Zugriff gewähren möchten. Es können nur Gruppen ausgewählt werden, die nicht bereits an eine Zugriffsebene gebunden sind.
    • Zugriffsebenen wählen: Wählen Sie die auf die Gruppe anzuwendende Zugriffsebene aus.
  5. Klicken Sie auf Speichern.

gcloud

Weitere Informationen zu diesem und anderen gcloud access-context-manager cloud-bindings-Befehlen, einschließlich zusätzlicher Flag-Optionen, finden Sie in der Google Cloud CLI.

 gcloud access-context-manager cloud-bindings create \
    --group-key GROUP_ID \
    --level ACCESS_LEVEL \
    --organization ORG_ID

Wobei:

  • GROUP_ID ist die Gruppen-ID der Nutzergruppe, die Sie zuvor erstellt haben.

    Wenn Sie die Gruppen-ID nicht haben, können Sie sie abrufen, indem Sie die Methode get für die Ressource Groups aufrufen.

  • ORG_ID ist die ID für die Organisation, die Sie beim Erstellen der Rolle GcpAccessAdmin verwendet haben. Wenn das Attribut 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.
  • POLICY_ID ist die ID der Zugriffsrichtlinie Ihrer Organisation.
  • ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.

API

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • ORG_ID ist die ID für die Organisation, die Sie beim Erstellen der Rolle GcpAccessAdmin verwendet haben.
  • GROUP_ID ist die Gruppen-ID der Nutzergruppe, die Sie zuvor erstellt haben.

    Wenn Sie die Gruppen-ID nicht haben, können Sie sie abrufen, indem Sie die Methode get für die Ressource Groups aufrufen.

  • POLICY_ID ist die ID der Zugriffsrichtlinie Ihrer Organisation.
  • ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.

HTTP-Methode und URL:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

JSON-Text der Anfrage:

{
  "groupKey": "GROUP_ID",
  "accessLevels": [ "ACCESS_LEVEL" ],
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",
  "accessLevels": [
    "accessPolicies/305009197125/accessLevels/device_lock"
  ]
}

Zugriffsbindung mit Probelaufkonfiguration erstellen

Sie können eine Zugriffsbindung mit Probelaufkonfiguration erstellen, um die Auswirkungen der Zugriffsebenen in Ihrer Umgebung in den folgenden Szenarien zu verstehen:

  • Um die Auswirkungen einer Zugriffsebene vor dem Erzwingen zu bewerten, erstellen Sie eine Zugriffsbindung mit einer Probelaufzugriffsebene.
  • Wenn Sie eine Zugriffsebene erzwingen und gleichzeitig die Auswirkungen einer Zugriffsebene für einen Probelauf bewerten möchten, erstellen Sie eine Zugriffsbindung mit einer aktiven Zugriffsebene und einer Probelaufzugriffsebene.

Eine Zugriffsbindung mit einer Probelaufzugriffsebene verhindert den Zugriff nicht, sondern protokolliert Verstöße gegen die Probelaufzugriffsebene. Informationen zum Aufrufen der Logdetails finden Sie in den Ablehnungslogs.

Zugriffsbindung mit einer Zugriffsebene für Probelauf erstellen

gcloud

    gcloud access-context-manager cloud-bindings create \
    --group-key = GROUP_ID \
    --dry-run-level = DRY_RUN_ACCESS_LEVEL \
    --organization ORG_ID

Wobei:

  • GROUP_ID ist die Gruppen-ID der Nutzergruppe, die Sie zuvor erstellt haben.

    Wenn Sie die Gruppen-ID nicht haben, können Sie sie abrufen, indem Sie die Methode get für die Ressource Groups aufrufen.

  • ORG_ID ist die ID für die Organisation, die Sie beim Erstellen der Rolle GcpAccessAdmin verwendet haben. Wenn das Attribut 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.
  • POLICY_ID ist die ID der Zugriffsrichtlinie Ihrer Organisation.
  • DRY_RUN_ACCESS_LEVEL ist die ACCESS_LEVEL, deren Auswirkung Sie verstehen möchten. ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.

API

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • ORG_ID ist die ID für die Organisation, die Sie beim Erstellen der Rolle GcpAccessAdmin verwendet haben.
  • GROUP_ID ist die Gruppen-ID der Nutzergruppe, die Sie zuvor erstellt haben.

    Wenn Sie die Gruppen-ID nicht haben, können Sie sie abrufen, indem Sie die Methode get für die Ressource Groups aufrufen.

  • POLICY_ID ist die ID der Zugriffsrichtlinie Ihrer Organisation.
  • DRY_RUN_ACCESS_LEVEL ist die ACCESS_LEVEL, deren Auswirkung Sie verstehen möchten. ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.

HTTP-Methode und URL:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

JSON-Text der Anfrage:

{
  "groupKey": "GROUP_ID",
  "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",

  "dryRunAccessLevels": [
    "accessPolicies/305009197125/accessLevels/another"
  ]
}

Zugriffsbindung mit einer Zugriffsebene und einer Zugriffsebene für Probelauf erstellen

gcloud

    gcloud access-context-manager cloud-bindings create \
    --group-key = GROUP_ID \
    --level = ACCESS_LEVEL \
    --dry-run-level = DRY_RUN_ACCESS_LEVEL \
    --organization ORG_ID

Wobei:

  • GROUP_ID ist die Gruppen-ID der Nutzergruppe, die Sie zuvor erstellt haben.

    Wenn Sie die Gruppen-ID nicht haben, können Sie sie abrufen, indem Sie die Methode get für die Ressource Groups aufrufen.

  • ORG_ID ist die ID für die Organisation, die Sie beim Erstellen der Rolle GcpAccessAdmin verwendet haben. Wenn das Attribut 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.
  • POLICY_ID ist die ID der Zugriffsrichtlinie Ihrer Organisation.
  • ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.
  • DRY_RUN_ACCESS_LEVEL ist die ACCESS_LEVEL, deren Auswirkung Sie verstehen möchten. ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.

API

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • ORG_ID ist die ID für die Organisation, die Sie beim Erstellen der Rolle GcpAccessAdmin verwendet haben.
  • GROUP_ID ist die Gruppen-ID der Nutzergruppe, die Sie zuvor erstellt haben.

    Wenn Sie die Gruppen-ID nicht haben, können Sie sie abrufen, indem Sie die Methode get für die Ressource Groups aufrufen.

  • POLICY_ID ist die ID der Zugriffsrichtlinie Ihrer Organisation.
  • ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.
  • DRY_RUN_ACCESS_LEVEL ist die ACCESS_LEVEL, deren Auswirkung Sie verstehen möchten. ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.

HTTP-Methode und URL:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

JSON-Text der Anfrage:

{
  "groupKey": "GROUP_ID",
  "accessLevels": [ "ACCESS_LEVEL" ],
  "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",
  "accessLevels": [
    "accessPolicies/305009197125/accessLevels/device_lock"
  ],
  "dryRunAccessLevels": [
    "accessPolicies/305009197125/accessLevels/another"
  ]
}

Ablehnungslogs ansehen

Nachdem Sie eine Probelaufkonfiguration erstellt haben, können Sie anhand der Logs feststellen, wo die Probelaufkonfiguration den Zugriff verweigert.

In der folgenden Tabelle sind die Logfelder aufgeführt, mit denen Sie die Abfrage zum Abrufen der Logs erstellen und ausführen können:

Feldname Beschreibung
protoPayload > authenticationInfo > principalEmail E-Mail-ID des Hauptkontos, für das der Zugriff verweigert wird.
protoPayload > metadata > deniedApplications Name der Anwendung, für die der Zugriff verweigert wird.
protoPayload > metadata > evaluationResult Das Bewertungsergebnis der aktiven Zugriffsrichtlinie. Mögliche Werte: GRANTED oder DENIED.
protoPayload > metadata > appliedAccessLevels Die angewendeten Zugriffsebenen, die für die aktive Zugriffsrichtlinie erforderlich sind.
protoPayload > metadata > appliedDryRunAccessLevels Die angewendeten Zugriffsebenen, die für die Probelaufzugriffsrichtlinie erforderlich sind.
protoPayload > metadata > dryRunEvaluationResult Das Bewertungsergebnis der Probelauf-Zugriffsrichtlinie, die die beabsichtigte Aktion beim Erzwingen der Zugriffsrichtlinie angibt. Mögliche Werte: GRANTED oder DENIED.

Weitere Informationen zum Erstellen einer Abfrage für Logs finden Sie unter Logging-Abfragesprache.

Console

  1. Klicken Sie im Navigationsmenü der Google Cloud Console auf Logging und dann auf Log-Explorer.

    Zum Log-Explorer

  2. Geben Sie im Feld Abfrage einen Abfragefilter wie den folgenden ein und klicken Sie dann auf Abfrage ausführen.

    severity="ERROR" AND
    (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
     protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
     protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"
    
  3. Sehen Sie sich die Logs unter Abfrageergebnisse an.

gcloud

Führen Sie einen Befehl wie den folgenden aus, um Logs mit der gcloud CLI aufzurufen:

gcloud logging read 'severity="ERROR" AND
  (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
   protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
   protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"'

Zugriffsbindungen verwalten

Nachdem die Zugriffsbindungen für eine Gruppe von Nutzern erstellt wurden, wird der Zugriff auf die Google Cloud Console und die Google Cloud APIs abhängig von der Zufriedenheit der gebundenen Zugriffsebene gesteuert.

Sie können die Details der von Ihnen erstellten Zugriffsbindung ansehen, sie bearbeiten oder löschen.

Zugriffsbindungen ansehen

Console

Sie können alle Zugriffsbindungen für die Organisation und die Details einer Zugriffsbindung aufrufen.

gcloud

  • Führen Sie den folgenden Befehl aus, um alle Zugriffsbindungen anzusehen:

      gcloud access-context-manager cloud-bindings list \
       --organization ORG_ID
    

    Wobei:

    ORG_ID ist die ID für die Organisation, die Sie beim Erstellen der Rolle GcpAccessAdmin verwendet haben. Wenn das Attribut 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.

  • Führen Sie den folgenden Befehl aus, um die Details einer Zugriffsbindung anzusehen:

      gcloud access-context-manager cloud-bindings describe \
      --binding=BINDING_ID
    

    Wobei:

    BINDING_ID ist die ID der Zugriffsbindung oder eine voll qualifizierte Kennung für die Zugriffsbindung.

API

  • Alle Zugriffsbindungen ansehen:

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • ORG_ID ist die ID für die Organisation, die Sie beim Erstellen der Rolle GcpAccessAdmin verwendet haben. Wenn das Attribut 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.

    HTTP-Methode und URL:

    GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

    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/organizations/ORG_ID/gcpUserAccessBindings"

    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/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    
    {
      "name": string,
      "groupKey": string,
      "accessLevels": [
        string
      ]
      "dryRunAccessLevels": [
      string
      ]
    }
    
    

  • Sehen Sie sich die Details einer Zugriffsbindung an:

    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 in etwa folgende JSON-Antwort erhalten:

    
    {
      "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
      "groupKey": "045jfvxd0ybeul8",
      "accessLevels": [
        "accessPolicies/305009197125/accessLevels/device_lock"
      ],
      "dryRunAccessLevels": [
        "accessPolicies/305009197125/accessLevels/another"
      ]
    }
    
    

Zugriffsbindungen aktualisieren

Console

Sie können eine Zugriffsbindung bei Bedarf aktualisieren.

gcloud

  • Führen Sie den folgenden Befehl aus, um eine Zugriffsbindung zu aktualisieren, z. B. um die Zugriffsebene zu ändern:

      gcloud access-context-manager cloud-bindings update \
         --binding ACCESS_BINDING \
         --level ACCESS_LEVEL
    

    Wobei:

    • ACCESS_BINDING hat das Format organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • ORG_ID ist die ID für die Organisation, die Sie beim Erstellen der Rolle GcpAccessAdmin verwendet haben.
    • ACCESS_BINDING_NAME ist der eindeutige String, der beim Erstellen der Zugriffsbindung für die name-ID zurückgegeben wurde.
    • Ersetzen Sie den Wert für ACCESS_LEVEL bei Bedarf. ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.
  • Führen Sie den folgenden Befehl aus, um eine Zugriffsbindung mit einer Probelaufzugriffsebene zu aktualisieren:

     gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
      --dry-run-level=DRY_RUN_ACCESS_LEVEL
    

    Ersetzen Sie den Wert für DRY_RUN_ACCESS_LEVEL bei Bedarf. Es hat das Format accessPolicies/POLICY_ID/accessLevels/DRY_ACCESS_LEVEL_NAME.

  • Führen Sie den folgenden Befehl aus, um eine Zugriffsbindung zu aktualisieren und sowohl die Zugriffsebene als auch die Zugriffsebene für den Probelauf zu ändern:

     gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
     --level=`ACCESS_LEVEL`
     --dry-run-level=DRY_RUN_ACCESS_LEVEL
    

    Ersetzen Sie den Wert für ACCESS_LEVEL und DRY_RUN_ACCESS_LEVEL nach Bedarf. ACCESS_LEVEL und DRY_RUN_ACCESS_LEVEL haben das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME und DRY_RUN_ACCESS_LEVEL ist mit ACCESS_LEVEL identisch.

  • Führen Sie den folgenden Befehl aus, um die Zugriffsebene eines Probelaufs aus einer Zugriffsbindung zu entfernen:

      gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
      --dry-run-level=
    

API

  • Aktualisieren Sie eine Zugriffsbindung, z. B. um die Zugriffsebene zu ändern:

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • ACCESS_BINDING_NAME ist der eindeutige String, der beim Erstellen der Zugriffsbindung für die name-ID zurückgegeben wurde.
    • ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.

    HTTP-Methode und URL:

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels

    JSON-Text der Anfrage:

    {
        "accessLevels": [ "ACCESS_LEVEL" ]
    }
    
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels" | Select-Object -Expand Content

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    
    {
        "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
        "groupKey": "045jfvxd0ybeul8",
        "accessLevels": [
          "accessPolicies/305009197125/accessLevels/device_lock"
        ]
    }
    
    

  • Aktualisieren Sie eine Zugriffsbindung mit der Zugriffsebene für den Probelauf:

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • ACCESS_BINDING_NAME ist der eindeutige String, der beim Erstellen der Zugriffsbindung für die name-ID zurückgegeben wurde.
    • DRY_RUN_ACCESS_LEVEL ist die ACCESS_LEVEL, deren Auswirkung Sie verstehen möchten. ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.

    HTTP-Methode und URL:

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels

    JSON-Text der Anfrage:

    {
      "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
    }
    
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    
    {
      name: "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
    
      group_key: "045jfvxd0ybeul8",
    
      dry_run_access_levels: [ "accessPolicies/305009197125/accessLevels/another" ]
      }
    
    

  • Aktualisieren Sie eine Zugriffsbindung und ändern Sie sowohl die Zugriffsebene als auch die Zugriffsebene des Probelaufs:

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • ACCESS_BINDING_NAME ist der eindeutige String, der beim Erstellen der Zugriffsbindung für die name-ID zurückgegeben wurde.
    • ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.
    • DRY_RUN_ACCESS_LEVEL ist die ACCESS_LEVEL, deren Auswirkung Sie verstehen möchten. ACCESS_LEVEL hat das Format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Die Werte für POLICY_ID und ACCESS_LEVEL_NAME finden Sie in Access Context Manager ab dem Erstellen der Zugriffsebene.

    HTTP-Methode und URL:

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels

    JSON-Text der Anfrage:

    {
      "accessLevels": [ "ACCESS_LEVEL" ],
      "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
     }
    
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels" | Select-Object -Expand Content

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    
    {
      "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
      "groupKey": "045jfvxd0ybeul8",
      "accessLevels": [
        "accessPolicies/305009197125/accessLevels/device_lock"
      ],
      "dryRunAccessLevels": [
        "accessPolicies/305009197125/accessLevels/another"
      ]
    }
    
    

  • Zugriffsebene für Probelauf von einer Zugriffsbindung entfernen:

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • ACCESS_BINDING_NAME ist der eindeutige String, der beim Erstellen der Zugriffsbindung für die name-ID zurückgegeben wurde.

    HTTP-Methode und URL:

    PATCH PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels

    JSON-Text der Anfrage:

    {
      "dryRunAccessLevels": [ ]
    }
    
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content

    Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.

Zugriffsbindungen löschen

Console

Sie können eine Zugriffsbindung bei Bedarf löschen.

gcloud

   gcloud access-context-manager cloud-bindings delete \
       --binding ACCESS_BINDING

Wobei:

  • ACCESS_BINDING hat das Format organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
  • ACCESS_BINDING_NAME ist der eindeutige String, der beim Erstellen der Zugriffsbindung für die name-ID zurückgegeben wurde.

API

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • ACCESS_BINDING_NAME ist der eindeutige String, der beim Erstellen der Zugriffsbindung für die name-ID zurückgegeben 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 als Ausgabe erhalten.

Häufig gestellte Fragen

  • Wie lange dauert es, bis eine neu erstellte Zugriffsbindung wirksam wird?

    Dies kann bis zu 24 Stunden dauern.

  • Was passiert, wenn ich eine Gruppe mit Zugriffsbindung lösche?

    Gruppe und Bindung werden gelöscht und alle Nutzer in der Gruppe erhalten Zugriff.

  • Was passiert, wenn ich die Zugriffsebene lösche, die in einer Zugriffsbindung verwendet wird?

    Die Zugriffsebene kann nie erfüllt werden und alle Nutzer der gebundenen Gruppe kriegen den Zugriff verweigert.

  • Was passiert, wenn sich ein Nutzer in mehreren Gruppen mit Zugriffsbindungen befindet?

    Der Nutzer muss nur der Zugriffsebene einer dieser Gruppen entsprechen, um Zugriff zu erhalten.

  • Was ist mit Nutzern, die nicht zu meiner Organisation gehören?

    Personen, die nicht Ihrer Organisation angehören, unterliegen nicht der Zugriffsbindung, auch wenn Sie sie der Nutzergruppe hinzugefügt haben, die an kontextsensitive Einschränkungen gebunden sein soll.

Nächste Schritte