【问题标题】:Terraform - AWS IAM user with Programmatic accessTerraform - 具有编程访问权限的 AWS IAM 用户
【发布时间】:2020-03-10 04:42:25
【问题描述】:

我正在通过 合作。
我正在尝试创建一个访问类型为“Programmatic access”的 IAM 用户。

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


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

name
path
permissions_boundary
force_destroy
tags

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


(*) Related question 不同的场景。

【问题讨论】:

    标签: aws terraform amazon-web-services terraform amazon-iam terraform-provider-aws


    【解决方案1】:

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

    希望这会有所帮助。

    【讨论】:

    • 是的,大概就是这样。我希望 AWS_IAM_USER 资源中支持“程序访问”(布尔值)的参数,它将提供“访问密钥”作为属性。
    【解决方案2】:

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

    iam-user 模块有 a comprehensive example 使用它。

    您也可以直接从注册表中使用该模块,让它为您完成所有工作。

    【讨论】:

      【解决方案3】:

      如果您不想加密并且只是在访问密钥秘密密钥中寻找纯文本,您可以使用此

      ma​​in.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
      }
      

      你会得到Access keysecret key变成纯文本就可以直接使用了。

      【讨论】:

        猜你喜欢
        • 2019-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-20
        • 2019-02-21
        • 2019-11-15
        • 2019-05-11
        相关资源
        最近更新 更多