Configura clústeres para GKE Identity Service con SAML
Este documento está dirigido a los administradores de clústeres o los operadores de aplicaciones que deseen configurar GKE Identity Service en clústeres individuales, lo que permite que los desarrolladores y otros usuarios accedan a los clústeres con sus detalles de identidad existentes desde un lenguaje de marcado para confirmaciones de seguridad En la guía se supone que leíste la descripción general de GKE Identity Service. En las instrucciones de este documento, se da por sentado que GKE Identity Service ya está registrado en tu proveedor de identidad como una aplicación cliente.
Antes de comenzar
- Asegúrate de que el administrador de la plataforma te haya brindado toda la información necesaria de Registra Anthos Identity Service con tu proveedor antes de comenzar la configuración.
Asegúrate de tener instaladas las siguientes herramientas de línea de comandos:
- Usa la versión 466.0.0 de Google Cloud CLI o una versión posterior, que incluye
gcloud
, la herramienta de línea de comandos para interactuar con Google Cloud. Si necesitas instalar Google Cloud CLI, consulta la Guía de instalación. kubectl
para ejecutar comandos en clústeres de Kubernetes. Si necesitas instalarkubectl
, sigue estas instrucciones.
Si usas Cloud Shell como entorno de shell para interactuar con Google Cloud, estas herramientas están instaladas.
- Usa la versión 466.0.0 de Google Cloud CLI o una versión posterior, que incluye
Asegúrate de haber inicializado la CLI de gcloud para usarla con el proyecto en el que se registran los clústeres.
Configura el clúster
GKE Identity Service usa un tipo especial de recurso personalizado (CRD) de Kubernetes para configurar tus clústeres llamados ClientConfig, con campos para la información sobre el proveedor de identidad y los parámetros que necesita para mostrar información del usuario.
kubectl
Para editar tu ClientConfig predeterminada, asegúrate de que puedes conectarte al clúster a través de kubectl
y ejecuta el siguiente comando:
kubectl --kubeconfig=KUBECONFIG_PATH edit ClientConfigs default -n kube-public
Reemplaza KUBECONFIG_PATH
por la ruta de acceso al archivo kubeconfig de tu clúster, por ejemplo $HOME/.kube/config
.
Un editor de texto carga el recurso ClientConfig de tu clúster. Agrega el objeto saml
como se indica en el fragmento.
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: NAME
saml:
idpEntityID: ENTITY_ID
idpSingleSignOnURI: SIGN_ON_URI
idpCertificateDataList: IDP_CA_CERT
userAttribute: USER_ATTRIBUTE
groupsAttribute: {'<var name="user attribute">GROUPS_ATTRIBUTE</var>'}}
userPrefix: USER_PREFIX
groupPrefix: GROUP_PREFIX
attributeMapping:
ATTRIBUTE_KEY_1 : ATTRIBUTE_CEL_EXPRESSION_1
ATTRIBUTE_KEY_2 : ATTRIBUTE_CEL_EXPRESSION_2
certificateAuthorityData: CERTIFICATE_STRING
preferredAuthentication: PREFERRED_AUTHENTICATION
server: <>
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
En la siguiente tabla, se describen los campos del objeto de ClientConfig saml
. Los campos que debes agregar dependen de tu proveedor de identidad y las opciones de configuración que elige el administrador de la plataforma cuando configuras el proveedor de GKE Identity Service.
Campo | Obligatorio | Descripción | Formato |
---|---|---|---|
nombre | Sí | El nombre que deseas usar para identificar esta configuración, que suele ser el nombre del proveedor de identidad. El nombre de configuración debe comenzar con una letra minúscula seguida con un máximo de 39 letras minúsculas, números o guiones, y no puede terminar con un guion. | String |
idpEntityID | Sí | El ID de la entidad SAML para el proveedor de SAML, especificado en un formato de URI. Por ejemplo: https://www.idp.com/saml . |
String de URL |
idpSingleSignOnURI | sí | El extremo de SSO del proveedor de SAML, especificado en un formato de URI. Por ejemplo: https://www.idp.com/saml/sso . |
String de URL |
idpCertificateDataList | Sí | Corresponde a los certificados del proveedor de identidad que se usaron para verificar la respuesta de SAML. Estos certificados deben estar codificados en base64 estándar y tener el formato PEM. Solo se admite un máximo de dos certificados para facilitar la rotación de certificados del proveedor de identidad. | String |
userAttribute | No | Nombre del atributo en la respuesta de SAML que contiene el nombre de usuario. | String |
groupsAttribute | No | Nombre del atributo en la respuesta de SAML que contiene la información del grupo del usuario. | String |
userPrefix | No | El prefijo que deseas anteponer a las reclamaciones de los usuarios para evitar conflictos con los nombres existentes, si no deseas usar el prefijo predeterminado. | String |
groupPrefix | No | El prefijo que quieres anteponer a los nombres de los grupos de seguridad para evitar conflictos con los nombres existentes en las reglas de control de acceso si tienes configuraciones para varios proveedores de identidad (por lo general, el nombre del proveedor). | String |
attributeMapping | No | La asignación de atributos de usuario adicionales. | String |
certificateAuthorityData | No | Si el administrador de la plataforma lo proporciona, esta es una string de certificado con codificación PEM para el proveedor de identidad. Incluye la string resultante en certificateAuthorityData como una certificateAuthorityData sola línea. |
String |
preferredAuthentication | No | Nombre del método de autenticación preferido configurado en el clúster. | String |
Después de completar tu ClientConfig, guarda el archivo, que actualiza el ClientConfig en tu clúster. Si se produjeron errores de sintaxis, se te solicitará que vuelvas a editar la configuración para corregirlos.
Próximos pasos
Después de aplicar la configuración, continúa con la configuración del acceso de los usuarios a los clústeres.