[AWS] Account, IAM, IAM User, Billing Account 등

Coalalala·2025년 12월 7일

AWS

목록 보기
1/1

개념이 헷갈려서 쓰는 글..
중구난방 주의...

AWS Account(계정)

정의 : AWS에서 사용자의 모든 리소스, 사용자 및 계정 설정을 담는 최상위 컨테이너.

AWS서비스를 사용하는 데 대한 모든 비용이 청구되는 기본 단위입니다.
일반적으로 보안, 비용관리, 규정 준수 등을 위해 워크로드(예: 개발, 테스트, 운영 환경)별로 여러개의 계정을 분리하여 사용하는 것이 모범사례입니다.

Root User(루트 사용자) : 계정을 생성할 때 사용한 이메일 주소와 암호로 로그인하는 최초이자 강력한 사용자 ID입니다.
AWS계정의 모든 서비스 및 리소스에 대한 무제한 액세스 권한을 가집니다.
보안을 위해 일상적인 작업에는 사용하지 않고, 계정 설정 변경, 결제 정보 수정 등 꼭 필요한 관리 작업에만 사용하는 것이 권장됩니다.

IAM User

정의 : AWS 내에서 특정 개인이나 애플리케이션을 나타내는 개체입니다.

루트사용자를 대체하여 일상적인 작업에 사용하도록 생성됩니다.
IAM 사용자 자체는 기본적으로 아무 권한도 갖고있지 않습니다.
정책을 연결하여 구체적인 권한을 부여받습니다.(예: S3 버킷에 파일을 업로드할 수 있는 권한, EC2 인스턴스를 시작할 수 있는 권한)
하나의 AWS계정은 여러 IAM 사용자를 가질 수 있습니다.


Root Account는 test-user를 생성합니다.
test-user에 부여할 권한은 IAM으로 지정할 수 있습니다.


AWS Organization for Account & Multiple Acount setup

AWS Assume Role


Assume Role이란, 신분증 교환을 의미합니다.

  • 원본 신분(Identity): Test-user라는 IAM 사용자입니다. 이 사용자는 AWS에 접속할 수 있는 고유한 신분을 갖고 있습니다.
  • 새로운 신분(Role) : S3-Full-Access-Role이라는 IAM 역할입니다. 이 역할은 AmazonS3FullAccess라는 구체적인 권한을 갖고 이습니다.
  • Assume과정 : test-user가 이 역할을 맡음(Assume)으로써, 자신의 기존 권한을 잠시 버리고 역할(Role)이 가진 새로운 권한을 임시적으로 얻게 됩니다.

따라서 그림상의 test-usersms S3-Full-Access-Role을 임시로 부여받아, "S3 버킷에 full access"를 수행할 수 있게 됩니다.

그렇다면 Assume Role을 이용하는 이유는 뭘까요?
1. 권한 분리 및 최소 권한 원칙
사용자가 평소에는 최소한의 권한만 가지고 있다가, 필요할 때만 강력한 역할(Role)을 맡아 작업을 수행하고, 작업이 끝나면 권한이 자동으로 만료됩니다.
2. 계정 간 접근 (Cross-Account Access)
가장 일반적인 사용 사례입니다. 한 AWS 계정의 IAM 사용자가 다른 AWS 계정의 리소스에 접근해야 할 때, 그 계정에 정의된 Role을 Assume하여 접근합니다.
3. SSO(ID 연동)의 기본 원리
고객님의 회사 AD 계정이 AWS에 접속할 때, 실제로는 AD 인증 후 AWS Role을 Assume하여 임시 권한을 받고 콘솔에 접근하는 것입니다.
4. 보안 강화
임시 자격 증명은 정해진 시간이 지나면 자동으로 만료됩니다. IAM 사용자처럼 영구적인 Access Key/Secret Key를 사용하는 것보다 훨씬 안전합니다.

profile
완벽하지 않아도 기록합니다~!

0개의 댓글