Gestionar enlaces de acceso

En esta página se explica cómo gestionar las vinculaciones de acceso que ya tienes, que definen cómo se aplican las políticas de acceso a tus grupos de usuarios. Puedes ver, modificar y eliminar estas vinculaciones según sea necesario. Los enlaces de acceso determinan cómo se aplican los niveles de acceso y los controles de sesión a un grupo de usuarios.

Para obtener información sobre cómo crear enlaces de acceso y más detalles sobre los niveles de acceso y los controles de sesión, consulta el artículo Aplicar políticas a grupos de usuarios con enlaces de acceso.

Ver enlaces de acceso

Una vez que se hayan creado las vinculaciones de acceso para un grupo de usuarios, el acceso a laGoogle Cloud consola Google Cloud y a las APIs se controlará en función de si se cumple el nivel de acceso vinculado.

Puede ver los detalles del enlace de acceso que ha creado, editarlo o eliminarlo.

Consola

  1. En la consola de Google Cloud , ve a la página Administrador de contextos de acceso.

    Ir a Administrador de contextos de acceso

  2. Si se te solicita, selecciona un proyecto. La lista de enlaces de acceso se muestra en la página Administrador de contextos de acceso.

gcloud

  • Para ver todos los enlaces de acceso, ejecuta el siguiente comando:

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

    ORG_ID: el ID de tu organización. Si no se ha definido la propiedad access-context-manager/organization, sustituye ORG_ID en la marca opcional --organization por el ID de la organización que has usado al crear el rol GcpAccessAdmin.

  • Para ver los detalles de un enlace de acceso, ejecuta el siguiente comando:

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

    BINDING_ID es el ID de la vinculación de acceso o el identificador completo de la vinculación de acceso.

API

  • Ver todos los enlaces de acceso:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • ORG_ID es el ID de la organización que usaste al crear el rol GcpAccessAdmin. Si no se ha definido la propiedad access-context-manager/organization, sustituye ORG_ID en la marca opcional --organization por el ID de la organización que has usado al crear el rol GcpAccessAdmin.

    Método HTTP y URL:

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

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Ejecuta el comando siguiente:

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

    PowerShell

    Ejecuta el comando siguiente:

    $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 siguiente:

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

  • Para ver los detalles de un enlace de acceso, haz lo siguiente:

    Método HTTP y URL:

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

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Ejecuta el comando siguiente:

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

    PowerShell

    Ejecuta el comando siguiente:

    $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 siguiente:

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

Actualizar una vinculación de acceso

Puedes actualizar un enlace de acceso para hacer lo siguiente:

  • Añadir, quitar o cambiar las aplicaciones que tienen una política.
  • Modifica los niveles de acceso de una aplicación en un grupo de usuarios.
  • Añade un nuevo nivel de acceso de prueba o asciende uno que ya tengas a nivel de acceso real.

Consola

  1. En la consola de Google Cloud , ve a la página Administrador de contextos de acceso.

    Ir a Administrador de contextos de acceso

  2. Si se te solicita, selecciona un proyecto.

  3. En la página Gestor de contexto de acceso, seleccione una vinculación de acceso y, a continuación, haga clic en Editar para actualizarla.

No puedes actualizar las vinculaciones de acceso con niveles de acceso de prueba o controles de sesión en la consola Google Cloud .

gcloud

  1. Crea un archivo de vinculación YAML.

    gcloud access-context-manager cloud-bindings update
      --binding ACCESS_BINDING
      --binding-file BINDING_FILE_PATH
    [  --level DEFAULT_ACCESS_LEVEL ]
    [  --dry-run-level DEFAULT_DRY_RUN_ACCESS_LEVEL           ]
    [  --session-length=DEFAULT_SESSION_LENGTH                ]
    [  --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD  ]
    

    Haz los cambios siguientes:

    • ACCESS_BINDING tiene la forma organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • BINDING_FILE_PATH: ruta al archivo YAML que contiene el esquema de vinculación de acceso. El archivo de vinculación solo admite scopedAccessSettings.
    • DEFAULT_ACCESS_LEVEL: nombre de nivel de acceso opcional, que tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Sustituye POLICY_ID por el ID de la política de acceso y ACCESS_LEVEL_NAME por el nombre del nivel de acceso.
    • DEFAULT_DRY_RUN_ACCESS_LEVEL_2: nombre de nivel de acceso opcional con el formato `accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME`. Incluye esta marca para aplicar el nivel de acceso de prueba especificado a todas las aplicaciones de forma predeterminada si no se especifica en el archivo YAML.
    • DEFAULT_SESSION_LENGTH: duración de la sesión opcional en formato de duración ISO 8601, como 30m para 30 minutos o 2h para dos horas.
    • DEFAULT_SESSION_REAUTH_METHOD: método opcional para pedir a los usuarios que vuelvan a verificar su identidad. Debe ser uno de los siguientes:
      • LOGIN: aplica el inicio de sesión estándar, que puede incluir la autenticación multifactor u otros factores definidos por Workspace.
      • PASSWORD: solo se requiere una contraseña, aunque se hayan definido otros factores. Si las contraseñas se gestionan con un proveedor de identidades externo, se redirige a los usuarios al proveedor de identidades. Si la sesión del IdP está activa, los usuarios se vuelven a autenticar de forma implícita. Si el proveedor de identidades no está activo, los usuarios deben iniciar sesión a través de él.
      • SECURITY_KEY: requiere una llave de seguridad de hardware.

    Cómo funcionan juntos los argumentos --level y --binding-file

    • Si solo usas --binding-file, solo se aplicarán las políticas a las aplicaciones del archivo.
    • Si solo usas --level, el nivel de acceso se aplica a todas las aplicaciones.
    • Si usas ambas, las reglas se combinan. El valor --level se aplica a todas las aplicaciones, mientras que las políticas del archivo YAML especificado por --binding-file solo se aplican a las aplicaciones definidas en el archivo.

    Trabajar con los controles de sesión

    • Para definir los controles de sesión predeterminados de todas las aplicaciones, usa --session-length y --session-reauth-method.
    • Si también defines controles de sesión en el archivo YAML, esos controles de sesión anularán la configuración predeterminada de esas aplicaciones específicas.
    • Debes usar --session-length y --session-reauth-method juntos.

    Para quitar un nivel de acceso predeterminado o un nivel de acceso predeterminado de prueba, proporciona una cadena vacía, como --level= o --dry-run-level=. Si no se proporcionan estos argumentos, el comando update no hará ningún cambio.

    Para quitar un control de sesión, asigna el valor --session-length=0.

API

  1. Crea un cuerpo JSON.

    {
      "accessLevels": [
        "DEFAULT_ACCESS_LEVEL"
      ],
      "scopedAccessSettings": [
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "clientId": "CLIENT_ID"
              }
            }
          },
          "activeSettings": {
            "accessLevels": [
              "ACCESS_LEVEL_A"
            ],
            "sessionSettings": [
              {
                "sessionLength": "SESSION_LENGTH",
                "sessionReauthMethod": "SESSION_REAUTH_METHOD",
                "sessionLengthEnabled": true
              }
            ]
        }
        },
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "name": "CLIENT_NAME"
              }
            },
            "activeSettings": {
              "accessLevels": [
                "ACCESS_LEVEL_C"
              ]
            }
          }
        }
      ]
    }
    

    Haz los cambios siguientes:

    • DEFAULT_ACCESS_LEVEL: nombre de nivel de acceso opcional, que tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Sustituye POLICY_ID por el ID de la política de acceso y ACCESS_LEVEL_NAME por el nombre del nivel de acceso.
    • CLIENT_ID: el ID de cliente de OAuth. Debes usar clientId cuando una aplicación contenga sessionSettings.
    • ACCESS_LEVEL_A: nombre de un nivel de acceso con el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
    • SESSION_LENGTH: duración de la sesión en formato de duración ISO 8601, como 30m para 30 minutos o 2h para dos horas.
    • SESSION_REAUTH_METHOD: método opcional para pedir a los usuarios que vuelvan a verificar su identidad. Debe ser uno de los siguientes:

      • LOGIN: aplica el inicio de sesión estándar, que puede incluir la autenticación multifactor u otros factores definidos por Workspace.
      • PASSWORD: Solo se requiere una contraseña, aunque se hayan definido otros factores. Si las contraseñas se gestionan mediante un IdP externo, se redirige a los usuarios al IdP. Si la sesión del IdP está activa, los usuarios se vuelven a autenticar de forma implícita. Si el IdP no está activo, los usuarios deben iniciar sesión a través del IdP.
      • SECURITY_KEY: requiere una llave de seguridad de hardware.
    • CLIENT_NAME: el nombre del cliente. Si la solicitud contiene sessionSettings, no puede usar el nombre del cliente. En su lugar, usa el ID de cliente de OAuth.

    • ACCESS_LEVEL_C: nombre de un nivel de acceso con el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.

  2. Envía la solicitud PATCH.

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?fieldMask=FIELDMASK
    

    Haz los cambios siguientes:

    • ACCESS_BINDING tiene la forma organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • FIELD_MASK: lista obligatoria de campos separados por comas que quiere actualizar. Indica a la API qué partes del enlace de acceso se deben modificar.

    fieldMask debe contener las claves JSON de nivel superior del cuerpo de la solicitud que quieras actualizar, que pueden incluir accessLevels, dryRunAccessLevels y scopedAccessSettings.

    Si se ejecuta correctamente, deberías recibir una representación del objeto JSON. Si hay algún problema, recibirás un mensaje de error.

Eliminar enlaces de acceso

Consola

  1. En la consola de Google Cloud , ve a la página Administrador de contextos de acceso.

    Ir a Administrador de contextos de acceso

  2. Si se te solicita, selecciona un proyecto.

  3. En la página Gestor de contexto de acceso, seleccione un enlace de acceso y, a continuación, haga clic en Eliminar.

gcloud

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

Haz los cambios siguientes:

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

API

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

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

Método HTTP y URL:

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

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el comando siguiente:

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

PowerShell

Ejecuta el comando siguiente:

$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 que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.