ECS服务ARN的实际结构是怎样的?

Nat*_*ths 6 amazon-web-services amazon-ecs amazon-iam

我尝试在 IAM 策略中授予 ecs:UpdateService 权限,如下所示:

{
            "Sid": "AllowECS",
            "Effect": "Allow",
            "Action": [
              "ecs:UpdateService"
            ],
            "Resource": "arn:aws:ecs:ap-southeast-2:123456789012:service/my-service"
        }  
Run Code Online (Sandbox Code Playgroud)

其中服务 ARN 由 cli 列出aws ecs list-services(和describe-services)。

但是,UpdateService API 调用失败并出现 AccessDenied 错误,指出该进程没有使用 ARN 的服务的权限:

arn:aws:ecs:ap-southeast-2:123456789012:service/*my-cluster*/my-service

我找不到任何对 ECS 服务的 ARN 的引用,包括集群名称,并且 cli“ecsdescribe-services”的文档明确指出:

serviceArn ->(字符串)
标识服务的 ARN。ARN 包含 arn:aws:ecs 命名空间,后跟服务区域、服务所有者的 AWS 账户 ID、服务命名空间,然后是服务名称。例如, arn:aws:ecs:region:012345678910:service/my-service 。

如果我更改 IAM 策略以实际使用错误中显示的 ARN(其中包括集群名称),则 UpdateService 会成功完成。

我不确定这里缺少什么,ECS 服务 ARN 是否应该包含集群名称?如果是这样,我如何获取该版本的 ARN,因为 AWS API 似乎都返回不包含集群名称的版本?

Apo*_*eus 8

我最近也有类似的问题。

基本上,有一个新的 ECS ARN,如此处所述。直到今年年底,它仍处于选择加入期。

请在下面查看新旧格式的比较。

新旧 ARN 对比

从您的问题来看,我认为您的 AWS 账户也选择了新格式。

更多详情可以查看常见问题解答