Conceder y revocar el acceso

Cada sujeto (un usuario o un grupo) sigue un proceso de dos pasos para obtener acceso al servidor de la API global. Concede a un sujeto permisos en el servidor de la API global con IAMRoleBinding a un IAMRole predefinido. Todos los roles y las asignaciones de roles son globales.

Los perfiles (IO, PA y AO) no son roles, sino conjuntos de roles de usuario asignados a permisos específicos y a usuarios concretos.

Configurar vinculaciones de roles

Puedes configurar enlaces de rol que den acceso a los miembros del equipo a los recursos a nivel de organización o de proyecto.

Para obtener los permisos que necesitas para configurar las vinculaciones de roles, pide al administrador de gestión de identidades y accesos de tu organización que te conceda el rol de administrador de gestión de identidades y accesos de la organización.

Para asignar un rol a un miembro autorizado, sigue estos pasos:

Consola

  1. Inicia sesión en la consola de GDC.
  2. Selecciona una organización o un proyecto en el selector de ámbito.
    • Para configurar las vinculaciones de roles de una organización, selecciona una organización.
    • Para configurar las vinculaciones de roles de un proyecto, selecciona un proyecto.
  3. En el menú de navegación, haz clic en Identidad y acceso > Acceso.
  4. Haz clic en Añadir miembro.
  5. Elige si quieres añadir usuarios concretos o grupos.
  6. En la lista Proveedor de identidades, seleccione un proveedor.
  7. En el campo Nombre de usuario o alias de grupo, introduce el nombre de usuario, la dirección de correo o el alias.
  8. En la lista Rol, selecciona el rol que quieras asignar al usuario o al grupo (por ejemplo, Lector de la organización a nivel de organización o Creador de proyectos a nivel de proyecto).
  9. Haz clic en Añadir.

El miembro aparecerá en la lista Miembro autorizado.

gdcloud

  1. Asegúrate de que tienes instalada la CLI de gdcloud.

  2. Inicia sesión con el comando gdcloud auth login para autenticarte con tu proveedor de identidades. Para obtener más información, consulta la autenticación de la CLI de gdcloud.

  3. Configura las vinculaciones de roles.

    • Configura las asignaciones de roles de una organización:

      gdcloud organizations add-iam-policy-binding ORGANIZATION \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      Sustituye las siguientes variables:

      • ORGANIZATION: el nombre de la organización para la que vas a configurar el enlace de rol.
      • USER_ACCOUNT: la cuenta de usuario a la que quieres asignar el rol. Esta marca acepta una dirección de correo de usuario con el prefijo del proveedor de identidades (user:idpprefix-user@example.com) o un nombre de cuenta de servicio con el proyecto de la cuenta de servicio (serviceAccount:projectName:serviceAccountName).
      • ROLE: el nombre del rol predefinido o personalizado que quieras asignar al usuario.
    • Configura las vinculaciones de roles de un proyecto:

      gdcloud projects add-iam-policy-binding PROJECT \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      Sustituye las siguientes variables:

      • PROJECT: el nombre del proyecto para el que estás configurando la vinculación de roles.
      • USER_ACCOUNT: la cuenta de usuario a la que quieres asignar el rol. Esta marca acepta una dirección de correo de usuario con el prefijo del proveedor de identidades (user:idpprefix-user@example.com) o un nombre de cuenta de servicio con el proyecto de la cuenta de servicio (serviceAccount:projectName:serviceAccountName).
      • ROLE: el nombre del rol predefinido o personalizado que quieras asignar al usuario.

API

  1. Exporta la credencial de usuario que utilices:

    export GLOBAL_API_SERVER_KUBECONFIG=GLOBAL_API_SERVER_KUBECONFIG
    
  2. Exporta la cuenta de usuario a la que quieras asignar el rol, incluido el prefijo del proveedor de identidades (por ejemplo, idpprefix-paul@example.com):

    export USERNAME=IDP_PREFIX-USER_EMAIL
    
  3. Exporta el nombre del rol que necesita el usuario, como project-creator. Consulta las definiciones de roles para encontrar el rol correspondiente.

    export ROLE_NAME=ROLE_NAME
    
  4. Exporta el espacio de nombres en el que se debe crear el enlace:

    export BINDING_NAMESPACE=BINDING_NAMESPACE
    

    Sustituye BINDING_NAMESPACE por platform en el caso de los roles con ámbito de organización o por el nombre del espacio de nombres del proyecto de destino en el caso de los roles con ámbito de proyecto.

    Consulta las definiciones de roles para ver una lista de roles y su ámbito.

  5. Crea y aplica un recurso personalizado IAMRoleBinding:

    cat <<EOF | kubectl --kubeconfig ${GLOBAL_API_SERVER_KUBECONFIG} apply -f -
    apiVersion: iam.global.gdc.goog/v1
    kind: IAMRoleBinding
    metadata:
      name: ${USERNAME}-${ROLE_NAME}-binding
      namespace: ${BINDING_NAMESPACE}
    spec:
      roleRef:
        apiGroup: iam.global.gdc.goog
        kind: IAMRole
        name: ${ROLE_NAME}
      subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: User
        name: ${USERNAME}
    EOF
    

Quitar vinculaciones de roles

Cuando ya no se necesite el acceso, quita al miembro y sus roles, permisos y acceso asociados.

Para quitar miembros, sigue estos pasos:

Consola

  1. Inicia sesión en la consola de GDC.
  2. En el menú de navegación, haz clic en Identidad y acceso > Acceso.
  3. En la lista Miembros autorizados, selecciona un miembro.
  4. Haz clic en Quitar miembro.
  5. Cuando se te indique, haz clic en Quitar miembro para confirmar la acción.

gdcloud

  1. Asegúrate de que tienes instalada la CLI de gdcloud.

  2. Inicia sesión con el comando gdcloud auth login para autenticarte con tu proveedor de identidades. Para obtener más información, consulta la autenticación de la CLI de gdcloud.

  3. Quitar vinculaciones de roles.

    • Para quitar vinculaciones de roles de una organización, sigue estos pasos:

      gdcloud organizations remove-iam-policy-binding ORGANIZATION \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      Sustituye las siguientes variables:

      • ORGANIZATION: el nombre de la organización de la que vas a quitar la vinculación de rol.
      • USER_ACCOUNT: la cuenta de usuario de la que quieres quitar el rol. Esta marca acepta una dirección de correo de usuario con el prefijo del proveedor de identidades (user:idpprefix-user@example.com) o un nombre de cuenta de servicio con el proyecto de la cuenta de servicio (serviceAccount:projectName:serviceAccountName).
      • ROLE: el nombre del rol predefinido o personalizado que quieras quitar de la cuenta de usuario.
    • Para quitar vinculaciones de roles de un proyecto, sigue estos pasos:

      gdcloud projects remove-iam-policy-binding PROJECT \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      Sustituye las siguientes variables:

      • PROJECT: el nombre del proyecto del que vas a quitar la vinculación de rol.
      • USER_ACCOUNT: la cuenta de usuario de la que quieres quitar el rol. Esta marca acepta una dirección de correo de usuario con el prefijo del proveedor de identidades (user:idpprefix-user@example.com) o un nombre de cuenta de servicio con el proyecto de la cuenta de servicio (serviceAccount:projectName:serviceAccountName).
      • ROLE: el nombre del rol predefinido o personalizado que quieras quitar de la cuenta de usuario.

API

Elimina el IAMRoleBinding para revocar el permiso concedido a la cuenta de PA:

kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG \
delete iamrolebinding USERNAME-ROLE_NAME-binding -n BINDING_NAMESPACE

Haz los cambios siguientes:

  • GLOBAL_API_SERVER_KUBECONFIG: la ruta al archivo kubeconfig para acceder al servidor de la API global.
  • USERNAME: la cuenta de usuario a la que quieres quitar el rol, incluido el prefijo del proveedor de identidades (por ejemplo, idpprefix-paul@example.com).
  • ROLE_NAME: el nombre del rol que quieras quitar, como project-creator.
  • BINDING_NAMESPACE: sustitúyelo por platform para los roles con ámbito de organización o por el nombre del espacio de nombres del proyecto de destino para los roles con ámbito de proyecto.

Revocar el acceso de un usuario

Si un miembro abandona tu organización o equipo, puedes revocar su acceso a Google Distributed Cloud (GDC) air-gapped. Al revocar el acceso de un usuario, se cierra su sesión en Distributed Cloud y se eliminan sus roles y permisos. También puedes consultar la actividad y las sesiones del usuario por hora de inicio y de finalización.

Para revocar el acceso de un usuario en todo un universo de GDC, debes revocar el acceso de cada zona por separado. Sigue estos pasos para cada zona:

  1. Asegúrate de que has iniciado sesión en la zona a la que quieres revocar el acceso. Por ejemplo, configura la URL zonal para la CLI de gdcloud y, a continuación, inicia sesión:

    gdcloud config set organization_console_url ZONE_URL
    gdcloud auth login
    

    Sustituye ZONE_URL por la URL de la consola de GDC de la zona para la que quieras revocar el acceso de usuario, que es similar a https://console.ORG_NAME.ZONE_NAME.ORG_SUFFIX.

    Para obtener más información sobre cómo cambiar de contexto de zona, consulta el artículo sobre cómo gestionar recursos en varias zonas.

  2. Obtén los permisos que necesitas para revocar el acceso de los usuarios. Pídele al administrador de gestión de identidades y accesos de tu organización que te conceda el rol de administrador de sesiones de la organización (org-session-admin).

  3. Revoca el acceso del usuario a la zona:

    gdcloud admin auth revoke --accounts USER_EMAIL
    

    Sustituye USER_EMAIL por el correo del usuario al que quieras revocar el acceso.

    Después de ejecutar el comando, verá un resultado similar al siguiente. En este ejemplo se revoca el acceso del usuario ariel@example.com:

    Success: NUMBER of sessions revoked for user ariel@example.com
    

    En este ejemplo, la variable NUMBER hace referencia al número de sesiones activas que ha tenido el usuario.

  4. Confirma que has revocado el acceso del usuario ejecutando de nuevo el comando gdcloud admin auth revoke. Si la acción se realiza correctamente, verá lo siguiente:

    No sessions found for account: ariel@example.com
    
  5. Repite los pasos anteriores con cada zona de tu universo.