본문 바로가기

Security

[실습] AWS IAM의 Permissions boundary(권한 경계)를 이용하여 미흡한 운영자로부터 서비스 인프라 보호하기

반응형

안녕하세요 서후아빠입니다. ^_^

이번 세션은 특정 사용자(ex : Junior 개발자, 신규입사자 등)로부터 운영중인(Production) 인프라를 보호하기 위해서 접근을 차단하는 IAM 정책에 대해서 실습을 해보겠습니다.

적절한 설정을 통하여 안정적인 서비스 운영을 할 수 있기를 바랍니다.


구성도

user01은 admin 권한을 부여하여 모든 Resources에 접근이 가능합니다.
user02는 admin 권한을 부여하였지만, Permissions boundary에서 ec2 중에서 특정 tag된 Resources만 허용하였기 때문에 해당 Resources외에는 접근이 모두 차단됩니다.

구성도

인프라 생성 : vpc, subnet, igw, routing table, ec2 등은 설명 생략합니다.

2022.07.02 - [Networking] - [실습] Amazon VPC 구성요소 생성하기

 

[실습] Amazon VPC 구성요소 생성하기

안녕하세요 서후아빠입니다. ^_^ 이번 세션은 VPC 관련 구성요소에 대해서 실습을 해보겠습니다. 구성도 1단계 : VPC 생성 VPC > Your VPCs > Create VPC 구분 VPC settings (VPC Only 방식) VPC settings (VPC a..

sh-t.tistory.com

1단계 : ec2에 tagging

EC2 > Instances > Instance 선택 > Tags (tab) > Manage tags

구분 Key Value
pubA-ec2 경우 env prod
pubB-ec2 경우 env dev

2단계 : Permissions boundary 설정

IAM > Policies > Create policy > JSON (tab) > JSON 내용 아래 참조 >  Name(deny-prod-policy)

# DenyPRDPolicy : ec2만 허용, 그 중에서도 tag에 Location/PRD는 차단
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:*",
            "Resource": "*"
        },
        {
            "Sid": "DenyEC2PRD",
            "Effect": "Deny",
            "Action": "ec2:*",
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/env": "prod"
                }
            }
        }
    ]
}

IAM > Users > 사용자 선택(ex  : user02) > Permissions (tab) > Permissions boundary의 Set boundary > deny-prod-policy 선택

IAM > Users > 사용자 선택(ex  : user01, user02) > Permissions (tab) > Add permissions > Attach existing policies directly > AdministratorAccess  

정책 적용 우선순위를 테스트하기 위해서 모든 사용자(user01, user02)는 AdministratorAccess 권한을 부여합니다.

3단계 : 접근 권한 테스트

IAM 사용자 계정(user01 or user02)으로 콘솔 접속하여 EC2가 아닌 서비스(ex : S3, CloudWatch,VPC 등) 접근

  - user01 : 정상

  - user02 : “You don't have permissions~” Error message 출력

user02는 AdministratorAccess의 권한을 부여받았지만, Permission boundary의 정책이 우선 적용되어 접근이 차단됩니다. 
VPC의 경우 user02가 접근 권한이 부여되어 있을텐데요. 그 이유는 VPC는 EC2에 묶여 있기 때문입니다.

2022.07.22 - [Security] - AWS IAM(Identity and Access Management) 기본 개념

 

[이론] AWS IAM(Identity and Access Management) 기본 개념

안녕하세요 서후아빠입니다. ^_^ 이번 세션은 AWS IAM에 대해서 업무적으로 필요한 최소한의 개념에 대해서 간단히 정리해 보았습니다. 개요 AWS에서 Service와 User가 다른 Service에 대한 권한 관리 1개

sh-t.tistory.com

EC2 > Instances > Instance 선택 > Instance state > Terminate instance

  - pubA-ec2 : user01은 정상적으로 terminate, user02 “Failed to terminate the instance~”

  - pubB-ec2 : user01 & user02 모두 정상적으로 terminate

반응형