Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

hiris

IAM 정책 ( Policy ) 본문

AWS

IAM 정책 ( Policy )

hiris 2023. 9. 22. 11:36

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

권한 정책 이미지

1. 권한을 제한하는 정책 ( Guardrail )

 

권한을 제한하는 정책은 다음과 같다. 


  1. 조직 SCP 정책 ( Organization SCPs)
  2. 권한 경계 정책 ( Premission boundaries)
  3. 세션 정책 ( Session Policies )

 

 

2. 권한을 부여하는 정책 ( Grant )

 

권한을 부여하는 정책은 다음과 같다. 


  1. 자격증명 기반 정책 ( Identity-based policies )
  2. 리소스 기반 정책 ( Resource-based policies )
  3. 액세스 제어 리스트 ( Access Control Lists, ACLs)

 

권한을 부여하는 정책 중 자격증명 기반 정책에 대해 자세하게 살펴보자면 다음과 같다. 

자격증명 기반 정책


자격증명 기반 정책은 보안주체 ( IAM User, Group, Role ) 가 수행할 수 있는 권한들을 JSON 권한 정책 문서 로 정리

AWS 관리형 정책 AWS에서 제공해주는 정책이다. 

AWS 관리형 정책 AWS에서 제공해주는 정책
AWS 고객 관리형 정책 사용자가 직접 생성하고 관리하는 정책
AWS 인라인 정책 사용자, 그룹, 역할에 일대일 정책으로 직접 연결하는 정책 

 

실습 - 사용자 권한 추가 

사용자 권한 추가 ( 관리형 정책 ) 

 

지금부터는 관리형 정책 관련 실습 과정을 보여주겠다. 참고로 관리형 정책은 권한을 부여하는 정책 중 자격증명 기반 정책에 속한다. 

 

[ 실습 목표 ]

→ 다음과 같이 Super-Pro 에 AmazonEC2ReadOnlyAccess 정책에 추가하는 것을 실습해본다.

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