AWS에 대해 차근차근 정리하고 공부하고자 한다.
IAM 사용자 와 관련된 정책 그리고 권한들은 AWS를 사용하면 거의 필수적으로 사용되게 된다. IAM은 AWS의 모든 서비스와 연결되어 있기 때문에 IAM과 관련한 것들을 먼저 공부하고자 했다.
IAM(Identity and Access Management)
IAM 이란?
사용자 생성 및 접근 관리 서비스이다.
AWS에는 루트 사용자와 IAM 사용자가 있는데 Root 계정은 말 그대로 기본 계정인 것이다. IAM 을 생성한 이후에는 루트 계정 대신 사용자를 생성하고 사용자 자체를 공유해서 프로젝트를 진행할 수 있다.
✨Root 계정은 기본값으로 IAM 계정 생성 후 사용 하거나 공유되어서는 안된다.
최고 관리자가 Root 계정을 관리하고 그 외에는 각자 계정을 발급받아 제한된 권한 안에서 AWS 서비스를 이용하는 것이다.
예를 들어, 위의 그림처럼 6명의 IAM 사용자 를 만들고 각각 Developer 그룹과 Operation 그룹으로 나누어 작업 영역을 정해줄 수 있다. 그룹에는 사용자만 배치가 가능하며 사용자는 user-f 처럼 꼭 그룹에 속하지 않아도 된다.
IAM 의 구성 요소
IAM 서비스의 세부항목은 크게 User, Grop, Policy, Role로 나눌 수 있다.
✔️ User : AWS 를 사용하는 개별 사용자
✔️ Group : user를 모아놓은 것으로 공통된 역할 별로 그룹을 만든다.
*한 User는 여러 개의 Group에 속할 수 있다. Group은 Group을 포함 시킬 수는 없다.
✔️ Policy : 클라우드 자원에 대한 권한을 정의하는 문서로 'JSON' 형식으로 작성된다. 사용자나 그룹, 역할에 특정 작업을 수행할 수 있는 권한을 부여하거나 제한할 수 있다.
✔️ Role : 사용자, 서비스 또는 리소스가 수행할 수 있는 임시 권한을 정의한다. 역할을 통해 특정 서비스 또는 리소스가 AWS 리소스에 접근할 수 있도록 허용할 수 있으며 사용자가 여러 AWS 계정 간에 권한을 전환할 수 있게 해준다.
➡️ User는 상시 자격, Role은 임시자격을 나타내는데 만약 Access Key가 유출되면 User의 모든 권한을 빼앗기는 것과 같기 때문에 Role을 통해 임시토큰으로 접근하는 것이 좋다.
IAM 계정 생성하기
IAM 사용자 만들기
사용자 (관리자) 만들어서 AWS 내에서 사용하는 방법에 대해 알아보자.
사용자 세부 정보 지정
1. AWS 콘솔 창에서 `iam` 검색해서 서비스 들어가기
2. IAM > 사용자 메뉴 이동 해서 `사용자 생성` 버튼 클
3. 사용자 이름 작성
✨ 사용자 이름은 최대 64자까지 가능합니다. 유효한 문자: A~Z, a~z, 0~9 및 + = , . @ _ -(하이픈)
- 관리자로 만들어서 사용할 것이기 때문에 AWS Management Console에 대한 액세스 권한을 부여한다.
- 사용자 유형은 Identity Center를 사용해서 콘솔 접근 권한을 제어하는 방법과 IAM 사용자를 생성하는 방법 두 가지가 있다. (관리자로 만들고자 하기 때문에 나는 IAM 사용자를 생성하고 싶음)을 체크하였다.
4. 콘솔 암호 (자동 생성된 암호 / 사용자 지정 암호)
말 그대로 콘솔에 암호를 자동 생성되는 암호로 사용할 것인지, 직접 지정하는 암호로 사용할 것인지에 대한 선택이다. (원하는대로 하면 된다.)
◻️ 사용자는 다음 로그인 시 새 암호를 지정해야 합니다.
- 로그인 시 새로운 암호를 지정해서 로그인 하는 것인데 만약 자동 생성된 암호를 사용하였다면 체크하는 것이 편하다.
권한 설정
사용자의 권한을 설정하는 작업으로 기존 그룹에 사용자를 추가하거나 새 그룹을 생성한다.
5. 그룹 생성
그룹 이름 생성 및 그룹 정책 추가 (그룹에 속하는 사용자는 그룹의 정책을 상속받게 된다.)
- AWS 관리 계정이기 때문에 AWS 서비스 모든 접근이 가능한 AdministratorAccess 라는 정책을 추가해준다.
생성 후 다음으로 누르고 넘어가기
검토 및 생성
태그와 같은 정보를 추가할 수 있다. 태그는 옵션사항으로 대부분의 리소스에 추가가 가능한 옵션이다.
(굳이 추가 해주지 않아도 되는 선택사항임)
7. 태그
태그는 데이터에 대한 정보를 포함시키는 역할로 태그를 달아줘도 되고 안 달아줘도 된다. 만약 사용한다면 아래처럼 역할을 나타내주기도 한다.
8. 사용자 생성 버튼 눌러서 넘어가기
암호 검색
로그인 지침을 이메일로 보내거나 사용자 이름과 콘솔 암호를 csv 파일로 다운로드 할 수 있다.
✨ 만약 자동 생성 암호로 해놓았다면 기억하기 힘들기 때문에 파일을 다운로드 받아놓는 것이 좋다.
만약 잘 생성되었다면 사용자 목록으로 다시 돌아가면된다.
사용자 확인하기
1. IAM > 사용자
사용자 메뉴에서 방금 만든 사용자를 찾을 수 있다.
2. 사용자 > 권한
사용자 권한을 눌러보면 Administrator 정책이 들어있고 admin 그룹에 속해있는 것을 확인할 수 있다.
admin 그룹으로부터 상속받은 정책을 그대로 물려받게 된다.
IAM 사용자로 로그인하기
1. IAM > 대시보드 에서 계정 별칭 설정하기
대시보드에 가면 AWS 계정 정보 요약을 볼 수 있는데 계정 ID와 계정 별칭을 확인 할 수 있다.
계정 ID(사용자 로그인 정보) 를 누르면 동일한 계정 ID 를 확인할 수 있는데 긴 숫자를 외우기는 쉽지 않기 때문에 계정 별칭을 설정해준다.
✨ 63자 이하여야 합니다. 올바른 문자는 a~z, 0~9 및 –(하이픈)입니다.
2. URL 복사하기
아래의 URL은 계정 별칭 설정에 따라 달라지게 된다. 이 URL을 복사해서 새로운 탭에서 열어준다. 지금 IAM이 로그인 되어있는 탭이 아닌 새로운 탭을 열어야 한다. 나는 google 다른 아이디로 탭을 열어서 URL을 복사 해주었다.
3. 사용자 이름, 암호 작성 후 로그인하기
설정한 암호가 있다면 암호를 작성해주면 되고 아니라면 이전에 사용자 만들면서 다운받은 csv 파일의 임시 비밀번호를 발급 받고 변경하면 된다.
4. 로그인 확인
왼쪽은 IAM 사용자 계정으로 로그인 한 것, 오른쪽은 root 계정으로 로그인 한 것이다. IAM 사용자 계정으로 로그인하게 되면 `사용자이름@계정 별칭`으로 표시되어 로그인된다.
두 가지 계정 모두 현재 Administrator(관리자)역할을 가지고 있기 때문에 할 수 있는 작업은 거의 동일하게 주어지기 때문에 대부분의 경우 IAM 사용자를 통해 접근하는 것이 좋다.
💬 느낀 점
AWS를 사용할 때 마다 지금까지 root 계정으로 사용을 쭉 해왔었는데 관리자 권한을 두고 따로 관리를 할 수 있다는 것을 알게 되어 매우 좋았다. 그리고 이렇게 역할 분리를 함으로써 최소한의 권한만 부여하고 이에 따라 불필요하게 주어지는 범위를 줄임으로 보안을 강화시킬 수 있다는 이유까지 알 수 있었던 시간이었다.
root 계정으로만 사용하게 되면 위험 요소가 증가한다는 것을 알게 된 만큼 앞으로의 프로젝트에 있어서는 주의하고 사용자 생성으로 역할 분리를 잘 해주어야 겠다.
'DevOps > AWS' 카테고리의 다른 글
[AWS] IAM Role 역할 생성하기 (0) | 2023.12.13 |
---|---|
[AWS] AWS CLI 실습 - 액세스 키(Access Key) 발급 및 간단한 명령어 입력 해보기 (0) | 2023.12.12 |
[AWS] windows 에서 AWS CLI 설정하기 (0) | 2023.12.11 |
[AWS] IAM 정책 / 정책 실습 - 사용자 권한 적용하는 방법 (0) | 2023.11.22 |
[AWS] S3(Simple Storeage Service) 개념 / 권한 및 정책 설정 (0) | 2023.10.19 |