ステップ 2: QLDB でのデータの検証 - Amazon Quantum Ledger Database (Amazon QLDB)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ステップ 2: QLDB でのデータの検証

Amazon QLDB は、指定されたドキュメント ID とそれに関連付けられたブロックの証明をリクエストするための API を備えています。「ステップ 1: QLDB でのダイジェストのリクエスト」で説明されているように、過去に保存したダイジェストのティップアドレスも指定する必要があります。 AWS Management Console、 AWS SDK、または を使用して証明 AWS CLI を取得できます。

続いて、QLDB から返された証明を使用し、クライアント側 API により、保存したダイジェストと照合してドキュメントリビジョンを検証できます。これにより、お客様は、データ検証に使用するアルゴリズムを制御できます。

AWS Management Console

このセクションでは、Amazon QLDB コンソールを使用し、過去に保存したダイジェストと照合してドキュメントリビジョンを検証するための手順について説明します。

始める前には必ず「ステップ 1: QLDB でのダイジェストのリクエスト」のステップに従ってください。検証には、検証するドキュメントリビジョンを対象としている、過去に保存したダイジェストが必要です。

ドキュメントリビジョンを検証するには (コンソール)
  1. Amazon QLDB コンソール (https://console.aws.amazon.com/qldb) を開きます。

  2. 最初に、検証するリビジョンの idblockAddress に関するクエリを台帳に対して実行します。これらのフィールドはドキュメントのメタデータに含まれており、コミット済みビューでクエリを実行できます。

    ドキュメント id は、システムによって割り当てられた一意の ID 文字列です。blockAddress は、リビジョンがコミットされたブロックの位置を指定する Ion 構造です。

    ナビゲーションペイン内で [PartiQL エディタ] を選択します。

  3. リビジョンを検証する台帳名を選択します。

  4. クエリエディタウィンドウ内で SELECT 文を下記の構文に入力し、[Run (実行)] を選択します。

    SELECT metadata.id, blockAddress FROM _ql_committed_table_name WHERE criteria

    例えば、以下のクエリは、「Amazon QLDB コンソールの使用開始方法」で作成されたサンプル台帳の VehicleRegistration テーブルのドキュメントを返します。

    SELECT r.metadata.id, r.blockAddress FROM _ql_committed_VehicleRegistration AS r WHERE r.data.VIN = 'KM8SRDHF6EU074761'
  5. クエリによって返された idblockAddress の値をコピーし、保存します。id フィールドの二重引用符は必ず省略してください。Amazon Ion では、文字列データ型は二重引用符で区切られます。たとえば、以下のスニペットでは、英数文字のテキストのみをコピーする必要があります。

    "LtMNJYNjSwzBLgf7sLifrG"

  6. これでドキュメントリビジョンが選択されたため、検証プロセスを開始できます。

    ナビゲーションペイン内で [Verification (検証)] を選択します。

  7. [Verify document (ドキュメントの検証)] フォームの [Specify the document that you want to verify (検証するドキュメントの指定)] に、次の入力パラメータを入力します。

    • [Ledger] (台帳) - リビジョンを検証する台帳。

    • [ブロックアドレス] - ステップ 4 のクエリで返された blockAddress 値。

    • [ドキュメント ID] - ステップ 4 のクエリで返された id 値。

  8. [Specify the digest to use for verification (検証に使用するダイジェストの指定)] で、[Choose digest (ダイジェストの選択)] を選択することで、以前に保存されたダイジェストを選択します。ファイルが有効であれば、コンソールにあるすべてのダイジェストフィールドにデータが自動入力されます。また、以下の値をダイジェストファイルから手動で直接コピーして貼り付けることもできます。

    • [Digest] (ダイジェスト) - ダイジェストファイルからの digest 値。

    • [Digest tip address] (ダイジェストティップアドレス) - ダイジェストファイルからの digestTipAddress 値。

  9. ドキュメントおよびダイジェストの入力パラメータを再確認し、[Verify (検証)] を選択します。

    コンソールが次の 2 つのステップを自動的に実行します。

    1. 指定されたドキュメントに関するプルーフを QLDB にリクエストします。

    2. QLDB によって返された証拠を使用してクライアント側 API を呼び出すことで、提供されたダイジェストと照合してドキュメントのリビジョンを検証します。この検証のアルゴリズムを調べるには、以下のセクション「QLDB API」を参照し、サンプルコードをダウンロードしてください。

    コンソールの [Verification results (検証結果)] カードに、リクエストの結果が表示されます。詳細については、「検証結果」を参照してください。

QLDB API

Amazon QLDB API を AWS SDK または AWS CLIで使用して、ドキュメントリビジョンを検証することもできます。QLDB API は、アプリケーションプログラムで使用する、以下のオペレーションを提供します。

  • GetDigest - ジャーナル内の最後にコミットされたブロックにある台帳のダイジェストを返します。応答には、256 ビットのハッシュ値とブロックアドレスが含まれます。

  • GetBlock - ジャーナルの指定されたアドレスにあるブロックオブジェクトを返します。また、DigestTipAddress が指定されている場合は、指定されたブロックの証明を検証のために返します。

  • GetRevision - 指定されたドキュメント ID とブロックアドレスのリビジョンデータオブジェクトを返します。また、DigestTipAddress が指定されている場合は、指定されたリビジョンの証明を検証のために返します。

これらの API オペレーションの詳細については、Amazon QLDB API リファレンス を参照してください。

を使用したデータの検証については AWS CLI、AWS CLI 「 コマンドリファレンス」を参照してください。

サンプルアプリケーション

Java コード例については、 GitHub リポジトリ aws-samples/amazon-qldb-dmv-sample-java を参照してください。このサンプルアプリケーションをダウンロードしてインストールする方法については、「Amazon QLDB Java サンプルアプリケーションのインストール」を参照してください。検証を実行する前に、「Java チュートリアル」のステップ 1~3 を実行し、サンプル台帳を作成して、サンプルデータを使用してロードしてください。

GetRevision クラスのチュートリアルコードは、ドキュメントリビジョンに関するプルーフをリクエストし、次にそのリビジョンを検証する例を示します。このクラスは以下のステップを実行します。

  1. サンプル台帳 vehicle-registration から新しいダイジェストをリクエストします。

  2. vehicle-registration 台帳の VehicleRegistration テーブルに、サンプルのドキュメントリビジョンのプルーフをリクエストします。

  3. 返されたダイジェストとプルーフを使用してサンプルリビジョンを検証します。