カスタマー マネージド キーを使用したデータ暗号化

適用対象: Azure Cosmos DB for PostgreSQL (PostgreSQL の Citus データベース拡張機能を利用)

Azure Cosmos DB for PostgreSQL クラスターに保存されるデータは、Microsoft が管理するキーで自動的かつシームレスに暗号化されます。 これらのキーは、サービスマネージド キーと呼ばれます。 Azure Cosmos DB for PostgreSQL では、Azure Storage の暗号化を使用し、サービスマネージド キーを使用して保存データを既定で暗号化します。 必要に応じて、カスタマー マネージド キーを使用した暗号化を有効にすることで、セキュリティ レイヤーを追加することもできます。

サービス マネージド キー

Azure Cosmos DB for PostgreSQL サービスでは、保存データのストレージ暗号化に FIPS 140-2 認証済みの暗号モジュールが使用されます。 バックアップやクエリの実行中に作成される一時ファイルを含むすべてのデータが、ディスク上で暗号化されます。 このサービスでは、Azure ストレージ暗号化に含まれる AES 256 ビット暗号が使用され、キーはシステムによって管理されます。 ストレージの暗号化は常にオンになっており、無効にすることはできません。

カスタマー マネージド キー

多くの組織では、カスタマー マネージド キー (CMK) を使用してデータへのアクセスを完全に制御する必要があります。 Azure Cosmos DB for PostgreSQL のカスタマー マネージド キーによるデータ暗号化では、Bring Your Own Key を使用して保存データを保護できます。 また、組織でキーとデータの管理における職務の分離を実装することもできます。 カスタマーマネージド暗号化を使用すると、キーのライフサイクル、使用アクセス許可、および操作の監査についてはお客様の責任となり、完全に制御できます。

Azure Cosmos DB for PostgreSQL のカスタマー マネージド キーによるデータ暗号化は、サーバー レベルで設定されます。 バックアップを含むすべてのデータが、ディスク上で暗号化されます。 この暗号化には、クエリの実行中に作成される一時ファイルが含まれます。 特定のクラスターでは、キー暗号化キー (KEK) と呼ばれるカスタマー マネージド キーを使用して、サービスのデータ暗号化キー (DEK) を暗号化します。 KEK は、顧客が所有する、カスタマーマネージド Azure Key Vault インスタンスに格納される非対称キーです。

説明
データ暗号化キー (DEK) データ暗号化キーは、パーティションやデータ ブロックの暗号化に使用される対称 AES256 キーです。 データの各ブロックを異なるキーで暗号化することによって、暗号化分析攻撃がより困難になります。 特定のブロックを暗号化および復号化するリソース プロバイダーまたはアプリケーション インスタンスには、DEK へのアクセスが必要です。 DEK を新しいキーで置き換える場合に、新しいキーを使用して再暗号化する必要があるのは、その関連ブロック内のデータのみです。
キー暗号化キー (KEK) キー暗号化キーは、DEK の暗号化に使用される暗号化キーです。 キー コンテナーから出ない KEK を使用することで、DEK 自体を暗号化および制御できます。 KEK へのアクセス権を持つエンティティは、DEK を必要とするエンティティとは異なる場合があります。 DEL の復号化には KEK が必要であるため、KEK は事実上の単一ポイントとなり、KEK を削除すると実質的に DEK が削除されることになります。

注意

Azure Key Vault は、クラウドベースのキー管理システムです。 可用性が高く、FIPS 140 適合のハードウェア セキュリティ モジュール (HSM) によって必要に応じてサポートされる、スケーラブルで安全な RSA 暗号化キー向けストレージが提供されます。 キー コンテナーは、格納されているキーへの直接アクセスを許可しませんが、許可されたエンティティに対して暗号化と復号化のサービスを提供します。 キー コンテナーでは、キーの生成、インポート、オンプレミス HSM デバイスからの転送を行うことができます。

KEK で暗号化された DEK は、個別に格納されます。 KEK へのアクセス権を持つエンティティでのみ、これらの DEK の暗号化を解除できます。 詳細については、保存時の暗号化のセキュリティに関する記事を参照してください。

カスタマーマネージド キーによるデータ暗号化のしくみ

クラスターで DEK の暗号化のために Key Vault に格納されているカスタマー マネージド キーを使用する場合、Key Vault 管理者がサーバーに次のアクセス権を付与します。

説明
get キー コンテナー内のキーの公開部分とプロパティの取得を有効にします。
wrapKey DEK の暗号化を有効にします。 暗号化された DEK は、Azure Cosmos DB for PostgreSQL に格納されます。
unwrapKey DEK の復号化を有効にします。 Azure Cosmos DB for PostgreSQL では、データを暗号化/復号化するために、復号化された DEK が必要です。

Key Vault 管理者は、後で監査できるように、Key Vault の監査イベントのログ記録を有効にすることもできます。 キー コンテナーに格納されているカスタマー マネージド キーを使用するように Azure Cosmos DB for PostgreSQL クラスターが構成されている場合、クラスターは、暗号化のために DEK をキー コンテナーに送信します。 Key Vault から暗号化された DEK が返され、ユーザー データベースに格納されます。 同様に、必要に応じて、保護された DEK が暗号化解除のためにサーバーから Key Vault に送信されます。 ログが有効になっている場合、監査担当者は Azure Monitor を使用して Key Vault の監査イベント ログを確認できます。

カスタマー マネージド キーによるデータ暗号化のアーキテクチャのスクリーンショット。

メリット

Azure Cosmos DB for PostgreSQL のカスタマー マネージド キーによるデータ暗号化には、次の利点があります。

  • キーを削除してデータベースにアクセスできないようにする機能によって、データ アクセスを完全に制御できます。
  • 特定の企業ポリシーに沿ったキーのローテーションなど、キーのライフサイクルを完全に制御できます。
  • Azure Key Vault でキーを一元的に管理、整理します。
  • セキュリティ責任者、データベース管理者、およびシステム管理者の間での職務の分離を実装できます。
  • 暗号化を有効にしても、カスタマー マネージド キーの有無に関係なく、パフォーマンスに特別な影響を及ぼすことはありません。 Azure Cosmos DB for PostgreSQL では、カスタマー マネージド キーとサービスマネージド キーの両方のシナリオで、データ暗号化に Azure Storage を使用します。

次のステップ