首页 > 解决方案 > 在 Azure DevOps 上使用 Terraform 部署到 AWS 时的 AssumeRole

问题描述

我需要一个 Azure DevOps 管道来运行一些 terraform(现在,只是为了让它工作!)在 AWS 中构建一个 S3 存储桶。这本身就非常简单——除了服务帐户首先需要承担特定角色才能获得必要的权限。有一个 AWS Toolkit for Azure DevOps 扩展,您可以在其中创建一个 AWS 服务连接并赋予其承担的角色 - 但您不能在 Terraform 扩展中选择这种类型的服务连接,它似乎只允许简单的客户端 ID/帐户配置的秘密类型。

有人有这方面的成功案例吗?

标签: amazon-web-servicesazure-devopsterraform

解决方案


我正在回答我自己的问题,希望它可以帮助那些也在为此苦苦挣扎的人!事实证明它实际上非常简单,我有点希望我没有花一天时间来弄清楚。

因此,经过一番挖掘(以及对 Terraform 和提供程序如何工作的更多了解),我发现您可以这样做:

provider "aws" {
  region  = var.region
  assume_role {
    role_arn = var.assumed_role
  }
}

你把它扔到你的 terraform main 中,它会直接承担角色 - 只需将它存储为管道变量并在运行时传递它。


推荐阅读