태그를 통해 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 대한 액세스를 제어하고 싶습니다.
해결 방법
Amazon EC2 인스턴스 그룹에 태그 추가
참고: 태그에는 리소스당 문자 제한 및 태그 수와 같은 특정 요구 사항이 있습니다.
Amazon EC2 콘솔을 엽니다. 그런 다음, 관련 사용자 또는 그룹의 EC2 인스턴스 그룹에 태그를 추가합니다. 아직 태그가 없으면 새 태그를 만드십시오.
특정 태그가 있는 인스턴스에 액세스 권한을 부여하는 IAM 정책 만들기
특정 태그가 있는 인스턴스에 대한 액세스 권한을 부여하려면 IAM 정책이 다음 조건을 충족해야 합니다.
- 태그가 있는 인스턴스에 대한 제어를 허용합니다.
- 조건 키의 값 ec2:ResourceTag/UserName이 정책 변수 aws:username과 일치할 때 EC2 리소스에 대한 액세스를 허용하는 조건문을 포함합니다. IAM은 정책을 평가할 때 정책 변수 **${aws:username}**을 현재 IAM 사용자의 대화명으로 대체합니다.
- EC2 리소스의 ec2:Describe* 작업에 대한 액세스를 허용합니다.
- ec2:CreateTags 및 ec2:DeleteTags 작업에 대한 액세스를 명시적으로 거부합니다. 따라서 사용자는 제어 인스턴스에 액세스할 수 있는 경우에도 태그를 만들거나 삭제할 수 없습니다.
JSON 편집기에서 다음 샘플 정책 템플릿을 복사합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/UserName": "${aws:username}"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"ec2:CreateTags",
"ec2:DeleteTags"
],
"Resource": "*"
}
]
}
참고: 이 정책은 ec2:ResourceTag 조건 키를 사용하는 인스턴스에 적용됩니다. 태그를 사용하여 사용자가 새 인스턴스를 시작하지 못하도록 제한하려면 IAM 정책 태그를 사용하여 EC2 인스턴스 또는 EBS 볼륨의 만들기 및 액세스 방법을 제한하려면 어떻게 해야 합니까?의 설명을 따르십시오.
IAM 사용자가 아닌 위탁자(예: 페더레이션 사용자)의 경우 aws:username 대신 aws:userid 변수를 사용하십시오. aws:userid 변수에는 account:caller-specified-name 값이 있습니다. 자세한 내용은 IAM 정책 요소: 변수 및 태그와 페더레이션 사용자와 함께 IAM 정책 변수를 사용하려면 어떻게 해야 합니까?를 참조하십시오.
인스턴스에 액세스하려는 사용자 또는 그룹에 IAM 정책 연결
사용자 또는 그룹에 IAM 정책을 연결하려면 IAM 자격 증명 권한 추가(콘솔)의 설명을 따르십시오. AWS Command Line Interface(AWS CLI) 또는 AWS API를 사용할 수도 있습니다.
참고: AWS CLI 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
관련 정보
Amazon EC2 리소스에 필요한 권한 부여
Amazon EC2에 대한 ID 기반 정책
IAM 자습서: 태그를 기반으로 AWS 리소스에 액세스할 수 있는 권한 정의
Amazon EC2 리소스에 태그 지정