Terraform - 具有编程访问权限的 AWS IAM 用户

Terraform - AWS IAM user with Programmatic access

我正在与 via 合作。
我正在尝试创建访问类型为“程序访问”的 IAM 用户。

使用 AWS 管理控制台,这非常简单:


尝试使用 Terraform (reference to docs) 时,似乎只支持以下参数:

name
path
permissions_boundary
force_destroy
tags

也许这应该通过策略配置?
任何帮助将不胜感激。


(*) 不同场景。

您可以使用 aws_iam_access_key (https://www.terraform.io/docs/providers/aws/r/iam_access_key.html) terraform 资源为用户创建访问密钥,这应该意味着用户有 Programmatic Access.

希望对您有所帮助。

aws_iam_user 资源还需要为其创建一个 aws_iam_access_key 资源。

使用iam-user module has a comprehensive example

您也可以直接从注册表中使用该模块,让它为您做所有事情。

如果您不想加密并且只是寻找访问密钥 & 秘密密钥纯文本 你可以用这个

main.tf

resource "aws_iam_access_key" "sagemaker" {
  user    = aws_iam_user.user.name
}

resource "aws_iam_user" "user" {
  name = "user-name"
  path = "/"
}

data "aws_iam_policy" "sagemaker_policy" {
  arn = "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess"
}

resource "aws_iam_policy_attachment" "attach-policy" {
  name       = "sagemaker-policy-attachment"
  users      = [aws_iam_user.user.name]
  policy_arn = data.aws_iam_policy.sagemaker_policy.arn
}

output.tf

output "secret_key" {
  value = aws_iam_access_key.user.secret
}


output "access_key" {
  value = aws_iam_access_key.user.id
}

你会得到访问密钥密钥纯文本你可以直接用。