【问题标题】:Set the AWS console password for IAM user with Terraform使用 Terraform 为 IAM 用户设置 AWS 控制台密码
【发布时间】:2016-08-02 14:13:33
【问题描述】:

我是 Terraform 的新手,我只是想问一下是否可以为使用 Terraform 的 IAM 用户设置 AWS 控制台密码。我能够配置 IAM 用户、组、他们的访问权限和密钥,但找不到设置控制台密码的方法。请指出我可以在哪里工作。谢谢

【问题讨论】:

  • 我认为 AWS API 或 AWS SDK 不可能,因此 Terraform 不支持。

标签: terraform


【解决方案1】:

可以使用 terraform 获取 IAM USER 的控制台密码:
使用以下命令:

terraform output password | base64 --decode | keybase pgp decrypt

按照以下说明进行操作:

  1. 将密码存储在 output.tf 文件中
  2. terraform 输出密码 > 将提供您的加密密码
  3. 现在在你的服务器上安装 nodejs 和 node 并设置 PATH 之前
  4. 现在要解密密码,我们还需要一个概念,即 KEYBASE:https://keybase.io/
  5. 从控制台转到此站点在 KEYBASE 中创建一个帐户然后在 Docs 下转到 Linux/Ubuntu 并按照说明操作: 现在在外壳中 密钥库登录 输入所有详细信息。

  6. 注意点:

资源“aws_iam_user_login_profile”“user_login”{
用户 = "${aws_iam_user.user.name}"
pgp_key = "keybase:username" ------------ 用户名表示:用户你 在密钥库帐户中创建
密码长度 = 10 }

现在的地形计划
terraform 应用
密钥库 pgp 列表
terraform 输出密码 | base64 --解码 |密钥库 pgp 解密

你会得到你的密码:) :)

【讨论】:

    【解决方案2】:

    通过 Terraform 设置密码实际上是不可能的。即使是这样,这也不是理想的做法,因为您在配置中有密码。更好的选择是让 AWS 设置/使用/创建以安全方式提供给特定用户的默认密码,并确保他们更改密码。

    【讨论】:

      【解决方案3】:

      您现在可以使用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),方法是在 pgp_key 变量中传递 keybase:foobar

      iam_user_login_profile 资源导出 password 属性,该属性是 aws_iam_user 的加密密码。

      查看official documentation了解更多信息。

      【讨论】:

      • 谢谢,我试试看。
      猜你喜欢
      • 2023-02-25
      • 2019-05-01
      • 2018-08-27
      • 2019-11-28
      • 2023-03-27
      • 1970-01-01
      • 2021-02-04
      • 2021-11-12
      • 2020-07-21
      相关资源
      最近更新 更多