Как исправить неразрешимое местоположение хранилища [kv / my-client-service]: не обнаруживается, когда я пытаюсь подключить HashiCorp Vault с помощью роли AWS IAM?

Я использую 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

Я что-нибудь упускаю? Было бы здорово, если бы я нашел решение этой проблемы. Заранее спасибо!


person viveknaskar    schedule 18.06.2020    source источник


Ответы (2)


Я исправил эту проблему после обновления моей политики хранилища с конфигурацией ниже:

path "kv/*"
{
  capabilities = [ "read", "list"]
}

Я смог запустить свое приложение с получением свойств хранилища.

person viveknaskar    schedule 26.06.2020

Я думаю, что обновление политики в вашем случае подходит:

path "kv/*"
{
  capabilities = [ "read", "list"]
}

Направьте его на правильный путь ваших секретов, чтобы решить вашу проблему.

person snehab    schedule 29.06.2020