Azure SQL Database Ledger の知識を深める
Azure SQL Database の台帳機能は、データベースに改ざん防止機能を提供します。 監査者や他のビジネス関係者などの他の関係者に対して、データが改ざんされていないことを暗号学的に証明できます。
しくみ
暗号とブロックチェーンは、テクノロジの広い範囲において、さまざまな成功の度合いで見られるようになっています。 それが有用で有益であることが証明された場所の 1 つは、Azure SQL Database Ledger 機能の内側の技術として使われた場合です。 台帳機能では、データベースの改ざん防止機能が提供されます。 Azure SQL Database の台帳機能を使うと、監査担当者、ビジネス パートナー、または任意の関係者に、データが変更または改ざんされた内容の具体的な証拠を提供できます。
従来の台帳は、特定の種類のアカウントのコレクションとして定義され、それこそがまさに Azure SQL Database Ledger 機能によって環境内に提供されるものです。 これにより、攻撃者や、データベースやクラウドの管理者など、悪意のあるアクターからデータを透過的に保護できます。 Azure SQL Database の機能、柔軟性、パフォーマンスを維持しつつ、暗号化データの整合性が保証されます。
データベースによって受信された各トランザクションは、暗号学的にハッシュされます (SHA-256)。 この関数は、ブロックチェーンのように、すべてのトランザクションを暗号学的にリンクします。
コンポーネント
Azure SQL Database Ledger 機能は、現在、更新可能な台帳テーブルと追加専用の台帳テーブルという 2 つの形式のテーブルに存在します。
更新可能な台帳テーブル
更新可能な台帳テーブルは、更新、削除、挿入を発行するアプリケーションに使用できます。 事実の記録保持と監査が必要とされ、行われる記録アプリケーションのシステムやトランザクション システムに適しています。 更新可能な台帳テーブルにより、あらゆる行の変更履歴が追跡され、組み込みのシステム バージョン管理を使って履歴テーブルが作成されます。ここに、すべての更新または削除の全履歴を保持するために、前のバージョンの行が格納されます。
追加専用の台帳テーブル
追加専用の台帳テーブルは、会計システムなどの挿入専用のアプリケーションに適しています。この場合、監査またはセキュリティ情報イベント管理 (SIEM) アプリケーションも必要です。 追加専用の台帳の場合、API レベルですべての更新と削除がブロックされるので、確実性が高くなるだけでなく、管理にも役立ちます。
メリット
Azure SQL Database Ledger 機能には、次のような複数の利点があります。
簡易な監査 - 攻撃の可能性を減らすために適切なセキュリティ制御が実施され、バックアップと復元のプラクティスが必要に応じて行われ、ディザスター リカバリー手順が徹底されていることを確認するために、監査が頻繁に実施されます。 台帳は、監査プロセスでデータが変更されていないことを示す文書化された証拠を提供します。
信頼の向上 - 台帳は、ネットワーク コンセンサスで発生する可能性のある複雑さとパフォーマンスへの影響なしに、複数のパーティのビジネス プロセス間の信頼を確立するのにも役立ちます。
データ整合性 - パフォーマンスを犠牲にせずにブロックチェーン ネットワーク上のデータのクエリを実行することは、重大な課題になる可能性があります。 台帳により、ブロックチェーン ネットワークのオフチェーン ストレージにデータ整合性が提供され、システム全体を通じて完全なデータ信頼性が確保されます。
台帳が有効な SQL データベースを作成する
以下の手順のようにして、台帳機能を簡単に有効にできます。
Azure portal の [SQL デプロイ オプションを選択する] ページを参照します。
[SQL データベース] で、 [リソースの種類] を [単一データベース] に設定し、 [作成] を選択します。
[SQL データベースの作成] フォームの [基本] タブにある [プロジェクトの詳細] で、使用する Azure サブスクリプションを選びます。
[リソース グループ] で、 [新規作成] を選択し、「myResourceGroup」と入力して、 [OK] を選択します。
[データベース名] に「demo」と入力します。
[サーバー] の [新規作成] を選択します。 [新しいサーバー] フォームに次の値を入力して、[OK] を選びます。
- サーバー名:<一意のサーバー名を入力します>
- サーバー管理者ログイン: azureuser
- パスワード:<強力なパスワードを入力します>
- 場所: リソース グループを作成したのと同じリージョンを選びます
- Allow Azure services to access this server (このサーバーへの Azure サービスのアクセスを許可する): ダイジェスト ストレージへのアクセスを有効にするには、このオプションを選びます。
[SQL エラスティック プールを使用しますか?] を [いいえ] に設定したままにします。
[コンピューティングとストレージ] で、 [データベースの構成] を選択します。
[サーバーレス] を選んでから、[適用] を選びます。
[ネットワーク] タブの [接続方法] で、 [パブリック エンドポイント] を選択します。
[ファイアウォール規則] で、 [現在のクライアント IP アドレスを追加する] を [はい] に設定します。 [Azure サービスおよびリソースにこのサーバー グループへのアクセスを許可する] を [いいえ] に設定したままにします。
ページの下部で [次へ: セキュリティ] を選択します。
[セキュリティ] タブの [台帳] セクションで、[台帳の構成] リンクを選びます。
[台帳の構成] ペインの [台帳] セクションで、 [Enable for all future tables in this database](このデータベースの将来のテーブルすべてで有効にする) チェックボックスを選択します。
Note
この設定により、以降、データベース内のすべてのテーブルが台帳テーブルになります。 このため、データベース内のすべてのデータには、改ざんの証拠が示されるようになります。 既定では、
CREATE TABLE
ステートメントでLEDGER = ON
を指定しない場合でも、新しいテーブルは更新可能な台帳テーブルとして作成されます。このオプションをオフのままにすることもできます。 この場合、Transact-SQL を使用して新しいテーブルを作成する際に、テーブルごとに台帳機能を有効にする必要があります。
[Digest Storage](ダイジェスト ストレージ) セクションでは、 [Enable automatic digest storage](自動ダイジェスト ストレージを有効にする) が自動的に選択されます。 これで、ダイジェストが格納される新しい Azure Storage アカウントとコンテナーが作成されます。
[適用] を選択します。
ページ下部にある [確認と作成] を選択します。
[確認および作成] ページで、確認した後、[作成] を選びます。