En esta página se describe cómo autenticar Config Sync en tu imagen de OCI o repositorio de Helm. Config Sync requiere acceso de solo lectura a tu fuente de información veraz para poder leer tus configuraciones, aplicarlas a tus clústeres y mantenerlas sincronizadas.
Elegir un método de autenticación
El método de autenticación que utilices dependerá de lo que se admita en tu tipo de fuente.
En la siguiente tabla se resumen los métodos de autenticación que puedes usar con Config Sync:
Método | Fuentes admitidas | Descripción | Limitaciones |
---|---|---|---|
Sin autenticación | Git, OCI y Helm | No es necesario configurar nada más. | Solo funciona si tu fuente de información es pública. |
Par de claves SSH | Git | Compatible con la mayoría de los proveedores de Git. | Requiere gestión de claves. No se admite en OCI ni en Helm. |
token | Git y Helm | Compatible con la mayoría de los proveedores de Git. Es una buena alternativa si tu organización no permite usar claves SSH. Admite nombres de usuario y contraseñas para Helm. | Requiere gestión de tokens. Los tokens pueden caducar. No se admite en OCI. |
Cuenta de servicio de Kubernetes | OCI, Helm | Usa IAM para conceder acceso a Artifact Registry directamente a una cuenta de servicio de Kubernetes. Requiere que Workload Identity Federation para GKE esté habilitado en tu clúster. | No se admite en Git. |
Cuenta de servicio de Google | Git | Usa IAM, lo que evita almacenar credenciales en secretos de Kubernetes. Se recomienda para Secure Source Manager y Cloud Source Repositories. Requiere que Workload Identity Federation para GKE esté habilitado en tu clúster. | Requiere configuración antes y después de instalar Config Sync en tus clústeres. No se admite en repositorios alojados fuera de Secure Source Manager o Cloud Source Repositories. |
Aplicación de GitHub | Git | Integración directa con GitHub. Permite permisos pormenorizados. | Solo se admite en repositorios alojados en GitHub. Solo se admite en Config Sync 1.19.1 y versiones posteriores. |
Config Sync también admite los siguientes métodos de autenticación. Sin embargo, estos métodos solo se recomiendan si no puedes usar una de las opciones que se indican en la tabla anterior:
- Es posible que cookiefile: no sea compatible con todos los proveedores de Git. No se admite en OCI ni en Helm.
- Cuenta de servicio predeterminada de Compute Engine (
gcenode
): no se recomienda porque este método solo funciona si Workload Identity Federation para GKE está inhabilitado. Compatible con Git, OCI y Helm. - Cuenta de servicio de Google para Helm y OCI: se admite, pero no se recomienda porque el método de cuenta de servicio de Kubernetes requiere menos configuración.
Antes de empezar
Antes de conceder acceso de solo lectura a tu fuente de información veraz a Config Sync, completa las siguientes tareas:
Prepara o ten acceso a un repositorio de imágenes OCI o de Helm donde almacenes los archivos de configuración que quieras que sincronice Config Sync. Para obtener más información, consulta los siguientes recursos:
- Añadir configuraciones a una fuente de información fiable: información conceptual sobre las configuraciones.
- Prácticas recomendadas de GitOps: consejos y prácticas recomendadas generales para organizar y gestionar tu repositorio.
- Usar un repositorio sin estructurar: recomendaciones para usar y organizar un repositorio sin estructurar.
Crea un clúster de GKE o ten acceso a uno. Antes de crear un clúster, consulta los requisitos y las recomendaciones de configuración de clústeres para Config Sync.
Conceder acceso a una imagen de OCI
En esta sección se describe cómo conceder acceso de solo lectura a imágenes de OCI a Config Sync mediante un método de autenticación compatible.
Para autenticarte en Config Sync, debes almacenar imágenes OCI en Artifact Registry.
Usar una cuenta de servicio de Kubernetes
Para autenticarte con una cuenta de servicio de Kubernetes, tu clúster debe tener habilitada Workload Identity Federation for GKE o Workload Identity Federation for GKE de flota.
Para conceder acceso de solo lectura a tu imagen de OCI a Config Sync mediante una cuenta de servicio de Kubernetes, sigue estos pasos:
-
Para obtener los permisos que necesitas para crear un enlace de política, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de cuentas de servicio (
roles/iam.serviceAccountAdmin
) en la cuenta de servicio. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Asigna el rol de gestión de identidades y accesos Lector de Artifact Registry (
roles/artifactregistry.reader
) a la cuenta de servicio de Kubernetes que incluya la federación de Workload Identity para el grupo de GKE:Concede permisos en todo el proyecto si los mismos permisos se aplican a todos los repositorios del proyecto.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"
Concede permisos específicos de repositorio cuando quieras que las cuentas de servicio tengan diferentes niveles de acceso para cada repositorio de tu proyecto.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.FLEET_HOST_PROJECT_ID
: si usas Workload Identity Federation for GKE, este valor es el mismo que el ID de proyecto. Si usas la federación de identidades de carga de trabajo de flota para GKE, este valor es el ID del proyecto de la flota en la que está registrado tu clúster.REPOSITORY
: el ID de la imagen.LOCATION
: la ubicación regional o multirregional del repositorio.
Cuando instales Config Sync, usa la cuenta de servicio de Kubernetes (k8sserviceaccount
) como tipo de autenticación.
Usar una cuenta de servicio predeterminada de Compute Engine
Como alternativa a una cuenta de servicio de Google, si no tienes habilitada la federación de identidades de carga de trabajo para GKE, puedes usar una cuenta de servicio de Compute Engine para autenticarte.
Para usar una cuenta de servicio predeterminada de Compute Engine para conceder acceso de solo lectura a Config Sync a tu repositorio, concede permiso de lectura a la cuenta de servicio de Compute Engine en Artifact Registry:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--role=roles/artifactregistry.reader
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyectoPROJECT_NUMBER
: tu número de proyecto.
Cuando instales Config Sync, usa la cuenta de servicio de Compute Engine (gcenode
) como tipo de autenticación.
Conceder acceso a un repositorio de Helm
En esta sección se describe cómo conceder acceso de solo lectura a Config Sync a los gráficos de Helm almacenados en un repositorio.
Usar un token
Para usar un token y conceder a Config Sync acceso de solo lectura a tu repositorio de Helm, crea un secreto que use el nombre de usuario y la contraseña de tu repositorio de Helm:
kubectl create secret generic SECRET_NAME \
--namespace=config-management-system \
--from-literal=username=USERNAME \
--from-literal=password=PASSWORD
Haz los cambios siguientes:
SECRET_NAME
: un nombre para tu secreto.USERNAME
: tu nombre de usuario del repositorio de Helm.PASSWORD
: la contraseña de tu repositorio de Helm.
Cuando instales Config Sync, usa el token (token
) como tipo de autenticación.
También debes especificar el nombre del secreto en el campo spec.helm.secretRef.name
.
Usar una cuenta de servicio de Kubernetes
Para autenticarte mediante una cuenta de servicio de Kubernetes, debes cumplir los siguientes requisitos:
- Tu repositorio está en Artifact Registry.
- Tu clúster tiene habilitada la federación de identidades de carga de trabajo para GKE o la federación de identidades de carga de trabajo de flotas para GKE.
Para usar una cuenta de servicio de Kubernetes y conceder a Config Sync acceso de solo lectura a tu repositorio de Helm, sigue estos pasos:
-
Para obtener los permisos que necesitas para crear un enlace de política, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de cuentas de servicio (
roles/iam.serviceAccountAdmin
) en la cuenta de servicio. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Para usar una cuenta de servicio de Kubernetes y conceder acceso de solo lectura a tu repositorio de Helm en Config Sync, asigna el rol Lector de Artifact Registry (
roles/artifactregistry.reader
) de gestión de identidades y accesos a la cuenta de servicio de Kubernetes que incluya la federación de Workload Identity para el grupo de GKE:Concede permisos en todo el proyecto si los mismos permisos se aplican a todos los repositorios del proyecto.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"
Concede permisos específicos de repositorio cuando quieras que las cuentas de servicio tengan diferentes niveles de acceso para cada repositorio de tu proyecto.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.FLEET_HOST_PROJECT_ID
: si usas Workload Identity Federation para GKE, este valor es el mismo que el ID de proyecto. Si usas la federación de identidades de carga de trabajo de flota para GKE, este valor es el ID del proyecto de la flota en la que está registrado tu clúster.REPOSITORY
: el ID de la imagen.LOCATION
: la ubicación regional o multirregional del repositorio.
Cuando instales Config Sync, usa la cuenta de servicio de Kubernetes (k8sserviceaccount
) como tipo de autenticación.
Usar una cuenta de servicio predeterminada de Compute Engine
Como alternativa a una cuenta de servicio de Google, si no tienes habilitada la federación de identidades de carga de trabajo para GKE, puedes usar una cuenta de servicio de Compute Engine para autenticarte.
Para usar una cuenta de servicio predeterminada de Compute Engine para conceder acceso de solo lectura a Config Sync a tu repositorio, concede permiso de lectura a la cuenta de servicio de Compute Engine en Artifact Registry:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--role=roles/artifactregistry.reader
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyectoPROJECT_NUMBER
: tu número de proyecto.
Cuando instales Config Sync, usa la cuenta de servicio de Compute Engine (gcenode
) como tipo de autenticación.