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

2분 분량
0

태그를 사용하여 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": "*"
    }
  ]
}

참고: 이 정책은 ec2:ResourceTag 조건 키를 사용하는 Amazon EC2 인스턴스에 적용됩니다. 태그를 사용하여 새 Amazon EC2 인스턴스 시작을 제한하려면 IAM 정책 태그를 사용하여 EC2 인스턴스 또는 EBS 볼륨 생성 방법을 제한하려면 어떻게 해야 합니까?를 참조하십시오.

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

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


관련 정보

Granting required permissions for Amazon EC2 resources(Amazon EC2 리소스에 대한 필요 권한 부여)

Amazon EC2에 대한 IAM 정책