在 EKS 中运行 Vault 以及文档说明,要使 KMS 自动解封正常工作,您需要在配置中提供以下详细信息。
seal "awskms" {
region = "us-east-1"
access_key = "xxxx"
seceret_key = " xxx"
kms_key_id = "pleasementionyour AWS KMS created in AWS Console "
}
这一切都很好,我已经让它工作了,但似乎有点不安全,有谁知道你是否可以用 IAM 角色来做到这一点?
正如您所说 - 将敏感值(例如 AWS 秘密访问密钥)放在 Vault 配置文件中的安全性较低。 HashiCorp 官方文档指出,指定这些值的更安全方法是使用环境变量,如 AWS KMS seal 文档的身份验证小节中所述。
虽然官方文档并未表明可以利用 IAM 角色来允许在 EKS 中运行的 Vault 服务器与 KMS 服务通信,但 GitHub 问题已记录了这一用例。注意:虽然配置文件允许您传入
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
作为密封参数的一部分,但强烈建议通过环境变量设置这些值。
https://github.com/hashicorp/vault-helm/issues/368
https://github.com/hashicorp/vault-helm/issues/410
问题368
中的用户似乎通过在 Vault 配置文件的
seal
节中指定一些关键参数,然后分配角色,成功地利用了 IAM 角色。上述 GitHub 问题中的 Vault 配置示例:
seal "awskms" {
region = "us-west-2"
kms_key_id = "alias/my-vault-role-key"
}