Con Administrador de contextos de acceso, puedes hacer cambios en bloque 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 los recursos solo se aplican si todas las partes de la operación en bloque se completan correctamente.
En este tema solo se describe la sustitución en bloque de perímetros de servicio. Para obtener más información sobre la sustitución masiva de niveles de acceso, consulta la documentación de Access Context Manager.
Obtener una lista de perímetros de servicio
Como las operaciones masivas afectan a todos los perímetros de servicio de tu organización, puedes obtener una lista completa de tus perímetros. También puedes dar formato YAML a esta lista y usarla para hacer cambios en bloque en tus perímetros.
Para obtener una lista con formato de los perímetros de servicio, consulta Mostrar perímetros de servicio (con formato).
Cuando se anulan todas las configuraciones de perímetros de servicio con el comando replace-all
, no se deben definir los campos etag
en los perímetros. Es probable que las etiquetas Etag cambien entre la obtención y la actualización de los perímetros, lo que provoca que el comando replace-all
devuelva un error de falta de coincidencia de etiquetas Etag. Sin embargo, puedes definir un etag
para toda la solicitud replace-all
con el parámetro --etag
de nivel superior si quieres aplicar la comprobación de etag.
En lugar de quitar manualmente cada una de las propiedades etag
de los perímetros, puede obtener los perímetros sin propiedades etag
especificando un --format
con todos los campos excepto etag
.
gcloud access-context-manager perimeters list \ --policy=POLICY_NAME \ --format="json(name,title,description,perimeterType,status,spec,useExplicitDryRunSpec)"
Reemplazar perímetros de servicio en bloque
En la siguiente sección se explica cómo sustituir en bloque tus perímetros de servicio.
gcloud
Para sustituir en bloque todos los perímetros de servicio, usa el comando replace-all
.
gcloud access-context-manager perimeters replace-all POLICY_NAME \ --source-file=FILE \ --etag=ETAG \
Donde:
POLICY_NAME es el nombre de la política de acceso de tu organización. Este valor solo es obligatorio si no has definido una política de acceso predeterminada.
FILE es el nombre de un archivo .yaml que define los nuevos ajustes de los perímetros de servicio.
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 Administrador de contextos de acceso.ETAG (opcional) es una cadena que representa la versión de destino de la política de acceso de tu organización. Si no incluye un etag, la operación en bloque se dirigirá a la versión más reciente de la política de acceso de su organización.
Para obtener el último etag de tu política de acceso, consulta tus
list
políticas de acceso.
API
Para reemplazar en bloque todos los perímetros de servicio, llama a servicePerimeters.replaceAll
.
POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters.replaceAll?alt=json
Donde:
- 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 quieras hacer.
De forma opcional, para orientar la segmentación a una versión específica de la política de acceso de tu organización, puedes incluir un etag. Si no incluye una etag, la operación masiva se dirigirá a la versión más reciente de la política de acceso de su organización.
Por ejemplo:
{ "servicePerimeters": [ object (ServicePerimeterConfig), object (ServicePerimeterConfig), ... ] "etag": string }
Cuerpo de la respuesta
Si la llamada se completa correctamente, el cuerpo de la respuesta contiene un recurso Operation
que proporciona detalles sobre la operación de publicació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"
]
}
}
]
}
}