Какова фактическая структура сервисных ARN ECS? - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь предоставить разрешение ecs: UpdateService в политике IAM, как показано ниже:

{
            "Sid": "AllowECS",
            "Effect": "Allow",
            "Action": [
              "ecs:UpdateService"
            ],
            "Resource": "arn:aws:ecs:ap-southeast-2:123456789012:service/my-service"
        }  

, где ARN службы соответствует списку cli aws ecs list-servicesdescribe-services).

Однако вызов API UpdateService завершается с ошибкой AccessDenied, говорящей о том, что у процесса нет разрешения на службу с ARN:

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

Я не могу найти ссылку наARN для службы ECS , включая имя кластера , и документация для клиента «ecs description-services» явно гласят:

serviceArn -> (string)
ARN, который идентифицирует услугу. ARN содержит пространство имен arn: aws: ecs, за которым следуют регион службы, идентификатор учетной записи AWS владельца службы, пространство имен службы, а затем имя службы. Например, arn: aws: ecs: region: 012345678910: service / my-service.

Если я изменю политику IAM, чтобы фактически использовать ARN, показанный в ошибке, которая включает в себя имя кластера , затем UpdateService завершается успешно.

Я не уверен, что мне здесь не хватает, должен ли сервисный сервер ECS включать имя кластера? Если так, как я могу получить эту версию ARN, поскольку все API-интерфейсы AWS, похоже, возвращают версию, которая не включает имя кластера?

1 Ответ

4 голосов
/ 04 октября 2019

В последнее время у меня была похожая проблема.

По сути, есть новый ARN ECS, как упомянуто здесь . До конца этого года он еще не вступил в силу.

Ниже приведено сравнение старого и нового формата.

Comparison old and new ARN

По вашему вопросу, я думаю, что ваш аккаунт AWS также выбранв новом формате.

Более подробную информацию можно найти FAQ

...