특정 IAM 사용자, 역할 및 AWS 액세스 키의 계정 활동을 모니터링하려면 어떻게 해야 하나요?
특정 AWS ID 및 액세스 관리(IAM) ID의 계정 활동을 보고 모니터링하고 싶습니다.
간략한 설명
특정 IAM ID의 계정 활동을 보고 모니터링하려면 다음 AWS 서비스 및 기능 중 하나를 사용할 수 있습니다.
해결 방법
CloudTrail 이벤트 기록 사용하기
참고: CloudTrail을 사용하여 지난 90일 동안의 이벤트 기록을 검색할 수 있습니다.
1. CloudTrail 콘솔을 엽니다.
2. 이벤트 기록을 선택합니다.
- 필터에서 드롭다운 목록을 선택합니다. 그런 다음 사용자 이름을 선택합니다.
참고: AWS 액세스 키로 필터링할 수도 있습니다.
- 사용자 또는 역할 이름 입력 텍스트 상자에 IAM 사용자의 "친숙한 이름" 또는 가정된 역할 세션 이름을 입력합니다.
참고: 특정 세션의 역할 세션 이름은 역할이 가정될 때 세션 이름으로 제공되는 값입니다. "사용자 이름" 필드의 값은 IAM 역할을 사용하여 만든 호출에 대한 역할 이름이 되지 않습니다.
-
시간 범위에 원하는 시간 범위를 입력합니다. 그런 다음 적용을 선택합니다.
-
이벤트 시간에서 이벤트를 확장합니다. 그런 다음 이벤트 보기를 선택합니다.
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. 로그를 선택합니다.
-
로그 그룹에서 로그 그룹을 선택합니다.
-
검색 로그 그룹을 선택합니다.
-
필터 이벤트에 사용자의 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. 쿼리 편집기를 선택합니다.
- 사용 사례에 따라 다음 예제 쿼리 중 하나를 입력합니다. 그런 다음 쿼리 실행을 선택합니다.
특정 IAM 사용자가 수행한 모든 CloudTrail 이벤트를 반환하는 예제 쿼리
중요: athena-table을 Athena 테이블 이름으로 바꿉니다. 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 계정에서 보안 그룹 또는 리소스가 변경되었는지 확인하려면 어떻게 해야 하나요?
관련 콘텐츠
- 질문됨 일 년 전lg...
- 질문됨 일 년 전lg...
- 질문됨 14일 전lg...
- 질문됨 일 년 전lg...
- 질문됨 한 달 전lg...
- AWS 공식업데이트됨 6달 전
- AWS 공식업데이트됨 7달 전
- AWS 공식업데이트됨 6달 전