En esta página, se describe cómo administrar los niveles de acceso existentes. Puede hacer lo siguiente:
Antes de comenzar
Configura tu política de acceso predeterminada para usar Google Cloud CLI.
o bien
Obtén el nombre de tu política. El nombre de la política es obligatorio para los comandos que usan gcloud CLI y hacen llamadas a la API. Si estableces una política de acceso predeterminada, no necesitas especificar la política para la gcloud CLI.
Asegúrate de tener una función de administración de identidades y accesos (IAM) a nivel de la organización que te permita administrar los niveles de acceso. Solicita a tu administrador que te otorgue una de las siguientes funciones o una función personalizada con los mismos permisos:
Para ver los niveles de acceso: Lector de Access Context Manager (
roles/accesscontextmanager.policyReader)Para ver y cambiar los niveles de acceso: Editor de Access Context Manager (
roles/accesscontextmanager.policyEditor) o Administrador de Access Context Manager (roles/accesscontextmanager.policyAdmin)
Mostrar niveles de acceso
Console
Para enumerar todos los niveles de acceso, abre la página Access Context Manager en la consola de Google Cloud y, si se te solicita, selecciona tu organización. En la página, se muestran los niveles de acceso de tu organización en una cuadrícula, incluidos los detalles sobre la configuración de cada nivel de acceso.
gcloud
Para enumerar todos los niveles de acceso, usa el comando list.
gcloud access-context-manager levels list \ [--policy=POLICY_NAME]
Reemplaza lo siguiente:
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.
El resultado es similar a lo siguiente:
NAME TITLE LEVEL_TYPE Device_Trust Device_Trust Extended Basic Service_Group_A Service_Group_A Basic
API
Para enumerar todos los niveles de acceso de una política, llame al accessLevels.list.
GET https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
Reemplaza 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 estar vacío.
Parámetros opcionales
De manera opcional, incluye uno o más de los siguientes parámetros de consulta.
| Parámetros | |
|---|---|
pageSize
|
Según la configuración predeterminada, la página de niveles de acceso que muestra Puede usar este parámetro para modificar el número de niveles de acceso que se muestran por página. |
pageToken
|
Si la cantidad de niveles de acceso que muestra tu llamada supera el tamaño de la página, el cuerpo de la respuesta incluye un token de página. Puedes usar este parámetro en una llamada posterior para obtener la siguiente página de resultados. |
accessLevelFormat
|
Normalmente, los niveles de acceso se muestran tal como están definidos, ya sea como Puede especificar el valor |
Cuerpo de la respuesta
Si tiene éxito, el cuerpo de respuesta de la llamada contiene un objeto AccessLevels que enumera los niveles de acceso y una cadena nextPageToken. nextPageToken solo tiene un valor si el número de niveles de acceso mostrados excede el tamaño de página. De lo contrario, nextPageToken se muestra como una cadena vacía.
Enumera niveles de acceso (con formato)
Con gcloud CLI, puedes obtener una lista de tus niveles de acceso en formato YAML o JSON.
Para obtener una lista con formato de los niveles de acceso, usa el comando list.
gcloud access-context-manager levels list \ --format=FORMAT \ [--policy=POLICY_NAME]
Reemplaza lo siguiente:
FORMAT: uno de los siguientes valores:list(formato YAML)json(formato JSON)
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.
El resultado de YAML es similar al siguiente:
- basic: {'conditions': [{'ipSubnetworks': ['192.0.2.0/24']}]} description: Level for corp access. name: accessPolicies/123456789012/accessLevels/corp_level title: Corp Level - basic: {'combiningFunction': 'OR', 'conditions': [{'ipSubnetworks': ['192.0.2.0/24']}]} description: Level for net access. name: accessPolicies/123456789012/accessLevels/net_level title: Net Level
El resultado JSON es similar al siguiente:
[ { "basic": { "conditions": [ { "ipSubnetworks": [ "192.0.2.0/24" ] } ] }, "description": "Level for corp access.", "name": "accessPolicies/123456789012/accessLevels/corp_level", "title": "Corp Level" }, { "basic": { "combiningFunction": "OR", "conditions": [ { "ipSubnetworks": [ "192.0.2.0/24" ] } ] }, "description": "Level for net access.", "name": "accessPolicies/123456789012/accessLevels/net_level", "title": "Net Level" } ]
Describe un nivel de acceso
Console
Con la consola de Google Cloud , consulta los pasos para enumerar los niveles de acceso. Cuando enumeras los niveles de acceso, los detalles se proporcionan en la cuadrícula que aparece.
gcloud
El listado de niveles de acceso solo proporciona su nombre, título y tipo de nivel. Para obtener información detallada sobre lo que hace un nivel, usa el comando describe.
gcloud access-context-manager levels describe LEVEL_NAME \ [--policy=POLICY_NAME]
Reemplaza lo siguiente:
LEVEL_NAME: Es el nombre del nivel de acceso que deseas describir.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.
El comando imprime información sobre el nivel con formato YAML. Por ejemplo, si el nivel restringe el acceso a ciertas versiones del sistema operativo, el resultado es similar al siguiente:
basic: conditions: - devicePolicy: allowedEncryptionStatuses: - ENCRYPTED osConstraints: - minimumVersion: 10.13.6 osType: DESKTOP_MAC - minimumVersion: 10.0.18219 osType: DESKTOP_WINDOWS - minimumVersion: 68.0.3440 osType: DESKTOP_CHROME_OS requireScreenlock: true name: accessPolicies/123456789012/accessLevels/Device_Trust title: Device_Trust Extended
API
La lista de niveles de acceso solo proporciona el nombre, el título y el tipo de los niveles.
Para obtener información detallada sobre un nivel de acceso, llama a accessLevels.get.
GET https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME
Reemplaza lo siguiente:
POLICY_NAME: Es el nombre de la política de acceso de tu organización.LEVEL_NAME: Es el nombre del nivel de acceso que deseas describir.
Cuerpo de la solicitud
El cuerpo de la solicitud debe estar vacío.
Parámetros opcionales
De manera opcional, incluye el parámetro de consulta accessLevelFormat. Normalmente, los niveles de acceso se muestran tal como están definidos, ya sea como BasicLevel o CustomLevel.
Puede especificar el valor CEL para que este parámetro muestre BasicLevels como CustomLevels en Common Expression Language de Cloud.
Cuerpo de la respuesta
Si tiene éxito, el cuerpo de respuesta de la llamada contiene un recurso AccessLevel que incluye detalles sobre lo que hace el nivel de acceso, la última vez que se actualizó el nivel y más.
Actualiza un nivel de acceso
En esta sección, se describe cómo actualizar los niveles de acceso individuales. Para actualizar todos los niveles de acceso de tu organización en una sola operación, consulta Realiza cambios masivos a los niveles de acceso.
Console
Para actualizar un nivel de acceso, haz lo siguiente:
Abre la página de Access Context Manager en la consola de Google Cloud .
Si se te solicita, selecciona tu organización.
En la cuadrícula, haz clic en el nombre del nivel de acceso que deseas actualizar.
En el panel Editar nivel de acceso, realiza los cambios en el nivel de acceso.
Para obtener una lista completa de los atributos que puedes agregar o modificar, consulta los atributos de nivel de acceso.
Haga clic en Save.
Además de actualizar o quitar las condiciones existentes, puedes agregar condiciones nuevas y atributos nuevos a las condiciones existentes.
gcloud
Usa el comando update para actualizar un nivel de acceso.
Nivel de acceso básico:
gcloud access-context-manager levels update LEVEL_NAME \ --basic-level-spec=FILE \ [--policy=POLICY_NAME]
Nivel de acceso personalizado:
gcloud access-context-manager levels update LEVEL_NAME \ --custom-level-spec=FILE \ [--policy=POLICY_NAME]
Reemplaza lo siguiente:
LEVEL_NAME: Es el nombre del nivel de acceso que deseas actualizar.FILE: Es el nombre de un archivo YAML que define las condiciones para el nivel de acceso (para los niveles de acceso básicos) o una expresión de CEL que se resuelve en un solo valor booleano (para los niveles de acceso personalizados).Para obtener una lista completa de los atributos que puedes usar en las condiciones de nivel de acceso básicas, lee sobre los atributos de nivel 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.Puedes incluir una o más de las opciones siguientes.
Opciones combine-functionEsta opción solo se usa para niveles de acceso básicos.
Determina cómo se combinan las condiciones.
Valores válidos:
AND,ORdescriptionUna descripción con formato largo del nivel de acceso.
titleUn título corto para el nivel de acceso. El título del nivel de acceso se muestra en la consola de Google Cloud .
Puede incluir cualquiera de las marcas de todo gcloud.
Comando de ejemplo
gcloud access-context-manager levels update Device_Trust \ --basic-level-spec=corpdevspec.yaml \ --combine-function=OR \ --description='Access level that conforms to updated corporate spec.' \ --title='Device_Trust Extended' \ --policy=123456789012
API
Para actualizar un nivel de acceso, llama a accessLevels.patch.
PATCH https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME?updateMask=FIELDS
Reemplaza lo siguiente:
POLICY_NAME: Es el nombre de la política de acceso de tu organización.LEVEL_NAME: Es el nombre del nivel de acceso que deseas actualizar.FIELDS: Es una lista separada por comas de nombres de campos completamente calificados que estás actualizando.
Cuerpo de la solicitud
El cuerpo de la solicitud debe incluir un recurso AccessLevel que especifique los cambios que deseas realizar en el nivel de acceso.
Cuerpo de la respuesta
Si tiene éxito, el cuerpo de la respuesta de la llamada contendrá un recurso Operation que proporciona detalles sobre la operación.
Borra un nivel de acceso
En esta sección, se describe cómo borrar los niveles de acceso de Access Context Manager. Para borrar un nivel de acceso, debes seguir estos dos pasos:
Verifica las dependencias de nivel de acceso
Antes de borrar un nivel de acceso, asegúrate de que no se haga referencia a él en otros niveles de acceso, perímetros de servicio de los Controles del servicio de VPC, políticas de Acceso adaptado al contexto de Google Workspace, vinculaciones de acceso deGoogle Cloud o condiciones de IAM.
Para encontrar todos los niveles de acceso que hacen referencia al que deseas borrar, haz lo siguiente:
Asegúrate de haber instalado
jq. Para verificar quejqesté instalado, ejecutajq --version. Si es necesario, instalajq.Verifica las dependencias de nivel de acceso. Este comando enumera todos los niveles de acceso y, luego, usa
jqpara filtrar los niveles de acceso que hacen referencia aLEVEL_NAMEen las definiciones de nivel básico o personalizado.echo "Searching for Access Levels referencing: accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME" echo "" gcloud access-context-manager levels list \ --policy="POLICY_NAME" \ --format=json | \ jq -r ' .[] | select( # Check basic levels: Is the target access level present as an element in any requiredAccessLevels array? ([(.basic.conditions // [])[] | (.requiredAccessLevels // []) | index("accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME") != null] | any) or # Check custom levels: Does the expression string contain the target access level? ((.custom.expr.expression // "") | (contains("accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME") or contains("levels.LEVEL_NAME"))) ) | " - \(.title) (Name: \(.name))" ' echo "" echo "If any levels are listed, they reference LEVEL_NAME. You must update these referencing levels before you delete LEVEL_NAME."
Reemplaza lo siguiente:
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.LEVEL_NAME: Es el nombre del nivel de acceso que deseas borrar, por ejemplo,my_level.
En el resultado, se enumeran los niveles de acceso que hacen referencia a
accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAMEolevels.LEVEL_NAME, junto con sustitleyname. Estos niveles de acceso incluyen lo siguiente:Niveles básicos, en los que
accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAMEse incluye enrequiredAccessLevelsNiveles personalizados, en los que
accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAMEolevels.LEVEL_NAMEse indican en la cadenacustom.expr.expression.
Si el comando enumera algún nivel de acceso de referencia, primero debes actualizar esos niveles para quitar la dependencia. Para obtener instrucciones, consulta Actualiza un nivel de acceso.
Después de quitar todas las referencias, puedes continuar con la eliminación del nivel de acceso individual.
Borra un nivel de acceso individual
Console
Para borrar un nivel de acceso, haz lo siguiente:
Abre la página de Access Context Manager en la consola de Google Cloud .
Si se te solicita, selecciona tu organización.
En la cuadrícula, en la fila del nivel de acceso que deseas borrar, haz clic en el botón .
Haz clic en Borrar.
En el diálogo que aparece, confirma que deseas borrar el nivel de acceso.
gcloud
Para borrar un nivel de acceso, haz lo siguiente:
Usa el comando
deletepara borrar un nivel de acceso.gcloud access-context-manager levels delete LEVEL_NAME \ [--policy=POLICY_NAME]
Reemplaza lo siguiente:
LEVEL_NAME: Es el nombre del nivel de acceso que deseas borrar.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.
Confirma que deseas borrar el nivel de acceso.
Por ejemplo:
You are about to delete level Device_Trust Do you want to continue (Y/n)?
Debería ver un resultado similar al siguiente:
Waiting for operation [accessPolicies/123456789012/accessLevels/Device_Trust/delete/1531171874311645] to complete...done. Deleted level [Device_Trust].
API
Para borrar un nivel de acceso, llama a accessLevels.delete.
DELETE https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME
Reemplaza lo siguiente:
POLICY_NAME: Es el nombre de la política de acceso de tu organización.LEVEL_NAME: Es el nombre del nivel de acceso que deseas borrar.
Cuerpo de la solicitud
El cuerpo de la solicitud debe estar vacío.
Cuerpo de la respuesta
Si tiene éxito, el cuerpo de respuesta de la llamada contiene un recurso Operation que proporciona detalles sobre la operación de eliminación.