hiris
IAM 정책 ( Policy ) 본문
IAM 정책은 크게 권한을 제한하는 용도 ( Guardrail ) 와 권한을 부여하는 용도 ( Grant ) 로 나뉠 수 있다.

1. 권한을 제한하는 정책 ( Guardrail )
권한을 제한하는 정책은 다음과 같다.
- 조직 SCP 정책 ( Organization SCPs)
- 권한 경계 정책 ( Premission boundaries)
- 세션 정책 ( Session Policies )
2. 권한을 부여하는 정책 ( Grant )
권한을 부여하는 정책은 다음과 같다.
- 자격증명 기반 정책 ( Identity-based policies )
- 리소스 기반 정책 ( Resource-based policies )
- 액세스 제어 리스트 ( Access Control Lists, ACLs)
권한을 부여하는 정책 중 자격증명 기반 정책에 대해 자세하게 살펴보자면 다음과 같다.
자격증명 기반 정책
자격증명 기반 정책은 보안주체 ( IAM User, Group, Role ) 가 수행할 수 있는 권한들을 JSON 권한 정책 문서 로 정리
AWS 관리형 정책 AWS에서 제공해주는 정책이다.
AWS 관리형 정책 | AWS에서 제공해주는 정책 |
AWS 고객 관리형 정책 | 사용자가 직접 생성하고 관리하는 정책 |
AWS 인라인 정책 | 사용자, 그룹, 역할에 일대일 정책으로 직접 연결하는 정책 |
실습 - 사용자 권한 추가
사용자 권한 추가 ( 관리형 정책 )
지금부터는 관리형 정책 관련 실습 과정을 보여주겠다. 참고로 관리형 정책은 권한을 부여하는 정책 중 자격증명 기반 정책에 속한다.
[ 실습 목표 ]
→ 다음과 같이 Super-Pro 에 AmazonEC2ReadOnlyAccess 정책에 추가하는 것을 실습해본다.

1. IAM -> 사용자 -> Super Pro -> 권한 -> 권한 추가에 들어간다.
직접 정책 연결을 클릭한 후 AmazonEC2ReadOnlyAccess를 눌러 권한을 추가한다.

2. 권한을 추가하면 Super-Pro의 권한 정책은 다음과 같이 나오게 된다.

3 . 사용자 권한 확인
Super-Pro로 로그인을 하여 EC2 → 인스턴스 → 인스턴스 시작을 눌러 생성해본다.
권한을 추가한 Super-Pro에서 실제로 EC2를 생성할 수 있는 지 확인해본다.
명시적으로 EC2ReadOnly 정책만 생성됐다면 인스턴스 생성이 불가능했는데 다른 정책을 추가함으로서 인스턴스가 생성됨을 알 수 있다.

실습 - 사용자 권한 추가 ( 인라인 정책 )
실습 준비 단계
1. In-line 정책을 하기 위해서는 S3 bucket 생성이 먼저 필요하다
s3 -> 버킷 만들기 들어가서 버킷을 생성해준다.
이때 모든 퍼블릭 엑세스 차단을 풀어주고 밑에 경고창에 확인 버튼을 눌러준다.

2. 나머지는 변경하지 않고 버킷을 생성해준다.

[ 실습 목표 ]
Dev에 속한 Dev-Intern은 개발을 위해 S3를 사용하고자 한다.
다음과 같이 Dev-Intern 팀에 S3 목록과 읽기 권한을 요청해보자.
밑의 사진과 같이 추가하는 것이 목적이다.

실습
S3을 생성할 수 있는 권한을 가진 Super-Pro로 로그인을 하여 Dev-Intern 사용자에 들어가 인라인 정책을 생성한다.

서비스 S3, 액세스 수준 → 나열 → ListAllMyBuckets, ListBucket을 클릭을 한다 .
혹은 json 파일인 밑의 코드를 넣어서 권한 추가하는 방식도 있다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:ListBucket"
],
"Resource": "*"
}
]
}
정책 이름에 builders-inline을 입력하고 정책 생성 버튼을 클릭을 한다.

그리고 Dev-intern으로 로그인을 하여 S3 bukcet 목록을 보면 해당 권한이 들어갔음을 확인할 수 있다.

실습 - 사용자 권한 경계
권한경계란 ?
특정 사용자 또는 그룹을 대상으로 허용 범위를 제약하는 방법을 말한다.
실습 목적
Super-Intern은 모든 권한이 접근 가능한 AdministratorAccess를 부여받았지만 내부 사정으로 인해 AmazonEC2FullAccess 권한만 부여하도록 한다.

1. 모든 권한이 접근 가능한 Super-Pro로 로그인 한다.
2. IAM에서 Super-Intern을 클릭을 한다.
3. 권한 경계 -> AmazonEC2FullAccess를 검색 후 선택을 한 후 경계 설정을 한다.

4. 결과물을 확인한다.
Super-Intern은 권한 경계 설정으로 인해 AmazonEC2FullAccess 권한만 설정되었으므로 EC2를 제외한 모든 요청이 거부되어야 한다.
eC2설정은 허용이 됐으므로 인스턴스가 활용 됐음을 알 수 있다.

→ 즉 권한 경계를 하면 권한 경계와 자격 증명 기반 정책의 권한의 교집합만 허용이 됨을 알 수가 있다.
3. 실습 - 권한 부여 정책 ( 리소스 기반 정책 )
현재 사용자별 권한 정책은 다음과 같다.
S3 파일 업로드 권한을 가진 사용자는 super-pro가 유일

실습 목표
S3에 한해서 Dev-Intern의 요청은 다 허용이 가능하도록 ! 해보자 !

1. Super-Pro로 로그인 후 S# 서비스 화면으로 가보자!
2. 아까 만들어 놓은 버킷명 선택한 다음 권한 탭에서 권한 정책 편집으로 가보자

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Principal": {"AWS":"arn:aws:iam::979560826787:user/Dev-Intern"},
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::builders-s3-nowee/*"
}
]
}
3. 리소스 기반 정책 확인 [ 실습이 제대로 됐는 지 확인 절차 ]
Dev-Intern으로 로그인을 하여 S3 버킷 활용이 가능한 지 보자
한번 이미지를 확인해보자

→ 파일이 정상적으로 업로드가 됐음을 확인할 수 있다.
'AWS' 카테고리의 다른 글
Java Spring과 DB 연결 (0) | 2023.10.03 |
---|---|
EC2로 React 배포 (0) | 2023.09.27 |
IAM 역할 (2) | 2023.09.24 |
IAM - 사용자 및 사용자 그룹 (0) | 2023.09.22 |
배워서 바로 쓰는 14가지 AWS 구축 패턴 (0) | 2023.09.07 |