使用 InSpec 和远程状态在分布式环境中处理 Terraform 提供者凭证

Handling Terraform provider credentials in distributed environment with InSpec and remote state

在这些用例中,是否有人对如何处理 AWS 的 Terraform 提供商凭据有任何绝妙的想法:

我当前的工作流程需要根据操作更改 AWS_ACCESS_KEYAWS_SECRET_KEY

想法

您将需要主账户能够承担每个环境账户的角色来执行更改,而远程主账户将保留所有状态。这是使用 terraform worspaces 的好方法假设你有两个工作区,prod 和 dev,你可以尝试这样的事情:

variable "workspace_roles" {
  default = {
    dev  = "arn:aws:iam::<dev account id>:role/terra_role"
    prod = "arn:aws:iam::<prodaccount id>:role/terra_role"
  }
}

provider "aws" {
 assume_role = var.workspace_roles[terraform.workspace]
}