Я использую HashiCorp Vault уже шесть месяцев, где храню все секреты службы конфигурации. Я подключал все свои клиентские службы, используя spring.cloud.config.token , но проблема возникла, когда срок действия токена хранилища истекает каждые 30 дней или около того. Для более низкой среды истечение срока действия токена приемлемо, поскольку мы можем повторно развертывать его снова и снова, но ПРОИЗВОДСТВО, мы не можем повторно развертывать. Следовательно, было решено, что, используя роль AWS IAM, можно подключиться к хранилищу, и истечения срока его действия не будет.
Я следил за этой официальной ссылкой , но я столкнулся с проблемой ниже когда я запускаю приложение.
![enter image description here](https://i.stack.imgur.com/MYZsM.png)
Я искал это в Google, но не нашел рабочего решения.
Я используя приведенный ниже код в файле bootstrap .yml в моей клиентской службе (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: -1000
ARN аутентификации Vault для AWS
vault write auth/aws/config/sts/<account_number> sts_role=arn:aws:iam::<account_number>:role/role_name
Связать ARN с политиками Vault
Я создал роль IAM для той же учетной записи, которая сопоставлена для роль и политику Vault и сопоставил каждую роль IAM с ролью и политикой 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
Я что-то упустил? Было бы здорово, если бы я нашел решение этой проблемы. Заранее спасибо!