를 CloudTrail 사용하여 로그 파일 무결성 검증 AWS CLI - AWS CloudTrail

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

를 CloudTrail 사용하여 로그 파일 무결성 검증 AWS CLI

로 로그를 검증하려면 CloudTrail validate-logs 명령을 사용합니다. AWS Command Line Interface이 명령에서는 검증을 수행하기 위해 Amazon S3 버킷에 전달된 다이제스트 파일을 사용합니다. 다이제스트 파일에 대한 내용은 CloudTrail 다이제스트 파일 구조를 참조하세요.

를 AWS CLI 사용하면 다음과 같은 유형의 변경을 감지할 수 있습니다.

  • CloudTrail 로그 파일 수정 또는 삭제

  • CloudTrail 다이제스트 파일 수정 또는 삭제

  • 위 두 파일 수정 또는 삭제

참고

는 AWS CLI 다이제스트 파일에서 참조하는 로그 파일만 검증합니다. 자세한 내용은 에서 특정 파일을 배달했는지 여부 확인 CloudTrail 단원을 참조하십시오.

사전 조건

를 사용하여 로그 파일 무결성을 AWS CLI검증하려면 다음 조건을 충족해야 합니다.

  • 에 온라인으로 연결되어 있어야 AWS합니다.

  • 다이제스트 및 로그 파일을 포함하는 Amazon S3 버킷에 대한 읽기 액세스 권한이 있어야 합니다.

  • 다이제스트 및 로그 파일은 파일이 CloudTrail 전송된 원래 Amazon S3 위치에서 이동되지 않았어야 합니다.

참고

로컬 디스크로 다운로드한 로그 파일은 AWS CLI로 검증할 수 없습니다. 자체 검증 도구 생성에 대한 내용은 CloudTrail 로그 파일 무결성 검증의 사용자 지정 구현 단원을 참조하세요.

validate-logs

구문

다음은 validate-logs에 대한 구문입니다. 선택 사항 파라미터는 대괄호로 표시됩니다.

aws cloudtrail validate-logs --trail-arn <trailARN> --start-time <start-time> [--end-time <end-time>] [--s3-bucket <amzn-s3-demo-bucket>] [--s3-prefix <prefix>] [--account-id <account-id>] [--verbose]

참고

validate-logs 명령은 리전별로 다릅니다. 특정 AWS 리전로그의 유효성을 검사하려면 --region 글로벌 옵션을 지정해야 합니다.

옵션

validate-logs에 대한 명령줄 옵션은 다음과 같습니다. --trail-arn--start-time 옵션이 필요합니다. --account-id 옵션은 조직 추적에 추가로 필요합니다.

--start-time

지정된 UTC 타임스탬프 값 또는 그 이후에 전달된 로그 파일을 검증하도록 지정합니다. 예: 2015-01-08T05:21:42Z.

--end-time

선택적으로 지정된 UTC 타임스탬프 값 또는 그 이전에 전송된 로그 파일의 유효성을 검사하도록 지정합니다. 기본값은 현재 UTC 시간 () 입니다. Date.now() 예: 2015-01-08T12:31:41Z.

참고

지정된 시간 범위의 경우 validate-logs 명령은 해당 다이제스트 파일에서 참조하는 로그 파일만 확인합니다. Amazon S3 버킷의 다른 로그 파일은 확인되지 않습니다. 자세한 내용은 에서 특정 파일을 배달했는지 여부 확인 CloudTrail 단원을 참조하세요.

--s3-bucket

다이제스트 파일이 저장되는 Amazon S3 버킷을 선택적으로 지정합니다. 버킷 이름이 지정되지 않은 경우 는 를 호출하여 AWS CLI 해당 이름을 DescribeTrails() 검색합니다.

--s3-prefix

다이제스트 파일이 저장되는 Amazon S3 접두사를 선택적으로 지정합니다. 지정되지 않은 경우 AWS CLI 는 를 호출하여 DescribeTrails() 검색합니다.

참고

현재 접두사가 지정한 시간 범위 도중에 사용된 접두사와 다를 때에만 이 옵션을 사용해야 합니다.

--account-id

로그 검증을 위한 계정을 선택적으로 지정합니다. 이 매개 변수는 조직 내 특정 계정의 로그를 검증하기 위한 조직 추적에 필요합니다.

--trail-arn

검증할 트레일의 Amazon 리소스 이름 (ARN) 을 지정합니다. ARN트레일의 형식은 다음과 같습니다.

arn:aws:cloudtrail:us-east-2:111111111111:trail/MyTrailName
참고

트레일의 트레일을 ARN 가져오려면 실행 전에 describe-trails 명령을 사용할 수 validate-logs 있습니다.

지정한 시간 범위 내에 로그 파일이 두 개 이상의 버킷에 전송된 ARN 경우, 트레일 외에 버킷 이름과 접두사를 지정하고, 검증을 버킷 중 하나의 로그 파일로만 제한할 수 있습니다.

--verbose

지정된 시간 범위에서 모든 로그 또는 다이제스트 파일의 선택적인 출력 검증 정보입니다. 출력은 파일의 변경, 수정 또는 삭제 여부를 나타냅니다. 비 상세 표시 모드(기본값)에서 확인이 실패한 경우에만 정보가 반환됩니다.

다음 예는 지정된 시작 시간에서 현재까지 현재 추적에 대해 구성된 Amazon S3 버킷을 사용하고 상세 표시 출력을 지정하여 로그 파일을 검증합니다.

aws cloudtrail validate-logs --start-time 2015-08-27T00:00:00Z --end-time 2015-08-28T00:00:00Z --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/my-trail-name --verbose

validate-logs 작동 방식

validate-logs 명령은 지정된 시간 범위에서 가장 최근 다이제스트 파일을 검증함으로써 시작합니다. 먼저 다이제스트 파일이 속해 있는 위치에서 다운로드되었음을 검증합니다. 즉, S3 위치에서 다이제스트 파일을 CLI df1 다운로드하면 validate-logs가 p1 이를 확인합니다. p1 == df1.digestS3Bucket + '/' + df1.digestS3Object

다이제스트 파일의 서명이 유효하다면, 각 로그의 해시 값이 다이제스트 파일에서 참조되고 있는지를 검증합니다. 그런 다음 명령은 시간을 거슬러 올라가 이전 다이제스트 파일과 참조되는 로그 파일을 연속으로 검증합니다. 이는 start-time에 지정된 값에 도달하거나 다이제스트 체인이 종료될 때까지 계속됩니다. 다이제스트 파일이 누락되었거나 올바르지 않은 경우 검증할 수 없는 시간 범위는 출력에 위치합니다.

검증 결과

검증 결과는 다음과 같은 형식의 요약 머리글로 시작합니다.

Validating log files for trail trail_ARN between time_stamp and time_stamp

기본 출력의 각 라인에는 다음과 같은 형식으로 하나의 다이제스트 또는 로그 파일의 검증 결과가 포함됩니다.

<Digest file | Log file> <S3 path> <Validation Message>

다음 표는 로그 및 다이제스트 파일에 가능한 검증 메시지를 설명합니다.

파일 형식 검증 메시지 설명
Digest file valid 다이제스트 파일 서명이 유효합니다. 참조하는 로그 파일을 확인할 수 있습니다. 이 메시지는 상세 표시 모드에만 포함됩니다.
Digest file INVALID: has been moved from its original location 다이제스트 파일을 검색한 S3 버킷 및 S3 객체가 다이제스트 파일 자체에 기록된 S3 버킷 또는 S3 객체 위치와 일치하지 않습니다.
Digest file INVALID: invalid format 다이제스트 파일 형식이 잘못되었습니다. 다이제스트 파일이 나타내는 시간 범위에 해당하는 로그 파일을 검증할 수 없습니다.
Digest file INVALID: not found 다이제스트 파일을 찾을 수 없습니다. 다이제스트 파일이 나타내는 시간 범위에 해당하는 로그 파일을 검증할 수 없습니다.
Digest file INVALID: public key not found for fingerprint fingerprint 다이제스트 파일에서 기록된 지문에 해당하는 퍼블릭 키를 찾을 수 없습니다. 다이제스트 파일을 검증할 수 없습니다.
Digest file INVALID: signature verification failed 다이제스트 파일 서명이 유효하지 않습니다. 다이제스트 파일이 유효하지 않기 때문에 다이제스트 파일이 참조하는 로그 파일을 검증할 수 없으며 다이제스트 파일의 활동에 대해 어떠한 주장도 할 수 없습니다. API
Digest file INVALID: Unable to load PKCS #1 key with fingerprint fingerprint 지정된 핑거프린트가 있는 PKCS #1 형식의 DER 인코딩된 공개 키를 로드할 수 없기 때문에 다이제스트 파일의 유효성을 검사할 수 없습니다.
Log file valid 로그 파일이 검증되었으며 전달 이후 수정되지 않았습니다. 이 메시지는 상세 표시 모드에만 포함됩니다.
Log file INVALID: hash value doesn't match 로그 파일에 대한 해시가 일치하지 않습니다. 가 전달한 후 로그 파일이 수정되었습니다. CloudTrail
Log file INVALID: invalid format 로그 파일 형식이 잘못되었습니다. 로그 파일을 검증할 수 없습니다.
Log file INVALID: not found 로그 파일이 없어 검증할 수 없습니다.

출력에는 반환된 결과에 관한 요약 정보가 포함됩니다.

출력 예

상세 표시

다음 예제 validate-logs 명령은 --verbose 플래그를 사용해 다음을 따르는 샘플 출력을 생성합니다. [...]는 샘플 출력이 축약되었다는 것을 나타냅니다.

aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name --start-time 2015-08-31T22:00:00Z --end-time 2015-09-01T19:17:29Z --verbose
Validating log files for trail arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name between 2015-08-31T22:00:00Z and 2015-09-01T19:17:29Z Digest file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2015/09/01/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T201728Z.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1925Z_WZZw1RymnjCRjxXc.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1915Z_POuvV87nu6pfAV2W.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1930Z_l2QgXhAKVm1QXiIA.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1920Z_eQJteBBrfpBCqOqw.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1950Z_9g5A6qlR2B5KaRdq.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1920Z_i4DNCC12BuXd6Ru7.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1915Z_Sg5caf2RH6Jdx0EJ.json.gz valid Digest file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2015/09/01/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T191728Z.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1910Z_YYSFiuFQk4nrtnEW.json.gz valid [...] Log file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail/us-east-2/2015/09/01/144218288521_CloudTrail_us-east-2_20150901T1055Z_0Sfy6m9f6iBzmoPF.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail/us-east-2/2015/09/01/144218288521_CloudTrail_us-east-2_20150901T1040Z_lLa3QzVLpOed7igR.json.gz valid Digest file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T101728Z.json.gz INVALID: signature verification failed Digest file s3://amzn-s3-demo-bucketAWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T091728Z.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail/us-east-2/2015/09/01/144218288521_CloudTrail_us-east-2_20150901T0830Z_eaFvO3dwHo4NCqqc.json.gz valid Digest file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T081728Z.json.gz valid Digest file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T071728Z.json.gz valid [...] Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2245Z_mbJkEO5kNcDnVhGh.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2225Z_IQ6kXy8sKU03RSPr.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2230Z_eRPVRTxHQ5498ROA.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2255Z_IlWawYZGvTWB5vYN.json.gz valid Digest file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2015/08/31/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150831T221728Z.json.gz valid Results requested for 2015-08-31T22:00:00Z to 2015-09-01T19:17:29Z Results found for 2015-08-31T22:17:28Z to 2015-09-01T20:17:28Z: 22/23 digest files valid, 1/23 digest files INVALID 63/63 log files valid

비 상세 표시

다음 예제 validate-logs 명령은 --verbose 플래그를 사용하지 않습니다. 다음 샘플 출력에서 하나의 오류가 발견되었습니다. 헤더, 오류 및 요약 정보만이 반환됩니다.

aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name --start-time 2015-08-31T22:00:00Z --end-time 2015-09-01T19:17:29Z
Validating log files for trail arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name between 2015-08-31T22:00:00Z and 2015-09-01T19:17:29Z Digest file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T101728Z.json.gz INVALID: signature verification failed Results requested for 2015-08-31T22:00:00Z to 2015-09-01T19:17:29Z Results found for 2015-08-31T22:17:28Z to 2015-09-01T20:17:28Z: 22/23 digest files valid, 1/23 digest files INVALID 63/63 log files valid

에서 특정 파일을 배달했는지 여부 확인 CloudTrail

버킷의 특정 파일이 보낸 사람인지 확인하려면 해당 파일이 포함된 기간 동안 세부 정보 표시 validate-logs 모드로 실행합니다. CloudTrail 의 validate-logs 출력에 파일이 나타나면 파일을 보낸 사람이 파일을 전달한 것입니다. CloudTrail