명령줄을 사용하여 쿼리 결과 검증
명령줄을 사용하여 쿼리 결과 및 서명 파일의 무결성을 검증할 수 있습니다.
사전 조건
명령줄을 사용하여 쿼리 결과 무결성을 검증하려면 다음 조건을 충족해야 합니다.
-
AWS에 대한 온라인 연결이 있어야 합니다.
-
서명 및 쿼리 결과 파일을 포함하는 Amazon S3 버킷에 대한 읽기 액세스 권한이 있어야 합니다.
-
OpenSSL
이 설치되어 있어야 합니다.
쿼리 결과 검증
명령줄을 사용하여 쿼리 결과를 검증하려면 다음 절차를 따르세요.
-
aws S3 sync
명령을 사용하여 S3 버킷에서 쿼리 결과 및 서명 파일을 다운로드합니다. 쿼리 결과 및 서명 파일이 전송된 S3 URI와 S3 버킷 리전을 지정해야 합니다.aws s3 sync s3://
s3-bucket-name
/optional-prefix
/AWSLogs/aws-account-ID
/CloudTrail-Lake/Query/year
/month
/date
/query-ID
/ ./ --regionregion-name
-
openssl dgst
명령을 사용하여 각 쿼리 결과 파일의 sha256 해시 값을 계산한 다음 이 값을 서명 파일의 해시 값과 비교합니다. 서명 파일에 포함된 필드에 대한 자세한 내용은 CloudTrail 서명 파일 구조 섹션을 참조하세요.openssl dgst -sha256 result_
number
.csv.gz -
printf
명령을 사용하여 서명을 확인하는 데 사용하는 퍼블릭 키 PEM 파일을 생성합니다.printf -- "-----BEGIN RSA PUBLIC KEY-----\n%s\n-----END RSA PUBLIC KEY-----" "
public_key_content
" | fold -w64 >> public_key_pkcs1.pem -
openssl rsa
명령을 사용하여 퍼블릭 키 PEM 파일을 로드 가능한 OpenSSL 형식으로 변환합니다.openssl rsa -RSAPublicKey_in -in public_key_pkcs1.pem -pubout -out public_key_x509.pem
-
printf
및xxd
명령을 사용하여 서명 이진 파일을 새로 생성합니다.hash_signature
를 서명 파일의hashSignature
값으로 바꾸고signature
를 새로 생성하는 서명 파일의 이름으로 바꿉니다.printf "
hash_signature
" >>signature
xxd -r -psignature
signature
.bin -
hash_list
를 만들고printf
명령을 사용하여 파일에 출력합니다.hash_list
는 공백으로 구분된 각 쿼리 결과 파일의files.fileHashValue
값을 포함하는 문자열입니다. 각 쿼리 결과 파일의files.fileHashValue
는 서명 파일에 제공됩니다.printf "
hash_list
" >>hash_list_file
예를 들어, 서명 파일의
files
배열에 다음과 같은 세 개의 쿼리 결과 파일이 포함된 경우hash_list
값은 "aaa bbb ccc"입니다.“files": [ { "fileHashValue" : “aaa”, "fileName" : "result_1.csv.gz" }, { "fileHashValue" : “bbb”, "fileName" : "result_2.csv.gz" }, { "fileHashValue" : “ccc”, "fileName" : "result_3.csv.gz" } ],
-
openssl dgst
명령을 사용하여 서명을 검증합니다.openssl dgst -sha256 -verify public_key_x509.pem -signature
signature
.binhash_list_file
서명이 올바르면 명령이 다음과 같은 출력을 반환합니다.
Verified OK
서명이 유효하지 않으면 명령이 다음과 같은 출력을 반환합니다.
Verification Failure