BLOB ダイジェストを保存するマネージド アプリケーションを作成する

前提条件

概要

Confidential Ledger によってサポートされる BLOB ストレージ ダイジェストのマネージド アプリケーションを使用すると、BLOB コンテナー内の BLOB が信頼され、改ざんされていないことを保証できます。 アプリケーションは、ストレージ アカウントに接続されると、ダイジェストを計算して Azure Confidential Ledger に保存するだけでなく、ストレージ アカウント内のすべてのコンテナーに追加されるすべての BLOB をリアルタイムで追跡します。 監査はいつでも実行でき、BLOB の有効性を確認して BLOB コンテナーが改ざんされていないことを確認できます。

マネージド アプリケーションの展開

マネージド アプリケーションは、Confidential Ledger によってサポートされる BLOB ストレージ ダイジェスト (プレビュー) の Azure Marketplace で見つけることができます。

作成するリソース

必要なフィールドが入力され、アプリケーションが展開されると、マネージド リソース グループの下に次のリソースが作成されます。

マネージド アプリケーションへのストレージ アカウントの接続

マネージド アプリケーションが作成されたら、マネージド アプリケーションをストレージ アカウントに接続して、BLOB コンテナー ダイジェストの処理と Azure Confidential Ledger への記録を開始できます。

ストレージ アカウントのトピックとイベント サブスクリプションを作成する

マネージド アプリケーションは、Azure Service Bus キューを使用して、すべての BLOB 作成イベントを追跡および記録します。 マネージド アプリケーションによって管理対象リソース グループに作成されたキューを使用し、BLOB を作成するストレージ アカウントのイベント サブスクライバーとして追加します。

ストレージ イベント サブスクリプションの設定方法が示されている、Web ブラウザーでの Azure portal のスクリーンショット。

Azure portal で、BLOB ダイジェストの作成を開始したいストレージ アカウントに移動し、Events ブレードに移動します。 そこで、イベント サブスクリプションを作成し、Azure Service Bus キュー エンドポイントに接続できます。

ストレージ イベント サブスクリプションのセッション ID の設定方法が示されている、Web ブラウザーでの Azure portal のスクリーンショット。

キューはセッションを使用して複数のストレージ アカウント間の順序を維持するため、Delivery Properties タブに移動し、このイベント サブスクリプションに対応する一意のセッション ID を入力することも必要です。

ストレージ アカウントに必要なロールを追加します

マネージド アプリケーションでは、各 BLOB のハッシュを読み取って作成するための Storage Blob Data Owner ロールが必要です。ダイジェストを正しく計算するには、このロールを追加する必要があります。

マネージド アプリのマネージド ID の設定方法が示されている、Web ブラウザーでの Azure portal のスクリーンショット。

Note

複数のストレージ アカウントを 1 つのマネージド アプリケーション インスタンスに接続できます。 現在、使用率の高い BLOB コンテナーを含むストレージ アカウントは最大 10 個にすることをお勧めします。

BLOB とダイジェストの作成の追加

ストレージ アカウントがマネージド アプリケーションに適切に接続されると、ストレージ アカウント内のコンテナーへの BLOB の追加を開始できます。 BLOB はリアルタイムで追跡されます。ダイジェストは計算され Azure Confidential Ledger に保存されます。

トランザクション テーブルとブロック テーブル

すべての BLOB 作成イベントは、マネージド アプリケーション内に保存されている内部テーブルで追跡されます。

BLOB ハッシュが格納されているトランザクション テーブルが示されている、Web ブラウザーでの Azure portal のスクリーンショット。

トランザクション テーブルには、各 BLOB に関する情報と、その BLOB のメタデータと内容の組み合わせを使用して生成される一意のハッシュが保持されます。

ダイジェスト情報が格納されているブロック テーブルが示されている、Web ブラウザーでの Azure portal のスクリーンショット。

ブロック テーブルには、BLOB コンテナーに対して作成されるすべてのダイジェストに関連する情報が保持され、ダイジェストに関連付けられているトランザクション ID は Azure Confidential Ledger に保存されます。

ダイジェスト設定

ダイジェスト設定が示されている、マネージド アプリのプロビジョニングのスクリーンショット。

マネージド アプリケーションの作成時に選択できるダイジェスト設定がいくつかあります。 ダイジェストの作成に使用する Hashing Algorithm は、MD5 でも SHA256 でも選択できます。 各ダイジェストまたは Digest Size に含まれる BLOB の数を選択することもできます。 ダイジェスト サイズは 1-16 の範囲であり、各ブロック内でまとめてハッシュされる BLOB の数です。 最後に、各ダイジェストを作成するときに、Hash Contents とハッシュされる内容を選択できます。 これは、各 BLOB の File Contents + Metadata でも、単なる File Contents でもかまいません。

Azure Confidential Ledger でのダイジェストの表示

Ledger Explorer ブレードに移動すると、Azure Confidential Ledger に直接保存されているダイジェストを表示できます。

Azure confidential ledger エクスプローラーとダイジェスト トランザクションが示されている、Web ブラウザーでの Azure portal のスクリーンショット。

監査の実行

コンテナーに追加された BLOB の有効性を確認して、改ざんされていないことを確認したい場合は、任意の時点に監査を実行できます。 監査では、すべての BLOB 作成イベントが再生され、監査中にコンテナーに保存されている BLOB でダイジェストが再計算されます。 次に、再計算されたダイジェストと Azure Confidential に保存されているダイジェストが比較され、すべてのダイジェスト比較と、BLOB コンテナーが改ざんされているかどうかを示すレポートが提供されます。

監査のトリガー

マネージド アプリケーションに関連付けられている Service Bus キューに次のメッセージを含めることで、監査をトリガーできます。

{
    "eventType": "PerformAudit",
    "storageAccount": "<storage_account_name>",
    "blobContainer": "<blob_container_name>"
}

キューにメッセージを追加して監査をトリガーする方法が示されている、Web ブラウザーでの Azure portal のスクリーンショット。

キューでセッションが有効になっているので、必ず Session ID を含めるようにしてください。

監査結果の表示

一致するダイジェストを含むサンプル監査レコードが示されている、Web ブラウザーでの Azure portal のスクリーンショット。

監査が正常に実行されると、監査の結果は、それぞれのストレージ アカウント内にある <managed-application-name>-audit-records という名前のコンテナーの下に見つかります。 結果には、再計算されたダイジェスト、Azure Confidential Ledger から取得されたダイジェスト、および BLOB が改ざんされているかどうかが含まれます。

監査メールのアラート設定が示されている、マネージド アプリのプロビジョニングのスクリーンショット。

マネージド アプリケーションを作成するときに、電子メール アラートをオプトインすると、選択されているオプションに応じて、Audit Failure または Audit Success and Failure の間に電子メールが送信されます。

ログ記録とエラー

エラー ログは、それぞれのストレージ アカウント内にある <managed-application-name>-error-logs という名前のコンテナーの下にあります。 BLOB 作成イベントまたは監査プロセスが失敗した場合、エラーの原因がこのコンテナーに記録されて保存されます。 エラー ログまたはアプリケーション機能に関する質問がある場合は、マネージド アプリケーションの詳細に記載されている Azure Confidential Ledger サポート チームにお問い合わせください。

マネージド アプリケーションをクリーンアップする

マネージド アプリケーションを削除して、関連付けられているすべてのリソースをクリーンアップおよび削除できます。 マネージド アプリケーションを削除すると、すべての BLOB トランザクションの追跡が停止され、すべてのダイジェストの作成が停止されます。 監査レポートは、削除前に追加された BLOB に対しては有効なままになります。

その他のリソース

マネージド アプリケーションと展開されたリソースの詳細については、次のリンクを参照してください。

次のステップ