Я пытаюсь предоставить разрешение 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-services
(и describe-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, похоже, возвращают версию, которая не включает имя кластера?