2016-11-11 89 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