CloudTrail 다이제스트 파일 구조 - AWS CloudTrail

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CloudTrail 다이제스트 파일 구조

각 다이제스트 파일은 마지막 시간 중 Amazon S3 버킷에 전달된 로그 파일 이름, 이러한 로그 파일의 해시 값 및 이전 다이제스트 파일의 디지털 서명을 포함합니다. 현재 다이제스트 파일의 서명은 다이제스트 파일 객체의 메타데이터 속성에 저장됩니다. 디지털 서명 및 해시는 로그 파일과 다이제스트 파일 자체의 무결성을 검증하는 데 사용됩니다.

다이제스트 파일 위치

다이제스트 파일은 이 구문을 따른 Amazon S3 버킷 위치로 전송됩니다.

s3://amzn-s3-demo-bucket/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/ region/digest-end-year/digest-end-month/digest-end-date/ aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz
참고

조직 추적의 경우 다음과 같이 버킷 위치에도 조직 단위 ID가 포함됩니다.

s3://amzn-s3-demo-bucket/optional-prefix/AWSLogs/O-ID/aws-account-id/CloudTrail-Digest/ region/digest-end-year/digest-end-month/digest-end-date/ aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz

샘플 다이제스트 파일 내용

다음 예제 다이제스트 파일에는 로그에 대한 정보가 들어 있습니다. CloudTrail

{ "awsAccountId": "111122223333", "digestStartTime": "2015-08-17T14:01:31Z", "digestEndTime": "2015-08-17T15:01:31Z", "digestS3Bucket": "amzn-s3-demo-bucket", "digestS3Object": "AWSLogs/111122223333/CloudTrail-Digest/us-east-2/2015/08/17/111122223333_CloudTrail-Digest_us-east-2_your-trail-name_us-east-2_20150817T150131Z.json.gz", "digestPublicKeyFingerprint": "31e8b5433410dfb61a9dc45cc65b22ff", "digestSignatureAlgorithm": "SHA256withRSA", "newestEventTime": "2015-08-17T14:52:27Z", "oldestEventTime": "2015-08-17T14:42:27Z", "previousDigestS3Bucket": "amzn-s3-demo-bucket", "previousDigestS3Object": "AWSLogs/111122223333/CloudTrail-Digest/us-east-2/2015/08/17/111122223333_CloudTrail-Digest_us-east-2_your-trail-name_us-east-2_20150817T140131Z.json.gz", "previousDigestHashValue": "97fb791cf91ffc440d274f8190dbdd9aa09c34432aba82739df18b6d3c13df2d", "previousDigestHashAlgorithm": "SHA-256", "previousDigestSignature": "50887ccffad4c002b97caa37cc9dc626e3c680207d41d27fa5835458e066e0d3652fc4dfc30937e4d5f4cc7f796e7a258fb50a43ac427f2237f6e505d4efaf373d156e15e3b68dea9f58111d395b62628d6bd367a9024d2183b5c5f6e19466d3a996b92df705bc997b8a0e13430f241d733cf95df4e41bb6c304c3f58363043572ea57a27085639ce187e679c0d81c7519b1184fa77fb7ab0b0e40a32dace6e1eefc3995c5ae182da49b62b26398cebb52a2201a6387b75b89c83e5570bcb9bba6c34a80f2f00a1c6ebe07d1ff149eccd812dc805bb3eeff6657db32a6cb48d2d096404eb76181877bc6ebb8cd0b23f823200155b2fd8848d428e46e8456328a", "logFiles": [ { "s3Bucket": "amzn-s3-demo-bucket", "s3Object": "AWSLogs/111122223333/CloudTrail/us-east-2/2015/08/17/111122223333_CloudTrail_us-east-2_20150817T1445Z_9nYN7gp2eWAJHIfT.json.gz", "hashValue": "9bb6196fc6b84d6f075a56548feca262bd99ba3c2de41b618e5b6e22c1fc71f6", "hashAlgorithm": "SHA-256", "newestEventTime": "2015-08-17T14:52:27Z", "oldestEventTime": "2015-08-17T14:42:27Z" } ] }

다이제스트 파일 필드 설명

다이제스트 파일의 각 필드에 대한 설명은 다음과 같습니다.

awsAccountId

다이제스트 파일이 전달된 AWS 계정 ID.

digestStartTime

로그 파일이 전달된 UTC 시간을 기준으로 하여 다이제스트 파일이 적용되는 시작 시간 범위입니다. CloudTrail 이는 시간 범위가 [Ta, Tb]인 경우 다이제스트가 Ta와 Tb 사이에 고객에게 전달된 모든 로그 파일을 포함한다는 것을 의미합니다.

digestEndTime

로그 파일이 전달된 UTC 시간을 기준으로 하여 다이제스트 파일이 적용되는 종료 시간 범위입니다. CloudTrail 이는 시간 범위가 [Ta, Tb]인 경우 다이제스트가 Ta와 Tb 사이에 고객에게 전달된 모든 로그 파일을 포함한다는 것을 의미합니다.

digestS3Bucket

현재 다이제스트 파일이 전송된 Amazon S3 버킷 이름입니다.

digestS3Object

현재 다이제스트 파일의 Amazon S3 객체 키(즉, Amazon S3 버킷 위치)입니다. 문자열의 처음 두 리전은 다이제스트 파일이 전달된 리전을 표시합니다. 마지막 리전(your-trail-name 다음)은 추적의 홈 리전입니다. 홈 리전은 추적이 생성된 리전입니다. 다중 리전 추적의 경우는 다이제스트 파일이 전달된 리전과 달라질 수 있습니다.

newestEventTime

다이제스트의 로그 파일에 있는 모든 이벤트 중 가장 최근 이벤트가 발생한 UTC 시간입니다.

oldestEventTime

다이제스트의 로그 파일에 있는 모든 이벤트 중에서 가장 오래된 이벤트가 발생한 UTC 시간입니다.

참고

다이제스트 파일이 늦게 전달된 경우 oldestEventTime 값은 digestStartTime 값 이전이 됩니다.

previousDigestS3Bucket

이전 다이제스트 파일이 전송된 Amazon S3 버킷입니다.

previousDigestS3Object

이전 다이제스트 파일의 Amazon S3 객체 키(즉, Amazon S3 버킷 위치)입니다.

previousDigestHashValue

압축되지 않은 이전 다이제스트 파일의 16진수 인코딩 해시 값입니다.

previousDigestHashAlgorithm

이전 다이제스트 파일 해싱에 사용된 해시 알고리즘 이름입니다.

publicKeyFingerprint

이 다이제스트 파일을 서명하는 데 사용된 프라이빗 키와 일치하는 퍼블릭 키의 16진수 인코딩 지문입니다. AWS CLI 또는 를 사용하여 다이제스트 파일에 해당하는 시간 범위의 공개 키를 검색할 수 있습니다. CloudTrail API 반환된 퍼블릭 키 중에서 이 값과 일치하는 지문을 다이제스트 파일 검증에 사용할 수 있습니다. 다이제스트 파일의 퍼블릭 키를 검색하는 방법에 대한 자세한 내용은 AWS CLI list-public-keys명령 또는 를 참조하십시오. CloudTrail ListPublicKeysAPI

참고

CloudTrail 지역별로 다른 개인/공개 키 쌍을 사용합니다. 각 다이제스트 파일은 해당 리전에 고유한 프라이빗 키로 서명합니다. 그러므로 특정 리전에서 다이제스트 파일을 검증할 때 해당 퍼블릭 키의 동일한 리전에서 확인해야 합니다.

digestSignatureAlgorithm

다이제스트 파일에 서명하는 데 사용하는 알고리즘입니다.

logFiles.s3Bucket

로그 파일에 대한 Amazon S3 버킷 이름입니다.

logFiles.s3Object

현재 로그 파일의 Amazon S3 객체 키입니다.

logFiles.newestEventTime

로그 UTC 파일에 있는 가장 최근 이벤트가 발생한 시간. 또한 이 시간은 로그 파일 자체의 타임스탬프에도 대응합니다.

logFiles.oldestEventTime

로그 파일에서 가장 오래된 이벤트가 발생한 UTC 시간입니다.

logFiles.hashValue

압축되지 않은 로그 파일 콘텐츠의 16진수 인코딩 해시 값입니다.

logFiles.hashAlgorithm

로그 파일 해싱에 사용하는 해시 알고리즘입니다.

시작 다이제스트 파일

로그 파일 무결성 검증이 시작되면 시작 다이제스트 파일이 생성됩니다. 또한 시작 다이제스트 파일은 로그 파일 무결성 검증이 다시 시작될 때도 생성됩니다(비활성화 후 로그 파일 무결성 검증을 다시 활성화하거나 로깅 중지 후 검증이 활성화된 로깅 다시 시작). 시작 다이제스트 파일에서 이전 다이제스트 파일과 관련된 다음 필드는 null이 됩니다.

  • previousDigestS3Bucket

  • previousDigestS3Object

  • previousDigestHashValue

  • previousDigestHashAlgorithm

  • previousDigestSignature

'빈' 다이제스트 파일

CloudTrail 다이제스트 파일이 나타내는 1시간 동안 계정에서 API 활동이 없었던 경우에도 다이제스트 파일을 전송합니다. 이는 다이제스트 파일이 보고한 한 시간 동안 로그 파일이 전달되지 않았다고 주장해야 할 때 유용할 수 있습니다.

다음 예는 활동이 발생하지 API 않은 한 시간을 기록한 다이제스트 파일의 내용을 보여줍니다. 참고로 다이제스트 파일 콘텐츠의 끝에서 logFiles:[ ] 필드는 비어 있습니다.

{ "awsAccountId": "111122223333", "digestStartTime": "2015-08-20T17:01:31Z", "digestEndTime": "2015-08-20T18:01:31Z", "digestS3Bucket": "amzn-s3-demo-bucket", "digestS3Object": "AWSLogs/111122223333/CloudTrail-Digest/us-east-2/2015/08/20/111122223333_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150820T180131Z.json.gz", "digestPublicKeyFingerprint": "31e8b5433410dfb61a9dc45cc65b22ff", "digestSignatureAlgorithm": "SHA256withRSA", "newestEventTime": null, "oldestEventTime": null, "previousDigestS3Bucket": "amzn-s3-demo-bucket", "previousDigestS3Object": "AWSLogs/111122223333/CloudTrail-Digest/us-east-2/2015/08/20/111122223333_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150820T170131Z.json.gz", "previousDigestHashValue": "ed96c4bac9eaa8fe9716ca0e515da51938be651b1db31d781956416a9d05cdfa", "previousDigestHashAlgorithm": "SHA-256", "previousDigestSignature": "82705525fb0fe7f919f9434e5b7138cb41793c776c7414f3520c0242902daa8cc8286b29263d2627f2f259471c745b1654af76e2073264b2510fd45236b3aea4d80c0e8e6455223d7bd54ff80af0edf22a5f14fa856626daec919f0591479aa4f213787ba1e1076328dcf8ff624e03a977fa5612dcf58594c590fd8c1c5b48bddf43fc84ecc00b41bedd0ff7f293c3e2de8dcdc78f98b03e17577f5822ba842399d69eb79921c0429773509520e08c8b518702d987dfbb3a4e5d8c5f17673ce1f989dfff82d4becf24e452f20d3bcac94ad50131f93e57f10155536acb54c60efbe9d57228c2b930bc6082b2318e3ccd36834a8e835b8d112dbf32145f445c11", "logFiles": [] }

다이제스트 파일 서명

다이제스트 파일의 서명 정보는 Amazon S3 다이제스트 파일 객체의 두 객체 메타데이터 속성에 있습니다. 각 다이제스트 파일에는 다음 메타데이터 항목이 있습니다.

  • x-amz-meta-signature

    다이제스트 파일 서명의 16진수 인코딩 값입니다. 다음은 서명의 예입니다.

    3be472336fa2989ef34de1b3c1bf851f59eb030eaff3e2fb6600a082a23f4c6a82966565b994f9de4a5989d053d9d15d20fc5c43e66358652d93326550a4acc5c5f541bb52e9b455897ab723bd7cbabfe963a406a41d600f3658f7a3135e5ed9fcae7b79bb5857d1e5eb78fcce8595ce0ade2f3ad1d9f2d62be7bc4660d83166ce24586489b7da9ee9883eaf0b9efabb5dd3cbba565cc4aab5c9c46c9fa7e9cda310afcc5e8adcd9e48d0597ec5f8174a52c3bebb3e845eeb1d18904fbf4cc14cd117080098e10022ddf55e017a9431446acad8560de0ba1e477af9f8a3048bc6196350adad0cc0cb4ab99b5e7c9944437a3c674a038009220684ced7be07b4f 28f1cc237f372264a51b611c01da429565def703539f4e71009051769469231bc22232fa260df02740047af532229885ea2b0e95ecd353326b7104941e0cbddb076a391f1fcf2923c19565f4841770a78723451aeb732ff1b6162dc40e601fc6720bc5325987942ebd817783b322f0ac77698523bf742fdea7aa44f4911b3101221b7e1233387f16a52077610498f4a1254211258e37da0fb4cb207aef593b4c1baa13674e85acc52046b3adb889e63331a66abac5de7e42ffdd6952987c31ae871650e130bd2e63bfe145b22bbd39ea192210f6df64d49b888a321e02d3fc4cf126accae30d2857ccd6b2286a7c9feba6c35c44161b24147d645e6ca26844ba 05d3ffcb5d2dd5dc28f8bb5b7993938e8a5f912a82b448a367eccb2ec0f198ba71e23eb0b97278cf65f3c8d1e652c6de33a22ca8428821ffc95bf8b726ba9f37cfbc20c54dc5bd6159bdea1c4d951b68cb8e0528852c55bb0c5e499ea60560f7c2bb3af7f694407da863a2594f7a2f2838cb09254afbaf8003587746e719a0437f85eeffae534f283f3837eb939a9bccc3c71573500661245891051231b580ac92d9e0e68c6f47ad38975f493e2c40e7f303353c4adc7d563ef1e875977afac2e085f0c824045d998c9543d8a3293ad3c063b7a109d0bfd84b0b1e3f72c4f057e744e6a2cf9cc97727b08584f44bfa47799c5072b60f0b619aea88a17de585e9
  • x-amz-meta-signature-algorithm

    다음은 다이제스트 서명을 생성하는 데 사용되는 알고리즘의 예제 값입니다.

    SHA256withRSA

다이제스트 파일 체인화

각 다이제스트 파일에 이전 다이제스트 파일에 대한 참조가 포함되므로 와 같은 유효성 검사 도구에서 다이제스트 파일이 삭제되었는지 여부를 AWS CLI 감지할 수 있는 “체인”이 가능합니다. 또한 가장 최근 것부터 먼저 시작해 연속적으로 조사할 수 있도록 지정한 시간 범위에서 다이제스트 파일을 허용합니다.

참고

로그 파일 무결성 검증을 비활성화하면 한 시간 후에 다이제스트 파일 체인이 끊어집니다. CloudTrail 로그 파일 무결성 검증이 비활성화된 기간 동안 전달된 로그 파일에 대해서는 다이제스트 파일을 만들지 않습니다. 예를 들어, 1월 1일 정오에 로그 파일 무결성 검증을 활성화하고, 1월 2일 정오에 비활성화하며, 1월 10일 정오에 다시 활성화하는 경우 1월 2일 정오부터 1월 10일 정오까지 전달된 로그 파일에 대한 다이제스트 파일이 생성되지 않습니다. 이는 CloudTrail 로깅을 중지하거나 트레일을 삭제할 때마다 동일하게 적용됩니다.

트레일의 S3 버킷 정책이 잘못 구성되었거나 예상치 못한 서비스 중단이 발생하는 경우 전체 또는 CloudTrail 일부 다이제스트 파일을 받지 못할 수 있습니다. 트레일에 다이제스트 전송 오류가 있는지 확인하려면 get-trail-status명령을 실행하고 파라미터에 오류가 있는지 확인하십시오. LatestDigestDeliveryError 전송 문제가 해결된 후 (예: 버킷 정책 수정) 누락된 다이제스트 파일을 다시 전송하려고 시도합니다. CloudTrail 재배송 기간 중에는 다이제스트 파일이 순서에 맞지 않게 전달되어 체인이 일시적으로 끊어진 것처럼 보일 수 있습니다.

로깅이 중지되거나 트레일이 삭제되면 최종 다이제스트 파일이 CloudTrail 전달됩니다. 이 다이제스트 파일은 최대 및 StopLogging 이벤트를 비롯한 이벤트를 다루는 남은 로그 파일에 대한 정보를 포함합니다.