2016-11-11 54 views
4

我想使用组合文件为ECS创建一个新的任务,但即使在我的用户具有所需的权限时,我也会收到AccessDeniedException。IAM使用ecs-cli时出错

$ ecs-cli compose --project-name test create 
WARN[0000] Skipping unsupported YAML option for service... option name=build service name=builder 
WARN[0000] Skipping unsupported YAML option for service... option name=restart service name=db 
WARN[0000] Skipping unsupported YAML option for service... option name=restart service name=dbadmin 
WARN[0000] Skipping unsupported YAML option for service... option name=restart service name=app 
ERRO[0001] Error registering task definition    error=AccessDeniedException: User: arn:aws:iam::XXXXXXX:user/foo is not authorized to perform: ecs:RegisterTaskDefinition on resource: * 
    status code: 400, request id: 41e6b69a-a839-11e6-84b0-e9bc2ec3f81b family=ecscompose-test 
ERRO[0001] Create task definition failed     error=AccessDeniedException: User: arn:aws:iam::XXXXXXX:user/foo is not authorized to perform: ecs:RegisterTaskDefinition on resource: * 
    status code: 400, request id: 41e6b69a-a839-11e6-84b0-e9bc2ec3f81b 
FATA[0001] AccessDeniedException: User: arn:aws:iam::XXXXXXX:user/foo is not authorized to perform: ecs:RegisterTaskDefinition on resource: * 
    status code: 400, request id: 41e6b69a-a839-11e6-84b0-e9bc2ec3f81b 

用户有这样的政策附:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "ecs:RegisterTaskDefinition", 
       "ecs:ListTaskDefinitions", 
       "ecs:DescribeTaskDefinition" 
      ], 
      "Resource": [ 
       "*" 
      ] 
     } 
    ] 
} 

我也试着安装了AmazonEC2ContainerServiceFullAccess(即具有ECS:*),但没有奏效。

+0

您是否尝试了全功率用户权限?如果这仍然不起作用,许可的事情可能是一个红鲱鱼。 – mcheshier

+0

我试过AmazonEC2ContainerServiceFullAccess该用户 – agusluc

+0

正确,但它可能取决于一些其他权限,而不是正确地中继错误。它至少会规定许可问题。 – mcheshier

回答

0

发现问题,我使用的用户有一个使用MFA(MultiFactor Auth)的策略,这是ecs-cli不支持的。

0

我相信这篇文章有一些答案,为什么上述错误发生,认为不是一个修复。

Trouble deploying docker on AWS with ecs-cli

“据我了解,ECS-CLI具有完整的码头工人撰写的文件语法的支持非常有限” 每用户

刀郎Antenucci

注意的警告 “WARN [ 0000]跳过不支持的YAML选项以进行服务...“

+0

尝试了一个简单的.yml文件,没有抛出任何警告,结果是一样的,AccessDeniedException – agusluc

0

ECS不支持大部分撰写设置。但是,它应该只是打印警告并忽略它们,这会产生意想不到的结果,但不应该抛出许可问题。

当您看到以“user_arn未授权对service_resource执行service:action”形式的400 AccessDeniedExceptions时,它肯定是IAM问题。但是,您列出的IAM策略看起来是正确的。我的想法是,你在某种程度上不使用正确的用户凭证,或者IAM策略未正确应用于用户。

+0

我再次检查了一切,为ecs-cli工具设置的凭据是我的个人用户,并且该用户有上面列出的政策。我尝试创建一对新的访问密钥/密钥,但问题仍然存在。一世 – agusluc