Realiza cambios masivos en los perímetros de servicio

Mediante Access Context Manager, puedes realizar actualizaciones en forma masiva en los recursos que pertenecen a la política de acceso de tu organización, como los niveles de acceso y los perímetros de servicio. Los cambios en tus recursos se aplican solo si todas las partes de la operación masiva se realizan de forma correcta.

En este tema, solo se describe el reemplazo masivo de perímetros de servicio. Para obtener más información sobre el reemplazo masivo de niveles de acceso, consulta la documentación de Access Context Manager.

Antes de comenzar

Debido a que las operaciones masivas afectan a todos los perímetros de servicio de tu organización, te recomendamos obtener una lista completa de los perímetros. La lista puede tener el formato YAML, lo que puede facilitar los cambios masivos en tus perímetros.

Para obtener una lista con formato de los niveles de acceso, consulta Enumera los perímetros de servicio (con formato).

Reemplaza perímetros de servicio de forma masiva

En la siguiente sección, se detalla cómo reemplazar de forma masiva tus perímetros de servicio.

gcloud

Para reemplazar de forma masiva todos los perímetros de servicio, usa el comando replace-all.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • FILE es el nombre de un archivo .yaml que define la nueva configuración para tus perímetros de servicio existentes.

    Por ejemplo:

    - 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
    

    Para obtener más información sobre el formato del archivo YAML, consulta la estructura JSON del objeto ServicePerimeterConfig de Access Context Manager.

  • ETAG es una string que representa la versión de destino de la política de acceso de tu organización (opcional). Si no incluyes una ETag, la operación masiva apunta a la última versión de la política de acceso de tu organización.

    Para obtener la última ETag de la política de acceso, list tus políticas de acceso.

  • POLICY_NAME es el nombre de la política de acceso de tu organización. Este valor solo es necesario si no estableciste una política de acceso predeterminada.

API

Para reemplazar de forma masiva todos los perímetros de servicio, llama a servicePerimeters.replaceAll.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • POLICY_NAME es el nombre de la política de acceso de tu organización.

Cuerpo de la solicitud

El cuerpo de la solicitud debe incluir una lista de objetos ServicePerimeterConfig que especifiquen los cambios que deseas realizar.

De manera opcional, puedes incluir una ETag para que apunte a una versión específica de la política de acceso de tu organización. Si no incluyes una ETag, la operación masiva apunta a la última versión de la política de acceso de tu organización.

Por ejemplo:

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

Cuerpo de la respuesta

Si se realiza de forma correcta, el cuerpo de la respuesta de la llamada contiene un recurso Operation que proporciona detalles sobre lo posterior a la operación.

Respuesta de ejemplo:

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