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

Я использую HashiCorp Vault уже шесть месяцев, где храню все секреты службы конфигурации. Я подключал все свои клиентские службы, используя spring.cloud.config.token , но проблема возникла, когда срок действия токена хранилища истекает каждые 30 дней или около того. Для более низкой среды истечение срока действия токена приемлемо, поскольку мы можем повторно развертывать его снова и снова, но ПРОИЗВОДСТВО, мы не можем повторно развертывать. Следовательно, было решено, что, используя роль AWS IAM, можно подключиться к хранилищу, и истечения срока его действия не будет.

Я следил за этой официальной ссылкой , но я столкнулся с проблемой ниже когда я запускаю приложение.

enter image description here

Я искал это в 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

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

Ответы [ 2 ]

4 голосов
/ 26 июня 2020

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

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

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

2 голосов
/ 29 июня 2020

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

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

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

...