특정 IAM 사용자, 역할 및 AWS 액세스 키의 계정 활동을 모니터링하려면 어떻게 해야 하나요?

4분 분량
0

특정 AWS ID 및 액세스 관리(IAM) ID의 계정 활동을 보고 모니터링하고 싶습니다.

간략한 설명

특정 IAM ID의 계정 활동을 보고 모니터링하려면 다음 AWS 서비스 및 기능 중 하나를 사용할 수 있습니다.

해결 방법

CloudTrail 이벤트 기록 사용하기

참고: CloudTrail을 사용하여 지난 90일 동안의 이벤트 기록을 검색할 수 있습니다.

1.    CloudTrail 콘솔을 엽니다.

2.    이벤트 기록을 선택합니다.

  1. 필터에서 드롭다운 목록을 선택합니다. 그런 다음 사용자 이름을 선택합니다.

참고: AWS 액세스 키로 필터링할 수도 있습니다.

  1. 사용자 또는 역할 이름 입력 텍스트 상자에 IAM 사용자의 "친숙한 이름" 또는 가정된 역할 세션 이름을 입력합니다.

참고: 특정 세션의 역할 세션 이름은 역할이 가정될 때 세션 이름으로 제공되는 값입니다. "사용자 이름" 필드의 값은 IAM 역할을 사용하여 만든 호출에 대한 역할 이름이 되지 않습니다.

  1. 시간 범위에 원하는 시간 범위를 입력합니다. 그런 다음 적용을 선택합니다.

  2. 이벤트 시간에서 이벤트를 확장합니다. 그런 다음 이벤트 보기를 선택합니다.

userIdentity 요소에는 요청을 한 IAM ID의 유형과 제공된 보안 인증 정보에 대한 세부 정보가 포함되어 있습니다.

API 호출에 사용된 IAM 사용자 보안 인증 정보를 포함하는 예제 사용자 신원 요소

참고: Alice를 검색 중인 사용자 이름으로 바꿉니다. IAM 사용자의 "친숙한 이름" 또는 가정된 역할의 "역할 세션 이름"을 입력합니다. 특정 세션의 역할 세션 이름은 역할이 가정될 때 세션 이름으로 제공되는 값입니다. IAM 역할을 사용하여 호출하는 경우, userName 필드의 값은 역할 이름이 아닙니다.

"userIdentity": {
  "type": "IAMUser",
  "principalId": "AIDAJ45Q7YFFAREXAMPLE",
  "arn": "arn:aws:iam::123456789012:user/Alice",
  "accountId": "123456789012",
  "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
  "userName": "Alice"
}

임시 보안 인증 정보를 포함하는 사용자 ID 요소 예제

"userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName",
    "arn": "arn:aws:sts::123456789012:assumed-role/RoleToBeAssumed/AssumedRoleSessionName",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "20131102T010628Z"
      },
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROAIDPPEZS35WEXAMPLE",
        "arn": "arn:aws:iam::123456789012:role/RoleToBeAssumed",
        "accountId": "123456789012",
        "userName": "RoleToBeAssumed"
      }
   }
}

참고: CloudTrail 이벤트 기록은 이벤트를 필터링하기 위해 가정된 역할 세션 이름을 사용자 이름으로 사용합니다.

API 호출은 IAM 역할을 가정하여 얻은 임시 보안 인증 정보를 사용합니다. 이 요소에는 보안 인증 정보를 얻기 위해 가정된 역할에 대한 추가 세부 정보가 포함되어 있습니다.

참고: 사용자 활동이 표시되지 않으면 AWS 서비스가 지원되는지, CloudTrail에 의해 API 이벤트가 기록되는지 확인하세요. 자세한 내용은 CloudTrail에 대한 AWS 서비스 항목을 참조하세요.

CloudWatch 로그 인사이트를 사용하려면

참고: CloudWatch 로그 인사이트를 사용하여 지난 90일 이후의 API 기록을 검색할 수 있습니다. Amazon CloudWatch Logs에 로깅하도록 트레일을 생성하고 구성해야 합니다. 자세한 내용은 트레일 만들기를 참조하세요.

1.    CloudWatch 콘솔을 엽니다.

2.    로그를 선택합니다.

  1. 로그 그룹에서 로그 그룹을 선택합니다.

  2. 검색 로그 그룹을 선택합니다.

  3. 필터 이벤트에 사용자의 API 호출 또는 특정 API 작업을 검색하기 위한 쿼리를 입력합니다. 그런 다음 새로 고침 아이콘을 선택합니다.

사용자의 API 호출에 대한 로그를 검색하기 위한 쿼리 예제

참고: Alice를 검색 중인 사용자 이름으로 바꿉니다. IAM 사용자의 "친숙한 이름" 또는 가정된 역할의 "역할 세션 이름"을 입력합니다. 특정 세션의 역할 세션 이름은 역할이 가정될 때 세션 이름으로 제공되는 값입니다. IAM 역할을 사용하여 호출하는 경우, userName 필드의 값은 역할 이름이 아닙니다.

{ $.userIdentity.userName = "Alice" }

특정 API 작업에 대한 로그를 검색하기 위한 쿼리 예제

참고: 다음 예제 쿼리는 DescribeInstances API 작업을 검색합니다.

{ ($.eventName = "DescribeInstances") && ($.requestParameters.userName = "Alice"  ) }

자세한 내용은 CloudWatch 로그 인사이트 쿼리 구문을 참조하세요.

Athena 쿼리를 사용하려면

참고: Athena를 사용하여 지난 90일 동안의 CloudTrail 로그를 쿼리할 수 있습니다.

1.    Athena 콘솔을 엽니다.

2.    쿼리 편집기를 선택합니다.

  1. 사용 사례에 따라 다음 예제 쿼리 중 하나를 입력합니다. 그런 다음 쿼리 실행을 선택합니다.

특정 IAM 사용자가 수행한 모든 CloudTrail 이벤트를 반환하는 예제 쿼리

중요: athena-tableAthena 테이블 이름으로 바꿉니다. Alice를 계정 활동을 보려는 IAM 사용자로 바꿉니다.

SELECT *
FROM athena-table
WHERE useridentity.type = 'IAMUser'
AND useridentity.username LIKE 'Alice';

IAM 역할에서 수행한 모든 API 활동을 필터링하는 쿼리 예제

참고: 역할 이름을 IAM 역할 이름으로 바꾸세요.

SELECT *
FROM athena-table
WHERE useridentity.sessionContext.sessionissuer.arn LIKE '%role-name%'
AND useridentity.sessionContext.sessionissuer.type = 'Role';

역할과 일치하는 쿼리 예제 ARN

SELECT *
FROM athena-table
WHERE useridentity.sessionContext.sessionissuer.arn = 'arn:aws:iam::account-id123456789:role/role-name'
AND useridentity.sessionContext.sessionissuer.type = 'Role';

IAM 액세스 키 ID를 사용하는 모든 활동을 필터링하는 쿼리 예제

SELECT eventTime, eventName, userIdentity.principalId,eventSource
FROM athena-table
WHERE useridentity.accesskeyid like 'AKIAIOSFODNN7EXAMPLE'

관련 정보

Amazon EC2 인스턴스에 대한 API 호출을 추적하기 위해 AWS CloudTrail을 사용하려면 어떻게 해야 하나요?

CloudTrail을 사용하여 내 AWS 계정에서 보안 그룹 또는 리소스가 변경되었는지 확인하려면 어떻게 해야 하나요?

AWS 공식
AWS 공식업데이트됨 2년 전