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"
                    ]
                }
            }
        }
    ]
}

더 알아보기 (Learn more)