반응형
Udemy AWS Certified Developer Associate 강의를 들으며 중요한 부분을 정리한 글입니다.
IAM 유저 & 그룹 기초
IAM 유저 & 그룹
- IAM = Identity and Access Management, 글로벌 서비스
- 기본적으로 생성되는 root 계정은 사용하거나 공유하면 안됨
- 유저는 그룹화할 수 있음
- 그룹은 유저만 포함할 수 있으며, 다른 그룹을 포함할 수 없음
- 유저는 반드시 그룹에 속할 필요는 없으며, 한 명이 여러 그룹에 속할 수 있음
IAM: 권한
- 유저 or 그룹은 정책에 할당될 수 있음
- 정책은 유저의 권한을 정의
- AWS의 최소 권한 원칙: 유저가 필요로하는 것보다 더 많은 권한을 주지 마라
IAM 정책
IAM 정책 구조

- 구성
- Version: 정책 언어 버전, 항상 2012-10-17 포함
- 이전 버전으로는 2008-10-17이 있는데 고려하지 않아도 됨
- 현재 설명하는 정책 변수들을 사용하기 위해서는 2012-10-17을 사용
- Id: 정책 식별자 (선택)
- Statement: 하나 이상의 서술 (필수)
- Version: 정책 언어 버전, 항상 2012-10-17 포함
- 서술 구성
- Sid: 서술 식별자 (선택)
- Effect: 접근 허용 여부 (Allow, Deny)
- Principal: 적용되는 계정/유저/역할
- Action: 해당 정책의 접근이 허용되거나 거부되는 액션 리스트
- Resource: 액션이 적용되는 리소스 리스트
- Condition: 해당 정책이 적용되는 경우의 조건 (선택)
IAM MFA
IAM - 비밀번호 정책
- AWS 비밀번호 정책 설정:
- 최소 길이 설정
- 특정 문자 요구
- 대문자 포함
- 소문자
- 숫자
- 특수문자
- 모든 IAM 유저가 본인의 비밀번호를 변경할 수 있도록 허용
- 종종 비밀번호를 변경하도록 요구 (비밀번호 만료)
- 재사용 방지
Multi Factor Authentication - MFA
- MFA = 비밀번호 + 보안 장치
- MFA의 주요 장점: 비밀번호가 탈취되거나 해킹되어도 계정은 위험하지 않음
AWS의 MFA 장치 옵션
- 가상 MFA 장치
- Google Authenticator (스마트폰)
- Authy (여러 장치)
- 하나의 장치에 여러개의 토큰 지원
- Universal 2nd Factor (U2F) 보안 키
- Yubico의 YubiKey (3rd party)
- 하나의 보안 키를 이용해 여러 root와 IAM 유저 지원
- 하드웨어 키 Fob MFA 장치
- Gemalto에서 제공 (3rd party)
- AWS GovCloud(US)의 하드웨어 키 Fob MFA 장치
- SurePassID에서 제공 (3rd party)
AWS 액세스 키, CLI 그리고 SDK
유저는 어떻게 AWS에 접근하나?
- AWS에 접근하기 위한 3가지 옵션:
- AWS Management Console (비밀번호 + MFA로 보호됨)
- AWS Command Line Interface (CLI): 액세스 키로 보호됨
- AWS Software Developer Kit (SDK) - 코드: 액세스 키로 보호됨
- 액세스 키는 AWS 콘솔을 통해 생성됨
- 유저는 본인의 액세스 키들을 관리
- 액세스 키는 공유하면 안됨
- 액세스 키가 아이디라면, 시크릿 액세스 키는 비밀번호와 비슷함
AWS CLI란?
- 커맨드라인 쉘에서 커맨드로 AWS 서비스를 사용할 수 있도록 하는 도구
- AWS 서비스의 API에 직접 접근
- 리소스를 관리하는 스크립트를 개발할 수 있음
- https://github.com/aws/aws-cli
- AWS 관리 콘솔 대신 사용 가능
AWS SDK란?
- AWS Software Development Kit (AWS SDK)
- 특정 언어 API (라이브러리 셋)
- 프로그래밍적으로 AWS 서비스에 접근하고 관리할 수 있음
- 애플리케이션에 내장됨
- 지원
- SDKs (JavaScript, Python, PHP, .NET, Ruby, Java, Go, Node.js, C++)
- Mobile SDKs (Android, iOS, …)
- IoT Device SDKs (Embedded C, Arduino, …)
- 예: AWS CLI는 파이썬용 AWS SDK 기반
AWS 서비스의 IAM 역할
서비스의 IAM 역할
- 일부 AWS 서비스는 사용자를 대신하여 작업을 수행해야 함 → IAM 역할을 가진 AWS 서비스에 권한을 부여
- 공통 역할:
- EC2 인스턴스 권한
- Lambda 함수 권한
- CloudFormation 권한
IAM 보안 도구
- IAM 자격 리포트 (계정 레벨)
- 모든 계정의 유저와 다양한 자격의 상태 리스트를 담은 레포트
- IAM 접근 어드바이저 (유저 레벨)
- 접근 어드바이저는 사용자에게 부여된 서비스 권한과 서비스들이 언제 마지막으로 접근됐는지를 보여줌
- 사용자는 정책을 점검하기 위해 이 정보들을 사용할 수 있음
IAM 모범 사례
IAM 사용법 & 모범 사례
- AWS 계정 설정을 제외하고 루트 계정 사용하지 않기
- 하나의 물리적 유저 = 하나의 AWS 유저
- 그룹에 유저와 권한을 할당하기
- 강력한 비밀번호 정책 만들기
- MFA 사용 주장하기
- AWS 서비스에 권한을 줄 역할 생성하고 사용하기
- 프로그래밍적인 접근을 위해 액세스 키 사용하기 (CLI / SDK)
- IAM 자격 리포트로 계정 권한 감시하기
- IAM 유저와 액세스 키는 절대 공유하지 않기
반응형
'Study' 카테고리의 다른 글
| 🐍 Python json vs pickle vs marshal (0) | 2022.07.16 |
|---|---|
| 🗄 B+Tree 인덱스 (2) | 2022.07.16 |
| 🎡 Pod의 개념과 특징 (0) | 2022.07.06 |
| 🔍 Django 서버 실행 테스트하기 (with selenium) (0) | 2022.07.05 |
| 🔫 클래스 기반 뷰의 모범적인 이용 (0) | 2022.07.05 |