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 las APIs de Google Cloud con las reglas basadas en el contexto.

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. Forma parte de Chrome Enterprise Premium y ayuda a garantizar que las personas y los grupos 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 la 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 que esté sujeto a restricciones adaptadas al contexto.
  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.

[Opcional] Implementa la verificación de extremos

Si deseas proteger el acceso a la consola de Google Cloud y a las APIs de Google Cloud con 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 para los usuarios en computadoras de escritorio y laptops en macOS, Windows y Linux. Un administrador puede implementarlo en los dispositivos de la organización de la empresa 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 pueda usarse cuando determines el acceso. a la consola de Google Cloud y a las APIs de Google Cloud crear un nivel de acceso básico en Access Context Manager.

Cómo crear un grupo de usuarios

Cómo crear un grupo de usuarios que deben limitarse a restricciones contextuales. Cualquier usuario de este grupo que también son miembros de tu organización deben cumplir con el nivel de acceso que creaste anteriormente para acceder a la consola de Google Cloud y al 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. Haga clic en Save.

gcloud

  1. Asegúrate de haberte autenticado con privilegios suficientes para agregar permisos de IAM a nivel de la organización. Como mínimo, necesitas el rol 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 que aún no tienes el ID de tu organización, puedes usar el siguiente para encontrarla:

       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 el nivel de acceso de Access Context Manager que definidos para acceder a la consola de Google Cloud y a las APIs de Google Cloud.

Las vinculaciones de acceso te permiten definir cómo los grupos de usuarios pueden acceder a tus APIs y aplicaciones de Google Cloud. Puedes lograrlo vinculando un grupo de usuarios a un nivel de acceso, que define los permisos y las restricciones que se aplican acceso del grupo a las aplicaciones.

Puedes especificar aplicaciones en vinculaciones de acceso con su ID de cliente de OAuth. Puedes especificar las siguientes aplicaciones con su nombre:

Puedes crear los siguientes tipos de vinculaciones de acceso:

  • Vincula grupos de usuarios a niveles de acceso: Aplica un nivel de acceso de forma global a todas las aplicaciones cliente que usa un grupo de usuarios específico. Este es un enfoque amplio adecuado para situaciones en las que se requiere un control de acceso coherente en todos aplicaciones.
  • Vincula grupos de usuarios a niveles de acceso específicos de la aplicación: Para obtener un control más detallado, puedes asignar diferentes niveles de acceso a aplicaciones específicas para un grupo de usuarios. Esto evita restricciones no deseadas, ya que adapta el acceso según las necesidades y la sensibilidad de la aplicación.
  • Vincula grupos de usuarios a niveles de acceso con la configuración de prueba: Antes de implementar por completo las vinculaciones de acceso, puedes probar el impacto de los cambios con una configuración de prueba. Esto te permite identificar y abordar cualquier posible problema antes de que afecte a los usuarios.

    Puedes crear los siguientes tipos de vinculaciones de acceso con la ejecución de prueba parámetros de configuración:

    • Entre un grupo y un nivel de acceso de ejecución de prueba
    • Entre un grupo, un nivel de acceso normal y un nivel de acceso de prueba de validación
    • Entre un grupo y un mapa de aplicaciones, cada una con ejecución normal y de prueba niveles de acceso

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

Console

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

    Ir a Chrome Enterprise Premium

  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 grupos que aún no están vinculados a un nivel de acceso están disponibles para seleccionado.
    • 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 esta y otras gcloud access-context-manager cloud-bindings comandos, incluidas opciones de marca adicionales.

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

Aquí:

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

    Si no tienes el ID del grupo disponible, puedes recuperarlo si llamas al método get en el recurso Groups.

  • ORG_ID es el ID de la organización que usaste cuando creaste la Rol 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 se pueden encontrar en Access Context Manager desde 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 el rol GcpAccessAdmin.
  • GROUP_ID es el ID de grupo del grupo de usuarios que creaste antes.

    Si no tienes el ID del grupo disponible, puedes recuperarlo si llamas al método get en el recurso Groups.

  • POLICY_ID es el ID de la política de acceso de tu organización.
  • ACCESS_LEVEL está en el formulario. accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME Los valores de POLICY_ID y ACCESS_LEVEL_NAME se pueden encontrar en Access Context Manager desde que creaste el nivel de acceso.

Método HTTP y 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 un mapa de aplicaciones para los niveles de acceso

La vinculación con un mapa de aplicaciones a niveles de acceso te permite aplicar niveles de acceso a aplicaciones específicas, lo que evita efectos imprevistos en otras aplicaciones. Este tipo de vinculación admite los siguientes tipos de casos de uso:

  • Restringir el acceso a aplicaciones seleccionadas: Aplica niveles de acceso a aplicaciones específicas. aplicaciones sin afectar a otras aplicaciones.

    Ejemplo: Quieres implementar acceso basado en certificados (mTLS) para las APIs de Google Cloud, comenzando por la consola de Google Cloud. Puedes crear una vinculación que aplique la mTLS solo a la consola de Google Cloud, sin afectar a otras aplicaciones. Más adelante, puedes expandir esto a otras aplicaciones según sea necesario, con simulaciones y registros de auditoría para guiar tus decisiones.

  • Eximir solicitudes de políticas globales: Excluye aplicaciones específicas. de niveles de acceso de aplicación amplia.

    Ejemplo: Tu organización implementa un basada en IP para todas las APIs de Google Cloud. Sin embargo, esto genera problemas para dos aplicaciones de Docker. Puedes crear exenciones para las aplicaciones de Docker, lo que les permite omitir las restricciones de IP globales.

Crea una vinculación de acceso que restrinja las aplicaciones cliente

gcloud

Crea una vinculación de acceso.

gcloud access-context-manager cloud-bindings create \
 --organization ORG_ID \
 --group-key GROUP_ID \
 --binding-file BINDING_FILE_PATH

Reemplaza lo siguiente:

  • ORG_ID es el ID de la organización que usaste cuando creaste la Rol 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.
  • GROUP_ID es el ID del grupo de usuarios que que creaste antes.

    Si no tienes el ID del grupo disponible, puedes recuperarlo si llamas al método get en el recurso Groups.

  • BINDING_FILE_PATH es la ruta de acceso al archivo YAML que contiene el esquema de vinculación de acceso. El archivo de vinculación solo admite scopedAccessSettings.

A continuación, se muestra un ejemplo de archivo de vinculación que vincula la consola de Google Cloud. y la aplicación de OAuth de un usuario a dos niveles de acceso distintos.

  scopedAccessSettings:
  - scope:
     clientScope:
       restrictedClientApplication:
         name: Cloud Console
    activeSettings:
      accessLevels:
      - ACCESS_LEVEL_1
  - scope:
     clientScope:
       restrictedClientApplication:
         client_id: CLIENT_ID
     activeSettings:
       accessLevels:
       - ACCESS_LEVEL_2

Reemplaza lo siguiente:

  • ACCESS_LEVEL_1 Un nivel de acceso que define la condición de acceso a una aplicación cliente.
  • CLIENT_ID: Es el ID de cliente de OAuth de la aplicación.
  • ACCESS_LEVEL_2 Un nivel de acceso que define la condición de acceso a una aplicación cliente.

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 el rol GcpAccessAdmin.
  • GROUP_ID es el ID del grupo de usuarios que que creaste antes.

    Si no tienes el ID del grupo disponible, puedes recuperarlo si llamas al método get en el recurso Groups.

  • CLIENT_ID El ID de cliente de OAuth de la aplicación.
  • ACCESS_LEVEL_1 Un nivel de acceso que define la condición de acceso a una aplicación cliente.
  • ACCESS_LEVEL_2 Un nivel de acceso que define la condición de acceso a una aplicación cliente.

Método HTTP y URL:

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

El siguiente cuerpo JSON de la solicitud vincula la consola de Google Cloud y la aplicación de OAuth de un usuario a dos niveles de acceso distintos.

{
     "group_key": "{GROUP_ID}",
     "scoped_access_settings": [
        {
            "scope": {
              "client_scope": {
                  "restricted_client_application": {
                      "name": "Cloud Console"
                  }
              }
          },
          "active_settings": {
              "access_levels": [
                 {ACCESS_LEVEL_1}
              ]
          }
      },
      {
          "scope": {
              "client_scope": {
                  "restricted_client_application": {
                      "client_id": "{CLIENT_ID}"
                  }
              }
          },
            "active_settings": {
              "access_levels": [
                  "{ACCESS_LEVEL_2}"
              ]
          }
      }
  ]
}

Para enviar la solicitud, elige una de las siguientes opciones:

curl

Con el siguiente comando, se supone que accediste a la CLI de gcloud con tu cuenta de usuario a través de la ejecución de gcloud init o gcloud auth login, o a través del uso de Cloud Shell, que accede automáticamente a la CLI de gcloud. Para verificar la cuenta activa en este momento, haz lo siguiente: ejecutando gcloud auth list.

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"

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

PowerShell

En el siguiente comando, se supone que accediste a gcloud CLI con tu cuenta de usuario mediante la ejecución de gcloud init o gcloud auth login. Para comprobar la cuenta activa actual, ejecuta gcloud auth list.

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta 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"
]
}

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

{
  "name": "organizations/660620010374/gcpUserAccessBindings/aAQS-YRQXEDW8mJ4tE5U7VIDwBczxhxwtfUaDkUDLBKBIPvzH",
  "groupKey": "019c6y182grvb0j",
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Cloud Console"
          }
        }
      },
      "activeSettings": {
        "accessLevels": [
          "accessPolicies/244346580249/accessLevels/requireMutualTLS"
        ]
      }
    },
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "clientId": "32555940559.apps.googleusercontent.com"
          }
        }
      },
      "activeSettings": {
        "accessLevels": [
          "accessPolicies/244346580249/accessLevels/requireMutualTLS"
        ]
      }
    }
  ]
}

Crea una vinculación de acceso que excluya las aplicaciones cliente

gcloud

Crea una vinculación de acceso.

gcloud access-context-manager cloud-bindings create \
--organization {ORG_ID} \
--group-key {GROUP_ID} \
--level {ACCESS_LEVEL} \
--binding-file {BINDING_FILE_PATH}

Reemplaza lo siguiente:

  • ORG_ID es el ID de la organización que usaste cuando creaste la Rol 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.
  • GROUP_ID es el ID de grupo del grupo de usuarios que creaste antes.

    Si no tienes el ID del grupo disponible, puedes recuperarlo si Con una llamada al método get en el recurso Groups.

  • ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME se pueden encontrar en Access Context Manager desde que creaste el nivel de acceso. Este nivel de acceso define la condición de acceso que es se aplican a todas las aplicaciones cliente.
  • BINDING_FILE_PATH es la ruta al archivo YAML que contiene el archivo de acceso. de vinculación de cuentas. El archivo de vinculación solo admite scopedAccessSettings. En el caso de uso de exención, este archivo de vinculación contiene las aplicaciones exentas del nivel de acceso.

A continuación, se muestra un ejemplo de archivo de vinculación que vincula la consola de Google Cloud y la aplicación de OAuth de un usuario a dos niveles de acceso distintos.

scopedAccessSettings:
- scope:
   clientScope:
     restrictedClientApplication:
       name: Cloud Console
  activeSettings:
    accessLevels:
    - {EXEMPTION_ACCESS_LEVEL}
- scope:
   clientScope:
     restrictedClientApplication:
       client_id: {CLIENT_ID}
   activeSettings:
     accessLevels:
     - {EXEMPTION_ACCESS_LEVEL}

Reemplaza lo siguiente:

  • EXEMPTION_ACCESS_LEVEL Puedes crear un nivel de acceso de exención en una de de la siguiente manera:
  • CLIENT_ID: Es el ID de cliente de OAuth de la aplicación.

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 el rol GcpAccessAdmin.
  • GROUP_ID es el ID del grupo de usuarios que que creaste antes.

    Si no tienes el ID del grupo disponible, puedes recuperarlo si llamas al método get en el recurso Groups.

  • ACCESS_LEVEL: Es un nivel de acceso que define la condición de acceso que se aplica de forma global a todas las aplicaciones cliente.
  • EXEMPTION_ACCESS_LEVEL Puedes crear un nivel de acceso de exención de una de las siguientes maneras:
  • CLIENT_ID: Es el ID de cliente de OAuth de la aplicación.

Método HTTP y URL:

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

El siguiente cuerpo JSON de la solicitud exime a la consola de Google Cloud y una la aplicación de OAuth del usuario a partir del nivel de acceso aplicado de forma global.

{
    "group_key": "{GROUP_ID}",
    "access_levels": [
       {ACCESS_LEVEL}
    ],
    "scoped_access_settings": [
        {
            "scope": {
                "client_scope": {
                    "restricted_client_application": {
                        "name": "Cloud Console"
                    }
                }
            },
            "active_settings": {
                "access_levels": [
                   {EXEMPTION_ACCESS_LEVEL}
                ]
            }
        },
        {
            "scope": {
                "client_scope": {
                    "restricted_client_application": {
                        "client_id": "{CLIENT_ID}"
                    }
                }
            },
            "active_settings": {
                "access_levels": [
                    "{EXEMPTION_ACCESS_LEVEL}"
                ]
            }
        }
    ]
}

Para enviar la solicitud, elige una de las siguientes opciones:

curl

En el siguiente comando, se supone que accediste a gcloud CLI con tu cuenta de usuario mediante la ejecución de gcloud init o gcloud auth login, o bien mediante Cloud Shell, que te permite acceder automáticamente con gcloud CLI. Para comprobar la cuenta activa actual, ejecuta gcloud auth list.

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"

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

PowerShell

En el siguiente comando, se supone que accediste a gcloud CLI con tu cuenta de usuario mediante la ejecución de gcloud init o gcloud auth login. Puedes consultar el estado activa ejecutando gcloud auth list.

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

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

  {
      "name": "organizations/660620010374/gcpUserAccessBindings/aAQS-YRQXEDW8mJ4tE5U7VIDwBczxhxwtfUaDkUDLBKBIPvzH",
      "groupKey": "019c6y182grvb0j",
      "accessLevels": [
        "accessPolicies/244346580249/accessLevels/requireMutualTLS"
      ],
      "scopedAccessSettings": [
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "name": "Cloud Console"
              }
            }
          },
          "activeSettings": {
            "accessLevels": [
              "accessPolicies/244346580249/accessLevels/AlwaysTrue"
            ]
          }
        },
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "clientId": "32555940559.apps.googleusercontent.com"
              }
            }
          },
          "activeSettings": {
            "accessLevels": [
              "accessPolicies/244346580249/accessLevels/AlwaysTrue"
            ]
          }
        }
      ]
  }
  ```

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

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

  • Para evaluar el impacto de un nivel de acceso antes de aplicarlo, crea una vinculación de acceso con un nivel de acceso 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 con un nivel de acceso 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 las infracciones del nivel de acceso de ejecución de prueba. Para ver los detalles del registro, consulta la 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 que creaste antes.

    Si no tienes el ID del grupo disponible, puedes recuperarlo si llamas al método get en el recurso Groups.

  • ORG_ID es el ID de la organización que usaste cuando creaste el rol 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 comprender la información) el efecto. ACCESS_LEVEL está en el formulario. accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME Los valores de POLICY_ID y Puedes encontrar ACCESS_LEVEL_NAME 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 Rol GcpAccessAdmin.
  • GROUP_ID es el ID del grupo de usuarios que que creaste antes.

    Si no tienes el ID del grupo disponible, puedes recuperarlo si llamas al método get en el recurso Groups.

  • 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 deseas comprender el efecto. ACCESS_LEVEL está en el formulario. accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME Los valores de POLICY_ID y Puedes encontrar ACCESS_LEVEL_NAME en Access Context Manager desde el momento en que creaste el nivel de acceso.

Método HTTP y 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 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 de grupo del grupo de usuarios que creaste antes.

    Si no tienes el ID del grupo disponible, puedes recuperarlo si Con una llamada al método get en el recurso Groups.

  • ORG_ID es el ID de la organización que usaste cuando creaste el rol 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 está en el formulario. accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME Los valores de POLICY_ID y ACCESS_LEVEL_NAME se pueden encontrar en Access Context Manager desde que creaste el nivel de acceso.
  • DRY_RUN_ACCESS_LEVEL es el ACCESS_LEVEL para el que deseas comprender el efecto. ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y Puedes encontrar ACCESS_LEVEL_NAME 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 el rol GcpAccessAdmin.
  • GROUP_ID es el ID de grupo del grupo de usuarios que creaste antes.

    Si no tienes el ID del grupo disponible, puedes recuperarlo si Con una llamada al método get en el recurso Groups.

  • POLICY_ID es el ID de la política de acceso de tu organización.
  • ACCESS_LEVEL está en el formulario. accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME Los valores de POLICY_ID y Puedes encontrar ACCESS_LEVEL_NAME en Access Context Manager desde el momento en que creaste el nivel de acceso.
  • DRY_RUN_ACCESS_LEVEL es el ACCESS_LEVEL (para comprender la información) el efecto. ACCESS_LEVEL está en el formulario. accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME Los valores de POLICY_ID y ACCESS_LEVEL_NAME se pueden encontrar en Access Context Manager desde que creaste el nivel de acceso.

Método HTTP y 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"
  ]
}

Crea una vinculación de acceso con un mapa de aplicaciones para acceder a los niveles y realizar una prueba de los niveles de acceso

gcloud

Crea una vinculación de acceso.

 gcloud access-context-manager cloud-bindings create \
  --organization ORG_ID \
  --group-key GROUP_ID \
  --binding-file BINDING_FILE_PATH

Reemplaza lo siguiente:

  • ORG_ID es el ID de la organización que usaste cuando creaste la Rol 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.
  • GROUP_ID es el ID del grupo de usuarios que que creaste antes.

    Si no tienes el ID del grupo disponible, puedes recuperarlo si llamas al método get en el recurso Groups.

  • BINDING_FILE_PATH es la ruta de acceso al archivo YAML que contiene el esquema de vinculación de acceso. El archivo de vinculación solo admite scopedAccessSettings.

A continuación, se muestra un ejemplo de archivo de vinculación que vincula la consola de Google Cloud y la aplicación de OAuth de un usuario a un nivel de acceso y uno de ejecución de prueba.

scopedAccessSettings:
- scope:
   clientScope:
     restrictedClientApplication:
       name: Cloud Console
  activeSettings:
    accessLevels:
    - {ACCESS_LEVEL_1}
- scope:
   clientScope:
     restrictedClientApplication:
       client_id: {CLIENT_ID}
   dryRunSettings:
     accessLevels:
     - {ACCESS_LEVEL_2}

Reemplaza lo siguiente:

  • ACCESS_LEVEL_1 Un nivel de acceso que define la condición de acceso a una aplicación cliente.
  • CLIENT_ID: Es el ID de cliente de OAuth de la aplicación.
  • ACCESS_LEVEL_2 Un nivel de acceso que define la condición de acceso a una aplicación cliente.

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 el rol GcpAccessAdmin.
  • GROUP_ID es el ID de grupo del grupo de usuarios que creaste antes.

    Si no tienes el ID del grupo disponible, puedes recuperarlo si Con una llamada al método get en el recurso Groups.

  • CLIENT_ID: Es el ID de cliente de OAuth de la aplicación.
  • ACCESS_LEVEL_1 Un nivel de acceso que define la condición de acceso a una aplicación cliente.
  • ACCESS_LEVEL_2 Un nivel de acceso que define la condición de acceso a una aplicación cliente.

Método HTTP y URL:

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

El siguiente cuerpo JSON de solicitud vincula la consola de Google Cloud y la interfaz la aplicación de OAuth a un nivel de acceso y uno de ejecución de prueba.

{
    "group_key": "{GROUP_ID}",
    "scoped_access_settings": [
        {
            "scope": {
                "client_scope": {
                    "restricted_client_application": {
                        "name": "Cloud Console"
                    }
                }
            },
            "active_settings": {
                "access_levels": [
                   {ACCESS_LEVEL_1}
                ]
            }
        },
        {
            "scope": {
                "client_scope": {
                    "restricted_client_application": {
                        "client_id": "{CLIENT_ID}"
                    }
                }
            },
            "dry_run_settings": {
                "access_levels": [
                    "{ACCESS_LEVEL_2}"
                ]
            }
        }
    ]
}

Para enviar la solicitud, elige una de las siguientes opciones:

curl

Con el siguiente comando, se supone que accediste a la CLI de gcloud con tu cuenta de usuario a través de la ejecución de gcloud init o gcloud auth login, o a través del uso de Cloud Shell, que accede automáticamente a la CLI de gcloud. Para verificar la cuenta activa en este momento, haz lo siguiente: ejecutando gcloud auth list.

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta 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"

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

PowerShell

En el siguiente comando, se supone que accediste a gcloud CLI con tu cuenta de usuario mediante la ejecución de gcloud init o gcloud auth login. Para comprobar la cuenta activa actual, ejecuta gcloud auth list.

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

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

{
    "name": "organizations/660620010374/gcpUserAccessBindings/aAQS-YRQXEDW8mJ4tE5U7VIDwBczxhxwtfUaDkUDLBKBIPvzH",
    "groupKey": "019c6y182grvb0j",
    "scopedAccessSettings": [
      {
        "scope": {
          "clientScope": {
            "restrictedClientApplication": {
              "name": "Cloud Console"
            }
          }
        },
        "activeSettings": {
          "accessLevels": [
            "accessPolicies/244346580249/accessLevels/requireMutualTLS"
          ]
        }
      },
      {
        "scope": {
          "clientScope": {
            "restrictedClientApplication": {
              "clientId": "32555940559.apps.googleusercontent.com"
            }
          }
        },
        "dryRunSettings": {
          "accessLevels": [
            "accessPolicies/244346580249/accessLevels/requireMutualTLS"
          ]
        }
      }
    ]
}

Consulta los registros de denegación

Después de crear una configuración de ejecución de prueba, puedes revisar los registros para identificar en la que la configuración de ejecución de prueba deniega el acceso.

En la siguiente tabla, se enumeran los campos de registro que puedes usar para crear y ejecutar la consulta para 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 Es el nombre de la aplicación para la que se deniega el acceso.
protoPayload > metadata > evaluationResult Es el resultado de la evaluación de la política de acceso activo. 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 la ejecución de prueba.
protoPayload > metadata > dryRunEvaluationResult El resultado de la evaluación de la política de acceso de la 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, consulta 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, luego, 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 los 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

Luego de que se crean las vinculaciones de acceso para un grupo de usuarios, puedes acceder al La consola de Google Cloud y las APIs de Google Cloud se controlan según la satisfacción del nivel de acceso limitado.

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

Ver vinculaciones de acceso

Console

Puedes ver todas las vinculaciones de acceso de la organización 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 Rol GcpAccessAdmin. . Si no se configuró la propiedad access-context-manager/organization, reemplaza ORG_ID en el --organization opcional. marca con el ID de la organización que usaste cuando creaste el 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 de la vinculación de acceso o el identificador 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 Rol 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.

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

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

Actualiza las vinculaciones de acceso

Console

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

gcloud

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

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

    Aquí:

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

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

    Reemplaza el valor por 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 nivel de acceso de prueba de validación, 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 lo mismo que 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

  • Para actualizar una vinculación de acceso, como cambiar el nivel de acceso, haz lo siguiente:

    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 muestra 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 se pueden encontrar en Access Context Manager desde que creaste el nivel de acceso.

    Método HTTP y 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 la 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 muestra para el identificador name cuando se creó la vinculación de acceso.
    • DRY_RUN_ACCESS_LEVEL es el ACCESS_LEVEL (para comprender la información) el efecto. ACCESS_LEVEL está en el formulario. accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME Los valores de POLICY_ID y Puedes encontrar ACCESS_LEVEL_NAME en Access Context Manager desde el momento en que creaste el nivel de acceso.

    Método HTTP y 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 nivel de acceso de la 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 muestra 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 se pueden encontrar en Access Context Manager desde que creaste el nivel de acceso.
    • DRY_RUN_ACCESS_LEVEL es el ACCESS_LEVEL (para comprender la información) el efecto. ACCESS_LEVEL tiene el formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Los valores de POLICY_ID y ACCESS_LEVEL_NAME se pueden encontrar en Access Context Manager desde que creaste el nivel de acceso.

    Método HTTP y 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 prueba de la 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 muestra para el identificador name cuando se creó la vinculación de acceso.

    Método HTTP y 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 cuando 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 muestra 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 muestra. 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 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?