AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

暗号化のキーのローテーションと再ラッピング

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

This procedure shows you how to rotate encryption keys for Queryable Encryption using mongosh. Rotating DEKs consists of rewrapping them with a new Customer Master Key, so the terms "rotate" and "rewrap" are sometimes used interchangeably.

このガイドを完了すると、キー管理システムでカスタマー マスター キー( CMK )をローテーションし、キーヴォールトコレクション内の既存の DEK を新しいCMKでリラップできるようになります。

警告

キーをローテーションする際は、削除する前に、キーやデータの暗号化に使用されていないことを確認してください。 DEKを削除すると、そのDEKで暗号化されたすべてのフィールドが永続的に読み取りできなくなります。 CMK を削除すると、その CMK を使用して DEK で暗号化されたすべてのフィールドが永続的に読み取りできなくなります。

この手順に含まれる概念の詳細については、以下のトピックを参照してください。

キーとキー ボールトの詳細については、「暗号化キーとキー ボールト 」を参照してください。 サポートされているKMSプロバイダーのリストを表示するには、「 KMS プロバイダー」ページを参照してください。

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

1

CMKをローテーションするプロセスは、 KMSプロバイダーによって異なります。 詳細については、キー プロバイダーのドキュメントを参照してください。

CMKをローテーションすると、MongoDB はそれを使用してすべての新しい DEK をラップします。 既存の DEK を再ラップするには、次の手順に進みます。

2

KeyVault.rewrapManyDataKey()メソッドは複数のデータ暗号化キーを自動的に復号化し、指定されたCMKを使用して再暗号化します。 次に、Key Vault コレクション内のキーをアップデートします。

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

let keyVault = db.getMongo().getKeyVault()
keyVault.rewrapManyDataKey(
{
"<Query filter document>"
},
{
provider: "<KMS provider>",
masterKey: {
"<dataKeyOpts Key>" : "<dataKeyOpts Value>"
}
}
)
  1. ローテーションするキーを選択するために クエリフィルター ドキュメント を指定するか、 引数を省略して Key Vault コレクション内のすべてのキーをローテーションする

    クエリフィルター ドキュメントを指定しても、一致するキーがない場合、キーはローテーションされません。

  2. KMSプロバイダーの指定

  3. 新しいCMKを使用してmasterKeyを指定するか、 引数を省略して既存のCMKを使用してキーをローテーションします

新しいCMKで再ラップしても、DEK 自体は変更されません。 キーのローテーション プロセスはシームレスであり、アプリケーションを中断しません。