AWS IAM
평소 구글링을 통해 무지성으로 사용해온 IAM에 대해 포스팅한다.
IAM(Identity and Access Management)은 AWS 서비스와 리소스에 대한 액세스를 안전하게 관리할 수 있는 서비스다. AWS 사용자 또는 그룹을 만들고 관리하며 AWS 리소스에 대한 액세스를 허용/거부할 수 있다. AWS 서비스 전반적으로 언제, 어디서, 누가, 어떻게, 뭘 할 수 있는지 육하원칙의 왜를 제외한 모든 접근을 컨트롤할 수 있다. 모든 접근은 정책을 통해 관리되며 사용자 또는 역할에 부여할 수 있다.
특징
- AWS 어카운트, 리소스, 사용자의 권한을 제어할 수 있으며 서비스 사용을 위해 인증 정보를 부여
- 사용자의 생성과 관리 계정의 보안 설정을 담당하며 일정 시간마다 패스워드가 변경되도록 하는 설정도 가능
- AWS 유저가 아니면서 일시적으로 접속 권한을 받아 AWS 서비스를 사용하는 Identity Federation이 가능
- IAM은 리전별 서비스가 아닌 글로벌 서비스다. 한번 만들면 AWS 전체 서비스에 적용
구성
- 사용자
실제 AWS 서비스를 사용하는 사람 혹은 애플리케이션을 의미한다. - 그룹
개발1, 개발2, 개발3팀 등 사용자의 집합을 의미함. - 정책
사용자와 그룹의 역할이 어떤 작업을 수행할 수 있는지 관리하는 문서 JSON 형식이다. - 역할
AWS 리소스에 부여하여 AWS 리소스가 어떠한 작업을 수행할 수 있는지를 정의한다. 다른 사용자가 역할을 부여 받아 사용할 수 있으며 역할을 바꾸어 가며 서비스 사용이 가능하다.
사용자 종류
- 루트 사용자
결제 관리를 포함한 계정의 모든 권한을 가지고 있다.
관리 목적 외에 다른 용도로 사용하지 않아야 하며 계정이 탈취되었을 경우 복구가 매우 어려움.
(MFA 설정 필수)
- IAM 사용자
IAM을 통해 생성해서 사용하는 사용자
한 사람 혹은 하나의 애플리케이션을 의미하며 설정 시 콘솔 로그인 권한을 부여할 수 있다.
AdminAccess를 부여하더라도 루트 사용자로 별도의 설정을 하지 않으면 Billing 기능을 이용할 수 없음.
IAM 자격 증명 보고서
계정의 모든 사용자의 암호, 액세스 키, MFA 장치 등의 증명 상태를 나열하는 문서를 생성하고 다운로드할 수 있다.
- 4시간에 한 번씩 생성 가능
- AWS 콘솔, CLI, API에서 생성 요청 및 다운로드 가능
포함 정보
암호 | 액세스 키 | 기타 |
암호 활성화 여부 | 액세스 키 활성화 여부 | MFA 사용 여부 |
마지막으로 사용된 시간 | 마지막으로 사용된 시간 | 사용자 생성 시간 |
마지막으로 변경된 시간 | 마지막으로 변경된 시간 | |
언제 변경돼야하는지 | 어떤 서비스에 마지막으로 사용되었는지 |
IAM 사용 사례
- 루트 사용자는 사용하지 않아야 함.
- 관리용으로만 사용하고 실제 작업은 IAM 사용자로 함. - 불필요한 사용자는 만들지 않아야 함.
- 가능하면 그룹과 정책을 사용
- 최소한의 권한만을 허용하는 습관
- AccessKey 대신 역할을 사용
- IAM 자격 증명 보고서 활용하여 주기적으로 현재 상태 체크
참고 자료
https://www.youtube.com/watch?v=lcly_aIq1KI
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction.html
'클라우드' 카테고리의 다른 글
AWS Serverless Lambda (0) | 2022.10.07 |
---|---|
Serverless (0) | 2022.10.05 |