전체 보기
🍀

루트 사용자 vs IAM 사용자 (with 빌링 콘솔에 대한 액세스 권한 부여)

작성일자
2024/01/05
태그
DIARY_DEVELOP
프로젝트
NOI
책 종류
1 more property
빌링 콘솔 access denied 이슈를 해결하며 삽질하다가
루트 사용자와 iam 사용자에 대해 공부할 수 있었다.
빌링 콘솔 액세스 권한 부여는 access denied 이슈 해결과는 상관 없는 문제였지만,
그래도 그 과정이 후에 도움이 되리라 생각해 정리해둔다.
access denied 이슈는 organization을 사용 중인데 마스터 계정이 아니라서 발생한 문제였다.
그럼 빌링 콘솔에 대한 액세스 권한 부여하는 건 왜했냐라고 물으신다면, 사고 과정이 아래와 같았다.
빌링 콘솔 보려 했더니 access denied 뜨면서 아래 링크가 뜸
→ iam 써보긴 했는데 잘 모르는데.. 이게 왜 뜨지?
→ iam에 빌링 콘솔을 볼 수 있는 권한을 부여할 수 있다고?
→ 당장 해보자!
(ㅋㅋㅋㅋ 애초에 루트 사용자로 로그인한 계정에서도 빌링 콘솔이 안 보이는 상황에서, 그 계정에서 만든 iam 사용자 역시 빌링 콘솔을 볼 수 없단건 뒤늦게 깨달았다)

루트 사용자 vs iam 사용자

결과적으로 이 삽질은 문제 해결에 직접적인 도움을 주진 못했지만,
iam 사용자, 루트 사용자, 루트 계정, 마스터 계정. 이렇게 네 가지 개념을 구분하는 데엔 도움을 주었다.
루트 사용자 vs iam 사용자
루트 사용자 : 특정 aws 계정의 최고 관리자를 의미한다. 일반적으로 모든 리소스와 서비스에 대한 완전한 엑세스 권한을 가진다.
iam 사용자 : aws 리소스에 대한 엑세스를 가진 개별 사용자를 의미한다. 각 사용자들에게 필요한 권한을 세밀하게 조정할 수 있다.
루트 계정 vs 루트 사용자
루트 계정(==마스터 계정) : organization에서 최상위 관리 계정을 의미한다. 조직 내 모든 멤버 계정에 대한 관리 권한을 가진다.
루트 사용자로 로그인한 계정 : 특정 aws 계정의 최고 관리자 권한을 가진 상태를 의미한다. 이때 계정은 마스터 계정일 수도 있고, 멤버 계정일 수도 있다. 일반적으로 루트 사용자는 모든 엑세스에 대한 권한을 갖지만, organization의 멤버 계정의 루트 사용자는 제한된 권한을 가질 수도 있다.
iam 사용자로 로그인한 계정 : 특정 aws 계정의 지정된 사용자 권한을 가진 상태를 의미한다. iam 사용자는 루트 사용자와 달리 리소스에 대해 제한된 권한을 가질 수 있다.

빌링 콘솔에 대한 엑세스 권한 부여

이어서, 내가 적용했던 빌링 콘솔에 대한 액세스 권한 부여 과정을 적겠다.
이 과정은 iam 사용자를 따로 만들어서 iam 사용자에게 빌링 콘솔에 대한 권한을 부여하고 싶을 때 사용하면 된다.
일반적으로 루트 사용자로 모든 작업을 하는 것보단,
각 권한을 나눠 가진 iam 사용자로 작업하는 게 권장되기 때문이다.
참고로 제공되는 aws 가이드는 한국어로 지원되지 않다.
빠르게 적용하고 싶으신 분들을 위해 과정을 한국어와 gui 사진들로 정리해두겠다.
현재 루트 사용자로 로그인한 계정에서 결제 정보가 잘 보인다면,
아래 과정을 그대로 진행했을 때 정상적으로 iam 계정에 권한이 잘 부여될 것이다.

1. 계정의 결제 정보에 대한 IAM 액세스 활성화

오른쪽 상단의 계정을 클릭해,
계정 페이지에 들어간 후 스크롤을 쭈욱 내려서
결제 정보에 대한 IAM 사용자 및 역할 엑세스를 편집해 활성화 상태로 만든다.

2. IAM 사용자 생성

IAM 콘솔의 탐색 창에서 사용자 탭에 들어가 사용자 생성을 클릭하고,
아래 내용 대로 입력 후 다음을 누른다.
사용자 이름 : 자유롭게 결정
AWS Management Console에 대한 사용자 액세스 제공 : 체크 활성화
콘솔 암호 : 자동 생성된 암호
사용자는 다음 로그인 시 암호를 생성해야 합니다 - 권장 : 체크 비활성화
권한 설정 페이지에서 그룹 생성을 클릭하고,
아래 내용대로 입력 후 사용자 그룹 생성을 클릭한다.
권한 설정 페이지에서 아래와 같이 선택한 후 다음을 클릭해 사용자를 생성한다.
사용자 생성 후 나오는 암호 검색 페이지에서 csv 파일을 다운로드 해두고, 사용자 목록으로 돌아가기를 클릭한다.

3. 역할 생성해 IAM 사용자에게 결제 콘솔에 대한 엑세스 권한 부여

IAM 콘솔의 탐색 창에서 사용자 탭에 들어가 앞서 생성한 사용자를 클릭 후,
해당 사용자의 arn을 복사해둔다.
IAM 콘솔의 탐색 창에서 역할 탭에 들어가 역할 생성을 클릭 후,
아래 내용 대로 입력 후 다음을 누른다.
신뢰할 수 있는 엔터티 선택 : 사용자 지정 신뢰 정책
STS에 대한 작업 추가 : AssumeRole 체크 활성화
보안 주체 추가 : 유형으로 IAM 사용자 선택해 복사해둔 arn 값 입력
역할 이름 자유롭게 입력 후 역할 생성을 클릭한다.
(나는 역할 이름으로 TempBillingAccess 을 붙여줬다)

4. IAM 사용자로 로그인 해 엑세스 허용되었는지 테스트

아까 다운 받은 csv 파일의 콘솔 로그인 URL 로 접속해 사용자 이름과 암호를 입력하여 로그인한다.
오른쪽 상단의 계정을 클릭 후, 역할 전환을 클릭한다.
계정ID와 아까 만든 역할 이름을 입력한다.
계정ID는 twitlock@111122223333 꼴에서 111122223333 부분을 의미한다.