我如何让ECS任务承担另一个AWS账户的角色?

时间:2020-01-14 00:46:33

标签: amazon-web-services amazon-iam amazon-ecs

我有一个审核容器,该容器针对各种AWS API运行扫描。我想在prod帐户中将所有这些作为ECS任务运行,但在其他帐户中扫描资源。是否可以将另一个帐户中的角色设置为任务角色?我尝试从另一个帐户将任务定义中的taskRoleArn设置为所需角色的ARN,但收到错误消息“角色无效”

我对另一个帐户(111111111111是生产帐户)上的角色具有简单的信任关系:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ecs-tasks.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

我在prod帐户中具有Cloudwatch Events服务角色,该角色允许iam:passRole在另一个帐户中担任该角色。 ECS任务执行角色是否需要修改?我的印象是,这仅是将日志转发到Cloudwatch Logs并从ECR中提取OCI映像,并且不需要任何其他权限。

这是可能的吗,还是我只需要在另一个帐户中分配具有sts:assumeRole权限的任务角色,并在Container映像中有一个填充程序就可以扮演角色,然后再运行审核?

1 个答案:

答案 0 :(得分:0)

ECS任务执行角色是否需要修改?

向您的ECS任务执行角色添加策略以承担角色。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "<cross-account role arn here>"
        }
    ]
}

并以编程方式进行假设:https://stackoverflow.com/a/64345823/12170218