Spring Boot AWS_IAM认证HashiCorp Cloud Vault报hostname空错误
Vault AWS IAM认证接入报错排查
问题背景
- 已在HashiCorp Cloud完成Vault集群配置,参照官方教程完成AWS认证方法所有前置步骤,创建了对应AWS角色、用户及权限策略,通过CLI使用管理员令牌可正常连接Vault
- Spring Boot业务应用尝试通过AWS IAM认证方式接入Vault,启动时抛出
java.lang.IllegalArgumentException: hostname cannot be null异常,接入失败
应用bootstrap.yml配置
spring.cloud.vault: uri: {HashiCorp Cloud Public URL} authentication: AWS_IAM kv: enabled:true aws-iam: role: vault-role-for-aws-ec2role aws-path: aws endpoint-uri: sts.ap-southeast-1.amazonaws.com
绑定的权限策略
配置中使用的角色vault-role-for-aws-ec2role已绑定KV读权限,为kv/test/ec2路径授予read权限,策略内容:
# 为kv/test/ec2前缀路径授予'read'权限 path "kv/test/ec2" { capabilities = [ "read" ] }
启动报错日志
2022-06-22 02:50:16.050 INFO 21435 --- [ main] o.s.v.c.e.LeaseAwareVaultPropertySource : Vault location [secret/application/dev] not resolvable: hostname cannot be null 2022-06-22 02:50:16.051 WARN 21435 --- [ main] LeaseEventPublisher$LoggingErrorListener : [RequestedSecret [path='secret/application', mode=ROTATE]] Lease [leaseId='null', leaseDuration=PT0S, renewable=false] hostname cannot be null java.lang.IllegalArgumentException: hostname cannot be null
根因分析与修复方案
- 直接触发hostname空指针的原因:STS端点配置缺少协议前缀
配置项spring.cloud.vault.aws-iam.endpoint-uri仅填写了域名sts.ap-southeast-1.amazonaws.com,未携带https://协议头。Spring Cloud Vault在初始化AWS STS客户端时会基于该配置构造URI对象,缺少协议头时URI解析出的host属性为null,直接抛出参数非法异常。将该值修改为https://sts.ap-southeast-1.amazonaws.com即可解决该报错。 - 隐藏配置问题:KV引擎路径与默认读取规则不匹配
从报错日志可见,Spring Cloud Vault默认会从secret挂载路径下读取application、application/{环境}路径的配置,和当前部署存在两处冲突:- 实际KV引擎挂载点为
kv,不是默认值secret - 角色被授权的可读路径为
kv/test/ec2,和默认读取路径完全不匹配,即使修复STS端点问题,后续也会抛出403无权限错误
- 实际KV引擎挂载点为
- 语法问题:YAML配置格式错误
配置中enabled:true冒号后未加空格,不符合YAML语法规范,可能引发配置解析失败,需修正为enabled: true。
修复后完整配置参考
spring.cloud.vault: uri: {替换为实际的HashiCorp Cloud公网访问地址} authentication: AWS_IAM kv: enabled: true backend: kv # 指定KV引擎挂载点 default-context: test/ec2 # 指定默认读取的密钥根路径,和授权路径匹配 aws-iam: role: vault-role-for-aws-ec2role aws-path: aws endpoint-uri: https://sts.ap-southeast-1.amazonaws.com # 补全HTTPS协议头
内容的提问来源于stack exchange,提问作者Sameervb
相关产品推荐
相关产品推荐

