首页 > 解决方案 > 具有服务相关角色的基于标签的访问控制

问题描述

我正在尝试为 ECS 任务执行角色实施基于标签的访问控制 (TBAC)。基本上,我想创建一个由 ECS 任务承担的服务相关角色,并基于该任务上的标签,我想授予对 SSM 参数的访问权限。该服务相关角色的 IAM 策略如下所示:

{
    "Statement": [
        {
            "Action": [
                "ssm:GetParameterHistory",
                "ssm:GetParametersByPath",
                "ssm:GetParameters",
                "ssm:GetParameter"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:<accountNumber>:parameter/config/${aws:PrincipalTag/AppName}/*"
            ],
            "Sid": "VisualEditor3"
        }
    ],
    "Version": "2012-10-17"
}

任务上的标签和 SSM 中的路径匹配,但我仍然收到此错误消息: assumed-role/taskExecutionRole/<someRoleId> is not authorized to perform: ssm:GetParametersByPathResource上面指定的路径上。

我假设将 PrincipalTag 与服务相关角色一起使用,其中:

        Principal = {
          Service = "ecs-tasks.amazonaws.com"
        }

应该可以正常工作,但它根本不起作用,我正在努力寻找有关这实际上应该如何工作以及它是否受支持的文档。

标签: amazon-web-servicesamazon-ecs

解决方案


推荐阅读