IAM 사용자 및 권한
AWS는 현재 컴퓨팅, 데이터베이스, 모니터링 등을 포함한 수 많은 서비스를 제공하고 있습니다. 이러한 서비스들은 프리티어를 제외한 각각의 요금제에 따라 과금정책을 가지고 있습니다. 따라서, 무분별한 서비스의 확장 또는 사용때문에 엄청난 요금을 지불해야할 수도 있습니다.
이러한 이유때문에 여러명이서 하나의 AWS 인프라를 사용할 경우 IAM 사용자를 생성하여 권한을 부여합니다. 모든 권한을 가진 ROOT 사용자와는 달리, 기본적으로 새로운 IAM 사용자는 작업을 수행할 어떠한 권한도 없습니다. 사용자는 AWS 작업을 수행하거나 AWS 리소스에 액세스할 수 있는 권한이 없습니다.
개별 IAM 사용자를 두면 각 사용자에게 개별적으로 권한을 할당할 수 있다는 장점이 있습니다. 사용자 몇 명에게 관리 권한을 할당하면 이들이 AWS 리소스를 관리하고 다른 IAM 사용자까지 생성하고 관리할 수 있습니다. 그러나 대부분의 경우 사용자의 업무에 필요한 작업(AWS 작업) 및 리소스로만 사용자의 권한을 제한합니다.
지금부터 어떻게 IAM 사용자를 생성하고 권한을 관리하는지 살펴보겠습니다.
IAM 사용자 핵심 개념
- 사용자
- 사용자가 IAM 에서 생성 및 액세스 AWS 리소스에 필요한 권한을 부여 할 수 있음
- 그룹
- 사용자를 그룹에 추가하여 IAM 사용자의 권한을 그룹별로 설정할 수 있음
- IAM 사용자를 그룹에 추가하면 해당 그룹에 설정한 권한이 부여됨
- 정책
- 사용자 또는 그룹에 대한 권한을 정의하는 JSON 문서
- 역할
- 일반적으로 사용자에게 AWS 서비스에 액세스할 수 있는 임시 권한을 부여하는 데 사용
- ex) S3 권한을 가진 역할을 EC2 서비스에 연결
AWS를 사용할 땐 각 용도에 맞는 권한을 최소한으로 부여해주어야 보안상 안전합니다. 따라서, 되도록 ROOT 계정을 쓰지 않을 것을 권장하고 있습니다. 실제 운영시, 각 용도에 따라 IAM 사용자를 생성하고 각 사용자를 통해서만 서비스를 관리할 수 있도록 합니다.
IAM 사용자 생성
1. 사용자 추가
AWS 콘솔 창 - IAM 검색 - 사용자 - 사용자 추가 버튼 클릭
2. 사용자 세부 정보
- 사용자 이름을 입력합니다.
- 콘솔에 대한 접근 권한 제공 여부 체크
- 1. Identity Center 라는 별도의 콘솔에서 에서 IAM유저에 대한 콘솔 접근을 제한하고 싶다면 체크
- 2. Key를 통해 ssh 접근 또는 프로그래밍 방식 액세스를 해야하는 경우에 IAM 사용자를 생성
Identity Center?
IAM Identity Center를 사용하면 계정 및 애플리케이션 전체에서 액세스 권한을 안전하게 조정하여 AWS에서 인력의 민첩성과 워크로드 혁신을 지원할 수 있습니다.
3. 암호 생성
- IAM 사용자 생성시 암호를 생성해야 합니다.
- 암호를 자동 생성하고 다음 로그인 시 새 암호를 생성하도록 만들거나 처음부터 각 사용자가 원하는 암호를 설정할 수 있습니다. 전자의 방법을 더 많이 사용합니다.
4. 그룹 지정
- 단일 계정을 관리하는 것이 아니라 권한 제어를 그룹 단위로 묶어서 하고 싶다면 그룹에 사용자를 추가합니다.
- 기존에 존재하는 그룹에 사용자를 추가하거나 새그룹을 만들 수 있습니다.
4 - 1. 그룹 생성
- 그룹을 생성하는 화면입니다.
- 그룹 이름을 지정하고 그룹에 부여할 권한을 지정할 수 있습니다.
- 권한을 주고싶은 서비스에 대해 검색하면 해당 서비스에 대한 여러 정책이 이미 존재합니다.
- 예를 들어, EC2ContainerRegistryReadOnly는 읽기만 가능한 정책입니다.
- 그룹 생성 이후에도 정책 추가 및 삭제가 가능합니다.
각 정책에 대한 정의는 다음과 같이 JSON 파일로 작성되어있습니다.
이와 같은 정책은 사용자가 직접 JSON 파일을 정의하여 정책을 추가 할 수도 있습니다.
5. 태그 추가 및 생성
- 마지막으로 IAM 사용자를 식별할 수 있도록 태그를 추가합니다.
- 사용자 생성 버튼을 클릭하여 사용자를 생성합니다.
- 위 과정을 거치면 다음과 같이 IAM 계정이 생성됩니다.
- 콘솔 로그인 URL 을 통해 생성한 IAM 계정으로 AWS에 로그인할 수 있습니다.
- IAM 계정이 생성된 팀원들은 주어진 사용자 이름과 콘솔 암호를 통해 로그인합니다.
- 해당 계정은 부여된 권한내의 업무만 가능합니다.
- 앞선 과정에서, 로그인시 새 암호를 설정하도록 했다면 최초 로그인시 암호를 변경해야합니다.
- 콘솔 암호는 보안상 외부에 절대 노출하면 안됩니다.
생성된 IAM 사용자는 이후 보안을 위해 MFA(멀티 팩터 인증)까지 설정하는 것을 권장합니다.