Cómo otorgar 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. Otorga a un sujeto permisos en el servidor de la API global con IAMRoleBinding para un IAMRole predefinido. Todos los roles y las vinculaciones de roles son globales.

Esta página está destinada a los públicos dentro del grupo de administradores de la plataforma que administran los permisos dentro de su organización. Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.

Antes de comenzar

Antes de administrar las vinculaciones de roles o revocar el acceso, debes solicitar los permisos necesarios y preparar tu entorno. Los roles específicos necesarios dependen de si administras vinculaciones de roles o revocas el acceso de los usuarios.

Solicita roles de IAM

Comunícate con el administrador de IAM de tu organización para solicitar los roles según las tareas que debas realizar:

  • Administrador de IAM de la organización (organization-iam-admin): Crea, actualiza y borra vinculaciones de roles a nivel de la organización y del proyecto.
  • Administrador de sesión de la organización (org-session-admin): Revoca las sesiones activas y el acceso de un usuario dentro de una zona específica.

Prepara el entorno

Para usar las herramientas de línea de comandos para administrar vinculaciones de roles o revocar el acceso, completa la siguiente configuración.

Configura vinculaciones de roles

Puedes configurar vinculaciones de roles que les otorguen a los miembros del equipo acceso a los recursos a nivel de la organización o del proyecto.

Sigue estos pasos para asignar un rol a un miembro autorizado:

Console

  1. Accede a la consola de GDC.
  2. Selecciona una organización o un proyecto en el selector de alcance.
    • Para configurar vinculaciones de roles para una organización, selecciona una organización.
    • Para configurar vinculaciones de roles para un proyecto, selecciona uno.
  3. En el menú de navegación, haz clic en Identity and Access > Access.
  4. Haz clic en Agregar miembro.
  5. Elige si quieres agregar usuarios o grupos individuales.
  6. En la lista Proveedor de identidad, selecciona un proveedor de identidad.
  7. En el campo Nombre de usuario o alias de grupo, ingresa el nombre de usuario, la dirección de correo electrónico o el alias.
  8. En la lista Rol, selecciona el rol que deseas asignar al usuario o grupo, como Visualizador de la organización a nivel de la organización o Creador de proyectos a nivel del proyecto.
  9. Haz clic en Agregar.

El miembro aparecerá en la lista Miembro autorizado.

gdcloud

  1. Asegúrate de tener instalada la CLI de gdcloud.

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

  3. Configura las vinculaciones de roles.

    • Sigue estos pasos para configurar vinculaciones de roles para una organización:

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

      Reemplaza las siguientes variables:

      • ORGANIZATION: Es el nombre de la organización para la que configuras la vinculación del rol.
      • USER_ACCOUNT: Es la cuenta de usuario a la que deseas otorgar el rol. Esta marca acepta una dirección de correo electrónico del usuario con el prefijo del proveedor de identidad (user:idpprefix-user@example.com) o un nombre de cuenta de servicio con el proyecto de la cuenta de servicio (serviceAccount:projectName:serviceAccountName).
      • ROLE: Es el nombre del rol predefinido o personalizado que deseas asignar al usuario.
    • Configura vinculaciones de roles para un proyecto:

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

      Reemplaza las siguientes variables:

      • PROJECT: Es el nombre del proyecto para el que configuras la vinculación del rol.
      • USER_ACCOUNT: Es la cuenta de usuario a la que deseas otorgar el rol. Esta marca acepta una dirección de correo electrónico del usuario con el prefijo del proveedor de identidad (user:idpprefix-user@example.com) o un nombre de cuenta de servicio con el proyecto de la cuenta de servicio (serviceAccount:projectName:serviceAccountName).
      • ROLE: Es el nombre del rol predefinido o personalizado que deseas asignar al usuario.

API

  1. Exporta las variables de entorno para la vinculación del rol:

    export GLOBAL_API_SERVER_KUBECONFIG=GLOBAL_API_SERVER_KUBECONFIG
    export USERNAME=IDP_PREFIX-USERNAME
    export ROLE_NAME=ROLE_NAME
    export BINDING_NAMESPACE=BINDING_NAMESPACE
    export USER_EMAIL=IDP_PREFIX-USER_EMAIL
    

    Reemplaza lo siguiente:

    • GLOBAL_API_SERVER_KUBECONFIG: Es la ruta al archivo kubeconfig del servidor de la API global.
    • IDP_PREFIX: Es el prefijo del proveedor de identidad.
    • USERNAME: Es la parte del nombre de usuario de la dirección de correo electrónico del usuario que se encuentra antes del símbolo @ (como paul de paul@example.com).
    • ROLE_NAME: Es el nombre del rol que necesita el usuario (por ejemplo, project-creator). Consulta Definiciones de roles para obtener una lista de los roles y su alcance.
    • BINDING_NAMESPACE: platform para los roles con alcance en la organización o el nombre del espacio de nombres del proyecto de destino para los roles con alcance en el proyecto.
    • USER_EMAIL: Es la dirección de correo electrónico de la cuenta de usuario a la que deseas asignar el rol (por ejemplo, paul@example.com).
  2. 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: ${USER_EMAIL}
    EOF
    

Quita vinculaciones de roles

Cuando ya no se requiera el acceso, quita a un miembro y sus roles, permisos y acceso asociados.

Para quitar miembros, sigue estos pasos:

Console

  1. Accede a la consola de GDC.
  2. En el menú de navegación, haz clic en Identity and Access > Access.
  3. En la lista Miembros autorizados, selecciona un miembro.
  4. Haz clic en Quitar miembro.
  5. Cuando se te solicite, haz clic en Quitar miembro para confirmar.

gdcloud

  1. Asegúrate de tener instalada la CLI de gdcloud.

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

  3. Quita vinculaciones de roles.

    • Para quitar vinculaciones de roles de una organización, haz lo siguiente:

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

      Reemplaza las siguientes variables:

      • ORGANIZATION: Es el nombre de la organización de la que quitas la vinculación del rol.
      • USER_ACCOUNT: Es la cuenta de usuario de la que deseas quitar el rol. Esta marca acepta una dirección de correo electrónico del usuario con el prefijo del proveedor de identidad (user:idpprefix-user@example.com) o un nombre de cuenta de servicio con el proyecto de la cuenta de servicio (serviceAccount:projectName:serviceAccountName).
      • ROLE: Es el nombre del rol predefinido o personalizado que deseas quitar de la cuenta de usuario.
    • Quita las vinculaciones de roles de un proyecto:

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

      Reemplaza las siguientes variables:

      • PROJECT: Es el nombre del proyecto del que quitarás la vinculación del rol.
      • USER_ACCOUNT: Es la cuenta de usuario de la que deseas quitar el rol. Esta marca acepta una dirección de correo electrónico del usuario con el prefijo del proveedor de identidad (user:idpprefix-user@example.com) o un nombre de cuenta de servicio con el proyecto de la cuenta de servicio (serviceAccount:projectName:serviceAccountName).
      • ROLE: Es el nombre del rol predefinido o personalizado que deseas quitar de la cuenta de usuario.

kubectl

Borra el objeto IAMRoleBinding para revocar el permiso otorgado a la cuenta de PA:

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

Reemplaza lo siguiente:

  • GLOBAL_API_SERVER_KUBECONFIG: Es la ruta al archivo kubeconfig del servidor de la API global.
  • IDP_PREFIX: Es el prefijo del proveedor de identidad.
  • USERNAME: Es la parte del nombre de usuario de la dirección de correo electrónico del usuario que aparece antes del símbolo @ (como paul de paul@example.com).
  • ROLE_NAME: Es el nombre del rol que deseas quitar, como project-creator.
  • BINDING_NAMESPACE: Reemplaza con platform para los roles con alcance en la organización o con el nombre del espacio de nombres del proyecto de destino para los roles con alcance en el proyecto.

Cómo revocar el acceso de un usuario

Si un miembro abandona tu organización o equipo, puedes revocar su acceso a Google Distributed Cloud (GDC) aislado. Cuando se revoca el acceso de un usuario, se cierra su sesión en Distributed Cloud y se quitan sus roles y permisos. También puedes enumerar la actividad y las sesiones del usuario desde su hora de inicio y finalización.

Para revocar el acceso de un usuario en todo el universo de GDC, debes revocar el acceso para cada zona individual por separado. Completa los siguientes pasos para cada zona:

  1. Asegúrate de haber accedido a la zona para la que quieres revocar el acceso. Por ejemplo, establece la configuración de URL zonal para gcloud CLI y, luego, accede:

    gdcloud config set organization_console_url ZONE_URL
    gdcloud auth login
    

    Reemplaza ZONE_URL por la URL de la consola de GDC de la zona para la que se revocará el acceso del usuario, que se parece a https://console.ORG_NAME.ZONE_NAME.ORG_SUFFIX.

    Para obtener más información sobre cómo cambiar de contexto zonal, consulta Cómo acceder a las zonas con tus herramientas.

  2. Revoca el acceso del usuario a la zona:

    gdcloud admin auth revoke --accounts USER_EMAIL
    

    Reemplaza USER_EMAIL por el correo electrónico del usuario al que se le revocará el acceso.

    Después de ejecutar el comando, verás 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 a la cantidad de sesiones activas que tuvo el usuario.

  3. Para confirmar que revocaste el acceso del usuario, vuelve a ejecutar el comando gdcloud admin auth revoke. Si se ejecuta correctamente, verás lo siguiente:

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