PROGRAMING/BACKEND DEV

AWS SAA-C02 - Identity and Access Mgt(IAM)

o_deok 2021. 6. 30. 22:05

1. IAM 이란,

 

 

- AWS에서 유저들의 AWS 콘솔에 대한 접근 권한 및 수준을 관리하는 방법
- AWS 계정을 팀별로 공유하고, 접근 권한을 중앙에서 제공 / 관리 할 수 있도록 한다.
- 필요한 경우 유저 및 장치에 대해 임시 접근 가능하도록 설정 가능하다.
- Centralised control of your AWS account

- Shared Access to your AWS account
- Granular Permissions
- Identity Federation (including Facebook, Linkedin etc)
- Multifactor Authentication(MFA)
- Provide temprorary access for users/devices and services where necessary
- Allows you to set up your own password rotation policy
- Integrates with many different AWS services 

 

 

2. IAM Key Term

 

 

2.1 Users

- AWS 시스템에 접근 가능한 유저 객체

- 하나의 AWS계정에 여러 개의 프로젝트가 존재한다고 가정했을 때, 특정 프로젝트에 접근 가능한 다양한 유저들이 존재할 수 있다.
- 따라서 AWS계정 아래에 유저 별로 프로젝트에 Access 한다고 이해하기위해 존재하는 개념이다.

- AWS 이메일 및 암호로 콘솔 로그인 시엔 root account, 계정 ID혹은 사용자 별칭으로 로그인 시엔 IAM 유저.

- 사용자 별 패스워드가 존재하게 설정할 수 있고, 해당 패스워드 정책을 변경할 수 있다.

- 유저(엑세스 키) 별로 활성화 여부를 변경할 수 있다.

 

2.2 Groups

- 각 유저별로 어떤 그룹에 속할 것인지 지정( Developer, DevOps, DBA etc)


2.3 Policies

- AWS 서비스에 엑세스 가능한 권한 관리 (Json으로 구성)

- RBAC(역할 기반 엑세스 제어) + ABAC(속성 기반 엑세스 제어 / 태그) 제공

*ABAC 란?*
- 그룹(팀) 뿐만 아니라 프로젝트 별로도 권한을 관리하여, 서로 다른 프로젝트 간의 접근 권한 공유를 용이하게 하는 방법
- 예: 동일한 프로젝트 및 팀 태그로 지정될 경우 CRUD 권한을, 동일한 팀이되 다른 프로젝트 태그로 지정될 경우 R 권한만 부여

* ABAC 이점*

1. 확장성이 좋고, 필요한 정책의 수가 줄어든다
2. 새로운 프로젝트 추가 시 정책관리가 용이하다.
3. 정책을 최소 권한만 부여하여 세분화하여 관리하기 쉽다.

ABAC 관리 예

 

2.4 Roles

- AWS 서비스 별 정책들을 모아놓아 역할을 부여

 

AWS 계정 구성 예시

 

 

3. Review

 

 

- IAM은 region에 영향을 받지 않으며(universal), 

- root account는 AWS계정에서 처음 셋업할 때 생성되는 계정이다.

- 새로운 유저는 그 어떠한 권한도 없는 상태이며,

- Access Key ID와 Secret Access Key가 생성된다. (이를 통해 시스템에 접근 가능, root account에서 접근 활성화 여부 변경 가능)
- Access Key ID와 Secret Access Key는 API나 Command Line등에서 활용될 수 있으며 오직 한 번만 볼 수 있어, 분실 시 재생성 해야한다.