Bulk-Änderungen an Dienstperimetern 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.

In diesem Thema wird nur die Bulk-Ersetzung von Dienstperimetern beschrieben. Weitere Informationen zur Bulk-Ersetzung von Zugriffsebenen finden Sie in der Dokumentation zu Access Context Manager.

Liste der Dienstperimeter abrufen

Da Bulk-Vorgänge alle Dienstperimeter für Ihre Organisation betreffen, können Sie eine vollständige Liste Ihrer Perimeter abrufen. Sie können diese Liste auch als YAML-Datei formatieren und damit Bulk-Änderungen an Ihren Perimetern vornehmen.

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

Wenn Sie alle Konfigurationen von Dienstperimetern mit dem Befehl replace-all überschreiben, dürfen Sie die etag-Felder nicht innerhalb von Perimetern festlegen. Die ETags ändern sich wahrscheinlich zwischen dem Abrufen und Aktualisieren der Perimeter, was dazu führt, dass der Befehl replace-all einen Fehler bei der ETag-Nichtübereinstimmung zurückgibt. Wenn Sie die Etag-Prüfung erzwingen möchten, können Sie jedoch mit dem übergeordneten Parameter --etag einen etag für die gesamte replace-all-Anfrage festlegen.

Anstatt jede etag-Eigenschaft in den Perimetern manuell zu entfernen, können Sie die Perimeter ohne etag-Eigenschaften abrufen, indem Sie eine --format mit allen Feldern außer etag angeben.

gcloud access-context-manager perimeters list \
  --policy=POLICY_NAME \
  --format="json(name,title,description,perimeterType,status,spec,useExplicitDryRunSpec)"

Bulk-Ersetzung von Dienstperimetern durchführen

Im folgenden Abschnitt wird beschrieben, wie Sie Bulk-Ersetzungen Ihrer Dienstperimeter durchführen.

gcloud

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

gcloud access-context-manager perimeters replace-all POLICY_NAME \
  --source-file=FILE \
  --etag=ETAG \

Wobei:

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

  • FILE ist der Name einer YAML-Datei, in der die neuen Einstellungen für Ihre vorhandenen Dienstperimeter definiert sind.

    Beispiel:

    - name: accessPolicies/11271009391/servicePerimeters/storage_perimeter
      title: Storage Perimeter
      description: Perimeter to protect Storage resources.
      perimeterType: PERIMETER_TYPE_REGULAR
      status:
        restrictedServices:
        - storage.googleapis.com
    - name: accessPolicies/11271009391/servicePerimeters/bigquery_perimeter
      title: BigQuery Perimeter
      description: Perimeter to protect BigQuery resources.
      perimeterType: PERIMETER_TYPE_REGULAR
      status:
        restrictedServices:
        - bigquery.googleapis.com
    

    Weitere Informationen zum Formatieren der YAML-Datei finden Sie in der JSON-Struktur des ServicePerimeterConfig-Objekts von Access Context Manager.

  • 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.

API

Rufen Sie servicePerimeters.replaceAll auf, um eine Bulk-Ersetzung aller Dienstperimeter durchzuführen.

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

Dabei gilt:

  • POLICY_NAME ist der Name der Zugriffsrichtlinie Ihrer Organisation.

Anfragetext

Der Anfragetext muss eine Liste von ServicePerimeterConfig-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:

{
  "servicePerimeters": [
    object (ServicePerimeterConfig),
    object (ServicePerimeterConfig),
    ...
  ]
  "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/replacePerimeters/1583523447707087",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.ReplaceServicePerimetersResponse",
    "servicePerimeters": [
      {
        "name": "accessPolicies/11271009391/servicePerimeters/storage_perimeter",
        "title": "Storage Perimeter",
        "description": "Perimeter to protect Storage resources.",
        "status": {
          "accessLevels": [
            "accessPolicies/11271009391/accessLevels/corpnet_access"
          ],
          "restrictedServices": [
            "bigtable.googleapis.com"
          ]
        }
      },
      {
        "name": "accessPolicies/11271009391/servicePerimeters/storage_perimeter",
        "title": "BigQuery Perimeter",
        "description": "Perimeter to protect BigQuery resources.",
        "status": {
          "accessLevels": [
            "accessPolicies/11271009391/accessLevels/prodnet_access"
          ],
          "restrictedServices": [
            "bigtable.googleapis.com"
          ]
        }
      }
    ]
  }
}