Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

Google Cloud Platform KMSによるカスタマー キーの管理

注意

この機能は、次の配置では使用できません。

  • 無料クラスター

  • Flex クラスター

詳しくは、「 制限 」を参照してください。

Google Cloud Platform KMSのカスタマー マネージド キー(CMK)を使用して、 Atlasで保管中のデータをさらに暗号化できます。

注意

MongoDB Atlas共有責任モデルは、安全で回復力のあるデータ環境を維持するためのMongoDBとそのカスタマーの補完的な役割を定義します。このフレームワークの下、 MongoDB は基礎のプラットフォームのセキュリティと運用上の整合性を管理しますが、カスタマーは特定の配置の構成、管理、データ ポリシーに責任を負います。所有者のセキュリティと運用の優れ性の詳細な内訳については、共有責任モデルを参照してください。

Atlas は、Google Cloud KMS による CMK を使用してMongoDBマスター キーを暗号化および復号化します。これはクラスターデータベースファイルとクラウドプロバイダーのスナップショットの暗号化に使用されます。 Atlas が CMK を使用して暗号化方法について詳しくは、「 Google Cloud KMS によるカスタマー マネージド キーの有効化 」を参照してください。

独自のクラウドプロバイダーKMS Bluetooth を使用する場合、Atlas はMongoDBマスター キーを少なくとも90 日ごとに自動的にローテーションします。メンテナンスウィンドウ中にキー ローテーションが開始されます(構成されている場合)。メンテナンス(手動または自動)を延期すると、キーが 90 日を超えてローテーションされる可能性があります。キーは順次ローテーションされるため、プロセスでデータを書き換える必要はありません。

Atlas プロジェクトのカスタマー キー マネジメントを構成してから、そのプロジェクトのクラスターで有効にします。

Atlas では、エンベロープ暗号化というプロセスに沿ってカスタマー キーを管理します。このプロセスでは、あるキーを別のキーで暗号化することによって複数の暗号化レイヤーが作成されます。カスタマー キー管理を有効にするために、MongoDB Atlas では以下の暗号化キーが使用されます。

Customer-Managed Key (CMK)

カスタマー管理キーは、Google Cloud Platform KMS で作成、所有、管理する暗号化のキーです。 Google Cloud Platform KMS で CMK を作成し、 プロジェクト レベルで Atlas に接続します。Google Cloud Platform KMS で使用される CMK の詳細については、Google Cloud Platformドキュメント を参照してください。

Atlas はこのキーを MongoDB マスター キーの暗号化にのみ使用します。

MongoDB Master Key

Atlasマスター キーを作成しMongoDB 。 MongoDB マスターキーは、MongoDB Server がデータベースごとに暗号化されたキーを暗号化するために使用する暗号化キーです。 Atlas は、キーの暗号化されたコピーをローカルに保存します。

このキーは CMK で暗号化され、データベースごとに暗号化されたキーを暗号化します。

Per-Database Encryption Key

MongoDB Atlas の各ノードは、クラスター内のデータベースごとに暗号化のキーも作成します。Atlas はこれらのキーを使用して、WiredTiger を介してデータの読み取りと書き込みを行い、WiredTiger はこれらのキーを暗号化して保存します。

このキーは、MongoDB マスターキーで暗号化されます。

ノードが 3 つのレプリカ セットの次の暗号化階層を検討してみましょう。 Atlasは、Google Cloud PlatformKMS の CMKMongoDB を使用して、クラスター内の各ノードで一意の マスター キーを暗号化します。また、各ノードには 3 つのデータベースが含まれており、それぞれがデータベースごとに固有の暗号化キーで暗号化されています。 クラスターが起動すると、Atlas は のMongoDB CMK を使用して マスター キーを復号化し、これをGoogle Cloud PlatformKMS MongoDB Serverに提供します。

注意

Atlas の CMK へのアクセスを取り消すと、Atlas はクラスター内のノードをシャットダウンし、 CMK へのアクセスを復元するまでデータにアクセスできなくなります。

Google Cloud Platform KMSとAtlasによる CMK ワークフローの図

カスタマー キー マネジメントを構成するには、プロジェクトに対して Project Owner のアクセス権が必要です。

Organization Owner アクセス権を持つユーザーは、自分自身を Project Owner としてプロジェクトに追加する必要があります。

プロジェクトで を使用してカスタマー マネージド キーを有効にするには、次のものが必要です。Google Cloud PlatformKMSMongoDB

  • M10 以上のクラスターを使用します。
  • Google Cloud Platformサービス アカウント キー。

  • Google Cloud Platform KMSの対称暗号化キー。

  • 暗号化キーに関連付けられた キー バージョンID Google Cloud PlatformKMSリソース 。

  • サービス アカウント キーで指定された認証情報を持つGoogle Cloud Platformサービス アカウントと、次の権限を持つ Google Cloud Platform サービス アカウント。

    • Google Cloud Platform KMS暗号化キーのバージョンを取得します。

    • Google Cloud Platform KMS暗号化キー バージョンを使用してデータを暗号化します。

    • Google Cloud Platform KMS暗号化キーを使用してデータを復号化します。

    注意

    キー バージョンではなく、キーが復号を取り扱います。

  • Google Cloud Platform KMS 構成で必要な場合は、Atlas IPアドレスとクラスター ノードのパブリックIPアドレスまたは DNS ホスト名用にGCPからアクセス レベルを作成して、Atlas が KMS と通信できるようにします。ノードのIPアドレスが変更された場合は、接続の中断を回避するために構成を更新する必要があります。

プロジェクト内のクラスターで有効にする前に、プロジェクトでカスタマー キー管理を有効にする必要があります。

1
  1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。

  4. サイドバーで、Advanced をクリックします。

    詳細ページが表示されます。

2
3
4

保管中のデータの暗号化に使用するGoogle Cloud Platform KMS キーのキー バージョンリソースIDを入力します。

キー バージョンリソースID は、CryptoKeyVersion の完全修飾リソース名です。

重要

認証方法を設定する前に、有効なIDを入力する必要があります。

5

Atlas はGCP KMS の 2 つの認証方法をサポートしています。

  • サービス アカウント(推奨) : Atlas が管理するプロジェクト固有のサービス アカウントを使用して、 GCP認証を行います。

  • 静的認証情報 : カスタマーが管理するサービス アカウント キーを提供します。

6

プロジェクトでカスタマー マネージド キーを有効にした後、暗号化するデータを含む各 Atlas クラスターに対してカスタマーキー マネジメントを有効にする必要があります。

注意

該当プロジェクト内のクラスターのカスタマー キー管理を有効にするには、Project Owner ロールが必要です。

新しいクラスターの場合は、クラスターを作成するときに 独自の暗号化キーの管理設定を [Yes] に切り替えます。

既存クラスターの場合:

1
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. サイドバーで、 Database見出しの下のClustersをクリックします。

[ Clusters (クラスター) ] ページが表示されます。

2

暗号化するデータを含むクラスターで、クリックします、次にEdit Configurationを選択します。

3
  1. [Additional Settings] パネルを展開します。

  2. Manage your own encryption keys 設定を Yes に切り替えます。

  3. クラスターのRequire Private Networking設定のステータスを確認します。

    プロジェクト レベルで Atlas のCMKを使用した保管時の暗号化(オーバープライベート ネットワーク)を使用した保管時の暗号化を構成した場合、ステータスはActiveです。 プロジェクトにプライベートエンドポイント接続を構成していない場合、ステータスはInactiveです。

4
  1. [Review Changes] をクリックします。

  2. 変更内容を確認し、[Apply Changes] をクリックしてクラスターをアップデートします。

Atlasencryption key rotation alert では、プロジェクトのカスタマーキー管理を構成すると、 が自動的に作成されます。このアラートはGCPキー バージョン リソースIDをローテーションすることでいつでもリセットできます。

注意

この機能は、次の配置では使用できません。

  • 無料クラスター

  • Flex クラスター

詳しくは、「 制限 」を参照してください。

独自のクラウドプロバイダーKMS Bluetooth を使用する場合、Atlas はMongoDBマスター キーを少なくとも90 日ごとに自動的にローテーションします。メンテナンスウィンドウ中にキー ローテーションが開始されます(構成されている場合)。メンテナンス(手動または自動)を延期すると、キーが 90 日を超えてローテーションされる可能性があります。キーは順次ローテーションされるため、プロセスでデータを書き換える必要はありません。

Atlasは、 キー管理に使用されるキー バージョン リソース を自動的にローテーションしませID Google Cloud Platformん 。

ベストプラクティスとして、 Atlasプロジェクトでalert 保管時の暗号化を有効にする 場合、 GCPキー バージョン リソースID のローテーションを促すため、Atlas はデフォルトで90 日ごとに を作成します。このアラートの期間は構成により変更できます。

Google Cloud Platform CMK を自分でローテーションすることも、 CMK を 自動的にローテーションさせる ようGoogle Cloud Platform KMSインスタンスを構成することも可能です。Google Cloud Platform CMK の自動ローテーションを構成する場合、デフォルトのローテーション期間は約 365 日です。

で自動 CMK Google Cloud PlatformAtlasローテーションをすでに設定していて、90 日ごとに CMK をローテーションするための アラートを受信したくない場合は、デフォルトのアラート期間を 365 日より長く 変更 できます。

プロジェクトに関連付けられた アカウントに新しいサービス アカウント キーを作成する必要があります。Google Cloud PlatformAtlas

次の手順では、Atlas で新しいキー バージョン リソース ID を指定して、Atlas プロジェクト キー識別子をローテーションする方法を説明します。

1
  1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。

  4. サイドバーで、Advanced をクリックします。

    詳細ページが表示されます。

2
3
  1. Google Cloud KMSタブがまだアクティブになっていない場合は、 Google Cloud KMSをクリックします。

  2. Encryption Key Credentialsダイアログ ボックスがまだ表示されていない場合は、 Encryption Key Credentialsを展開します。

  3. Key Identifierエントリに GCP キー バージョン リソース ID を入力します。

    CryptoKeyVersion の完全修飾リソース名を含めます。

    projects/my-project-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1

    Google Cloud Platform暗号化のキーは、Atlas プロジェクト用に構成された サービス アカウント キーに属している 必要 があります。プロジェクトに現在設定されているサービス アカウント キーを表示するには、[ Service Account Key ] セクションをクリックします。

  4. [Update Credentials] をクリックします。

Atlas は、キー識別子のローテーション プロセス中に Atlas コンソールにバナーを表示します。

警告

変更が配置されるまで、元のキー バージョン リソース ID を削除したり無効にしたり しない でください。

クラスターが クラスターのバックアップを使用する場合は、スナップショットが暗号化にそのキーを使用していないことを確認するまで、元のキー バージョン リソース ID を削除したり無効にしたり しないでください。

Atlas は、この手順の完了時にencryption key rotation alertタイマーをリセットします。

デフォルトでは、MongoDBプロセスと検索プロセスは同じノードで実行されます。このアーキテクチャでは、カスタマー マネージドの暗号化はデータベースデータに適用されますが、検索インデックスには適用されません。

専用の検索ノードを有効にすると、検索プロセスは別々のノードで実行されます。これにより、検索ノード データの暗号化が有効になり、データベースデータと検索インデックスの両方を同じカスタマー マネージド キーで暗号化して、包括的な暗号化をカバーすることができます。

注意

データベース ノードと検索ノードは、同じカスタマー マネージド キーを使用して異なる暗号化方法を使用します。データベース ノードはWiredTiger暗号化ストレージ エンジンを使用し、検索ノードはディスク レベルの暗号化を使用します。

重要

この機能は KMS プロバイダー全体で利用できますが、検索ノードは AWS 上にある必要があります。