(응용) AWS - Advanced IAM

AWS에 대해 알아봅니다.

정민호정민호

1. IAM

AWS 내에서 유저를 만들고 Role과 Policy 관리

3가지 IAM Policy 유형

  • Inline

  • Managed

  • Customer

1.1. Inline Policies VS Managed Policies VS Custom Policies

1.1.1. Inline

유저, 그룹에 직접 policy를 심어줌

  • 1:1 관계

  • 다른 유저나 그룹에 inline policy 적용x

  • 유저나 그룹 삭제시 inline policy 역시 삭제됨

1.1.2. Managed

AWS에서 생성되고 관리되어지는 Policies

  • 우리가 직접 Policy 만들 필요 없음

  • Managed Policy는 다수의 유저와 그룹에 적용 가능

  • Managed Policy는 수정 및 삭제 불가

    • 예) AmazonDynamoDBFullAccess

1.1.3. Customer

우리들이 직접 새로운 Policy를 만들 수 있음

  • 기존에 존재하는 Managed Policy 사용

  • 원하는 요구사항에 맞게 수정하고 사용

  • Managed Policy에서 원하는 Policy가 없을 때 사용

1.2. Web Identity Federation(WIF)

  • 아마존, 구글 등을 통하여 유저들에게 AWS 접근 권한제공

  • 인증코드(토큰) 사용

    • 예) 이중 인증(Two-Factor Authentication)

1.3. Cognito

Web Identity Federation(WIF) 기능을 제공

1.3.1. Cognito 주요 특징

  • 회원가입, 로그인 기능(Guest로 로그인 가능)

  • 어프리케이션과 Web Provider간의 중재자 역할

  • 다양한 기기로 부터 사용자 정보를 동기화함 → 확장성

  • 사용자 Credentials을 자동으로 관리

1.3.2. Cognito Use Cases

Facebook, Google과 같은 소셜미디어를 통한 WIF

  • 사용자 → Facebook → Token → Cognito (AWS credentials) → Token → 사용자 → AWS(EC2, S3, DanamoDB)

1.4. Cognito User Pool

  • 모바일, 웹 어플리케이션의 회원가입과 로그인 기능을 관리하는 곳

  • 유저는 User Pool을 거쳐 직접 로그인을 할 수 있음

  • Json Web Token(JWT)

    • 사용자 ←→ User Pool ←(JWT Token)→ Facebook

      • 사용자 ←(AWS credentials)→ Identity Pool

        • JWT Token과 AWS credentials을 일시적으로 교환

        • Identity Pool은 우리들이 유저들을 위해 고유한 Identity를 만들수 있고, 소셜미디어를 통해 인증 가능하게 해주는 기능을 제공(User Pool로 부터 받은 JWT Token과 교환해주는 중추적인 역할)

          • 유저는 생성된 Identity를 가지고 AWS credentials을 얻을 수 있는데 제약이 필요함(AWS에 대한 모든 권한을 제공할순 없으니까!).

          • 이러한 커스텀 설정을 제공하는게 Identity Pool.

    • AWS(EC2, S3, RDS) ←→ 사용자

      • AWS credentials 을 통해 AWS에 접근