He estado usando HashiCorp Vault durante seis meses, donde tengo todos los secretos del servicio de configuración. Estaba conectando todos mis servicios de cliente usando spring.cloud.config.token, pero el problema surgió cuando el token de la bóveda caduca cada 30 días más o menos. Para entornos más bajos, la caducidad del token es aceptable, ya que podemos volver a implementar una y otra vez, pero PRODUCCIÓN, no podemos volver a implementar. Por lo tanto, se decidió que al usar el rol de AWS IAM, uno puede conectarse a la bóveda y no habrá ningún vencimiento.
He seguido este enlace oficial, pero me enfrento al siguiente problema cuando inicio la aplicación.
Busqué en Google al respecto, pero no obtuve una solución que funcionara.
Estoy usando el siguiente código en el archivo bootstrap.yml en mi servicio al cliente (my-client-service)
bootstrap.yml
spring: application: name: my-client-service cloud: config: enabled: true uri: 'https://localhost:8080' vault: enabled: true uri: 'https://localhost:8090' port: 443 scheme: https namespace: 'vault-namespace/aus' authentication: AWS_IAM fail-fast: true aws-iam: role: aus-vault-role aws-path: aws generic: enabled: true backend: kv profile-separator: '/' default-context: my-client-service application-name: my-client-service config: order: -1000ARN de autenticación de bóveda para AWS
vault write auth/aws/config/sts/<account_number> sts_role=arn:aws:iam::<account_number>:role/role_nameAsociar ARN a políticas de Vault
Creé una función de IAM para la misma cuenta que está asignada a una función y política de Vault y asigné cada función de IAM a una función y política de Vault.
vault write auth/aws/role/<Vault Role> auth_type=iam \ bound_iam_principal_arn=<Your AWS Role ARN> policies=<Vault policy list> max_ttl=500h¿Me estoy perdiendo algo? Sería genial si encuentro alguna solución a este problema. ¡Gracias por adelantado!
Solucioné este problema después de actualizar mi política de bóveda con la siguiente configuración:
path "kv/*" { capabilities = [ "read", "list"] }Pude iniciar mi aplicación con las propiedades de la bóveda obtenidas.
Creo que la actualización de la política en su caso es adecuada:
path "kv/*" { capabilities = [ "read", "list"] }Diríjalo a la ruta correcta de sus secretos para resolver su problema.