【发布时间】:2021-05-03 03:32:59
【问题描述】:
我有这个sn-p:
provider "aws" {
region = "eu-west-1"
assume_role {
role_arn = "arn:aws:iam::123456789011:role/MyRole"
}
}
我想知道是否有某种方法可以从创建它的 cloudformation 堆栈动态获取此角色。澄清一下,类似这样的事情(我知道这行不通)
data "aws_iam_role" "myrole" {
name = "MyRole"
}
provider "aws" {
region = "eu-west-1"
assume_role {
role_arn = data.aws_iam_role.myrole.arn
}
}
我可以通过数据块获取此信息,但不能在提供程序内部,因为它会导致循环(这是有道理的),但提供程序必须在执行任何操作之前执行该角色的假设角色。
有没有办法在提供者被实例化后立即触发承担角色?
p.s 由于某些架构原因,我无法修改触发 terraform 的方式,因此从命令行传递角色 arn 作为参数是不可行的。
谢谢!
【问题讨论】:
-
要使其正常工作,您已经需要有工作的提供者才能访问 aws。在创建提供程序之前如何访问 aws?
-
是的,这就是我的意思。我知道我不能这样做。真正的问题是:我如何才能为我的提供者触发 aws -> 假设角色,突然之后提供者被启用? (aws 帐户的凭据由触发 terraform 的管道自动获取)
标签: terraform terraform-provider-aws