Docs Menu
Docs Home
/
MongoDBマニュアル
/ / / / /

暗号化キー管理

項目一覧

  • 暗号化コンポーネント
  • mongosh を使用した暗号化キーのローテーション
  • サポートされているキー管理サービス
  • リモート KMS を使用する理由
  • 詳細

このガイドでは、Queryable Encryption 有効アプリケーションでキー管理システム( KMS )を使用して暗号化のキーを管理する方法を学習できます。

MongoDB は、Queryable Encryption を実行するために次のコンポーネントを使用します。

  • データ暗号化キー( DEK )s

  • カスタマー マスター キー( CMK

  • キーヴォールト コレクション

  • キー管理システム( KMS

キーとキー ボールトの詳細については、 キーとキー Vault を参照してください。

KeyVault.rewrapManyDataKey()メソッドを使用して暗号化のキーをローテーションできます。 rewrapManyDataKeyメソッドは複数のデータキーを自動的に復号化し、指定された CMK を使用して再暗号化します。 次に、キーヴォールトコレクション内のローテーションされたキーをアップデートします。 この方法では、2 つのオプションの引数に基づいて暗号化のキーをローテーションできます。

  • ローテーションするキーを指定するために使用されるクエリフィルター ドキュメント。 指定されたフィルターに一致するデータキーがない場合、キーはローテーションされません。 フィルターを省略すると、キーヴォールト コレクション内のすべてのキーがローテーションされます。

  • 新しいCMKを表すオブジェクト。 現在の CMK を使用してデータキーをローテーションするには、このオブジェクトを省略します。

rewrapManyDataKeyメソッドの構文は次のとおりです。

let keyVault = db.getMongo().getKeyVault()
keyVault.rewrapManyDataKey(
{
"<Your custom filter>"
},
{
provider: "<KMS provider>",
masterKey: {
"<dataKeyOpts Key>" : "<dataKeyOpts Value>"
}
}
)

Queryable Encryption は、次のキー管理システム プロバイダーをサポートしています。

  • Amazon Web Services KMS

  • Azure Key Vault

  • Google Cloud KMS

  • 任意の KMIP 準拠キー管理システム

  • ローカル キー プロバイダー(テスト専用)

アプリケーションが KMS プロバイダーを使用して Queryable Encryption を実行する方法を示す図など、これらのプロバイダーの詳細については、「 KMS プロバイダー 」を参照してください。

リモート キー管理システムを使用してカスタマー マスター キーを管理する方法には、ローカル ファイルシステムを使用してCMKをホストする場合よりも次の利点があります。

  • アクセス監査を使用してキーを安全にストレージ

  • アクセス権限の問題のリスク軽減

  • リモート クライアントへのキーの可用性と配布

  • キーのバックアップと復元の自動化

  • 一元化された暗号化キーのライフサイクル管理

さらに、次のKMSプロバイダーの場合、 KMSはデータ暗号化キーをリモートで暗号化および復号化し、カスタマー マスター キーが Queryable Encryption 対応アプリケーションに公開されないようにします。

  • Amazon Web Services KMS

  • Azure Key Vault

  • Google Cloud KMS

サポートされているKMSプロバイダーのそれぞれを使用して、Queryable Encryption 対応のアプリケーションを設定する方法の詳細なチュートリアルについては、次のページを参照してください。

戻る

KMS プロバイダー