Java 用 Azure Confidential Ledger クライアント ライブラリ - バージョン 1.0.14

Azure Confidential Ledger には、変更できない改ざん防止台帳にログを記録するためのサービスが用意されています。 Azure Confidential Computing ポートフォリオの一部として、Azure Confidential Ledger は SGX エンクレーブで実行されます。 これは、Microsoft Research の Confidential Consortium Framework に基づいて構築されています。

ソースコード | パッケージ (Maven) | 製品ドキュメント | サンプル

作業の開始

前提条件

パッケージをインクルードする

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-security-confidentialledger</artifactId>
  <version>1.0.14</version>
</dependency>

クライアントを認証する

Azure Active Directory の使用

Azure Confidential Ledger サービスと対話するには、クライアントが Azure Active Directory ベアラー トークンをサービスに提示する必要があります。

ベアラー トークンを提供する最も簡単な方法は、クライアント シークレット資格情報を指定して認証方法を使用 DefaultAzureCredential することです。この概要セクションでは使用されていますが、 azure-identity で認証する方法は他にも見つかります。

クライアント証明書の使用

Azure Active Directory の代わりに、クライアントはクライアント証明書を使用して相互 TLS 経由で認証することを選択できます。 CertificateCredential は、この目的で使用できます。 これは、サービスを初めて使用するユーザーには推奨される方法ではありません。

Azure Active Directory 資格情報を使用して LedgerBaseClient を作成する

Azure Id ライブラリを使用して、Azure Active Directory で認証できます。

次に示す DefaultAzureCredential プロバイダー、または Azure SDK で提供されているその他の資格情報プロバイダーを使用するには、パッケージを azure-identity 含めてください。

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.5.4</version>
</dependency>

AAD アプリケーションのクライアント ID、テナント ID、クライアント シークレットの値を環境変数として設定します(AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRET)。

主要な概念

台帳エントリとトランザクション

Azure Confidential Ledger への書き込みごとに、サービスに不変の台帳エントリが生成されます。 書き込み (トランザクションとも呼ばれます) は、書き込みごとにインクリメントされるトランザクション ID によって一意に識別されます。 書き込まれた台帳エントリは、いつでも取得できます。

Receipts

Confidential Ledger に対する状態の変更は、Merkle ツリーと呼ばれるデータ構造に保存されます。 書き込みが正しく保存されたことを暗号で確認するには、任意のトランザクション ID に対して Merkle 証明 (領収書) を取得できます。

副元帳

ほとんどのユース ケースには 1 つの台帳が含まれますが、セマンティックまたは論理的に異なるデータ グループを同じ Confidential Ledger に格納する必要がある場合に備えて、サブ台帳機能を提供します。

台帳エントリは、その副台帳識別子によって取得されます。 Confidential Ledger は、常に、サブ台帳を指定せずに送信されたエントリに対して、サービスによって決定される定数のサブ台帳 ID を想定します。

ユーザー

ユーザーは、Azure ではなく Confidential Ledger で直接管理されます。 ユーザーは、AAD ベースであり、AAD オブジェクト ID で識別されるか、PEM 証明書フィンガープリントによって識別される証明書ベースである場合があります。

コンフィデンシャル コンピューティング

Azure Confidential Computing を使用すると、クラウドでの処理中にデータを分離して保護できます。 Azure Confidential Ledger は Azure Confidential Computing 仮想マシン上で実行されるため、使用中のデータの暗号化により、より強力なデータ保護が提供されます。

Confidential Consortium Framework

Azure Confidential Ledger は、Microsoft Research のオープンソースの Confidential Consortium Framework (CCF) に基づいて構築されています。 CCF では、アプリケーションはメンバーのコンソーシアムによって管理され、アプリケーション操作を変更および管理するための提案を送信できます。 Azure Confidential Ledger では、Microsoft Azure はメンバー ID を所有しているため、Confidential Ledger 内の異常なノードの置き換えやエンクレーブ コードのアップグレードなどのガバナンス アクションを実行できます。

例については、 サンプルとサンプルREADME を参照してください。

トラブルシューティング

ログ記録の有効化

Azure SDK for Java には、アプリケーション エラーのトラブルシューティングと解決の迅速化に役立つ一貫したログ記録のストーリーが用意されています。 生成されたログでは、最終状態に達する前のアプリケーションのフローがキャプチャされ、根本原因を特定するのに役立ちます。 ログ記録の有効化に関するガイダンスについては、ログ Wiki を参照してください。

次の手順

共同作成

このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。

pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。

インプレッション数