1. IAM(Identity and Access Management)이란?
IAM에서는 사용자를 생성하고 그룹에 배치하여 관리하는 글로벌 서비스이다.
처음 AWS 계정 생성할 때 생성되는 루트 계정 또한 IAM을 사용한 것이다.
그러나 보안 상의 이유로, 루트 계정은 계정을 생성할 때만 사용하고 이후에는 IAM에서 사용자를 생성하여 사용하는 것이 좋다.
IAM에서는 개별 사용자를 생성하고, 그룹으로 묶어 관리할 수 있다.
사용자는 한 개 이상의 그룹에 속할 수 있다.
ex. A, B, C는 개발자 그룹, D, E는 운영자 그룹, F는 그룹에 속하지 않는 사용자가 될 수 있다.
C, E는 감사팀 그룹으로 묶일 수 있다.
단, 그룹에는 오직 사용자만 속할 수 있다. (그룹 안에 그룹을 포함할 수 없다. )
- 사용자와 그룹을 생성하는 이유
AWS 계정에서 특정 서비스를 이용하기 위해서는 서비스에 대한 접근 권한이 필요하다.
각 사용자 또는 그룹마다 JSON 문서를 통해 권한을 줄 수 있다.
사용자가 너무 많은 서비스를 실행하면 비용 문제나 보안 문제가 발생할 수 있기 때문에,사용자에게 꼭 필요한 권한만 부여해야 한다.
- IAM 사용자 생성하기
오른쪽 상단의 Global을 클릭하면 리전 선택이 활성화되지 않는다.
IAM은 글로벌 서비스이기 때문에 선택할 리전이 없다는 것으로, IAM에서 사용자를 생성하면 어디에서나 사용할 수 있다.

IAM > 사용자(User)에서 사용자를 생성할 수 있다.

사용자 이름과 비밀번호를 설정해준다. 콘솔에서 접속할 것이기 때문에 콘솔에 대한 엑세스 권한 제공을 활성화한다.
실습을 위해 직접 사용할 것이기 때문에, 사용자 지정 암호를 입력해주고 다음 로그인 시 새 암호를 생성하는 부분은 비활성화 해주었다.

다음으로 넘어가서 그룹을 생성해보겠다. admin 그룹에 AdministratorAccess 권한을 주었다.

방금 만든 admin 그룹을 선택하고 넘어간다.

tag는 선택사항인데, 작성하면 리소스에 메타데이터를 제공할 수 있다.
예를 들어 부서(Department)를 Engineering이라 입력할 수 있다.

생성이 완료되면 이런 화면을 볼 수 있다.
사용자에게 AdministratorAccess 정책이 연결되어 있는데, 사용자에게 직접 연결된 것이 아니고 admin 그룹을 통해 연결된 것이다. 즉, 자신이 속한 admin 그룹이 가진 권한을 그대로 부여받는 것이다.
이렇게 그룹을 통해 사용자를 관리하면, 권한을 관리하기 쉽다.
2. IAM 정책
IAM 정책은 특정 사용자나 그룹에게 부여되는 권한을 정의하는 JSON 문서이다. 정책 문서는 다음과 같이 구성된다.
- Version: 정책 언어 버전으로, 보통 '2012-10-17'로 설정된다.
- Id: 정책의 식별자로 선택 사항이다.
- Statement: 정책의 핵심 부분으로, 하나 이상의 문장(Sid)으로 구성된다.
- Sid: 정책의 식별자이다.
- Effect: 정책이 특정 API에 대한 접근을 허용할지(Allow), 거부할지(Deny) 결정한다.
- Principal: 해당 정책이 적용될 사용자, 계정, 역할을 정의한다.
- Action: 허용 또는 거부될 API 호출 목록을 지정한다.
- Resource: 정책이 적용될 리소스를 명시한다.
- Condition: 정책이 언제 적용될지 설정하는 조건으로 선택 사항이다.
- AdministratorAccess
앞서 적용한 이 IAM 정책은 AWS의 모든 서비스와 리소스에 대해 모든 액션을 허용하는 정책이다.

어느 리소스에서 어느 액션이든 허용한다는 의미. 즉, 관리자 액세스를 받는 것과 같다.
이외에도 원하는 정책을 직접 생성하는 것이 가능하다.
3. IAM Role
IAM Role은 AWS 서비스가 사용자 대신 특정 작업을 수행할 수 있도록 권한을 부여하는 방법이다. 일반 사용자와 유사하지만, AWS 서비스(ex. EC2, Lambda, CloudFormation)에서 사용하도록 되어 있다.
- IAM Role 생성하기
IAM > 액세스 관리 > 역할로 가서
예시로 EC2에 대한 역할을 생성해보겠다.


EC2 인스턴스가 IAM 역할을 읽을 수 있도록 IAMReadOnlyAccess 정책을 연결한다.

이름을 지정해주고 생성하면 된다.
4. IAM의 보안 도구
- IAM 자격 증명 보고서:
- 계정 내 모든 사용자와 그들의 자격 증명 상태를 포함하는 보고서를 생성하여 계정의 전반적인 보안 상태를 파악할 수 있다.
- IAM 액세스 관리자:
- 사용자가 마지막으로 어떤 서비스에 언제 액세스했는지 확인할 수 있다. 불필요한 권한을 제거하고 최소 권한 원칙을 유지할 수 있다.

IAM > 사용자 > 세부 정보 페이지에 들어가면 보안 자격 증명과 액세스 관리자 탭에서 확인할 수 있다.
다음 글에서는 보안 강화를 위해 멀티 팩터 인증(MFA)을 추가하는 방법에 대해 알아보겠다.
'Cloud > AWS' 카테고리의 다른 글
| [AWS] MFA(Multi-Factor Authentication)로 보안 강화하기 (0) | 2024.09.01 |
|---|---|
| [AWS] AWS 글로벌 인프라: 리전, 가용 영역, 엣지 로케이션 (0) | 2024.09.01 |