Cómo utilizar Kubernetes External Secrets Operator con Secret Manager
Descubra cómo configurar External Secrets Operator para almacenar los secretos de Kubernetes en el Secret Manager de OVHcloud
Objetivo
Esta guía explica cómo configurar el External Secrets Operator de Kubernetes para utilizar el Secret Manager de OVHcloud como proveedor.
Esta guía describe el uso de External Secrets Operator con el proveedor HashiCorp Vault para acceder al Secret Manager de OVHcloud mediante la API compatible con HashiCorp Vault KV2.
OVHcloud ofrece ahora un proveedor nativo de External Secrets Operator. Recomendamos utilizarlo para los nuevos despliegues. Consulte la documentación del proveedor OVHcloud.
Requisitos
- Una cuenta de cliente de OVHcloud.
- Haber contratado un dominio OKMS o creado un primer secreto.
- Haber configurado un método de autenticación para el plano de datos OKMS (esta guía utiliza un token de acceso personal).
- Tener un clúster Managed Kubernetes Service.
Procedimiento
Configuración del Secret Manager
Para permitir el acceso al Secret Manager, necesitará un token, la region y el okms-id de su Secret Manager.
Creación de las credenciales
Cree un usuario local IAM con derechos de acceso a su dominio, o utilice una cuenta de servicio. Consulte Métodos de autenticación OKMS para conocer la configuración completa y las plantillas de políticas IAM.
El usuario debe pertenecer a un grupo con el rol ADMIN o, si utiliza políticas IAM, debe tener al menos los siguientes derechos sobre el dominio OKMS:
okms:apikms:secret/createokms:apikms:secret/version/getDataokms:apikms:secret/getokms:apiovh:secret/get
También es posible crear un usuario con la CLI OVHcloud:
A continuación, cree un token de acceso personal (Personal Access Token o PAT) user_pat:
Utilice la siguiente llamada a la API:
Con el siguiente payload (complételo con sus propios valores):
La API responderá con:
Conserve el valor del campo token, ya que no volverá a mostrarse y se utilizará para autenticarse en el Secret Manager como user_pat.
Información del Secret Manager
También necesitará la region y el okms-id del dominio OKMS que desee utilizar. Este ID y esta región se encuentran en el o mediante la CLI OVHcloud:
Configuración del Secret Provider en Kubernetes
Instalación del External Secrets Operator (ESO) en su clúster de Kubernetes
Compruebe que el ESO se está ejecutando:
Creación de un secreto que contenga el PAT
Empiece por codificar su user_pat en base 64 para poder almacenarlo en un secreto de Kubernetes.
O, si el user_pat está almacenado en una variable de entorno:
A continuación, cree un archivo secret.yaml:
Y aplique el recurso al clúster con el comando kubectl apply -f secret.yaml.
O, si utiliza una variable de entorno:
El secreto debería haberse creado:
Configuración del External Secrets Operator
En primer lugar, configure un ClusterSecretStore que se encarga de la sincronización con el Secret Manager.
Configuramos el SecretStore utilizando HashiCorp Vault con autenticación por token y el endpoint OKMS como backend.
Añada el user_pat como secreto para poder utilizarlo en los charts.
Para definir un nuevo recurso ClusterSecretStore, cree un archivo clustersecretstore.yaml con el siguiente contenido:
Solo se admite la autenticación por token.
Esta integración también funciona con un SecretStore.
El nombre de la región puede obtenerse a partir de la ubicación de su región utilizando:
Por ejemplo, para Europe (France - Paris), el endpoint OKMS es eu-west-par.okms.ovh.net.
Despliegue el recurso en su clúster:
Uso del External Secrets Operator
Una vez configurado el ClusterSecretStore, puede definir los ExternalSecret procedentes del Secret Manager.
Cree un archivo externalsecret.yaml con el siguiente contenido:
Aplique el recurso en su clúster:
Esto creará un objeto Secret de Kubernetes.
Para obtener más información sobre cómo gestionar el External Secrets Operator, consulte la documentación dedicada, utilizando el proveedor HashiCorp Vault: https://external-secrets.io/latest/.
Más información
Utilizar el Secret Manager con la API REST
Interactúe con nuestra comunidad de usuarios.