태그를 사용하여 Amazon EC2 리소스에 대한 액세스를 제어하는 IAM 정책을 생성하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 4월 17일

태그를 사용하여 Amazon Elastic Compute Cloud(Amazon EC2)에 대한 액세스를 제어하는 AWS Identity and Access Management(IAM) 정책을 생성하려면 어떻게 해야 합니까?

간략한 설명

다음과 같이 Amazon EC2 인스턴스의 더 작은 배포에 대한 액세스를 제어할 수 있습니다.

  1. 사용자 또는 그룹에 액세스 권한을 부여하려는 인스턴스에 특정 태그를 추가합니다.
  2. 특정 태그가 있는 모든 인스턴스에 대한 액세스 권한을 부여하는 IAM 정책을 생성합니다.
  3. 인스턴스에 액세스하려는 사용자 또는 그룹에 IAM 정책을 연결합니다.

​해결 방법

EC2 인스턴스 그룹에 태그 추가

Amazon EC2 콘솔을 열고 사용자 또는 그룹에서 액세스하길 원하는 EC2 인스턴스 그룹에 태그를 추가합니다. 아직 태그가 없는 경우 새 태그를 생성합니다.

참고: 리소스에 태그를 지정하기 전에 먼저 태그 제한을 읽고 이해해야 합니다. Amazon EC2 태그는 대소문자를 구분합니다.

특정 태그가 있는 인스턴스에 대한 액세스 권한을 부여하는 IAM 정책 생성

다음을 수행하는 IAM 정책을 생성합니다.

  • 태그가 있는 인스턴스를 제어할 수 있습니다.
  • 조건 키 ec2:ResourceTag/UserName의 값이 정책 변수 aws:username과 일치하는 경우 Amazon EC2 리소스에 대한 액세스를 허용하는 조건문을 포함합니다. 정책 변수 ${aws:username}은 IAM에서 정책을 평가할 때 현재 IAM 사용자의 친숙한 이름으로 대체됩니다.
  • Amazon EC2 리소스의 ec2:Describe* 작업에 대한 액세스를 허용합니다.
  • 사용자가 태그를 생성하거나 삭제하지 않도록 ec2:CreateTagsec2:DeleteTags 작업에 대한 액세스는 명시적으로 거부합니다.
    참고: 이를 통해 EC2 인스턴스에 특정 태그를 추가하여 사용자가 EC2 인스턴스를 제어하지 않도록 합니다.

예를 들어, 완성된 정책은 다음과 비슷합니다.

{
  "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": "*"
    }
  ]
}

인스턴스에 액세스하려는 사용자 또는 그룹에 IAM 정책 연결

마지막으로 인스턴스에 액세스하려는 사용자 또는 그룹에 생성한 IAM 정책을 연결합니다. AWS Management Console, AWS CLI 또는 AWS API를 사용하여 IAM 정책을 연결할 수 있습니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?