AWS 계정
계정 생성하면 루트 유저와 기본 리소스(기본 VPC) 등이 생성됨
AWS 계정 아이디가 부여되고 - 숫자로 / 추후에 AWS 계정에 별명 지정 가능하다 - 문자로
AWS 는 기본적으로 루트 사용자와 IAM 사용자로 나눌 수 있는데
루트 유저
생성한 계정의 모든 권한을 자동으로 가지고 있으며, 생성 시 만든 이메일 주소로 로그인 해준다. (빌링-계산 권한은 루트 유저가 유일하게 가지고 있다)
탈취 당했을 때 복구가 힘들기 때문에, 관리 목적 외엔 사용을 자제하고 MFA(일회용 패스워드, Multi Factor Authentication) 설정을 권장.
AWS api 호출이 불가하다 -> AccessKey, Secret AccessKey 부여 X
IAM 유저 (Identity and Access Management)
만들 때 주어진 아이디로 로그인하고, 기본 권한이 없으므로 따로 권한 부여가 필요하다.
사람이 아닌 어플리케이션 등의 가상 주체를 대표할 수 있음
AWS api 를 호출 할 수 있다 -> AccessKey 는 아이디 / Secret AccessKey 는 비밀번호의 개념
AWS 관리를 제외한 모든 작업은 관리용 IAM 유저를 만들어서 사용해준다.
* 권한 부여 시 루트 유저와 같이 모든 권한(AdminAccess 로 지정한 경우)을 가질 순 있지만 빌링 관련 권한은 루트 유저 직접 해야한다. 혹여 루트 유저가 빌링을 허용해주면 IAM 유저도 빌링에 접근이 가능해진다.
AWS 루트 계정을 우선 만든다
-> 루트 유저로 로그인 하고, 본인 계정을 클릭해준다. (리전 변경도)
-> 보안 자격 증명에 접속
-> MFA 설정을 해준다 - 구글 OTP 가 필요
여기서 MFA 디바이스 할당(활성화)를 실행하면,
여기서 구글 OTP(구글 Authenticator) 를 사용하여 큐알을 읽어준다.
여기서 보이는 숫자를 MFA 코드를 입력해주면 된다.
** 여기서 QR코드는 한번 생성 후 다시 볼 수 없기 때문에 미리 저장해두는 것이 좋다고 한다.
-> 계정 별명을 생성하려면 IAM 대시보드에 접속해서 우측에 보이는 계정 별칭 부분에 생성을 누른다.
일단은 별칭을 저렇게 해두었다.
-> 관리 권한을 가진 IAM 유저를 생성하려면 대시보드의 사용자탭에서 사용자 추가를 해준다.
AWS Management Console 에 대한 사용자 액세스 권한을 제공하기로 하고, IAM 사용자를 생성을 클릭하면
콘솔 암호를 지정해줄 수 있다.
권한은 직접 정책 연결을 선택해주고
AdministratorAccess 를 선택해준다.
이는 AWS 의 모든 권한(빌링을 제외한) 을 주는 권한이다.
이렇게 확인해줄 수 있고, .csv 파일로 다운로드 받아주는 게 좋다.
-> 사용자 목록에서 방금 만들어준 유저를 눌러 IAM 유저에서 MFA 설정
보안 자격 증명 탭에서 MFA를 설정해줄 수 있다.
이렇게 되면 끝 - 이때 QR은 굳이 저장해줄 필요는 없다.
-> 루트 유저는 로그아웃 후, IAM 유저로 로그인해준다
잘 로그인 된다.
내 루트사용자는 test-9405 인 것이고, 루트 사용자의 IAM 사용자는 admin 인 것이다.
이때 빌링(결제)를 제외한 모든 권한을 허용했기 때문에 루트 사용자와 거의 동일한 기능을 하는데... 결제 대시보드에 접근 시 아래와 같은 화면을 볼 수 있다.
IAM 이란?
글로벌 서비스임을 잊지 말자.
Identity and Access Management 의 약자로 AWS 서비스와 리소스에 대한 액세스를 안전하게 관리할 수 있다.
그리고 AWS 사용자 및 그룹을 만들고 관리하며 AWS 리소스에 대한 액세스를 허용 및 거부할 수 있다.
- AWS 어카운트 관리 및 리소스 사용자 서비스의 권한을 제어
- 서비스 사용을 위한 인증 정보를 부여
- 사용자 생성 및 관리 및 계정의 보안
- 다른 계정과의 리소스 공유
- 계정에 별명 부여 가능
IAM의 구성
사용자 | 그룹 | 정책 | 역할 |
실제 AWS 를 사용하는 사람 혹은 어플리케이션을 의미 | 사용자의 집합 그룹에 속한 사용자는 그룹에 부여된 권한을 행사 |
사용자와 그룹, 역할이 무엇을 할 수 있는지에 관한 문서 JSON 형식 |
AWS 리소스에 부여하여 AWS 리소스가 무엇을 할 수 있는지 정의 다른 사용자가 역할을 부여 받아 사용 다른 자격에 대해 신뢰 관계를 구축 가능하며 역할을 바꾸어 가며 서비스를 사용 가능하다. |
IAM 의 권한 검증
사용자가 S3를 사용하고 싶다면
정책이 핵심
IAM 자격 증명 보고서
- 계정의 모든 사용자와 암호, 액세스 키, MFA 장치 등의 증명 상태를 나열하는 보고서를 생성하고 다운로드 가능
- 4시간엔 1번씩 생성 가능
- AWS 콘솔, CLI, API에서 생성 요청 및 다운로드 가능
암호 | 액세스키 | 기타 |
-암호 활성화 여부 -마지막으로 사용된 시간 -마지막으로 변경된 시간 -언제 변경되어야 하는지 |
-액세스키 활성화 여부 -마지막으로 사용된 시간 -마지막으로 변경된 시간 -어떤 서비스에 마지막으로 사용되었는지 |
-MFA 사용 여부 -사용자 생성 시간 |
IAM 모범 사용 예
- 루트 사용자는 사용하지 않기
- 불필요한 사용자는 만들지 않기
- 가능하면 그룹과 정책을 사용하기
- 최소한의 권한만을 허용하는 습관 들이기 - Principle of least privilege
- MFA 활성화하기 - 루트 유저와 admin IAM 유저는 필수!
- AccessKey 대신 역할을 활용하기
- IAM 자격 증명 보고서를 활용하여 계정 상태를 확인해주기
'Ect. > AWS' 카테고리의 다른 글
AWS 기초 강좌 3 - EC2 기초 1~3 (0) | 2023.07.11 |
---|---|
AWS 기초 강좌 1 (0) | 2023.06.30 |