AWS IAM
1. AWS IAM 개요
1-1. 개요
- AWS 계정 및 권한 관리 서비스
- AWS 서비스와 리소스에 대한 액세스 관리
- 사용자, 그룹, 역할, 정책으로 구성
- 리전에 속하는 서비스가 아닌 글로벌 서비스
- 계정 보안 강화를 위해
- 루트 계정(AWS 회원가입시 만들어지는 계정)은 최초 사용자 계정 생성 이후 가능하면 사용하지 말 것.
- 사용자 계정 (IAM 계정)으로 서비스를 사용하고 사용자는 필요한 최소한의 권한만 부여 (최소권한의 원칙)
- 루트계정과 개별 사용자 계정에 강력한 암호 정책과 멀티팩터 인증 (MFA) 적용
1-2. 엑세스 관리
-
사용자 (User)
- 사람, ID, 계정
- IAM ㄱ
-
그룹 (Group)
-
역할 (Role)
- AWS 리소스에서 사용하는 자격 증명 (ex. AWS EC2에서 실행되는 애플리케이션이 S3, RDS와 같은 AWS 리소스에 액세스하는 권한)
- 특정 AWS 서비스가 다른 AWS 서비스에 엑세스하여 작업을 수행할 때 필요한 권한
- 정책을 연결하여 IAM 역할에 작업 수행할 권한을 부여
- 신뢰 정책
- IAM 역할을 사용하여 AWS 계정간 엑세스 권한 위임을 하는 기능
- 신뢰 정책 (Trust Policy)를 사용하여 다른 AWS 계정에 역할을 위임 가능
- Tip: "엑세스 권한"이라는 단어가 나올경우 대부분 역할 혹은 신뢰 정책에 대한 문제이다.
-
정책 (Policy)
- 사용자, 그룹, 역할에 대한 권한 정의 (어떤 것을 할 수 있고, 어떤 것을 할 수 없는지 JSON 문서 형식으로 구성)
- AWS 리소스에 대한 엑세스 권한을 정의한것
- 사용자, 그룹, 역할에 정책을 연결하여 사용
- JSON 문서 형식으로 이루어짐
- Effect : Statemaent에 대한 Access(허용) or Deny(거부)
- Action : 권한에 대한 작업 목록
- Resource : 권한이 적용되는 리소스
- Condition : 정책이 적용되는 세부 조건
- ex) 아래와 같이 JSON 문서가 설정되어 있을 때
- 1번 요소: lambda 서비스에 대한 모든 작업과 모든 리소스에 대해서 허용.
- 2번 요소: lambda 서비스에 대해 함수를 생성하고 삭제하는것을 220.100.16.0/20 아이피에 대해서 거부한다. (리소스도 마찬가지)
-
IAM 보안 도구
- IAM 자격 증명 보고서 (Credentials Report)
- 계정의 모든 사용자와 암호, 액세스 키, MFA 디바이스 등의 자격 증명 상태에 대한 보고서를 다운로드
- IAM 엑세스 관리자 (Access Advisor)
- 사용자 또는 역할이 허용된 서비스에 마지막으로 엑세스하려고 시도한 시간을 표시
- 이 정보를 사용해 필요이상으로 부여된 권한을 재정의 하는데 참고 가능
-
IAM Policy Simulator
- AWS 계정의 IAM 사용자, 사용자 그룹 또는 역할에 연결된 정책을 테스트