我是 Terraform 的新手,只是想问一下,是否可以使用 Terraform 为 IAM 用户设置 AWS 控制台密码。我能够配置 IAM 用户、组、他们的访问权限和密钥,但找不到设置控制台密码的方法。请指出我可以在哪里工作。谢谢
3 回答
可以使用 terraform 获取 IAM USER 的控制台密码:
使用以下命令:
terraform output password | base64 --decode | keybase pgp decrypt
请按照以下说明操作:
- 将密码存储在 output.tf 文件中
- terraform output password > 将提供您的加密密码
- 现在在您的服务器上安装 nodejs 和 node 并设置 PATH
- 现在要解密密码,我们还需要一个概念,即 KEYBASE: https ://keybase.io/
转到此站点,从控制台在 KEYBASE 中创建一个帐户,然后在 Docs 下转到 Linux/Ubuntu 并按照说明操作:现在在 shell keybase 登录中输入所有详细信息。
需要注意的一点:
资源 "aws_iam_user_login_profile" "user_login" {
user = "${aws_iam_user.user.name}"
pgp_key = "keybase:username" ------------ 用户名表示:您在 keybase 帐户中创建的用户
password_length = 10 }
现在 terraform plan
terraform apply
keybase pgp list
terraform output password | base64 --解码 | 密钥库 pgp 解密
你会得到你的密码:) :)
您现在可以使用iam_user_login_profile资源来执行此操作
resource "aws_iam_user_login_profile" "foo" {
user = "${aws_iam_user.bar.name}"
pgp_key = "${var.key}"
}
请注意,这pgp_key
是必需的,可以是 PGP 公钥,也可以是对 keybase.io 配置文件(例如foobar
)的引用,方法是传入keybase:foobar
变量pgp_key
。
iam_user_login_profile资源导出一个password
属性,该属性是aws_iam_user
.
查看官方文档了解更多信息。
通过 Terraform 设置密码是不可能的。即使是这样,这也不是理想的做法,因为您在配置中有密码。更好的选择是让 AWS 设置/使用/创建以安全方式提供给特定用户的默认密码,并确保他们更改密码。