1. 개요

AssumeRole에 대해 알아보자.


2. 시나리오

2.1. user_a

user_a에 sts:AssumeRole을 할당한다.

2.2. user_b

user_b에 EC2FullAccess를 할당한다.

2.3. user_c

user_c에 IAMFullAccess를 할당한다.

2.4.  Role Change

  1. user_a는 EC2 목록 볼 수 없음
  2. role_b로 Role Change 후 EC2 목록 볼 수 있음
  3. role_c로 Role Change 후 IAM 목록 볼 수 있음

3. 로그

3.1. CloudTrail 로그

출처: https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/cloudtrail-integration.html

{
  "eventVersion": "1.05",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE",
    "arn": "arn:aws:iam::444455556666:user/JaneDoe",
    "accountId": "444455556666",
    "accessKeyId": "AKIAI44QH8DHBEXAMPLE",
    "userName": "JaneDoe",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "2014-07-15T21:39:40Z"
      }
    },
    "invokedBy": "signin.amazonaws.com"
  },
  "eventTime": "2014-07-15T21:40:14Z",
  "eventSource": "iam.amazonaws.com",
  "eventName": "GetUserPolicy",
  "awsRegion": "us-east-2",
  "sourceIPAddress": "signin.amazonaws.com",
  "userAgent": "signin.amazonaws.com",
  "requestParameters": {
    "userName": "JaneDoe",
    "policyName": "ReadOnlyAccess-JaneDoe-201407151307"
  },
  "responseElements": null,
  "requestID": "9EXAMPLE-0c68-11e4-a24e-d5e16EXAMPLE",
  "eventID": "cEXAMPLE-127e-4632-980d-505a4EXAMPLE"
} 
  • JaneDoe 사용자의 requestParameters이라는 이름의 사용자 정책을 가져오는 요청
  • JaneDoe라는 이름의 IAM 사용자가 2014년 7월 15일 오후 9시 40분(UTC)에 요청함
  • userAgent 요소를 통해 요청이 AWS Management 콘솔에서 이루어짐