본문 바로가기

Certificate/AWS SAA-C03

[AWS-SAA] 01. AWS IAM 요약

1강. IAM 소개

  • IAM은 사용자, 그룹으로 구분할 수 있다.
    • 그룹 내에서는 다른 그룹을 포함할 수 없다.
    • 사용자는 여러 그룹 안에 속할 수 있다.
  • RBAC(Role Base Access Control) 기반이고, 최소 접근 권한만 부여할 것을 권장한다.
  • JSON을 통해서 권한을 제어할 수 있다.

 

2강. IAM 사용자 및 그룹 실습

  • Root 유저는 가급적으로 사용하지 않고 IAM 사용자를 생성 후 최소 접근 권한만 부여하는 게 Best Practice 이다.
  • 그룹에 권한을 부여하고, 그룹에 속한 사용자가 그룹으로부터 권한을 상속받는 방식으로 사용하는 것이 Best Practice 이다.
  • 계정 별칭을 활용해 로그인 URL을 변경할 수 있다.

 

3강. IAM 정책

  • 그룹 별로 정책을 할당해 관리하는 것이 일반적이고, 특정 IAM 객체에 바로 정책을 할당하는 경우 인라인 정책이라고 부른다.
  • Inline 정책의 경우 객체에 종속적이어서 관리하기 어렵다.
  • JSON으로 구조화된 IAM 정책은 아래와 같다.

  • Effect : Allow / Deny 중 택1
  • Principal : 정책이 적용될 사용자, 계정, 역할
  • Action : Effect에 기반해 정책이 적용될 APIs
  • Resource : 적용될 Action의 AWS 리소스 목록

 

4강. IAM 실습

  • IAM 권한 정책을 사용자 정의해서 사용할 수 있다. 이때 사용되는 JSON은 Visual 편집기를 통해 간단하게 편집할 수 있다.
  • 모든 권한은 API 호출과 관련이 있다. 권한의 범위는 결국 API 호출 범위이다.

 

5강. IAM MFA 개요 - 6강. IAM MFA 실습

  • AWS에서는 IAM 객체들을 보호하기 위해서 크게 2가지의 정책을 제공한다.
  1. 암호 정책 : 암호 만료 기간, 암호 복잡도 설정, 최초 로그인 후 암호 변경 정책 등
  2. MFA 정책 : MFA 하드웨어, 앱을 활용한 Virtual MFA 디바이스 등을 통해서 다중 인증을 수행
    • 개념 : 내가 알고 있는 것(암호)과 내가 가지고 있는 것(디바이스) → 이중 인증

 

7강. AWS 액세스 키 CLI 및 SDK - 9강. AWS CLI 설치

  • AWS에 접근할 수 있는 방법은 총 3가지가 있다. → AWS 관리 콘솔, AWS CLI, AWS SDK이다.
  • AWS 사용자들은 AWS 액세스 키를 사용해 AWS에 접근한다.
    • Access Key의 ID는 유저 이름에 해당하고, Secret Access Key는 암호에 해당한다.
  • AWS CLI를 통해 CLI 환경에서 AWS(Public API)를 제어할 수 있다.
  • AWS SDK는 애플리케이션에 내장돼 프로그래밍 시 AWS API 호출을 단순화해 개발자의 부담을 줄여준다.

 

10강. AWS CLI 실습

  • AWS CLI 프로그램을 설치하면 aws configure 명령어를 통해 AWS CLI를 사용할 IAM 객체를 등록할 수 있다.

 

11강. AWS Cloudshell 실습

  • AWS Cloudshell은 AWS CLI 프로그램 없이 브라우저에서 AWS에서 무료로 제공하는 가상화된 터미널이다.
    • 하지만 글로벌 서비스가 아니므로 특정 리전들에서만 동작한다.
  • Cloudshell를 활용하여 파일 업로드/다운로드가 가능하고 재접속 해도 홈 디렉터리의 파일들이 보존된다.

 

12강. AWS 서비스에 대한 IAM Role - 13강. IAM Role 실습

  • 특정 AWS 서비스에 IAM Role를 부여해 서비스가 AWS API에 접근할 수 있도록 구현할 수 있다.

 

14강. IAM 보안도구

  • IAM 보안도구는 크게 2가지로 구분할 수 있다.
  • Credentials Report (Account-Level) : 계정에 생성되어 있는 사용자와 다양한 자격 증명 유형에 대한 상태를 리포트로 제공한다.
  • Access Advisor (User-Level) : 액세스 어드바이저는 특정 서비스에 대한 유저의 마지막 접근 시간을 알려준다. 이를 활용해 사용자에게 최소 권한만 부여할 수 있다.

 

15강. IAM 보안도구 실습

  • Credentials Report : 암호 정책, 액세스 키, MFA 등 계정 내에 사용자에 대한 리포트이다.
  • IAM Access Advisor : 사용자가 많이 사용하지 않는 서비스들을 확인할 수 있다.
  • 요약
    • 사용자가 정상적인 암호 정책, 액세스 키, MFA 관리 확인 → Credentials Report
    • 서비스 접근에 대한 사용자의 권한 제어 → Access Advisor

 

16강. IAM 모범 사례

  1. AWS 계정 설정 이외에는 루트 계정으로 접속 금지
  2. 물리적 사용자 1명당 1명의 AWS 사용자를 생성
  3. 권한은 사용자가 아니라 그룹에 부여하고, 필요에 따라 사용자를 그룹에 할당하는 방식으로 구성
  4. 강력한 암호 정책(암호 만료 기간, 암호 복잡도 등) 사용
  5. MFA 암호 사용 권장
  6. Roles를 사용해 AWS 서비스에 권한 부여
  7. 프로그래밍적 접근(CLI/SDK)을 위해 액세스 키 사용
  8. 최소 권한 부여를 위해 IAM Access Advisor를 사용 및 Credentials Report를 활용해 사용자 계정 관리
  9. IAM User의 계정 정보나 액세스 키는 절대 공유 금지

 

17강. IAM 요약

  • Users: mapped to a physical user, has a password for AWS Console
  • Groups: contains users only
  • Policies: JSON document that outlines permissions for users or groups
  • Roles: for EC2 instances or AWS services
  • Security: MFA + Password Policy
  • AWS CLI: manage your AWS services using the command-line
  • AWS SDK: manage your AWS services using a programming language(application)
  • Access Keys: access AWS using the CLI or SDK
  • Audit: IAM Credential Reports & IAM Access Advisor