sjm*_*sjm 8 amazon-web-services amazon-iam terraform terraform-provider-aws
我有一个由 Terraform 创建的 IAM 用户。密钥存储在 Hashicrop Vault 中,应用程序从那里读取它们。
我已经开发了 ansible 代码/bash 脚本来成功地定期轮换密钥。
但问题是 terraform 不喜欢旋转键。每当我们尝试运行 terraform 时,它都会尝试重新创建密钥
有没有办法通过 terraform 管理密钥轮换?或者我们可以在地形中忽略这一点吗?任何有关示例的帮助都会非常有帮助。
Jar*_*rno 12
terraform 中的密钥轮换可以通过使用 来实现terraform apply -replace=<resource address>
,它会立即替换资源,或者使用terraform taint <resource address>
,它会在下一次申请 v0.15.2 以下的版本时替换资源。请参阅https://www.terraform.io/docs/cli/commands/taint.html了解更多信息。
使用这些命令时,设置要替换的资源的生命周期create_before_destroy
以避免停机是有意义的。所以对于 AWS 访问密钥来说,那就是
resource "aws_iam_access_key" "my_user" {
user = "my_user_name"
lifecycle {
create_before_destroy = true
}
}
Run Code Online (Sandbox Code Playgroud)
有了这种配置,人们可以简单地运行terraform apply -replace=aws_iam_access_key.my_user
来轮换密钥。只需确保使用密钥的下游应用程序注意到这些更改,并在必要时重新启动以使用新密钥。
我们通过在创建用户时最初通过 terraform 删除密钥生成来解决这个问题。
我们现在使用一些 ansible 和 bash 脚本来生成和轮换密钥,然后使用 Vault api 来更新 Vault 中的机密。
归档时间: |
|
查看次数: |
9045 次 |
最近记录: |