기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 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
betweentime_stamp
andtime_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