Azure SQL Database Ledger の知識を深める

完了

Azure SQL Database の台帳機能は、データベースに改ざん防止機能を提供します。 監査者や他のビジネス関係者などの他の関係者に対して、データが改ざんされていないことを暗号学的に証明できます。

しくみ

暗号とブロックチェーンは、テクノロジの広い範囲において、さまざまな成功の度合いで見られるようになっています。 それが有用で有益であることが証明された場所の 1 つは、Azure SQL Database Ledger 機能の内側の技術として使われた場合です。 台帳機能では、データベースの改ざん防止機能が提供されます。 Azure SQL Database の台帳機能を使うと、監査担当者、ビジネス パートナー、または任意の関係者に、データが変更または改ざんされた内容の具体的な証拠を提供できます。

従来の台帳は、特定の種類のアカウントのコレクションとして定義され、それこそがまさに Azure SQL Database Ledger 機能によって環境内に提供されるものです。 これにより、攻撃者や、データベースやクラウドの管理者など、悪意のあるアクターからデータを透過的に保護できます。 Azure SQL Database の機能、柔軟性、パフォーマンスを維持しつつ、暗号化データの整合性が保証されます。

 Diagram of the ledger table architecture.

データベースによって受信された各トランザクションは、暗号学的にハッシュされます (SHA-256)。 この関数は、ブロックチェーンのように、すべてのトランザクションを暗号学的にリンクします。

コンポーネント

Azure SQL Database Ledger 機能は、現在、更新可能な台帳テーブルと追加専用の台帳テーブルという 2 つの形式のテーブルに存在します。

更新可能な台帳テーブル

更新可能な台帳テーブルは、更新、削除、挿入を発行するアプリケーションに使用できます。 事実の記録保持と監査が必要とされ、行われる記録アプリケーションのシステムやトランザクション システムに適しています。 更新可能な台帳テーブルにより、あらゆる行の変更履歴が追跡され、組み込みのシステム バージョン管理を使って履歴テーブルが作成されます。ここに、すべての更新または削除の全履歴を保持するために、前のバージョンの行が格納されます。

追加専用の台帳テーブル

追加専用の台帳テーブルは、会計システムなどの挿入専用のアプリケーションに適しています。この場合、監査またはセキュリティ情報イベント管理 (SIEM) アプリケーションも必要です。 追加専用の台帳の場合、API レベルですべての更新と削除がブロックされるので、確実性が高くなるだけでなく、管理にも役立ちます。

メリット

Azure SQL Database Ledger 機能には、次のような複数の利点があります。

簡易な監査 - 攻撃の可能性を減らすために適切なセキュリティ制御が実施され、バックアップと復元のプラクティスが必要に応じて行われ、ディザスター リカバリー手順が徹底されていることを確認するために、監査が頻繁に実施されます。 台帳は、監査プロセスでデータが変更されていないことを示す文書化された証拠を提供します。

信頼の向上 - 台帳は、ネットワーク コンセンサスで発生する可能性のある複雑さとパフォーマンスへの影響なしに、複数のパーティのビジネス プロセス間の信頼を確立するのにも役立ちます。

データ整合性 - パフォーマンスを犠牲にせずにブロックチェーン ネットワーク上のデータのクエリを実行することは、重大な課題になる可能性があります。 台帳により、ブロックチェーン ネットワークのオフチェーン ストレージにデータ整合性が提供され、システム全体を通じて完全なデータ信頼性が確保されます。

台帳が有効な SQL データベースを作成する

以下の手順のようにして、台帳機能を簡単に有効にできます。

  1. Azure portal の [SQL デプロイ オプションを選択する] ページを参照します。

  2. [SQL データベース] で、 [リソースの種類][単一データベース] に設定し、 [作成] を選択します。

    Screenshot that shows how to select SQL deployment option.

  3. [SQL データベースの作成] フォームの [基本] タブにある [プロジェクトの詳細] で、使用する Azure サブスクリプションを選びます。

  4. [リソース グループ] で、 [新規作成] を選択し、「myResourceGroup」と入力して、 [OK] を選択します。

  5. [データベース名] に「demo」と入力します。

  6. [サーバー][新規作成] を選択します。 [新しいサーバー] フォームに次の値を入力して、[OK] を選びます。

    • サーバー名:<一意のサーバー名を入力します>
    • サーバー管理者ログイン: azureuser
    • パスワード:<強力なパスワードを入力します>
    • 場所: リソース グループを作成したのと同じリージョンを選びます
    • Allow Azure services to access this server (このサーバーへの Azure サービスのアクセスを許可する): ダイジェスト ストレージへのアクセスを有効にするには、このオプションを選びます。
  7. [SQL エラスティック プールを使用しますか?][いいえ] に設定したままにします。

  8. [コンピューティングとストレージ] で、 [データベースの構成] を選択します。

  9. [サーバーレス] を選んでから、[適用] を選びます。

    Screenshot that shows configuring a serverless database.

  10. [ネットワーク] タブの [接続方法] で、 [パブリック エンドポイント] を選択します。

  11. [ファイアウォール規則] で、 [現在のクライアント IP アドレスを追加する][はい] に設定します。 [Azure サービスおよびリソースにこのサーバー グループへのアクセスを許可する][いいえ] に設定したままにします。

  12. ページの下部で [次へ: セキュリティ] を選択します。

     Screenshot that shows the Networking tab of the Create SQL Database screen in the Azure portal.

  13. [セキュリティ] タブの [台帳] セクションで、[台帳の構成] リンクを選びます。

     Screenshot that shows configuring a ledger on the Security tab of the Azure portal.

  14. [台帳の構成] ペインの [台帳] セクションで、 [Enable for all future tables in this database](このデータベースの将来のテーブルすべてで有効にする) チェックボックスを選択します。

    Note

    この設定により、以降、データベース内のすべてのテーブルが台帳テーブルになります。 このため、データベース内のすべてのデータには、改ざんの証拠が示されるようになります。 既定では、CREATE TABLE ステートメントで LEDGER = ON を指定しない場合でも、新しいテーブルは更新可能な台帳テーブルとして作成されます。

    このオプションをオフのままにすることもできます。 この場合、Transact-SQL を使用して新しいテーブルを作成する際に、テーブルごとに台帳機能を有効にする必要があります。

  15. [Digest Storage](ダイジェスト ストレージ) セクションでは、 [Enable automatic digest storage](自動ダイジェスト ストレージを有効にする) が自動的に選択されます。 これで、ダイジェストが格納される新しい Azure Storage アカウントとコンテナーが作成されます。

  16. [適用] を選択します。

    Screenshot that shows the Configure ledger (preview) pane in the Azure portal.

  17. ページ下部にある [確認と作成] を選択します。

     Screenshot that shows reviewing and creating a ledger database on the Security tab of the Azure portal.

  18. [確認および作成] ページで、確認した後、[作成] を選びます。