コマンドラインを使用したクエリ結果の検証 - AWS CloudTrail

コマンドラインを使用したクエリ結果の検証

コマンドラインを使用してクエリ結果の整合性を検証し、ファイルに署名できます。

前提条件

コマンドラインを使用してクエリ結果の整合性を検証するには、次の条件を満たしている必要があります。

  • AWS へのオンライン接続が必要です。

  • 署名とクエリ結果のファイルを含む Amazon S3 バケットへの読み取りアクセスが必要です。

  • OpenSSL がインストールされている必要があります。

クエリ結果の検証

コマンドラインを使用してクエリ結果の検証を行うには、次の手順を使用します。

  1. 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/ ./ --region region-name
  2. openssl dgst コマンドを使用して各クエリ結果ファイルの sha256 ハッシュ値を計算して、その値を署名ファイルのハッシュ値と比較します。署名ファイルに含まれるフィールドの詳細については、「CloudTrail 署名ファイル構造」を参照してください。

    openssl dgst -sha256 result_number.csv.gz
  3. printf コマンドを使用して、署名の検証に使用するパブリックキー PEM ファイルを生成します。

    printf -- "-----BEGIN RSA PUBLIC KEY-----\n%s\n-----END RSA PUBLIC KEY-----" "public_key_content" | fold -w64 >> public_key_pkcs1.pem
  4. openssl rsa コマンドを使用して、パブリックキー PEM ファイルを OpenSSL の読み込み可能な形式に変換します。

    openssl rsa -RSAPublicKey_in -in public_key_pkcs1.pem -pubout -out public_key_x509.pem
  5. printf コマンドおよび xxd コマンドを使用して、新しい署名バイナリファイルを生成します。hash_signature を署名ファイルの hashSignature の値に置き換え、署名 を作成する新しい署名ファイルの名前に置き換えます。

    printf "hash_signature" >> signature xxd -r -p signature signature.bin
  6. hash_list を作成し、printf コマンドを使用してファイルに出力します。hash_list は、スペースで区切られた各クエリ結果ファイルの files.fileHashValue の値を含む文字列です。各クエリ結果ファイルの files.fileHashValue は署名ファイル内で提供されます。

    printf "hash_list" >> hash_list_file

    たとえば、署名ファイル files の配列に次の 3 つのクエリ結果ファイルが含まれている場合、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"
 } ],
  7. openssl dgst コマンドを使用して署名を検証します。

    openssl dgst -sha256 -verify public_key_x509.pem -signature signature.bin hash_list_file

    署名が正しい場合、このコマンドは以下の出力を返します。

    Verified OK

    署名が有効でない場合、このコマンドは以下の出力を返します。

    Verification Failure