A. Cloud 사용자 관리

1. root 사용자란?

 

  • AWS 계정을 처음 생성할 때 해당 계정의 모든 AWS 리소스에 액세스 권한이 있는 ID
  • 이메일 주소와 암호를 이용하여 인증
  • 일상적인 작업 및 관리 작업에도 루트 사용자의 사용을 권장하지 않음
  • 오직 계정 및 과금 관리 작업 수행 시에만 root 사용자 사용 권장

 

2.  IAM (Identity and Access Management) 이란?  

 

  • AWS 서비스와 리소스에 대한 액세스 통제
  • AWS 사용자 및 그룹을 만들고 관리하며 리소스에 대한 액세스 허용 및 거부 가능
  • AWS 관리를 위한 그룹, 사용자 및 역할(Role) 생성 가능

 

 

2-1. IAM 사용자(User)

  • 개체, 서비스 및 리소스와 상호작용하기 위해 개체를 사용하는 사람 또는 서비스
  • 각 사용자는 자신의 고유 콘솔 액세스 암호를 가짐 
  • 계정의 리소스를 사용하기 위한 개별 액세스 키 생성

 2-2. IAM 역할(Role)

  • 사용자 /서비스가 필요한 리소스에 액세스하기 위한 권한 집합 설정
  • 권한을 IAM 사용자 또는 그룹에 연결하지 않음
  • 권한을 역할에 연결하고 역할을 사용자, 서비스에 위임
  • "유효기간"을 가지고 자격증명 발급, 자격증명 노출에 대한 위협을 최소화할 수 있음

 2-3. IAM 정책(Policy)

  • IAM 정책은 AWS 서비스에 대한 액세스나 제어 / DB나 애플리케이션에 대한 접근 제어가 아님.

(예시) 자신의 IAM 사용자에 대한 액세스 키 생성 권한

항목 설명
Version 정책 언어 버전
Statement 정책 요소를 담는 컨테이너
Sid(선택 옵션) 설명
Effect 허용 또는 거부
Action 정책이 허용하거나 거부할 작업
Resource 적용될 리소스 목록
Condition(선택 옵션) 조건 (Source IP 등등)

 

- 권한 분석(Statement)을 통해 자원(Resource)이 허가/거부(Effect)된 작업(Action) 권한 부여

 

B.  ARN(Amazon Resource Name)

    • AWS 리소스를 고유하게 식별하는 식별자
    • RDS 태그 및 API 호출과 같은 모든 AWS에서 리소스를 명시해야할 경우 사용
항목 설명 예시
Partition 리소스가 존재하는 파티션 aws, aws-cn
Service 서비스 네임스페이스 iam, s3
Region 리전 us-west-1
Account-id 리소스를 소유하는 AWS 계정의 ID 123456789012
Rescource-id 리소스 식별자 user/Bob
arn:aws:iam:us-west-1:123456789012:user/Bob
arn:aws:iam:us-west-1:123456789012:user/*

 

 

C. 인증정보 

1. IAM 인증 정보

  • API Key, SSH Pubkey, AWS CLI & SDK 등 서비스 키를 포함
  • 개발 실수, 환경 설정 미흡 등으로 인해 공개된 저장소에 저장되지 않도록 유의
  • IAM 사용자는 고유한 액세스 키를 자신의 권한에 한하여 교체 가능
    • 하지만, root 사용자는 모든 IAM 사용자의 키 관리에 관여 가능
  • 환경변수, ~/.aws/credentials 에 저장하여 프로파일 등록 후 사용

 

IAM 인증 정보 유출 경로

스크린샷, 코드 형상관리 파일(.git, .env) 관리 미흡, 불필요한 공개 설정 등 다양

 

 

IAM 인증 정보 유출 경로 (예시)

 

 

IAM 인증 정보 유출 시 위협

  • 공격자는 키 획득 이후 추가 공격 수행
  • 인스턴스 조작 -> 시작, 종료, 원격 접속
  • 타 사용자 생성, 권한 부여, 로그 삭제