AWS CloudTrail로 IAM Access Analyzer API 호출 로깅

AWS CloudTrail로 IAM Access Analyzer API 호출 로깅

IAM Access Analyzer는 사용자·역할·AWS 서비스가 IAM Access Analyzer에서 수행한 작업의 기록을 제공하는 AWS CloudTrail과 통합되어 있어요. CloudTrail은 IAM Access Analyzer에 대한 모든 API 호출을 이벤트로 캡처합니다. 캡처된 호출에는 IAM Access Analyzer 콘솔 호출과 IAM Access Analyzer API 작업에 대한 코드 호출이 포함됩니다.

출처: 문서

본문

트레일을 만들면 IAM Access Analyzer 이벤트를 포함한 CloudTrail 이벤트를 Amazon S3 버킷으로 지속적으로 전달할 수 있어요. 트레일을 구성하지 않아도 CloudTrail 콘솔의 이벤트 기록(Event history)에서 가장 최근 이벤트를 볼 수 있습니다.

CloudTrail이 수집한 정보로 IAM Access Analyzer에 대해 이루어진 요청, 요청이 이루어진 IP 주소, 요청한 사람, 시각, 추가 세부 정보를 확인할 수 있습니다.

CloudTrail에 대해 더 알아보려면 AWS CloudTrail 사용자 가이드를 참고하세요.

CloudTrail의 IAM Access Analyzer 정보

CloudTrail은 AWS 계정을 만들 때 자동으로 활성화됩니다. IAM Access Analyzer에서 활동이 발생하면 그 활동은 Event history의 다른 AWS 서비스 이벤트와 함께 CloudTrail 이벤트로 기록됩니다. AWS 계정의 최근 이벤트를 확인·검색·다운로드할 수 있습니다. 자세한 내용은 CloudTrail 이벤트 기록으로 이벤트 보기를 참고하세요.

IAM Access Analyzer 이벤트를 포함해 AWS 계정 이벤트의 지속적인 기록을 원한다면 트레일을 만드세요. 트레일은 CloudTrail이 로그 파일을 Amazon S3 버킷으로 전달할 수 있게 해 줍니다. 기본적으로 콘솔에서 트레일을 만들면 모든 AWS 리전에 적용됩니다. 트레일은 AWS 파티션의 모든 리전 이벤트를 기록하고 지정한 Amazon S3 버킷으로 로그 파일을 전달해요. 또한 CloudTrail 로그에 수집된 이벤트 데이터를 추가로 분석·조치하기 위해 다른 AWS 서비스를 구성할 수 있습니다. 자세한 내용은 다음을 참고하세요.

모든 IAM Access Analyzer 작업은 CloudTrail에 로깅되며 IAM Access Analyzer API 참조에 문서화되어 있습니다. 예를 들어 CreateAnalyzer, CreateArchiveRule, ListFindings 작업에 대한 호출은 CloudTrail 로그 파일에 항목을 생성합니다.

모든 이벤트·로그 항목에는 요청을 생성한 사람에 대한 정보가 포함됩니다. 자격 증명 정보는 다음을 판단하는 데 도움을 줍니다.

  • 요청이 루트 또는 AWS Identity and Access Management(IAM) 사용자 자격 증명으로 이루어졌는지 여부
  • 요청이 역할·페더레이션 사용자의 임시 보안 자격 증명으로 이루어졌는지 여부
  • 요청이 다른 AWS 서비스에 의해 이루어졌는지 여부

자세한 내용은 CloudTrail userIdentity 요소를 참고하세요.

IAM Access Analyzer 로그 파일 항목 이해

트레일은 이벤트를 지정한 Amazon S3 버킷에 로그 파일로 전달할 수 있게 하는 구성입니다. CloudTrail 로그 파일에는 하나 이상의 로그 항목이 포함됩니다. 이벤트는 모든 원본의 단일 요청을 나타내며 요청된 작업, 작업의 날짜·시각, 요청 파라미터 등에 대한 정보를 포함합니다. CloudTrail 로그 파일은 공개 API 호출의 순서 있는 스택 트레이스가 아니므로 특정 순서로 나타나지 않습니다.

다음 예시는 Alice-tempcreds라는 수임된 역할 세션이 "June 14, 2021"에 수행한 CreateAnalyzer 작업을 보여 주는 CloudTrail 로그 항목입니다. 역할 세션은 admin-tempcreds라는 역할이 발급했습니다.

{
  "eventVersion": "1.05",
  "userIdentity":   {
    "type": "AssumedRole",
    "principalId": "AROAIBKEVSQ6C2EXAMPLE:Alice-tempcreds",
    "arn": "arn:aws:sts::111122223333:assumed-role/admin-tempcreds/Alice-tempcreds",
    "accountId": "111122223333",
    "accessKeyId": "«redacted:AKIA…»",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "true",
        "creationDate": "2021-06-14T22:54:20Z"
      },
      "sessionIssuer": {
        "type": "Role",
        "principalId": "«redacted:AKIA…»",
        "arn": "arn:aws:iam::111122223333:role/admin-tempcreds",
        "accountId": "111122223333",
        "userName": "admin-tempcreds"
      },
     "webIdFederationData": {},
    }
  },
  "eventTime": "2021-06-14T22:57:36Z",
  "eventSource": "access-analyzer.amazonaws.com",
  "eventName": "CreateAnalyzer",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "198.51.100.179",
  "userAgent": "aws-sdk-java/1.12.79 Linux/5.4.141-78.230 OpenJDK_64-Bit_Server_VM/25.302-b08 java/1.8.0_302 vendor/Oracle_Corporation cfg/retry-mode/standard",
  "requestParameters": {
    "analyzerName": "test",
    "type": "ACCOUNT",
    "clientToken": "11111111-abcd-2222-abcd-222222222222",
        "tags": {
            "tagkey1": "tagvalue1"
        }
  },
  "responseElements": {
    "arn": "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/test"
  },
  "requestID": "22222222-dcba-4444-dcba-333333333333",
  "eventID": "33333333-bcde-5555-bcde-444444444444",
  "readOnly": false,
  "eventType": "AwsApiCall",
  "managementEvent": true,
  "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}

더 알아보기 (Learn more)