在EKS中运行HashiCorp Vault:能否用IAM角色实现KMS自动解封?
使用IAM角色实现HashiCorp Vault的AWS KMS自动解封(EKS环境)
当然可以改用IAM角色实现KMS自动解封,这是更安全的最佳实践,完全不需要在Vault配置中硬编码AWS访问密钥。以下是具体实现步骤:
1. 创建具备KMS权限的IAM角色
在AWS控制台创建IAM角色,为其附加允许访问指定KMS密钥的权限策略,示例策略如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:你的AWS账号ID:key/你的KMS密钥ID" } ] }
同时配置角色的信任关系,允许EKS的OIDC身份提供商承担该角色,确保EKS Pod能获取角色权限。
2. 关联IAM角色到Vault的ServiceAccount
利用AWS IAM Roles for Service Accounts(IRSA)功能,将上述IAM角色与EKS中Vault对应的ServiceAccount绑定。完成后,Vault Pod启动时会自动获取该角色的临时访问凭证,无需手动配置密钥。
3. 简化Vault的KMS解封配置
移除原配置中的access_key和secret_key字段,仅保留必要的区域和密钥ID信息,示例配置:
seal "awskms" { region = "us-east-1" kms_key_id = "你的KMS密钥ID" }
Vault会自动通过Pod关联的IAM角色获取AWS凭证,完成KMS加密与自动解封操作。
关键注意事项
- 确保你的EKS集群已配置OIDC身份提供商,这是IRSA功能的启用前提。
- 验证Vault Pod使用的ServiceAccount已正确关联到目标IAM角色。
- 临时凭证由AWS自动轮换,无需手动管理,进一步降低安全风险。
内容的提问来源于stack exchange,提问作者BrendanD
相关产品推荐
相关产品推荐

