태그를 이용한 IAM 사용자와 역할에 대한 접근 제어

태그를 이용한 IAM 사용자와 역할에 대한 접근 제어 (Controlling access to and for IAM users and roles using tags)

이 섹션의 정보를 활용하면 누가 내 IAM 사용자·역할에 접근할 수 있는지, 그리고 내 사용자·역할이 무엇에 접근할 수 있는지를 제어할 수 있어요. 다른 AWS 리소스(다른 IAM 리소스 포함)에 대한 접근 제어의 일반적인 정보와 예시는 AWS Identity and Access Management 리소스의 태그를 참고하세요.

출처: 문서

본문

참고

태그 키와 태그 키 값의 대소문자 구분에 대한 자세한 내용은 대소문자 구분(Case sensitivity)을 참고하세요.

태그는 IAM 리소스에 연결할 수도, 요청에서 전달할 수도, 요청을 하는 프린시펄에 연결할 수도 있어요. IAM 사용자나 역할은 리소스이면서 동시에 프린시펄이 될 수 있어요. 예를 들어 사용자가 어떤 사용자의 그룹을 나열하도록 허용하는 정책을 작성할 수 있는데, 이 작업은 요청하는 사용자(프린시펄)가 보려는 사용자와 같은 project=blue 태그를 가졌을 때만 허용돼요. 이 예시에서 사용자는 같은 프로젝트에서 작업하는 한, 자기 자신을 포함한 어떤 사용자의 그룹 멤버십도 볼 수 있어요.

태그 기반 접근 제어를 하려면 정책의 Condition 요소에 태그 정보를 제공해요. IAM 정책을 만들 때 IAM 태그와 관련 태그 조건 키를 사용해 다음 중 어떤 것이든 접근을 제어할 수 있어요.

  • 리소스(Resource) — 사용자나 역할 리소스의 태그를 기반으로 그 리소스에 대한 접근을 제어해요. 이를 위해 aws:ResourceTag/key-name 조건 키로 리소스에 연결돼 있어야 하는 태그 키-값 쌍을 지정해요. 자세한 내용은 AWS 리소스에 대한 접근 제어를 참고하세요.
  • 요청(Request) — IAM 요청에서 전달할 수 있는 태그를 제어해요. aws:RequestTag/key-name 조건 키로 IAM 사용자·역할에 추가·변경·제거할 수 있는 태그를 지정해요. 이 키는 IAM 리소스와 다른 AWS 리소스에서 같은 방식으로 사용돼요. 자세한 내용은 AWS 요청 중 접근 제어를 참고하세요.
  • 프린시펄(Principal) — 요청하는 사람(프린시펄)이 그 사람의 IAM 사용자·역할에 연결된 태그에 따라 무엇을 할 수 있는지를 제어해요. aws:PrincipalTag/key-name 조건 키로 요청이 허용되기 전에 IAM 사용자·역할에 연결돼 있어야 하는 태그를 지정해요.
  • 인가 과정의 어느 부분이든 — aws:TagKeys 조건 키로 특정 태그 키가 요청이나 프린시펄에서 사용될 수 있는지를 제어해요. 이 경우 키의 값은 중요하지 않아요. 이 키는 IAM과 다른 AWS 서비스에서 비슷하게 동작하지만, IAM에서 사용자에 태그를 붙일 때는 프린시펄이 어떤 서비스에든 요청을 보낼 수 있는지도 제어해요. 자세한 내용은 태그 키 기반 접근 제어를 참고하세요.

비주얼 에디터, JSON, 또는 기존 관리형 정책 가져오기를 통해 IAM 정책을 만들 수 있어요. 자세한 내용은 고객 관리형 정책으로 커스텀 IAM 권한 정의를 참고하세요.

참고

IAM 역할을 수임하거나 사용자를 페더레이션할 때 세션 태그를 전달할 수도 있어요. 세션 태그는 세션 기간 동안에만 유효해요.

IAM 프린시펄에 대한 접근 제어

프린시펄의 아이덴티티에 붙은 태그를 기반으로, 그 프린시펄이 무엇을 할 수 있는지 제어할 수 있어요.

이 예시는 같은 프로젝트에서 작업하는 한, 계정의 어떤 사용자든 자기 자신을 포함한 어떤 사용자의 그룹 멤버십을 볼 수 있게 하는 아이덴티티 기반 정책을 만드는 방법을 보여줘요. 이 작업은 사용자의 리소스 태그와 프린시펄의 태그가 project 태그 키에 대해 같은 값을 가질 때만 허용돼요. 이 정책을 쓰려면 예시 정책의 기울임꼴 자리표시자 텍스트를 우리 정보로 바꾼 뒤, 정책 만들기 또는 정책 편집의 절차를 따라 하세요.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "iam:ListGroupsForUser",
            "Resource": "arn:aws:iam::111222333444:user/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/project": "${aws:PrincipalTag/project}"}
            }
        }
    ]
}

태그 키 기반 접근 제어

IAM 정책에서 태그를 사용해 특정 태그 키가 요청이나 프린시펄에서 사용될 수 있는지 제어할 수 있어요.

이 예시는 사용자에게서 temporary 키를 가진 태그만 제거하도록 허용하는 아이덴티티 기반 정책을 만드는 방법을 보여줘요. 정책을 쓰려면 기울임꼴 자리표시자 텍스트를 우리 정보로 바꾼 뒤 정책 만들기 또는 정책 편집 절차를 따라 하세요.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:UntagUser",
            "Resource": "*",
            "Condition": {
                "ForAllValues:StringEquals": {"aws:TagKeys": ["temporary"]}
            }
        }
    ]
}

더 알아보기 (Learn more)