[Section4: IAM & AWS CLI] 2. IAM 정책

Devhslee·2024년 1월 31일

강의복습

<Udemy> Ultimate AWS Certified Developer Associate 2024 NEW DVA-C02

  • Section 4: IAM & AWS CLI

IAM 정책 상속

User 에게 IAM 정책을 지정해주면 해당 사용자에게만 그 정책이 적용되지만, Group에 정책을 지정해주면 그 그룹에 속한 사용자들은 모두 그 정책을 상속받게 된다.

또한 한 User는 여러 개의 Group에 속할 수 있어 여러 개의 정책을 상속받을 수 있다.


IAM 정책 상속

구조예시)

{
	"Version": "2012-10-17",
	"Id": "S3-Account-Permissions",
	"Statement": [
		{
			"Sid": "1",
			"Effect": "Allow",
			"Principal": {
				"AWS": ["arn:aws:iam:123456789012:root"]
			},
			"Action": [
				"s3:GetObject",
				"s3:PutObject"
			],
			"Resource": ["arn:aws:s3::mybucket/*"]
		}
	]
}

Version: 정책 언어 버전. 언제나 "2012-10-17" 로 지정
Id: 정책 구분용 id (필수 X)
Statement: 하나 또는 여러 개의 구문.

  • Sid: 구문 id (필수 X)
  • Effect: 허용(Allow)인지 금지(Deny)인지
  • Principal: 정책이 적용될 계정/사용자/역할
  • Action: Effect가 적용될 액션들. (e.g. s3:GetObject는 s3의 객체의 정보를 얻어올 수 있는 액션)
  • Resource: Action이 적용될 aws 리소스
  • Condition: 정책이 적용될 조건 (필수 X)

실습

1. 사용자에게 직접 정책 연결

앞에서 만들었던 User를 연결된 AdministratorAccess 권한이 지정되어 있던 Group에서 없애준다. 그리고 나서 IAM 페이지를 새로고침하면 콘솔 창에 권한이 거부되어 빨간 경고가 뜨는 걸 볼 수 있다.

루트 계정으로 접속한 뒤, 사용자를 선택하고 '직접 정책 연결'을 선택해준다.

IAM 콘솔에 단순접근할 권한을 부여하기 위해 IAMReadOnlyAccess를 선택해준다.

그리고 '다음'을 눌러준뒤 권한 추가를 완료해준다.

다만, 지금 추가해준 IAMReadOnlyAcess는 IAM 콘솔에 접근하여 내용 조회만 할 수 있지, 그룹 추가 등의 행동은 할 수 없다.


2. 그룹에 정책 연결

IAM 콘솔에 들어가서 그룹을 생성해준다.

그룹 이름을 설정해주고 앞서 만든 IAM 사용자를 해당 그룹에 추가해준다.

권한은 대충 아무거나 선택해준다. 강의에선 AlexaForBusinessDeviceSetup 으로 진행했길래 나도 똑같이 선택해줬다.

다음과 같이 그룹이 생성된 걸 볼 수 있다.

3. 한 유저를 여러 그룹에 배치

기존의 IAM 사용자가 속해 있었던 그룹을 선택해준다.

다시 사용자를 그룹에 추가해준다.

'devadmin' 사용자에게 연결된 권한 정책을 확인해보면 다음과 같이 'admin_group' 그룹의 정책, 'developers' 그룹의 정책, 직접 연결된 정책까지 해서 총 3개의 권한 정책이 연결된 걸 확인할 수 있다.


4. 정책 살펴보기

'devadmin'에게 연결된 정책 중 AdminstratorAccess 를 클릭해보면, 아래와 같이 어떤 리소스에 대해 어떤 권한이 부여되는지 상세한 정보를 볼 수 있다.

403개 중 403개 서비스에 대한 허용이라는데, 이말인즉슨 AWS의 모든 서비스에 대한 권한을 가지는 최고 권한이라고 보면 되겠다.

JSON으로 확인해 보면 다음과 같다.


5. 직접 정책 생성하기

이미 정의되어 있는 정책을 연결하는 방법 말고도 직접 정책을 생성해서 연결할 수 있다.

IAM의 '정책' 탭에서 '정책 생성'을 누른다.

대충 '서비스 선택'에서 IAM을 선택해주고,

허용할 작업으로 ListUsersGetUser를 지정해준다.

그리고 '다음'을 눌러 정책 이름을 설정해준다.

만들어진 정책의 JSON을 확인해보면 다음과 같이 나타나는 걸 확인할 수 있다.

profile
코딩-버그-좌절-해결-희열

0개의 댓글