Bulk-Änderungen an Zugriffsebenen vornehmen

Mit Access Context Manager können Sie Bulk-Aktualisierungen an Ressourcen vornehmen, die zur Zugriffsrichtlinie Ihrer Organisation gehören, z. B. Zugriffsebenen und Dienstperimeter.

Änderungen an Ressourcen werden nur übernommen, wenn alle Teile des Bulk-Vorgangs erfolgreich sind. Wenn Ihre Bulk-Operation beispielsweise versucht, eine Zugriffsebene zu entfernen, die von einem Dienstperimeter verwendet wird, wird ein Fehler ausgegeben. Da ein Fehler auftritt, schlägt der gesamte Vorgang fehl und es werden keine Ressourcen aktualisiert.

In diesem Thema wird nur die Bulk-Ersetzung von Zugriffsebenen beschrieben. Weitere Informationen zur Bulk-Ersetzung von Dienstperimetern finden Sie in der Dokumentation zu VPC Service Controls.

Hinweis

Da Bulk-Vorgänge alle Zugriffsebenen für Ihre Organisation betreffen, empfiehlt es sich, eine vollständige Liste Ihrer Zugriffsebenen abzurufen. Die Liste kann als YAML-Datei formatiert werden, was auch Bulk-Änderungen an den Zugriffsebenen einfacher macht.

Eine formatierte Liste der Zugriffsebenen finden Sie unter Zugriffsebenen auflisten (formatiert).

Bulk-Ersetzung von Zugriffsebenen durchführen

Im folgenden Abschnitt wird beschrieben, wie Sie eine Bulk-Ersetzung Ihrer Zugriffsebenen durchführen.

gcloud

Verwenden Sie den Befehl replace-all, um eine Bulk-Ersetzung aller Zugriffsebenen durchzuführen.

gcloud access-context-manager levels replace-all \
  --source-file=FILE \
  --etag=ETAG \
  [--policy=POLICY_NAME]

Wobei:

  • FILE ist der Name einer .yaml-Datei, in der die neuen Bedingungen für Ihre vorhandenen Zugriffsebenen definiert sind.

    Beispiel:

    - name: accessPolicies/11271009391/accessLevels/corpnet_access
      title: Corpnet Access
      description: Permit access to corpnet.
      basic:
        combiningFunction: AND
        conditions:
          - ipSubnetworks:
            - 252.0.2.0/24
            - 2001:db8::/32
    - name: accessPolicies/11271009391/accessLevels/prodnet_access
      title: Prodnet Access
      description: Permit access to prodnet.
      basic:
        combiningFunction: OR
        conditions:
          - members:
            - user:exampleuser@example.com
            - serviceAccount:exampleaccount@example.iam.gserviceaccount.com
          - ipSubnetworks:
            - 176.0.2.0/24
    

    Weitere Beispiele der YAML-Struktur von Bedingungen finden Sie in der YAML-Beispieldatei.

  • ETAG (optional) ist ein String, der die Zielversion der Zugriffsrichtlinie Ihrer Organisation darstellt. Wenn Sie kein ETag einfügen, wird der Ersetzungsvorgang auf die neueste Version der Zugriffsrichtlinie Ihrer Organisation ausgerichtet.

    Listen Sie Ihre Zugriffsrichtlinien auf (list), um das aktuelle ETag Ihrer Zugriffsrichtlinie zu erhalten.

  • POLICY_NAME ist der Name der Zugriffsrichtlinie Ihrer Organisation. Dieser Wert ist nur erforderlich, wenn Sie keine Standardzugriffsrichtlinie festgelegt haben.

API

Wenn Sie eine Bulk-Ersetzung aller Zugriffsebenen durchführen möchten, rufen Sie accessLevels.replaceAll auf.

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels.replaceAll?alt=json

Wobei:

  • POLICY_NAME ist der Name der Zugriffsrichtlinie Ihrer Organisation.

Anfragetext

Der Anfragetext muss eine Liste von AccessLevel-Objekten enthalten, die die gewünschten Änderungen angeben.

Optional können Sie für die Ausrichtung auf eine bestimmte Version der Zugriffsrichtlinie Ihrer Organisation ein ETag einfügen. Wenn Sie kein ETag einfügen, wird der Ersetzungsvorgang auf die neueste Version der Zugriffsrichtlinie Ihrer Organisation ausgerichtet.

Beispiel:

{
  "accessLevels": [
    object (AccessLevel),
    object (AccessLevel),
    ...
  ]
  "etag": string
}

Antworttext

Bei erfolgreichem Ausführen enthält der Antworttext für den Aufruf eine Operation-Ressource mit Informationen zum Post-Vorgang.

Beispielantwort:

{
  "name": "operations/accessPolicies/11271009391/replaceLevels/1583523446234255",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.ReplaceAccessLevelsResponse",
    "accessLevels": [
      {
        "name": "accessPolicies/11271009391/accessLevels/corpnet_access",
        "title": "Corpnet access",
        "description": "Permit access to corpnet.",
        "basic": {
          "conditions": [
            {
              "ipSubnetworks": [
                "252.0.2.0/24"
              ]
            }
          ]
        }
      },
      {
        "name": "accessPolicies/11271009391/accessLevels/prodnet_access",
        "title": "Prodnet access",
        "description": "Permit access to prodnet.",
        "basic": {
          "conditions": [
            {
              "ipSubnetworks": [
                "176.0.2.0/24"
              ]
            }
          ]
        }
      }
    ]
  }
}