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