允许ECS任务在其他帐户中承担角色



我看了这个问题和这个问题,但我无法将角色部署到子帐户中,因为子帐户允许在父帐户中运行的ECS任务在其中扮演角色。

Terraform代码:

data "aws_iam_policy_document" "cross-account-assume-role-child" {
statement {
actions = ["sts:AssumeRole"]
principals {
type        = "AWS"
identifiers = [
"arn:aws:sts::${var.master_account_ID}:assumed-role/${var.cross_account_role_name}"
]
}
}
}

当我尝试运行地形时,计划成功了,但应用失败了,出现了这样一个错误:

Error: failed creating IAM Role (ECS-cross-account-child-role): 
MalformedPolicyDocument: Invalid principal in policy: 
"AWS":"arn:aws:sts::<AWS Account ID>:assumed-role/ECS-cross-account-master-role"

如果我试图在AWS控制台中手动更新如上所述的策略,我会遇到同样的错误,所以这不是由于地形造成的。

我做错了什么?

您需要在策略中指定的arn是IAM角色之一,而不是假定的凭据之一:

arn:aws:iam::${var.master_account_ID}:role/${var.cross_account_role_name}

代替stsassumed-role

最新更新