특정 Amazon EC2 리소스에 대한 IAM ID 액세스를 제한하려면 어떻게 해야 하나요?
AWS Identity and Access Management(IAM) ID의 액세스를 특정 Amazon Elastic Compute Cloud(Amazon EC2) 리소스로 제한하고 싶습니다.
간략한 설명
Amazon EC2는 리소스 수준 권한 또는 조건을 부분적으로 지원합니다. 리소스 수준 권한을 사용하여 특정 Amazon EC2 리소스에 대한 IAM ID 자격 증명 액세스 허용 방식을 제어할 수 있습니다.
ABAC(태그 기반 인증)를 사용하여 AWS 리소스에 대한 액세스를 제어할 수도 있습니다. 자세한 내용은, IAM 자습서: 태그를 기반으로 AWS 리소스에 액세스할 수 있는 권한 정의를 참조하세요.
해결 방법
다음 예제 IAM 정책을 사용하여 사용 사례에 따라 Amazon EC2 인스턴스에 대한 액세스를 제한하세요. 그런 다음 액세스를 제한하려는 IAM ID에 정책을 연결합니다.
인스턴스를 시작, 중지 또는 재부팅하도록 액세스를 제한합니다
다음 예제 정책은 IAM ID의 액세스를 EC2 인스턴스를 시작, 중지 또는 재부팅하는 것으로만 제한합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:RebootInstances" ], "Resource": [ "arn:aws:ec2:*:AccountId:instance/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/Owner": "Bob" } } } ] }
참고: 소유자를 태그 키로, Bob을 태그 값으로, AccountId를 AWS 계정 ID로 바꿉니다.
AWS 리전별로 다른 Amazon EC2 리소스를 제한하려면 작업이 리소스 수준 권한 및 조건을 지원하는지 확인하세요.
태그별로 EC2 인스턴스 시작 제한
다음 예제 정책은 Owner 태그 키를 사용하여 IAM ID의 액세스를 EC2 인스턴스만 시작하도록 제한합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:*:AccountId:instance/*" ], "Condition": { "StringNotLike": { "aws:RequestTag/Owner": "*" } } }, { "Sid": "AllowRunInstances", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*::image/*", "arn:aws:ec2:*::snapshot/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:key-pair/*", "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ] }, { "Sid": "AllowToDescribeAll", "Effect": "Allow", "Action": [ "ec2:Describe*" ], "Resource": "*" }, { "Sid": "AllowCreateTagsOnLaunching", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:AccountId:*/*" ], "Condition": { "StringEquals": { "ec2:CreateAction": [ "RunInstances" ] } } } ] }
참고: Owner를 태그 키로, AccountId를 계정 ID로 바꾸세요.
인스턴스 유형별로 EC2 인스턴스 시작 제한
다음 예제 정책은 t3.* 인스턴스 유형에서 EC2 인스턴스만 시작하도록 IAM 자격 증명에 대한 액세스를 제한합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:*:AccountId:instance/*" ], "Condition": { "StringNotLike": { "ec2:InstanceType": "t3.*" } } }, { "Sid": "AllowRunInstances", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*::image/*", "arn:aws:ec2:*::snapshot/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:key-pair/*", "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ] }, { "Sid": "AllowToDescribeAll", "Effect": "Allow", "Action": [ "ec2:Describe*" ], "Resource": "*" }, { "Sid": "AllowCreateTagsOnLaunching", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:AccountId:*/*" ], "Condition": { "StringEquals": { "ec2:CreateAction": [ "RunInstances" ] } } } ] }
참고: 인스턴스 유형 t3.*를 해당 인스턴스 유형(예: t3.nano)으로 대체합니다. 또한 AccountId를 계정 ID로 바꿉니다.
자세한 내용을 알아보려면 Amazon EC2 인스턴스 유형 네이밍 규칙을 참조하세요.
관련 정보
태그로 Amazon EC2 리소스에 액세스하는 것을 제어하는 IAM 정책을 생성하려면 어떻게 해야 하나요?
IAM 정책 태그를 사용하여 EC2 인스턴스 또는 EBS 볼륨 생성 및 액세스 방법을 제한하려면 어떻게 해야 하나요?
관련 콘텐츠
- 질문됨 5달 전lg...
- 질문됨 일 년 전lg...
- AWS 공식업데이트됨 5달 전
- AWS 공식업데이트됨 3년 전