New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
태그가 있는 지정된 VPC에서 EC2 인스턴스를 생성하고 관리할 권한을 명시적으로 부여하는 IAM 정책을 생성하려면 어떻게 해야 합니까?
가상 프라이빗 클라우드(VPC) 에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 관리할 권한을 IAM ID에 명시적으로 부여하는 AWS Identity and Access Management(IAM) 정책을 생성하려고 합니다.
간략한 설명
IAM 정책은 태그가 있는 VPC의 인스턴스를 관리할 수 있는 IAM 자격 증명의 권한을 제한해야 합니다.
Amazon EC2는 부분적인 리소스 수준 권한을 제공하지만 사용할 수 있는 몇 가지 서비스 수준 작업, 리소스 및 조건이 있습니다. EC2 리소스에 대한 액세스를 제어하려면 리소스 태그를 사용합니다.
해결 방법
VPC에서 인스턴스를 시작할 수 있는 권한은 부여하지만 인스턴스를 관리할 수 있는 IAM 자격 증명의 권한은 제한하는 정책을 생성하십시오. 인스턴스 관리를 제한하려면 ec2:ResourceTag 정책 조건을 사용하십시오.
인스턴스를 시작하는 IAM ID에 연결할 관리형 정책을 생성합니다.
다음 단계를 완료합니다.
-
IAM 콘솔을 열고 정책을 선택한 다음 정책 생성을 선택합니다.
-
JSON 탭을 선택한 후 다음과 같은 사용자 지정 정책을 입력합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GrantIAMPassRoleOnlyForEC2", "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::ACCOUNTNUMBER:role/ROLENAME", "arn:aws:iam::ACCOUNTNUMBER:role/ROLENAME" ], "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } }, { "Sid": "ReadOnlyEC2WithNonResource", "Action": [ "ec2:Describe*", "iam:ListInstanceProfiles" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "ModifyingEC2WithNonResource", "Action": [ "ec2:CreateKeyPair", "ec2:CreateSecurityGroup" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "RunInstancesWithTagRestrictions", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:REGION:ACCOUNTNUMBER:instance/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER:volume/*" ], "Condition": { "StringEquals": { "aws:RequestTag/TAG-KEY": "TAG-VALUE" } } }, { "Sid": "RemainingRunInstancePermissionsNonResource", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:REGION::image/*", "arn:aws:ec2:REGION::snapshot/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER*:network-interface/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER*:key-pair/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER*:security-group/*" ] }, { "Sid": "EC2RunInstancesVpcSubnet", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:REGION:ACCOUNTNUMBER:subnet/*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:REGION:ACCOUNTNUMBER:vpc/VPC-ID" } } }, { "Sid": "EC2VpcNonResourceSpecificActions", "Effect": "Allow", "Action": [ "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkAclEntry", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:DeleteSecurityGroup", "ec2:CreateNetworkInterfacePermission", "ec2:CreateRoute", "ec2:UpdateSecurityGroupRuleDescriptionsEgress", "ec2:UpdateSecurityGroupRuleDescriptionsIngress" ], "Resource": "*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:REGION:ACCOUNTNUMBER:vpc/VPC-ID" } } }, { "Sid": "AllowInstanceActionsTagBased", "Effect": "Allow", "Action": [ "ec2:RebootInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ec2:StartInstances", "ec2:AttachVolume", "ec2:DetachVolume", "ec2:AssociateIamInstanceProfile", "ec2:DisassociateIamInstanceProfile", "ec2:GetConsoleScreenshot", "ec2:ReplaceIamInstanceProfileAssociation" ], "Resource": [ "arn:aws:ec2:REGION:ACCOUNTNUMBER:instance/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER:volume/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/TAG-KEY": "TAG-VALUE" } } }, { "Sid": "AllowCreateTagsOnlyLaunching", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:REGION:ACCOUNTNUMBER:instance/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER:volume/*" ], "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }
참고: ACCOUNTNUMBER, REGION, TAG-KEY, TAG-VALUE, VPC-ID 및 ROLENAME 파라미터를 해당 값으로 바꿉니다.
-
(선택 사항) IAM 사용자 또는 그룹에만 정책을 할당하려면 TAG-KEY 또는 TAG-VALUE 파라미터를 ${aws:username} IAM 정책 변수로 바꿉니다. 이 정책 변수를 사용하면 IAM이 IAM 사용자의 친숙한 이름으로 파라미터를 미리 채울 수 있습니다. IAM 사용자는 지정된 VPC에서만 인스턴스를 시작하고 자신의 인스턴스를 제어할 수 있습니다.
-
검토 정책을 선택한 다음 이름을 입력합니다. 예를 들어, VPC_Lockdown_VPC-ID를 입력합니다.
-
정책 생성을 선택합니다.
참고: 일부 항목은 사용자 환경의 특정 리소스로 교체해야 합니다. 자세한 내용을 보려면 Amazon 리소스 이름(ARN) 을 참조하십시오.
정책을 사용자, 그룹 또는 역할에 연결
다음 단계를 완료합니다.
- IAM 콘솔을 엽니다.
- 탐색 창에서 사용자, 그룹 또는 역할을 선택한 다음 IAM ID를 선택합니다.
- 권한 추가를 선택한 다음 정책 연결을 선택합니다.
- 정책 이름을 입력한 다음 정책을 선택합니다.
- 정책 연결을 선택합니다.
사용자 지정 정책이 연결되면 IAM 자격 증명이 AWS Management Console에 로그인하여 EC2 대시보드를 열고 EC2 인스턴스를 시작할 수 있습니다. IAM ID는 EC2 인스턴스를 시작하기 위한 서브넷, VPC 및 태그를 지정해야 합니다.
ec2:ResourceTags 조건은 다음 작업을 제한합니다.
- 인스턴스를 시작합니다.
- 인스턴스를 중지합니다.
- 인스턴스를 재부팅합니다.
- 인스턴스를 종료합니다.
- 인스턴스에 볼륨을 연결합니다.
- 인스턴스에서 볼륨을 분리합니다.
- 인스턴스에서 IAM 인스턴스 프로파일을 분리합니다.
- 인스턴스 프로필을 연결합니다.
- 인스턴스의 IAM 인스턴스 프로파일 연결을 교체합니다.
- 인스턴스의 콘솔 스크린샷을 가져옵니다.
정책은 VPC에 대해 다음과 같은 작업을 제한합니다.
- 보안 그룹을 삭제합니다.
- 경로를 생성 및 삭제합니다.
- 라우팅 테이블을 삭제합니다.
- 네트워크 액세스 제어 목록(네트워크 ACL)을 제거합니다.
- 네트워크 ACL 항목을 삭제합니다.
- 보안 그룹 수신 및 송신 규칙을 승인하거나 취소합니다.
- 네트워크 인터페이스 권한 생성.
- 수신 및 송신 규칙의 보안 그룹 설명을 업데이트합니다.
관련 정보
PrincipalTag, ResourceTag, RequestTag 및 TagKeys 조건 키를 사용하여 태그 기반 제한을 위한 IAM 정책을 생성하려면 어떻게 하나요?

관련 콘텐츠
- 질문됨 2년 전lg...
- 질문됨 9일 전lg...
- 질문됨 4달 전lg...
- AWS 공식업데이트됨 일 년 전