Protege la consola de Google Cloud y las APIs de Google Cloud

En este documento, se muestra cómo proteger el acceso a la consola de Google Cloud y a las APIs de Google Cloud mediante las reglas basadas en el contexto.

El acceso adaptado al contexto para la consola de Google Cloud y las APIs de Google Cloud restringe el acceso a la consola de Google Cloud y a las APIs de Google Cloud con reglas basadas en el contexto. Es parte de BeyondCorp Enterprise y ayuda a garantizar que las personas y los grupos dentro de tu organización que cumplan con los requisitos de acceso definidos puedan acceder a la consola de Google Cloud y a las APIs de Google Cloud (incluido el acceso desde Google Cloud CLI).

Para proteger la consola de Google Cloud y las APIs de Google Cloud, completa los siguientes pasos:

  1. Implementa Endpoint Verification en los dispositivos de tu organización (opcional).
  2. Crea un nivel de acceso en Access Context Manager.
  3. Crea un grupo de usuarios sujeto a restricciones contextuales.
  4. Obtén los permisos necesarios de la administración de identidades y accesos.
  5. Crea una vinculación de acceso que aplique reglas contextuales para la consola de Google Cloud y las APIs de Google Cloud.

Implementa la verificación de extremos (opcional)

Si deseas proteger el acceso a la consola de Google Cloud y a las APIs de Google Cloud mediante los atributos del dispositivo, implementa la verificación de extremos en los dispositivos de tu organización.

La Verificación de extremos se ejecuta como una extensión de Chrome en computadoras de escritorio y laptops para usuarios de macOS, Windows y Linux. Un administrador puede implementarlo en los dispositivos que pertenecen a la empresa de la organización desde la Consola del administrador de Google o los miembros de la organización pueden instalarlo por su cuenta.

Crea un nivel de acceso

Debes definir un nivel de acceso que se pueda usar cuando se determina el acceso a la consola de Google Cloud y a las APIs de Google Cloud. Para ello, crea un nivel de acceso básico en Access Context Manager.

Cómo crear un grupo de usuarios

Crea un grupo de usuarios que esté vinculado por restricciones contextuales. Todos los usuarios de este grupo que también sean miembros de tu organización deben cumplir con el nivel de acceso que creaste antes para acceder a la consola de Google Cloud y a las APIs de Google Cloud.

Otorga los permisos de IAM necesarios

Otorga a nivel de organización los permisos de IAM que se necesitarán para crear vinculaciones de acceso de Access Context Manager.

Console

  1. Ve a la página IAM y administración en la consola de Google Cloud.

    Ir a IAM y administración

  2. Haz clic en Agregar y configura lo siguiente:

    • Miembros nuevos: especifica el usuario o el grupo al que deseas otorgar los permisos.
    • Selecciona una función: Selecciona Access Context Manager > Administrador de vinculaciones de acceso a Cloud.
  3. Haz clic en Guardar.

gcloud

  1. Asegúrate de estar autenticado con privilegios suficientes para agregar permisos de IAM a nivel de organización. Como mínimo, necesitas la función de Administrador de la organización.

    Una vez que confirmes que tienes los permisos adecuados, accede con el siguiente comando:

    gcloud auth login
    
  2. Asigna el rol GcpAccessAdmin mediante la ejecución del siguiente comando:

    gcloud organizations add-iam-policy-binding ORG_ID \
      --member=user:EMAIL \
      --role=roles/accesscontextmanager.gcpAccessAdmin
    
    • ORG_ID es el ID de tu organización. Si aún no tienes el ID de la organización, puedes usar el siguiente comando para encontrarlo:

       gcloud organizations list
      
    • EMAIL es la dirección de correo electrónico de la persona o el grupo al que deseas otorgar el rol.

Crea una vinculación de acceso

Una vinculación de acceso es una asignación entre el grupo de usuarios que creaste antes y el nivel de acceso de Access Context Manager que definiste para acceder a la consola de Google Cloud y a las API de Google Cloud.

Puedes crear una vinculación de acceso de una de las siguientes maneras:

  • Vinculación de acceso entre un grupo y un nivel de acceso.
  • Vinculación de acceso entre un grupo y un nivel de acceso con la configuración de ejecución de prueba. Con la configuración de la ejecución de prueba, puedes crear una vinculación de acceso entre un grupo y un nivel de acceso de ejecución de prueba, o entre un grupo, un nivel de acceso y uno de ejecución de prueba.

Crea una vinculación de acceso con un nivel de acceso

Console

  1. Ve a la página de BeyondCorp Enterprise en la consola de Google Cloud.

    Ir a BeyondCorp Enterprise

  2. Elige una organización y haz clic en Seleccionar.

  3. Haz clic en Administrar acceso para elegir los grupos de usuarios que deben tener acceso.

  4. Haz clic en Agregar y configura lo siguiente:

    • Grupos de miembros: Especifica el grupo al que deseas otorgar acceso. Solo los grupos que aún no están vinculados a un nivel de acceso están disponibles para seleccionarse.
    • Selecciona niveles de acceso: Elige el nivel de acceso que se debe aplicar al grupo.
  5. Haz clic en Guardar.

gcloud

Puedes consultar Google Cloud CLI para obtener más información sobre este y otros comandos gcloud access-context-manager cloud-bindings, incluidas las opciones adicionales de marca.

 gcloud access-context-manager cloud-bindings create \
    --group-key GROUP_ID \
    --level ACCESS_LEVEL \
    --organization ORG_ID

Aquí:

  • GROUP_ID es el ID del grupo de usuarios que creaste antes.

    Si el ID de grupo no está disponible, puedes llamar al método get en el recurso Groups para recuperarlo.

  • ORG_ID es el ID de la organización que usaste cuando creaste la función GcpAccessAdmin. Si no se configuró la propiedad access-context-manager/organization, reemplaza ORG_ID en la marca opcional --organization por el ID de la organización que usaste cuando creaste el rol GcpAccessAdmin.
  • POLICY_ID es el ID de la política de acceso de tu organización.
  • ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.

API

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • ORG_ID es el ID de la organización que usaste cuando creaste la función GcpAccessAdmin.
  • GROUP_ID es el ID del grupo de usuarios que creaste antes.

    Si el ID de grupo no está disponible, puedes llamar al método get en el recurso Groups para recuperarlo.

  • POLICY_ID es el ID de la política de acceso de tu organización.
  • ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.

HTTP method and URL:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Cuerpo JSON de la solicitud:

{
  "groupKey": "GROUP_ID",
  "accessLevels": [ "ACCESS_LEVEL" ],
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",
  "accessLevels": [
    "accessPolicies/305009197125/accessLevels/device_lock"
  ]
}

Crea una vinculación de acceso con la configuración de ejecución de prueba

Puedes crear una vinculación de acceso con configuración de ejecución de prueba para comprender el impacto de los niveles de acceso en tu entorno en las siguientes situaciones:

  • Para evaluar el impacto de un nivel de acceso antes de aplicarlo, crea una vinculación de acceso con un nivel de acceso de ejecución de prueba.
  • Para aplicar un nivel de acceso y evaluar el impacto de un nivel de acceso de ejecución de prueba al mismo tiempo, crea una vinculación de acceso con un nivel de acceso activo y uno de ejecución de prueba.

Una vinculación de acceso con un nivel de acceso de ejecución de prueba no impide el acceso, pero registra los incumplimientos de ese nivel. Para ver los detalles del registro, consulta los registros de denegación.

Crea una vinculación de acceso con un nivel de acceso de ejecución de prueba

gcloud

    gcloud access-context-manager cloud-bindings create \
    --group-key = GROUP_ID \
    --dry-run-level = DRY_RUN_ACCESS_LEVEL \
    --organization ORG_ID

Aquí:

  • GROUP_ID es el ID del grupo de usuarios que creaste antes.

    Si el ID de grupo no está disponible, puedes llamar al método get en el recurso Groups para recuperarlo.

  • ORG_ID es el ID de la organización que usaste cuando creaste la función GcpAccessAdmin. Si no se configuró la propiedad access-context-manager/organization, reemplaza ORG_ID en la marca opcional --organization por el ID de la organización que usaste cuando creaste el rol GcpAccessAdmin.
  • POLICY_ID es el ID de la política de acceso de tu organización.
  • DRY_RUN_ACCESS_LEVEL es el ACCESS_LEVEL para el que quieres comprender el efecto. ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.

API

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • ORG_ID es el ID de la organización que usaste cuando creaste la función GcpAccessAdmin.
  • GROUP_ID es el ID del grupo de usuarios que creaste antes.

    Si el ID de grupo no está disponible, puedes llamar al método get en el recurso Groups para recuperarlo.

  • POLICY_ID es el ID de la política de acceso de tu organización.
  • DRY_RUN_ACCESS_LEVEL es el ACCESS_LEVEL para el que quieres comprender el efecto. ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.

HTTP method and URL:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Cuerpo JSON de la solicitud:

{
  "groupKey": "GROUP_ID",
  "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",

  "dryRunAccessLevels": [
    "accessPolicies/305009197125/accessLevels/another"
  ]
}

Crea una vinculación de acceso con un nivel de acceso y un nivel de acceso de ejecución de prueba

gcloud

    gcloud access-context-manager cloud-bindings create \
    --group-key = GROUP_ID \
    --level = ACCESS_LEVEL \
    --dry-run-level = DRY_RUN_ACCESS_LEVEL \
    --organization ORG_ID

Aquí:

  • GROUP_ID es el ID del grupo de usuarios que creaste antes.

    Si el ID de grupo no está disponible, puedes llamar al método get en el recurso Groups para recuperarlo.

  • ORG_ID es el ID de la organización que usaste cuando creaste la función GcpAccessAdmin. Si no se configuró la propiedad access-context-manager/organization, reemplaza ORG_ID en la marca opcional --organization por el ID de la organización que usaste cuando creaste el rol GcpAccessAdmin.
  • POLICY_ID es el ID de la política de acceso de tu organización.
  • ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
  • DRY_RUN_ACCESS_LEVEL es el ACCESS_LEVEL para el que quieres comprender el efecto. ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.

API

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • ORG_ID es el ID de la organización que usaste cuando creaste la función GcpAccessAdmin.
  • GROUP_ID es el ID del grupo de usuarios que creaste antes.

    Si el ID de grupo no está disponible, puedes llamar al método get en el recurso Groups para recuperarlo.

  • POLICY_ID es el ID de la política de acceso de tu organización.
  • ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
  • DRY_RUN_ACCESS_LEVEL es el ACCESS_LEVEL para el que quieres comprender el efecto. ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.

HTTP method and URL:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Cuerpo JSON de la solicitud:

{
  "groupKey": "GROUP_ID",
  "accessLevels": [ "ACCESS_LEVEL" ],
  "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",
  "accessLevels": [
    "accessPolicies/305009197125/accessLevels/device_lock"
  ],
  "dryRunAccessLevels": [
    "accessPolicies/305009197125/accessLevels/another"
  ]
}

Visualiza los registros de denegación

Después de crear una configuración de ejecución de prueba, puedes revisar los registros para identificar dónde la configuración de ejecución de prueba rechaza el acceso.

En la siguiente tabla, se enumeran los campos de registro que puedes usar para crear y ejecutar la consulta y obtener los registros:

Nombre del campo Descripción
protoPayload > authenticationInfo > principalEmail ID de correo electrónico de la principal para la que se denegó el acceso.
protoPayload > metadata > deniedApplications Nombre de la aplicación para la que se denegó el acceso
protoPayload > metadata > evaluationResult El resultado de la evaluación de la política de acceso activa. Valores posibles: GRANTED o DENIED.
protoPayload > metadata > appliedAccessLevels Los niveles de acceso aplicados que requiere la política de acceso activa.
protoPayload > metadata > appliedDryRunAccessLevels Los niveles de acceso aplicados que requiere la política de acceso de ejecución de prueba.
protoPayload > metadata > dryRunEvaluationResult El resultado de la evaluación de la política de acceso de ejecución de prueba, que indica la acción prevista cuando se aplica la política de acceso. Valores posibles: GRANTED o DENIED.

Para obtener detalles sobre cómo crear consultas para registros, visita Lenguaje de consulta de Logging.

Console

  1. En el menú de navegación de la consola de Google Cloud, haz clic en Logging y, luego, en Explorador de registros.

    Ir al Explorador de registros

  2. En el campo Consulta, ingresa un filtro de consulta como el siguiente y haz clic en Ejecutar consulta.

    severity="ERROR" AND
    (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
     protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
     protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"
    
  3. Visualiza los registros en Resultados de la consulta.

gcloud

Para ver registros con gcloud CLI, ejecuta un comando como el siguiente:

gcloud logging read 'severity="ERROR" AND
  (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
   protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
   protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"'

Administra las vinculaciones de acceso

Después de crear las vinculaciones de acceso para un grupo de usuarios, el acceso a la consola de Google Cloud y a las APIs de Google Cloud se controla según el nivel de satisfacción del nivel de acceso vinculado.

Puedes ver los detalles de la vinculación de acceso que creaste, editarla o borrarla.

Ver vinculaciones de acceso

Console

Puedes ver todas las vinculaciones de acceso de la organización y los detalles de una vinculación de acceso.

gcloud

  • Para ver todas las vinculaciones de acceso, ejecuta el siguiente comando:

      gcloud access-context-manager cloud-bindings list \
       --organization ORG_ID
    

    Aquí:

    ORG_ID es el ID de la organización que usaste cuando creaste la función GcpAccessAdmin. . Si no se configuró la propiedad access-context-manager/organization, reemplaza ORG_ID en la marca opcional --organization por el ID de la organización que usaste cuando creaste el rol GcpAccessAdmin.

  • Para ver los detalles de una vinculación de acceso, ejecuta el siguiente comando:

      gcloud access-context-manager cloud-bindings describe \
      --binding=BINDING_ID
    

    Aquí:

    BINDING_ID es el ID del identificador de vinculación de acceso o completamente calificado para la vinculación de acceso.

API

  • Visualiza todas las vinculaciones de acceso:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • ORG_ID es el ID de la organización que usaste cuando creaste la función GcpAccessAdmin. Si no se configuró la propiedad access-context-manager/organization, reemplaza ORG_ID en la marca opcional --organization por el ID de la organización que usaste cuando creaste el rol GcpAccessAdmin.

    HTTP method and URL:

    GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Ejecuta el siguiente comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

    PowerShell

    Ejecuta el siguiente comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    
    {
      "name": string,
      "groupKey": string,
      "accessLevels": [
        string
      ]
      "dryRunAccessLevels": [
      string
      ]
    }
    
    

  • Consulta los detalles de una vinculación de acceso:

    HTTP method and URL:

    GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Ejecuta el siguiente comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://accesscontextmanager.googleapis.com/v1/BINDING_ID"

    PowerShell

    Ejecuta el siguiente comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand Content

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    
    {
      "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
      "groupKey": "045jfvxd0ybeul8",
      "accessLevels": [
        "accessPolicies/305009197125/accessLevels/device_lock"
      ],
      "dryRunAccessLevels": [
        "accessPolicies/305009197125/accessLevels/another"
      ]
    }
    
    

Actualizar vinculaciones de acceso

Console

Puedes actualizar una vinculación de acceso según sea necesario.

gcloud

  • Para actualizar una vinculación de acceso, por ejemplo, para cambiar el nivel de acceso, ejecuta el siguiente comando:

      gcloud access-context-manager cloud-bindings update \
         --binding ACCESS_BINDING \
         --level ACCESS_LEVEL
    

    Aquí:

    • ACCESS_BINDING tiene el formato organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • ORG_ID es el ID de la organización que usaste cuando creaste la función GcpAccessAdmin.
    • ACCESS_BINDING_NAME es la cadena única que se mostró para el identificador name cuando se creó la vinculación de acceso.
    • Reemplaza el valor de ACCESS_LEVEL según sea necesario. ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
  • Para actualizar una vinculación de acceso con un nivel de acceso de ejecución de prueba, ejecuta el siguiente comando:

     gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
      --dry-run-level=DRY_RUN_ACCESS_LEVEL
    

    Reemplaza el valor de DRY_RUN_ACCESS_LEVEL según sea necesario. Tiene el formato accessPolicies/POLICY_ID/accessLevels/DRY_ACCESS_LEVEL_NAME.

  • Para actualizar una vinculación de acceso y cambiar el nivel de acceso y el de ejecución de prueba, ejecuta el siguiente comando:

     gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
     --level=`ACCESS_LEVEL`
     --dry-run-level=DRY_RUN_ACCESS_LEVEL
    

    Reemplaza el valor de ACCESS_LEVEL y DRY_RUN_ACCESS_LEVEL según sea necesario. ACCESS_LEVEL y DRY_RUN_ACCESS_LEVEL tienen el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME, y DRY_RUN_ACCESS_LEVEL es igual a ACCESS_LEVEL.

  • Para quitar un nivel de acceso de ejecución de prueba de una vinculación de acceso, ejecuta el siguiente comando:

      gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
      --dry-run-level=
    

API

  • Actualiza una vinculación de acceso, por ejemplo, para cambiar el nivel de acceso:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • ACCESS_BINDING_NAME es la cadena única que se mostró para el identificador name cuando se creó la vinculación de acceso.
    • ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.

    HTTP method and URL:

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels

    Cuerpo JSON de la solicitud:

    {
        "accessLevels": [ "ACCESS_LEVEL" ]
    }
    
    

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels"

    PowerShell

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels" | Select-Object -Expand Content

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    
    {
        "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
        "groupKey": "045jfvxd0ybeul8",
        "accessLevels": [
          "accessPolicies/305009197125/accessLevels/device_lock"
        ]
    }
    
    

  • Actualiza una vinculación de acceso con el nivel de acceso de ejecución de prueba:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • ACCESS_BINDING_NAME es la cadena única que se mostró para el identificador name cuando se creó la vinculación de acceso.
    • DRY_RUN_ACCESS_LEVEL es el ACCESS_LEVEL para el que quieres comprender el efecto. ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.

    HTTP method and URL:

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels

    Cuerpo JSON de la solicitud:

    {
      "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
    }
    
    

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"

    PowerShell

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    
    {
      name: "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
    
      group_key: "045jfvxd0ybeul8",
    
      dry_run_access_levels: [ "accessPolicies/305009197125/accessLevels/another" ]
      }
    
    

  • Actualiza una vinculación de acceso y cambia el nivel de acceso y el de ejecución de prueba:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • ACCESS_BINDING_NAME es la cadena única que se mostró para el identificador name cuando se creó la vinculación de acceso.
    • ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
    • DRY_RUN_ACCESS_LEVEL es el ACCESS_LEVEL para el que quieres comprender el efecto. ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.

    HTTP method and URL:

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels

    Cuerpo JSON de la solicitud:

    {
      "accessLevels": [ "ACCESS_LEVEL" ],
      "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
     }
    
    

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels"

    PowerShell

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels" | Select-Object -Expand Content

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    
    {
      "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
      "groupKey": "045jfvxd0ybeul8",
      "accessLevels": [
        "accessPolicies/305009197125/accessLevels/device_lock"
      ],
      "dryRunAccessLevels": [
        "accessPolicies/305009197125/accessLevels/another"
      ]
    }
    
    

  • Quita un nivel de acceso de ejecución de prueba de una vinculación de acceso:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • ACCESS_BINDING_NAME es la cadena única que se mostró para el identificador name cuando se creó la vinculación de acceso.

    HTTP method and URL:

    PATCH PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels

    Cuerpo JSON de la solicitud:

    {
      "dryRunAccessLevels": [ ]
    }
    
    

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"

    PowerShell

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content

    Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.

Borrar vinculaciones de acceso

Console

Puedes borrar una vinculación de acceso siempre que sea necesario.

gcloud

   gcloud access-context-manager cloud-bindings delete \
       --binding ACCESS_BINDING

Aquí:

  • ACCESS_BINDING tiene el formato organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
  • ACCESS_BINDING_NAME es la cadena única que se mostró para el identificador name cuando se creó la vinculación de acceso.

API

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • ACCESS_BINDING_NAME es la cadena única que se mostró para el identificador name cuando se creó la vinculación de acceso.

HTTP method and URL:

DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente comando:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"

PowerShell

Ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | Select-Object -Expand Content

Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.

Preguntas frecuentes

  • ¿Cuánto tiempo toma en que surta efecto una vinculación de acceso recién creada?

    Esto puede tardar hasta 24 horas.

  • ¿Qué sucede si borro un grupo que tiene una vinculación de acceso?

    El grupo y la vinculación se borran, y todos los usuarios en el grupo tienen acceso permitido.

  • ¿Qué sucede si borro el nivel de acceso que se usa en una vinculación de acceso?

    El nivel de acceso nunca se puede satisfacer, y todos los usuarios del grupo vinculado tienen acceso denegado.

  • ¿Qué sucede cuando un usuario está en varios grupos que tienen vinculaciones de acceso?

    El usuario solo debe satisfacer el nivel de acceso de uno de esos grupos para obtener acceso.

  • ¿Qué sucede con los usuarios que no forman parte de mi organización?

    Cualquier persona que no sea parte de tu organización, incluso si los agregaste al grupo de usuarios que debe estar sujetos a las restricciones contextuales, no están sujetos a la vinculación de acceso.

¿Qué sigue?