当我尝试使用 AWS IAM 角色连接 HashiCorp Vault 时如何修复 "Vault location [kv/my-client-service] not resolvable: Not found"?
How to fix "Vault location [kv/my-client-service] not resolvable: Not found" when I am trying to connect HashiCorp Vault using AWS IAM role?
我已经使用 HashiCorp Vault 六个月了,我的所有秘密都来自配置服务。我使用 spring.cloud.config.token 连接我所有的客户服务,但是当保险库令牌每 30 天左右过期时出现问题。对于较低的环境,令牌过期是可以接受的,因为我们可以一次又一次地重新部署,但是生产环境,我们不能重新部署。因此,决定使用 AWS IAM 角色,可以连接到保险库,并且不会过期。
我已经关注了这位官方link,但是我在启动应用程序时遇到了以下问题。
我用谷歌搜索了它,但没有找到可行的解决方案。
我在我的客户端服务 (my-client-service) bootstrap.yml 文件中使用以下代码
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
到 AWS 的 Vault 身份验证 ARN
vault write auth/aws/config/sts/<account_number> sts_role=arn:aws:iam::<account_number>:role/role_name
将 ARN 关联到 Vault 策略
我为映射到 Vault 角色和策略的同一帐户创建了一个 IAM 角色,并将每个 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
我错过了什么吗?如果我找到解决此问题的任何方法,那就太好了。提前致谢!
我在使用以下配置更新我的保管库策略后解决了这个问题:
path "kv/*"
{
capabilities = [ "read", "list"]
}
我能够启动我的应用程序并获取保险库属性。
我认为您的政策更新是恰当的:
path "kv/*"
{
capabilities = [ "read", "list"]
}
将其定向到您的机密的正确路径将解决您的问题。
我已经使用 HashiCorp Vault 六个月了,我的所有秘密都来自配置服务。我使用 spring.cloud.config.token 连接我所有的客户服务,但是当保险库令牌每 30 天左右过期时出现问题。对于较低的环境,令牌过期是可以接受的,因为我们可以一次又一次地重新部署,但是生产环境,我们不能重新部署。因此,决定使用 AWS IAM 角色,可以连接到保险库,并且不会过期。
我已经关注了这位官方link,但是我在启动应用程序时遇到了以下问题。
我用谷歌搜索了它,但没有找到可行的解决方案。
我在我的客户端服务 (my-client-service) bootstrap.yml 文件中使用以下代码
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
到 AWS 的 Vault 身份验证 ARN
vault write auth/aws/config/sts/<account_number> sts_role=arn:aws:iam::<account_number>:role/role_name
将 ARN 关联到 Vault 策略
我为映射到 Vault 角色和策略的同一帐户创建了一个 IAM 角色,并将每个 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
我错过了什么吗?如果我找到解决此问题的任何方法,那就太好了。提前致谢!
我在使用以下配置更新我的保管库策略后解决了这个问题:
path "kv/*"
{
capabilities = [ "read", "list"]
}
我能够启动我的应用程序并获取保险库属性。
我认为您的政策更新是恰当的:
path "kv/*"
{
capabilities = [ "read", "list"]
}
将其定向到您的机密的正确路径将解决您的问题。