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

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

項目一覧

  • Overview
  • 関連情報
  • 手順
  • キー管理システムでの CMK のローテーション
  • を使用してデータ暗号化キーをローテーションする KeyVault.rewrapManyDataKey()

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

この手順では、 mongoshを使用して Queryable Encryption の暗号化のキーをローテーションする方法を示します。 DEK のローテーションには、新しい CMK で再度ラップすることが含まれるため、「ローテーション」と「リラップ」という用語は同じ意味で使用されることもあります。

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

警告

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

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

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

サポートされている各KMSプロバイダーを使用して、Queryable Encryption 対応アプリケーションを設定する方法の詳細なチュートリアルについては、「概要: 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 自体は変更されません。 キーのローテーション プロセスはシームレスであり、アプリケーションを中断しません。

戻る

明示的な暗号化