Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
태그가 있는 지정된 VPC에서 EC2 인스턴스를 만들고 관리할 권한을 명시적으로 부여하는 IAM 정책을 만들려면 어떻게 해야 합니까?
가상 프라이빗 클라우드(VPC)에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 관리할 권한을 IAM ID에 명시적으로 부여하는 AWS Identity and Access Management(IAM) 정책을 만들려고 합니다.
간략한 설명
IAM 정책은 태그가 있는 VPC의 인스턴스를 관리할 수 있는 IAM ID 권한을 제한해야 합니다.
Amazon EC2는 부분적인 리소스 수준 권한을 제공하지만 사용할 수 있는 몇 가지 서비스 수준 작업, 리소스 및 조건이 있습니다. EC2 리소스에 대한 액세스를 제어하려면 리소스 태그를 사용합니다.
해결 방법
VPC에서 인스턴스를 시작할 수 있는 권한은 부여하지만 인스턴스를 관리할 수 있는 IAM ID의 권한은 제한하는 정책을 만드십시오. 인스턴스 관리를 제한하려면 ec2:ResourceTag 정책 조건을 사용하십시오.
인스턴스를 시작하는 IAM ID에 연결할 관리형 정책 만들기
다음 단계를 완료하십시오.
-
IAM 콘솔을 엽니다.
-
정책을 선택한 다음, 정책 생성을 선택합니다.
-
JSON 탭을 선택한 후 다음과 같은 사용자 지정 정책을 입력합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GrantIAMPassRoleOnlyForEC2", "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::account_number:role/role_name", "arn:aws:iam::account_number:role/role_nameE" ], "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:a:instance/*", "arn:aws:ec2:region:account_number: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:account_number:network-interface/*", "arn:aws:ec2:region:account_number:key-pair/*", "arn:aws:ec2:region:account_number:security-group/*" ] }, { "Sid": "EC2RunInstancesVpcSubnet", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account_number:subnet/*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:region:account_number: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:account_number:vpc/VPCID" } } }, { "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:account_number:instance/*", "arn:aws:ec2:region:account_number:volume/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/TAG-KEY": "Tag_key" } } }, { "Sid": "AllowCreateTagsOnlyLaunching", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:region:account_number:instance/*", "arn:aws:ec2:region:account_number:volume/*" ], "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }참고: account_number, region,tag_key, tag_value,VPC-ID 및 role_name 파라미터를 해당 값으로 바꾸십시오.
-
검토 정책을 선택한 다음, 이름을 입력합니다.
-
정책 생성을 선택합니다.
참고: 일부 항목은 사용자 환경의 특정 리소스로 교체해야 합니다. 자세한 내용은 Amazon 리소스 이름(ARN)으로 AWS 리소스 식별을 참조하십시오.
그룹에 정책 연결
다음 단계를 완료하십시오.
- IAM 콘솔을 엽니다.
- 탐색 창에서 사용자 그룹을 선택한 다음, 그룹 이름을 선택합니다.
참고: 사용자 그룹에 정책을 연결한 다음, 사용자를 적절한 그룹에 추가하는 것이 좋습니다. - 권한 추가를 선택한 다음, 정책 연결을 선택합니다.
- 정책 이름을 입력한 다음, 정책을 선택합니다.
- 정책 연결을 선택합니다.
사용자 지정 정책을 연결하면 IAM ID로 AWS Management Console에 액세스할 수 있습니다. 그러면 IAM ID를 통해 EC2 대시보드를 열고 EC2 인스턴스를 시작할 수 있습니다. IAM ID는 EC2 인스턴스를 시작하기 위한 서브넷, VPC 및 태그를 지정해야 합니다.
ec2:ResourceTags 조건은 다음 작업을 제한합니다.
- 인스턴스를 시작합니다.
- 인스턴스를 중지합니다.
- 인스턴스를 재부팅합니다.
- 인스턴스를 종료합니다.
- 인스턴스에 볼륨을 연결합니다.
- 인스턴스에서 볼륨을 분리합니다.
- 인스턴스에서 IAM 인스턴스 프로파일을 분리합니다.
- 인스턴스 프로파일을 연결합니다.
- 인스턴스의 IAM 인스턴스 프로파일 연결을 교체합니다.
- 인스턴스의 콘솔 스크린샷을 가져옵니다.
정책은 VPC에 대해 다음과 같은 작업을 제한합니다.
- 보안 그룹을 삭제합니다.
- 경로를 만들고 삭제합니다.
- 라우팅 테이블을 삭제합니다.
- 네트워크 액세스 제어 목록(네트워크 ACL)을 삭제합니다.
- 네트워크 ACL 항목을 삭제합니다.
- 보안 그룹 수신 및 송신 규칙을 승인하거나 취소합니다.
- 네트워크 인터페이스 권한을 만듭니다.
- 수신 및 송신 규칙의 보안 그룹 설명을 업데이트합니다.
관련 정보
PrincipalTag, ResourceTag, RequestTag 및 TagKeys 조건 키는 IAM 정책에서 액세스를 어떻게 제어합니까?
- 언어
- 한국어

관련 콘텐츠
- 질문됨 일 년 전