Autenticarse en GKE en Azure con identidades externas
La federación de identidades de la fuerza laboral otorga a las identidades que no son de Google acceso aGoogle Cloud Servicios. En el contexto de GKE en Azure, esto significa que puede usar identidades externas preexistentes para crear o acceder a un clúster de GKE sin depender de las credenciales de Google.
Los beneficios de utilizar la federación de identidad de la fuerza laboral son los siguientes:
- Elimina la necesidad de tener cuentas duplicadas en diferentes plataformas o proveedores.
- Establece permisos solo una vez, evitando así la necesidad de realizar configuraciones en múltiples plataformas.
- Simplifica el acceso de los usuarios porque se requieren menos nombres de usuario y contraseñas.
Antes de empezar
Antes de poder habilitar que usuarios o grupos externos accedan a los clústeres de GKE, debe realizar los siguientes pasos:
Para que los usuarios o grupos externos puedan usar GKE en la API de Azure, configure la federación de identidades de fuerza laboral.
- Para los usuarios de Azure, consulte Configurar la federación de identidades de fuerza laboral con Azure AD .
- Para los usuarios de Okta, consulte Configurar la federación de identidad de la fuerza laboral con Okta .
- Para usuarios de otras plataformas, consulte Configurar la federación de identidad de la fuerza laboral .
Asigne a sus usuarios o grupos externos el rol
gkemulticloud.viewer
para que puedan acceder a los clústeres. Asigne el rolcontainer.clusterViewer
para ver los clústeres en el Google Cloud consola.Tenga en cuenta que los roles son conjuntos de permisos. Al asignar un rol a una entidad (usuario, grupo o cuenta de servicio), le otorga todos los permisos que contiene el rol.
Usuarios
Para usuarios individuales, debe asignar el rol
gkemulticloud.viewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.viewer" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"
Reemplace lo siguiente:
-
PROJECT_ID
: el ID de su Google Cloud proyecto. -
WORKFORCE_POOL_ID
: el ID que identifica de forma única su grupo de identidades de fuerza laboral en Google CloudAl formatear el ID, asegúrese de seguir las pautas recomendadas que se proporcionan en la documentación de IAM en Parámetros de consulta . -
SUBJECT_VALUE
: el ID que identifica de forma única a un usuario externo. Por ejemplo, el ID puede ser una dirección de correo electrónico comoalex@cymbalgroup.com
.
Grupos
Para los grupos, debe asignar el rol
gkemulticloud.viewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.viewer" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Reemplace lo siguiente:
-
PROJECT_ID
: el ID de su Google Cloud proyecto. -
WORKFORCE_POOL_ID
: el ID que identifica de forma única su grupo de identidades de fuerza laboral en Google CloudAl formatear el ID, asegúrese de seguir las pautas recomendadas que se proporcionan en la documentación de IAM en Parámetros de consulta . -
GROUP_ID
: un ID que identifica de forma única a un grupo externo.
-
Opcional: Asigne a sus usuarios o grupos externos los roles de Administración de Identidad y Acceso (IAM) adecuados. Este paso solo es necesario si desea otorgar a los usuarios o grupos la capacidad de crear o actualizar clústeres; no es necesario simplemente para acceder a un clúster .
Usuarios
Para usuarios individuales, debe asignar el rol
gkemulticloud.admin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"
Reemplace lo siguiente:
-
PROJECT_ID
: el ID de su Google Cloud proyecto. -
WORKFORCE_POOL_ID
: el ID que identifica de forma única su grupo de identidades de fuerza laboral en Google CloudAl formatear el ID, asegúrese de seguir las pautas recomendadas que se proporcionan en la documentación de IAM en Parámetros de consulta . -
SUBJECT_VALUE
: el ID que identifica de forma única a un usuario externo. Por ejemplo, el ID puede ser una dirección de correo electrónico comoalex@cymbalgroup.com
.
Grupos
Para los grupos, debe asignar el rol
gkemulticloud.admin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Reemplace lo siguiente:
-
PROJECT_ID
: el ID de su Google Cloud proyecto. -
WORKFORCE_POOL_ID
: el ID que identifica de forma única su grupo de identidades de fuerza laboral en Google CloudAl formatear el ID, asegúrese de seguir las pautas recomendadas que se proporcionan en la documentación de IAM en Parámetros de consulta . -
GROUP_ID
: un ID que identifica de forma única a un grupo externo.
-
Para obtener más información sobre qué roles y permisos de API son necesarios para GKE en Azure, consulte Roles y permisos de API .
Otorgar acceso externo a los clústeres de GKE
Hay dos métodos para configurar la federación de identidad de fuerza de trabajo para que los usuarios o grupos externos puedan acceder a sus clústeres de GKE.
El método n.° 1 requiere definir un archivo RBAC y aplicarlo al clúster. Este método ofrece un control preciso de los permisos, como permitir a los usuarios acceso de solo lectura a los recursos sin otorgarles un acceso más amplio.
El método n.º 2 requiere especificar el acceso para identidades externas al crear o actualizar un clúster. Este método otorga privilegios administrativos completos a los usuarios o grupos especificados.
Elija el método que mejor se adapte a su nivel deseado de control de acceso: método n.° 1 para permisos más granulares o método n.° 2 para otorgar derechos de administrador de clúster completos.
Método n.° 1: utilizar un archivo RBAC
El primer método para otorgar acceso externo a los clústeres de GKE implica el uso de un archivo RBAC. Siga estos pasos:
Define un archivo YAML de RBAC que incluya los sujetos (usuarios o grupos) y los permisos que quieres otorgarles dentro del clúster de GKE. A continuación, se muestran ejemplos de configuraciones de YAML de RBAC para usuarios individuales y grupos:
Usuarios
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-user subjects: - kind: User name: principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
Reemplace lo siguiente:
-
WORKFORCE_POOL_ID
: el ID que identifica de forma única su grupo de identidades de fuerza laboral en Google CloudAl formatear el ID, asegúrese de seguir las pautas recomendadas que se proporcionan en la documentación de IAM en Parámetros de consulta . -
SUBJECT_VALUE
: el ID que identifica de forma única a un usuario externo. Por ejemplo, el ID puede ser una dirección de correo electrónico comoalex@cymbalgroup.com
.
Grupos
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-group subjects: - kind: Group name: principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
Reemplace lo siguiente:
-
WORKFORCE_POOL_ID
: el ID que identifica de forma única su grupo de identidades de fuerza laboral en Google CloudAl formatear el ID, asegúrese de seguir las pautas recomendadas que se proporcionan en la documentación de IAM en Parámetros de consulta . -
GROUP_ID
: un ID que identifica de forma única a un grupo externo.
-
Identifique el clúster de GKE que desea configurar y configúrelo como contexto activo mediante el siguiente comando:
kubectl config use-context CLUSTER_CONTEXT
Reemplace
CLUSTER_CONTEXT
con el nombre de contexto apropiado para su clúster.Con el clúster de GKE deseado establecido como contexto activo, aplique la configuración de RBAC al clúster mediante el siguiente comando:
kubectl apply -f RBAC_PATH
Reemplace
RBAC_PATH
con la ruta al archivo RBAC que creó o editó.Cuando ejecuta este comando, los usuarios o grupos especificados en la configuración de RBAC ahora tienen los permisos para acceder y administrar el clúster de GKE de destino, como se define en las reglas de RBAC.
Si necesita realizar cambios posteriores en los permisos, modifique el archivo RBAC y vuelva a aplicarlo al clúster repitiendo los pasos anteriores.
Método n.° 2: otorgar acceso a identidades externas durante la creación o actualización del clúster
El método n.° 2 otorga acceso a identidades externas durante el proceso de creación o actualización del clúster.
Para crear un clúster, siga los pasos de "Crear un clúster" . Para actualizar un clúster, siga los pasos de "Actualizar un clúster" .
Al ejecutar el comando gcloud
para crear o actualizar un clúster, especifique los parámetros admin-users
y/o admin-groups
de la siguiente manera:
gcloud container azure clusters [create|update] CLUSTER_NAME \
--location=LOCATION
--admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
--admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID
Reemplace lo siguiente:
-
CLUSTER_NAME
: el nombre de su clúster. -
LOCATION
: el Google Cloud región donde se administra su clúster. -
WORKFORCE_POOL_ID
: el ID que identifica de forma única su grupo de identidades de fuerza laboral en Google CloudAl formatear el ID, asegúrese de seguir las pautas recomendadas que se proporcionan en la documentación de IAM en Parámetros de consulta . -
SUBJECT_VALUE
: el ID que identifica de forma única a un usuario externo. Por ejemplo, el ID puede ser una dirección de correo electrónico comoalex@cymbalgroup.com
. -
GROUP_ID
: un ID que identifica de forma única a un grupo externo.
Resumen sobre cómo conceder acceso a identificadores externos a los clústeres de GKE
Después de ejecutar el método n.° 1 o el método n.° 2, los usuarios o grupos externos especificados pueden usar Google Cloud Consola para conectarse y ver los detalles del clúster. Como alternativa, pueden usar kubectl
con identidad desde la CLI de gcloud para administrar, manipular y comunicarse con el clúster.
Para ejecutar comandos kubectl
contra clústeres de GKE, consulte cómo generar una entrada kubeconfig
.