IAM: 특정 IAM 사용자가 그룹을 관리하게 허용하기
IAM: 특정 IAM 사용자가 그룹을 관리하게 허용하기 (프로그래매틱 및 콘솔)
이 예시는 특정 IAM 사용자가 AllUsers 그룹을 관리할 수 있게 허용하는 자격 증명 기반 정책을 만드는 방법을 보여드려요. 이 정책은 프로그래매틱 액세스와 콘솔 액세스 모두에 대한 권한을 정의해요.
출처: 문서
본문
예시 정책에서 이탤릭체로 표시된 자리표시자 텍스트를 본인 정보로 바꾼 뒤, create a policy 또는 edit a policy의 지침을 따라 적용하면 돼요.
이 정책이 하는 일
AllowAllUsersToListAllGroups 스테이트먼트는 모든 그룹을 나열할 수 있게 해줘요. 콘솔 액세스에 필요해요. 이 권한은 리소스 ARN을 지원하지 않아 별도의 스테이트먼트로 분리하며, "Resource" : "*"를 지정해요.
AllowAllUsersToViewAndManageThisGroup 스테이트먼트는 그룹 리소스 유형에서 수행할 수 있는 모든 그룹 액션을 허용해요. 사용자 리소스 유형(그룹 리소스 유형이 아님)에서 수행할 수 있는 ListGroupsForUser 액션은 허용하지 않아요. IAM 액션에 지정할 수 있는 리소스 유형에 대해 더 알아보려면 Actions, Resources, and Condition Keys for AWS Identity and Access Management 문서를 참고하세요.
LimitGroupManagementAccessToSpecificUsers 스테이트먼트는 지정된 이름을 가진 사용자에게 그룹 쓰기 및 권한 관리 액션에 대한 액세스를 거부하지 않아요. 정책에 지정된 사용자가 그룹을 변경하려 하면 이 스테이트먼트는 요청을 거부하지 않아요. 그 요청은 AllowAllUsersToViewAndManageThisGroup 스테이트먼트가 허용해요. 다른 사용자가 이 작업을 수행하려 하면 요청이 거부돼요. IAM 콘솔에서 이 정책을 만들 때 Write 또는 Permissions management 액세스 수준으로 정의된 IAM 액션을 볼 수 있어요. 이렇게 하려면 JSON 탭에서 Visual editor 탭으로 전환하면 돼요. 액세스 수준에 대해 더 알아보려면 Actions, Resources, and Condition Keys for AWS Identity and Access Management 문서를 참고하세요.
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "AllowAllUsersToListAllGroups",
"Effect": "Allow",
"Action": "iam:ListGroups",
"Resource": "*"
},
{
"Sid": "AllowAllUsersToViewAndManageThisGroup",
"Effect": "Allow",
"Action": "iam:*Group*",
"Resource": "arn:aws:iam::*:group/AllUsers"
},
{
"Sid": "LimitGroupManagementAccessToSpecificUsers",
"Effect": "Deny",
"Action": [
"iam:AddUserToGroup",
"iam:CreateGroup",
"iam:RemoveUserFromGroup",
"iam:DeleteGroup",
"iam:AttachGroupPolicy",
"iam:UpdateGroup",
"iam:DetachGroupPolicy",
"iam:DeleteGroupPolicy",
"iam:PutGroupPolicy"
],
"Resource": "arn:aws:iam::*:group/AllUsers",
"Condition": {
"StringNotEquals": {
"aws:username": [
"srodriguez",
"mjackson",
"adesai"
]
}
}
}
]
}