Cada sujeto (un usuario o un grupo) sigue un proceso de dos pasos para obtener acceso al servidor de la API Management y al clúster de Kubernetes:
Acceso al servidor de la API Management: concede a un sujeto permisos en el servidor de la API Management mediante
ClusterRoleBindingoRoleBindinga unClusterRolepredefinido.Acceso al clúster de Kubernetes: concede acceso específico a un espacio de nombres o acceso a todo el clúster.
Para acceder a un espacio de nombres específico: para conceder acceso al espacio de nombres de un proyecto específico en el clúster, crea un
ProjectRoley unProjectRoleBindingcorrespondiente. Este proceso propaga unRoley unRoleBindingde Kubernetes a unNamespacede Kubernetes en el clúster, que corresponde alProjectcon el que están asociados elProjectRoley elProjectRoleBinding.Para obtener acceso a todo el clúster: para conceder acceso a todos los espacios de nombres del clúster, crea un
OrganizationRoley unOrganizationRoleBindingcorrespondiente. Este proceso propaga unClusterRolede KubernetesClusterRoleBindinga todo el clúster de Kubernetes.
Los perfiles (IO, PA y AO) no son roles, sino conjuntos de roles de usuario asignados a permisos específicos y a usuarios concretos.
Tanto el administrador de gestión de identidades y accesos de la organización como el administrador de gestión de identidades y accesos del proyecto pueden crear más roles de proyecto y vinculaciones de roles de proyecto para conceder permisos adicionales específicos del proyecto. Sin embargo, los administradores de gestión de identidades y accesos de la organización pueden crear roles de proyecto y vinculaciones de roles de proyecto para cualquier proyecto. Por otro lado, los administradores de gestión de identidades y accesos de proyectos solo pueden crear roles y enlaces de roles de proyectos para los proyectos a los que tienen permiso de acceso.
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
- Inicia sesión en la consola de GDC.
- Haz clic en Seleccionar proyecto para seleccionar una organización o un proyecto.
- 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.
- En el menú de navegación, haz clic en Identidad y acceso > Acceso.
- Haz clic en Añadir miembro.
- En la lista Proveedor de identidades, seleccione un proveedor.
- Elige si quieres añadir usuarios concretos o grupos.
- En el campo Nombre de usuario o alias de grupo, introduce el nombre de usuario, la dirección de correo o el alias.
- 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).
- Haz clic en Añadir.
El miembro aparecerá en la lista Miembro autorizado.
gdcloud
Asegúrate de que tienes instalada la CLI de gdcloud.
Inicia sesión con el comando
gdcloud auth loginpara autenticarte con tu proveedor de identidades. Para obtener más información, consulta la autenticación de la CLI de gdcloud.Configura las vinculaciones de roles.
Configura las asignaciones de roles de una organización:
gdcloud organizations add-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLESustituye las siguientes variables:
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_TYPE: elClusterRole,RoleoOrganizationRolepara el que vas a configurar el enlace de rol.ROLE: el nombre del rol predefinido o personalizado que quieras asignar al usuario (por ejemplo,project-creator).
Configura las vinculaciones de roles de un proyecto:
gdcloud projects add-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLESustituye 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_TYPE: elRoleoProjectRolepara el que estás configurando el enlace de rol.ROLE: el nombre del rol predefinido o personalizado que quieras asignar al usuario (por ejemplo,project-viewer).
API
Exporta la credencial de usuario que utilices:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIGExporta 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_EMAILExporta el nombre del rol que necesita el usuario, como
project-creator. Consulta las definiciones de roles para obtener más información sobre el rol.export ROLE_NAME=ROLE_NAMEAsigna un usuario a un
ClusterRole,Role,ProjectRoleoOrganizationRole:Asigna un usuario a un
ClusterRole:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ clusterrolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME}En los casos en los que un
ClusterRolerequiera unRoleBindingen lugar de unClusterRoleBinding, consulta las definiciones de roles para saber qué tipo de enlace necesita el rol y crea un RoleBinding en el espacio de nombresgpc-system:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME} --namespace=gpc-systemAsigna un usuario a un
Role:Exporta el espacio de nombres en el que se debe crear el enlace:
export BINDING_NAMESPACE=BINDING_NAMESPACEEjecuta los siguientes comandos para crear un
RoleBinding:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --role=${ROLE_NAME} --user=${USERNAME} --namespace=${BINDING_NAMESPACE}
Asigna un usuario a un
ProjectRole:Crea un archivo
projectrolebinding.yaml:apiVersion: resourcemanager.gdc.goog/v1 kind: ProjectRoleBinding metadata: name: BINDING_NAME namespace: PROJECT_NAME spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: ProjectRole name: ROLE_NAME subjects: - apiGroup: rbac.authorization.k8s.io kind: USER_KIND name: USERNAMEHaz los cambios siguientes:
BINDING_NAME: nombre de la vinculación que el usuario puede personalizar (por ejemplo,user-project-creator-binding).PROJECT_NAME: el nombre del proyecto al que vas a conceder el rol.ROLE_NAME: El nombre delProjectRoleque vas a asignar al usuario.USER_KIND: el tipo de usuario, que puede serUser,GroupoServiceAccount.USERNAME: la dirección de correo del usuario al que vas a asignar el rol, incluido el prefijo del proveedor de identidades (comoidpprefix-paul@example.com). Debe coincidir con elUSERNAMEexportado.
Aplica el archivo
projectrolebinding.yaml:kubectl create -f projectrolebinding.yaml
Asigna un usuario a un
OrganizationRole:Crea un archivo
organizationrolebinding.yaml:apiVersion: resourcemanager.gdc.goog/v1 kind: OrganizationRoleBinding metadata: name: BINDING_NAME namespace: gpc-system spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: OrganizationRole name: ROLE_NAME subjects: - apiGroup: rbac.authorization.k8s.io kind: USER_KIND name: USERNAMEHaz los cambios siguientes:
BINDING_NAME: nombre de la vinculación que el usuario puede personalizar (por ejemplo,user-organization-creator-binding).ROLE_NAME: El nombre delOrganizationRoleque vas a asignar al usuario.USER_KIND: el tipo de usuario, que puede serUser,GroupoServiceAccount.USERNAME: la dirección de correo del usuario al que vas a asignar el rol, incluido el prefijo del proveedor de identidades (comoidpprefix-paul@example.com). Debe coincidir con elUSERNAMEexportado.
Aplica el archivo YAML
organizationrolebinding.yaml:kubectl create -f organizationrolebinding.yaml
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
- Inicia sesión en la consola de GDC.
- En el menú de navegación, haz clic en Identidad y acceso > Acceso.
- En la lista Miembros autorizados, selecciona un miembro.
- Haz clic en Quitar miembro.
- Cuando se te indique, haz clic en Quitar miembro para confirmar la acción.
gdcloud
Asegúrate de que tienes instalada la CLI de gdcloud.
Inicia sesión con el comando
gdcloud auth loginpara autenticarte con tu proveedor de identidades. Para obtener más información, consulta la autenticación de la CLI de gdcloud.Quitar vinculaciones de roles.
Para quitar vinculaciones de roles de una organización, sigue estos pasos:
gdcloud organizations remove-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLESustituye las siguientes variables:
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_TYPE: elClusterRole,RoleoOrganizationRoledel que vas a quitar el enlace de rol.ROLE: el nombre del rol predefinido o personalizado que quieras quitar de la cuenta de usuario (por ejemplo,project-creator).
Para quitar vinculaciones de roles de un proyecto, sigue estos pasos:
gdcloud projects remove-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLESustituye las siguientes variables:
PROJECT: el nombre del proyecto del que quieres quitar la vinculación de roles.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_TYPE: elRoleoProjectRoledel que quieres quitar el enlace de rol.ROLE: el nombre del rol predefinido o personalizado que quieras quitar de la cuenta de usuario (por ejemplo,project-viewer).
API
Exporta la credencial de usuario que utilices:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIGExporta la cuenta de usuario de la que quieras quitar el rol, incluido el prefijo del proveedor de identidades (por ejemplo,
idpprefix-paul@example.com):export USERNAME=IDP_PREFIX-USER_EMAILExporta el espacio de nombres en el que se va a quitar la vinculación:
export BINDING_NAMESPACE=BINDING_NAMESPACEElimina el
ClusterRoleBinding,RoleBinding,ProjectRoleBindingoOrganizationRoleBindingpara revocar el permiso concedido a la cuenta de usuario:Para quitar el
ClusterRoleBindingde una cuenta de usuario, sigue estos pasos:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete clusterrolebinding ${USERNAME}-paPara quitar el
RoleBindingde una cuenta de usuario, sigue estos pasos:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete rolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}Para quitar el
ProjectRoleBindingde una cuenta de usuario, sigue estos pasos:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete projectrolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}Para quitar el
OrganizationRoleBindingde una cuenta de usuario, sigue estos pasos:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete organizationrolebinding ${USERNAME}-pa \ --namespace=gpc-system
Revocar el acceso de un usuario
Si un miembro abandona tu organización o equipo, puedes revocar su acceso al dispositivo aislado de Google Distributed Cloud (GDC). Si revocas el acceso de un usuario, se cerrará su sesión en el dispositivo aislado de GDC y se eliminarán 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, sigue estos pasos:
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).Revoca el acceso del usuario:
gdcloud admin auth revoke --accounts USER_EMAILSustituye 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.comEn este ejemplo, la variable NUMBER hace referencia al número de sesiones activas que ha tenido el usuario.
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
Mostrar todos los usuarios revocados
Para ver todos los usuarios a los que se les ha revocado el acceso, así como su actividad y sus sesiones, haz lo siguiente:
Lista de todos los usuarios revocados con sus horas de inicio y finalización:
gdcloud admin auth list --format="csv(ACCOUNT, IDENTITY_PROVIDER, CREATION_TIME, EXPIRATION_TIME)"Si la operación se realiza correctamente, verás un resultado similar al siguiente:
account,identity_provider,creation_time,expiration_time ariel@example.com,example-idp,2023-02-15 22:10:52,2023-02-15 23:10:52