AWS Identity and Access Management 리소스의 태그
AWS Identity and Access Management 리소스의 태그 (Tags for AWS Identity and Access Management resources)
태그(tag)는 AWS 리소스에 지정할 수 있는 커스텀 속성 라벨이에요. 각 태그는 두 부분으로 이루어져요.
출처: 문서
본문
- 태그 키(tag key) — 예를 들어
CostCenter,Environment,Project,Purpose등이 있어요. - 태그 값(tag value) — 선택 필드예요. 예를 들어
111122223333,Production, 팀 이름 등이 있어요. 태그 값을 생략하는 것은 빈 문자열을 쓰는 것과 같아요.
이 둘을 합쳐 **키-값 쌍(key-value pair)**이라고 해요. IAM 리소스에 가질 수 있는 태그 수의 제한은 IAM과 AWS STS 할당량을 참고하세요.
참고
태그 키와 태그 키 값의 대소문자 구분에 대한 자세한 내용은 대소문자 구분(Case sensitivity)을 참고하세요.
태그는 AWS 리소스를 식별하고 정리하는 데 도움을 줘요. 많은 AWS 서비스가 태그를 지원하므로, 서로 다른 서비스의 리소스에 같은 태그를 지정해 '서로 연관된 리소스'임을 나타낼 수 있어요. 예를 들어 IAM 역할과 Amazon S3 버킷에 같은 태그를 지정할 수 있어요. 태그 전략에 대한 자세한 내용은 AWS 리소스 태그 지정 사용자 가이드를 참고하세요.
태그로 IAM 리소스를 식별·정리·추적하는 것 외에도, IAM 정책에서 태그를 사용해 누가 내 리소스를 보고 상호작용할 수 있는지를 제어할 수 있어요. 태그로 접근을 제어하는 방법은 태그를 이용한 IAM 사용자와 역할에 대한 접근 제어를 참고하세요.
또한 AWS STS에서 태그를 사용해 역할을 수임하거나 사용자를 페더레이션할 때 커스텀 속성을 추가할 수 있어요. 자세한 내용은 AWS STS에서 세션 태그 전달을 참고하세요.
다루는 주제
- AWS 태그 명명 규칙 선택
- IAM과 AWS STS에서 태그 지정 규칙
- IAM 사용자 태그 지정
- IAM 역할 태그 지정
- 고객 관리형 정책 태그 지정
- OpenID Connect(OIDC) 아이덴티티 프로바이더 태그 지정
- IAM SAML 아이덴티티 프로바이더 태그 지정
- Amazon EC2 역할용 인스턴스 프로필 태그 지정
- 서버 인증서 태그 지정
- 가상 MFA 기기 태그 지정
- 계정 접근 매니저 인스턴스 태그 지정
- AWS STS에서 세션 태그 전달
AWS 태그 명명 규칙 선택
IAM 리소스에 태그를 붙이기 시작할 때 태그 명명 규칙을 신중하게 골라야 해요. 모든 AWS 태그에 같은 규칙을 적용해요. 특히 정책에서 태그로 AWS 리소스 접근을 제어한다면 중요해요. 이미 AWS에서 태그를 쓰고 있다면 명명 규칙을 검토하고 그에 맞게 조정해요.
참고
계정이 AWS Organizations 멤버라면 AWS Organizations 사용자 가이드의 태그 정책을 참고해 AWS Organizations에서 태그 사용 방법을 알아보세요.
태그 명명 모범 사례
태그의 몇 가지 모범 사례와 명명 규칙이에요.
- 태그 이름을 일관되게 사용해요. 예를 들어
CostCenter와costcenter는 서로 다른 태그라서, 하나는 재무 분석·보고용 비용 할당 태그로 구성되고 다른 하나는 그렇지 않을 수 있어요. 마찬가지로 AWS 콘솔의 많은 리소스에는Name태그가 표시되지만name태그는 그렇지 않아요. 태그 키와 태그 값의 대소문자 구분은 대소문자 구분(Case sensitivity)을 참고하세요. - AWS가 미리 정의하거나 다양한 AWS 서비스가 자동으로 만드는 태그가 많아요. 많은 AWS 정의 태그 이름은 전부 소문자에 하이픈으로 단어를 구분하고, 태그를 만든 서비스를 식별하는 접두사를 써요. 예를 들어:
aws:ec2spot:fleet-request-id— 인스턴스를 시작한 Amazon EC2 스팟 인스턴스 요청을 식별해요.aws:cloudformation:stack-name— 리소스를 만든 CloudFormation 스택을 식별해요.elasticbeanstalk:environment-name— 리소스를 만든 애플리케이션을 식별해요.
- 태그 이름을 전부 소문자, 하이픈으로 단어 구분, 조직 이름이나 약어를 식별하는 접두사로 짓는 것을 고려해 보세요. 예를 들어 AnyCompany라는 가상 회사라면 다음과 같은 태그를 정의할 수 있어요:
anycompany:cost-center— 내부 비용 센터 코드 식별anycompany:environment-type— 개발·테스트·프로덕션 환경인지 식별anycompany:application-id— 리소스가 만들어진 애플리케이션 식별
- 접두사 덕분에 태그가 AWS나 사용 중인 제3자 도구가 아니라 우리 조직이 정의한 태그라는 게 분명해져요. 전부 소문자에 하이픈 구분을 쓰면 태그 이름의 대문자화 방법을 헷갈리지 않아요. 예를 들어
anycompany:project-id는ANYCOMPANY:ProjectID,anycompany:projectID,Anycompany:ProjectId보다 기억하기 쉬워요.
IAM과 AWS STS에서 태그 지정 규칙
IAM과 AWS STS에서 태그를 만들고 적용하는 것을 지배하는 규칙이 몇 가지 있어요.
태그 이름 짓기
IAM 리소스, AWS STS 수임 역할 세션, AWS STS 페더레이션 사용자 세션의 태그 명명 규칙을 짤 때 다음 규칙을 따르세요.
- 문자 요구 사항 — 태그 키와 값은 문자, 숫자, 공백, 그리고
_ . : / = + - @기호의 어떤 조합이든 포함할 수 있어요. - 대소문자 구분 — 태그 키의 대소문자 구분은 태그가 붙는 IAM 리소스 유형에 따라 달라져요.
- IAM 사용자·역할의 태그 키 값은 대소문자를 구분하지 않지만, 대소문자는 보존돼요. 즉
Department와department를 별개의 태그 키로 가질 수 없어요. 사용자를Department=finance태그로 지정한 뒤department=hr태그를 추가하면 첫 태그를 대체해요. 두 번째 태그는 추가되지 않아요. - 다른 IAM 리소스 유형의 태그 키 값은 대소문자를 구분해요. 즉
Costcenter와costcenter를 별개의 태그 키로 가질 수 있어요. 예를 들어 고객 관리형 정책을Costcenter = 1234태그로 지정하고costcenter = 5678태그를 추가하면 정책은Costcenter와costcenter두 태그 키를 모두 갖게 돼요.
- IAM 사용자·역할의 태그 키 값은 대소문자를 구분하지 않지만, 대소문자는 보존돼요. 즉
- 모범 사례로, 대소문자 처리가 일관되지 않은 비슷한 태그를 사용하지 않는 것을 권장해요. 태그 대문자화 전략을 정하고 모든 리소스 유형에 일관되게 적용하길 권장해요. 태그 지정 모범 사례는 AWS General Reference의 태그 지정을 참고하세요.
다음은 IAM 리소스에 붙는 태그 키의 대소문자 구분 차이를 보여주는 목록이에요.
태그 키 값이 대소문자를 구분하지 않음:
- IAM 역할
- IAM 사용자
태그 키 값이 대소문자를 구분함:
- 고객 관리형 정책
- 인스턴스 프로필
- OpenID Connect 아이덴티티 프로바이더
- SAML 아이덴티티 프로바이더
- 서버 인증서
- 가상 MFA 기기
추가로 다음 규칙이 적용돼요.
aws:텍스트로 시작하는 태그 키나 값을 만들 수 없어요. 이 태그 접두사는 AWS 내부 사용용으로 예약되어 있어요.- 빈 값의 태그(예:
phoneNumber =)는 만들 수 있지만, 빈 태그 키는 만들 수 없어요. - 단일 태그에 여러 값을 지정할 수는 없지만, 단일 값 안에 커스텀 다중 값 구조를 만들 수는 있어요. 예를 들어 Zhang 사용자가 엔지니어링 팀과 QA 팀에서 일한다고 해 보죠.
team = Engineering태그를 붙인 뒤team = QA태그를 붙이면 태그 값이Engineering에서QA로 바뀌어요. 대신 커스텀 구분자로 단일 태그에 여러 값을 넣을 수 있어요. 이 예시에서 Zhang에team = Engineering:QA태그를 붙이면 돼요.
참고
이 예시에서 team 태그로 엔지니어 접근을 제어하려면, Engineering:QA를 포함해 Engineering이 포함될 수 있는 모든 구성을 허용하는 정책을 만들어야 해요. 정책에서 태그를 사용하는 방법은 태그를 이용한 IAM 사용자와 역할에 대한 접근 제어를 참고하세요.
태그 적용·편집
IAM 리소스에 태그를 붙일 때 다음 규칙을 따르세요.
- 대부분의 IAM 리소스에 태그를 붙일 수 있지만, 그룹, 수임된 역할, 접근 보고서, 하드웨어 기반 MFA 기기에는 붙일 수 없어요.
- Tag Editor로는 IAM 리소스에 태그를 붙일 수 없어요. Tag Editor는 IAM 태그를 지원하지 않아요. 다른 서비스와 Tag Editor를 사용하는 방법은 AWS Resource Groups 사용자 가이드의 Tag Editor 사용을 참고하세요.
- IAM 리소스에 태그를 붙이려면 특정 권한이 있어야 해요. 태그를 붙이거나 떼려면 태그를 나열할 권한도 있어야 해요. 자세한 내용은 이 페이지 마지막에 있는 각 IAM 리소스의 주제 목록을 참고하세요.
- AWS 계정의 IAM 리소스 수와 크기는 제한돼 있어요. 자세한 내용은 IAM과 AWS STS 할당량을 참고하세요.
- 같은 태그를 여러 IAM 리소스에 적용할 수 있어요. 예를 들어 부서
AWS_Development에 구성원이 12명이라면, 12명의 사용자와 역할 하나에department태그 키와awsDevelopment값(department = awsDevelopment)을 가질 수 있어요. 태그를 지원하는 다른 서비스의 리소스에도 같은 태그를 쓸 수 있어요. - IAM 엔터티(사용자·역할)는 같은 태그 키의 인스턴스를 여러 개 가질 수 없어요. 예를 들어 사용자에
costCenter = 1234태그 키-값 쌍이 있다면costCenter = 5678태그 키-값 쌍을 붙일 수 있는데, IAM은costCenter태그 값을5678로 업데이트해요. - IAM 엔터티(사용자·역할)에 붙은 태그를 편집하려면 새 값의 태그를 붙여 기존 태그를 덮어써요. 예를 들어 사용자에
department = Engineering태그 키-값 쌍이 있다고 해 보죠. 사용자를 QA 부서로 옮겨야 한다면department = QA태그 키-값 쌍을 붙이면 돼요. 그러면department태그 키의Engineering값이QA값으로 바뀌어요.
더 알아보기 (Learn more)
- 태그를 이용한 접근 제어 — 태그 조건 키로 접근을 제어하는 방법을 확인해 보세요.
- IAM 사용자와 역할에 대한 태그 기반 접근 제어 — 태그로 누가 무엇에 접근하는지 제어하는 방법을 살펴보세요.
- 세션 태그 — AWS STS에서 세션 태그를 전달하는 방법을 참고하세요.