Modifica collettiva dei perimetri di servizio

Con Gestore contesto accesso, puoi eseguire aggiornamenti collettivi alle risorse che appartengono ai criteri di accesso della tua organizzazione, ad esempio i livelli di accesso e i perimetri di servizio. Le modifiche alle risorse vengono applicate solo se tutte le parti dell'operazione collettiva vengono completate correttamente.

Questo argomento descrive solo la sostituzione collettiva dei perimetri di servizio. Per ulteriori informazioni sulla sostituzione collettiva dei livelli di accesso, consulta la documentazione di Gestore contesto accesso.

Ottenere un elenco di perimetri di servizio

Poiché le operazioni collettive interessano tutti i perimetri di servizio della tua organizzazione, puoi ottenere un elenco completo dei perimetri. Inoltre, puoi formattare questo elenco come YAML e utilizzarlo per apportare modifiche collettive ai perimetri.

Per ottenere un elenco formattato dei perimetri di servizio, consulta Elenca perimetri di servizio (formattato).

Quando sostituisci tutte le configurazioni perimetro di servizio con il comando replace-all, non devi impostare i campi etag all'interno dei perimetri. È probabile che gli etag cambino tra il recupero e l'aggiornamento dei perimetri, causando un errore di mancata corrispondenza dell'etag nel comando replace-all. Tuttavia, se vuoi applicare il controllo dell'etag, puoi impostare un etag per l'intera richiesta replace-all con il parametro --etag di primo livello.

Invece di rimuovere manualmente ciascuna delle proprietà etag all'interno dei perimetri, puoi recuperare i perimetri senza proprietà etag specificando un --format con tutti i campi tranne etag.

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

Sostituzione collettiva dei perimetri di servizio

La sezione seguente descrive in dettaglio come sostituire collettivamente i perimetri del servizio.

gcloud

Per sostituire collettivamente tutti i perimetri di servizio, utilizza il comando replace-all.

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

Dove:

  • POLICY_NAME è il nome del criterio di accesso della tua organizzazione. Questo valore è obbligatorio solo se non hai impostato un criterio di accesso predefinito.

  • FILE è il nome di un file .yaml che definisce le nuove impostazioni per i perimetri di servizio esistenti.

    Ad esempio:

    - 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
    

    Per ulteriori informazioni sulla formattazione del file YAML, consulta la struttura JSON dell'oggetto ServicePerimeterConfig di Gestore contesto accesso.

  • ETAG (facoltativo) è una stringa che rappresenta la versione di destinazione del criterio di accesso della tua organizzazione. Se non includi un tag, l'operazione collettiva ha come target la versione più recente del criterio di accesso della tua organizzazione.

    Per ottenere l'etag più recente del criterio di accesso, list i tuoi criteri di accesso.

API

Per sostituire in blocco tutti i perimetri di servizio, chiama servicePerimeters.replaceAll.

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

Dove:

  • POLICY_NAME è il nome del criterio di accesso della tua organizzazione.

Corpo della richiesta

Il corpo della richiesta deve includere un elenco di oggetti ServicePerimeterConfig che specificano le modifiche da apportare.

Facoltativamente, per scegliere come target una versione specifica del criterio di accesso della tua organizzazione, puoi includere un etag. Se non includi un etag, l'operazione collettiva ha come target la versione più recente del criterio di accesso della tua organizzazione.

Ad esempio:

{
  "servicePerimeters": [
    object (ServicePerimeterConfig),
    object (ServicePerimeterConfig),
    ...
  ]
  "etag": string
}

Corpo della risposta

In caso di esito positivo, il corpo della risposta della chiamata contiene una risorsa Operation che fornisce dettagli sull'operazione di post.

Risposta di esempio:

{
  "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"
          ]
        }
      }
    ]
  }
}