IAM: 특정 태그를 가진 사용자만 새로 생성하기
IAM: 특정 태그를 가진 사용자만 새로 생성하기
이 예시는 IAM 사용자 생성을 허용하되 Department와 JobFunction 태그 키 중 하나 또는 둘 다를 가질 때만 허용하는 자격 증명 기반 정책을 만드는 방법을 보여드려요. Department 태그 키는 Development 또는 QualityAssurance 태그 값을 가져야 하고, JobFunction 태그 키는 Employee 값을 가져야 해요. 이 정책을 사용해서 새 사용자가 특정 직무와 부서를 갖도록 요구할 수 있어요.
출처: 문서
본문
이 정책은 AWS API나 AWS CLI에서 프로그래매틱하게 작업을 완료하는 데 필요한 권한을 부여해요. 예시 정책에서 이탤릭체로 표시된 자리표시자 텍스트를 본인 정보로 바꾼 뒤, create a policy 또는 edit a policy의 지침을 따라 적용하면 돼요.
스테이트먼트의 첫 번째 조건은 StringEqualsIfExists 조건 연산자를 사용해요. 요청에 Department 또는 JobFunction 키를 가진 태그가 있으면 지정된 값을 가져야 해요. 두 키가 모두 없으면 이 조건은 true로 평가돼요. 조건이 false로 평가되는 유일한 경우는 지정된 조건 키 중 하나가 요청에 존재하는데 허용된 값과 다른 값을 가질 때예요. IfExists 사용에 대해 더 알아보려면 ...IfExists condition operators 문서를 참고하세요.
두 번째 조건은 ForAllValues:StringEquals 조건 연산자를 사용해요. 요청에 지정된 각 태그 키와 정책의 값 중 최소 하나 사이에 일치가 있으면 조건은 true를 반환해요. 즉 요청의 모든 태그가 이 목록에 있어야 해요. 다만 요청에는 목록의 태그 중 하나만 포함될 수 있어요. 예를 들어 Department=QualityAssurance 태그만 가진 IAM 사용자는 만들 수 있지만, JobFunction=Employee 태그와 Project=core 태그를 가진 IAM 사용자는 만들 수 없어요. ForAllValues 사용에 대해 더 알아보려면 Set operators for multivalued context keys 문서를 참고하세요.
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "TagUsersWithOnlyTheseTags",
"Effect": "Allow",
"Action": [
"iam:CreateUser",
"iam:TagUser"
],
"Resource": "*",
"Condition": {
"StringEqualsIfExists": {
"aws:RequestTag/Department": [
"Development",
"QualityAssurance"
],
"aws:RequestTag/JobFunction": "Employee"
},
"ForAllValues:StringEquals": {
"aws:TagKeys": [
"Department",
"JobFunction"
]
}
}
}
]
}