생성 시 리소스에 태그를 지정할 수 있는 권한 부여
다음과 같은 생성 시 태그 지정 Amazon ECS API 작업을 사용하면 리소스를 생성할 때 태그를 지정할 수 있습니다. 리소스 생성 작업에서 태그가 지정되면 AWS에서는 추가 권한 부여를 수행하여 태그를 생성할 올바른 권한이 할당되었는지 확인합니다.
-
CreateCapacityProvider
-
CreateCluster
-
CreateService
-
CreateTaskSet
-
RegisterContainerInstance
-
RegisterTaskDefinition
-
RunTask
-
StartTask
리소스 태그를 사용하여 속성 기반 제어(ABAC)를 구현할 수 있습니다. 자세한 내용은 리소스 태그를 사용하여 Amazon ECS 리소스에 대한 액세스 제어 및 Amazon ECS 리소스 태그 지정 단원을 참조하세요.
생성 시 태그 지정을 허용하려면 리소스를 생성하는 작업(예: ecs:CreateCluster
또는 ecs:RunTask
)과 ecs:TagResource
작업을 사용할 수 있는 권한을 모두 포함하도록 정책을 만들거나 수정하세요.
다음 예제에서는 사용자가 클러스터를 생성하고 클러스터 생성 중에 태그를 추가할 수 있도록 허용하는 정책을 보여줍니다. 사용자는 기존 리소스에 태그를 지정할 수 없습니다(ecs:TagResource
작업을 직접 호출할 수 없습니다).
{ "Statement": [ { "Effect": "Allow", "Action": [ "ecs:CreateCluster" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecs:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction": [ "CreateCluster", "CreateCapacityProvider", "CreateService", "CreateTaskSet", "RegisterContainerInstance", "RegisterTaskDefinition", "RunTask", "StartTask" ] } } } ] }
ecs:TagResource
작업은 리소스 생성 작업 도중 태그가 적용되는 경우에만 평가됩니다. 따라서 리소스를 생성할 권한이 있는 사용자(태그 지정 조건은 없다고 가정)는 요청에서 태그가 지정되지 않은 경우, ecs:TagResource
작업을 사용할 권한이 필요하지 않습니다. 하지만 사용자가 태그를 사용하여 리소스 생성을 시도하는 경우, 사용자에게 ecs:TagResource
작업을 사용할 권한이 없다면 요청은 실패합니다.
Amazon ECS는 특정 태그에 대한 액세스를 제어
IAM 정책의 Condition
요소에 추가 조건을 사용하여 리소스에 적용할 수 있는 태그 키와 값을 제어할 수 있습니다.
앞 섹션의 예제에 다음 조건 키를 사용할 수 있습니다.
-
aws:RequestTag
: 특정 태그 키 또는 태그 키 및 값이 요청에 존재해야 함을 표시. 요청에서 다른 태그도 지정할 수 있습니다.-
특정한 태그와 키 및 가치의 조합을 적용하려면(예를 들어 태그
StringEquals
=cost-center
:를 적용하려면)cc123
조건 연산자와 함께 사용하십시오."StringEquals": { "aws:RequestTag/cost-center": "cc123" }
-
요청에서 특정 태그 키를 적용하려면(예를 들어 태그 키
StringLike
:를 적용하려면)purpose
조건 연산자와 함께 사용하십시오."StringLike": { "aws:RequestTag/purpose": "*" }
-
-
aws:TagKeys
: 요청에서 사용되는 태그 키를 적용.-
요청 시 지정하려면
ForAllValues
변경자와 함께 특정 태그 키를 적용하십시오(요청에서 태그가 지정되면 특정 태그 키만 허용되고 다른 태그는 허용되지 않습니다). 예를 들어 태그 키environment
또는cost-center
가 허용됩니다."ForAllValues:StringEquals": { "aws:TagKeys": ["environment","cost-center"] }
-
요청에서 지정된 태그 키 중 최소한 1개의 존재를 적용하려면
ForAnyValue
변경자와 함께 사용하십시오. 예를 들어 요청:에 태그 키environment
또는webserver
중 최소한 1개가 존재해야 합니다."ForAnyValue:StringEquals": { "aws:TagKeys": ["environment","webserver"] }
-
이들 조건 키는 ecs:TagResource
작업뿐 아니라 태그 지정을 지원하는 리소스 생성 작업에 적용될 수 있습니다. Amazon ECS API 작업에서 태그 지정을 지원하는지 알아보려면 Amazon Elastic Container Service에 사용되는 작업, 리소스 및 조건 키를 참조하세요.
사용자가 리소스를 생성할 때 강제로 태그를 지정하도록 하려면 리소스 생성 작업에서aws:RequestTag
조건 키 또는 aws:TagKeys
조건 키를 ForAnyValue
변경자와 함께 사용해야 합니다. 이때 사용자가 리소스 생성 시 태그를 지정하지 않으면 ecs:TagResource
작업이 평가되지 않습니다.
조건의 경우 조건 키는 대소문자를 구분하지 않고 조건 값은 대소문자를 구분합니다. 따라서, 태그 키의 대소문자 구별을 설정하려면 태그 키가 조건의 값으로 지정된 aws:TagKeys
조건 키를 사용합니다.
다중 값 조건에 대한 자세한 내용은 IAM 사용 설명서의 다수의 컨텍스트 키 또는 값을 사용하는 조건을 참조하세요.