注意
Google Cloud Platform KMSのカスタマー マネージド キー(CMK)を使用して、 Atlasで保管中のデータをさらに暗号化できます。
Atlas は、Google Cloud KMS の CMK を使用して MongoDB マスターキーを暗号化および復号化します。これにより、クラスターデータベースファイルとクラウドプロバイダーのスナップショットが暗号化されます。Atlas が CMK を暗号化に使用する方法の詳細については、 Google Cloud KMS を使用したカスタマー管理キーの有効化を参照してください。
独自のクラウドプロバイダーKMS Bluetooth を使用する場合、Atlas はMongoDBマスター キーを少なくとも90 日ごとに自動的にローテーションします。メンテナンスウィンドウ中にキー ローテーションが開始されます(構成されている場合)。メンテナンス(手動または自動)を延期すると、キーが 90 日を超えてローテーションされる可能性があります。キーは順次ローテーションされるため、プロセスでデータを書き換える必要はありません。
Atlas プロジェクトのカスタマー キー マネジメントを構成してから、そのプロジェクトのクラスターで有効にします。
Google Cloud Platform KMSによるカスタマー マネージド キーの有効化
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 KeyAtlasマスター キーを作成しMongoDB 。 MongoDB マスターキーは、MongoDB Server がデータベースごとに暗号化されたキーを暗号化するために使用する暗号化キーです。 Atlas は、キーの暗号化されたコピーをローカルに保存します。
このキーは CMK で暗号化され、データベースごとに暗号化されたキーを暗号化します。
Per-Database Encryption KeyMongoDB Atlas の各ノードは、クラスター内のデータベースごとに暗号化のキーも作成します。Atlas はこれらのキーを使用して、WiredTiger を介してデータの読み取りと書き込みを行い、WiredTiger はこれらのキーを暗号化して保存します。
このキーは、MongoDB マスターキーで暗号化されます。
例
ノードが 3 つのレプリカ セットの次の暗号化階層を検討してみましょう。 Atlasは、Google Cloud PlatformKMS の CMKMongoDB を使用して、クラスター内の各ノードで一意の マスター キーを暗号化します。また、各ノードには 3 つのデータベースが含まれており、それぞれがデータベースごとに固有の暗号化キーで暗号化されています。 When the cluster starts up, Atlas decrypts the MongoDB Master Key by using the CMK from Google Cloud KMS and supplies this to the MongoDB Server.
注意
Atlas の CMK へのアクセスを取り消すと、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アドレスが 変更された 場合は、接続の中断を回避するために構成を更新する必要があります。
Tip
次の方法については、 Google Cloud Platformのドキュメントを参照してください。
プロジェクトでのカスタマー マネージド キーの有効化
プロジェクト内のクラスターで有効にする前に、プロジェクトでカスタマー キー管理を有効にする必要があります。
Atlas Atlasで、プロジェクトの {0 ページにGoします。GoAdvanced
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。
サイドバーで、Advanced をクリックします。
詳細ページが表示されます。
Key Version Resource ID を入力します。
保管中のデータの暗号化に使用するGoogle Cloud Platform KMS キーのキー バージョンリソースIDを入力します。
キー バージョンリソースID は、CryptoKeyVersion の完全修飾リソース名です。
重要
認証方法を設定する前に、有効なIDを入力する必要があります。
認証方法を設定します。
Atlas はGCP KMS の 2 つの認証方法をサポートしています。
サービス アカウント(推奨) : Atlas が管理するプロジェクト固有のサービス アカウントを使用して、 GCP認証を行います。
静的認証情報 : カスタマーが管理するサービス アカウント キーを提供します。
Atlas では安全な方法でアクセスを許可するため、Atlasプロジェクト固有のサービス アカウントを使用してGCP認証を行います。その後、サービス アカウントに割り当てて、プロジェクトのリソースへのアクセスを制御できます。
注意
以前に静的認証情報を使用して保管時の暗号化を構成し、 サービス アカウントベースの認証に移行する 場合は、この移行は厳密に一方向であることに注意してください。Atlas は、静的認証情報認証方法への戻すをサポートしていません。
必要な権限がすでに設定されている既存の Atlas GCPサービス アカウントがある場合は、Connect Service Account ドロップダウン メニューからそれを選択します。そうでない場合、次の手順を実行します。
Atlasプロジェクトのサービス アカウントをまだ設定していない場合:
[Authorize a new service account をクリックします。Encrypt Data with GCP KMS ダイアログ ボックスが表示されます。
[Set Up] ボタンをクリックしてGCPリソースを作成します。Atlas はGCP フォルダー をプロビジョニングし、サービス アカウントを作成します。サービス アカウントを作成するには、 フォルダーが必要です。
ドロップダウン メニューから Atlas サービス アカウントを選択するか、新しいアカウントを作成します。
表示される gcloud コマンドを実行して、サービス アカウントに次の必要な権限を付与します。
Enable Encrypt/Decrypt operations
gcloud kms keys add-iam-policy-binding \ <key-name> \ --location <location> \ --keyring <keyring-name> \ --member <ATLAS_OWNED_SERVICE_ACCOUNT_EMAIL> \ --role="roles/cloudkms.cryptoKeyEncrypterDecrypter" Enable GetPublicKey operations
gcloud kms keys add-iam-policy-binding \ <key-name> \ --location <location> \ --keyring <keyring-name> \ --member <ATLAS_OWNED_SERVICE_ACCOUNT_EMAIL> \ --role="roles/cloudkms.viewer"
[Validate & Finish] をクリックして確定します。
Atlasプロジェクトの既存のサービス アカウント をお持ちの場合:
[Authorize a new service account をクリックします。Encrypt Data with GCP KMS ダイアログ ボックスが表示されます。
ドロップダウン メニューから既存の Atlas サービス アカウントを選択するか、新しいサービス アカウントを作成します。
表示される gcloud コマンドを実行して、サービス アカウントに次の必要な権限を付与します。
Enable Encrypt/Decrypt operations
gcloud kms keys add-iam-policy-binding \ <key-name> \ --location <location> \ --keyring <keyring-name> \ --member <ATLAS_OWNED_SERVICE_ACCOUNT_EMAIL> \ --role="roles/cloudkms.cryptoKeyEncrypterDecrypter" Enable GetPublicKey operations
gcloud kms keys add-iam-policy-binding \ <key-name> \ --location <location> \ --keyring <keyring-name> \ --member <ATLAS_OWNED_SERVICE_ACCOUNT_EMAIL> \ --role="roles/cloudkms.viewer"
[Validate & Finish] をクリックして確定します。
Authorize with static credentials を On に切り替えることで、サービス アカウントキーを手動で指定できます。テキストボックスに、 GCPサービスアカウントの暗号化認証情報を含むJSONオブジェクトとして形式したキーを入力します。
重要
静的認証情報は、将来のリリースでは廃止される予定です。可能な場合は、新しいプロジェクトにはサービス アカウント認証を使用します。静的認証情報を使用する既存のプロジェクトは、引き続きそれらを使用できますが、 サービス アカウント認証に移行すると切り替えることはできません。
Atlas クラスターのカスタマー キー管理の有効化
プロジェクトでカスタマー マネージド キーを有効 にした後、暗号化するデータを含む各 Atlas クラスターに対してカスタマー キー マネジメントを有効にする必要があります。
注意
該当プロジェクト内のクラスターのカスタマー キー管理を有効にするには、Project Owner ロールが必要です。
新しいクラスターの場合は、クラスターを作成するときに 独自の暗号化キーの管理設定を [Yes] に切り替えます。
既存クラスターの場合:
AtlasGoClustersAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
サイドバーで、 Database見出しの下のClustersをクリックします。
[ Clusters (クラスター) ] ページが表示されます。
アラート
Atlas では、プロジェクトのカスタマー キー管理を設定すると、 encryption key rotation alertが自動的に作成されます。 このアラートはGCP キー バージョン リソース ID をローテーションすることでいつでもリセットできます。
GCP キー バージョン リソース ID のローテーション
注意
MongoDB マスターキー - MongoDB の責任
独自のクラウドプロバイダーKMS Bluetooth を使用する場合、Atlas はMongoDBマスター キーを少なくとも90 日ごとに自動的にローテーションします。メンテナンスウィンドウ中にキー ローテーションが開始されます(構成されている場合)。メンテナンス(手動または自動)を延期すると、キーが 90 日を超えてローテーションされる可能性があります。キーは順次ローテーションされるため、プロセスでデータを書き換える必要はありません。
Google Cloud CMK - お客様の責任
Atlasは、 キー管理に使用されるキー バージョン リソース を自動的にローテーションしませID Google Cloud Platformん 。
ベストプラクティスとして、Atlasalert 90プロジェクトで 保管時の 暗号化を有効 にする 場合、GCP キー バージョン リソース ID のローテーションを促すため、Atlas はデフォルトで 日ごとに作成します。このアラートの期間は構成により変更できます。
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 プロジェクト キー識別子をローテーションする方法を説明します。
AtlasGoAdvancedAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。
サイドバーで、Advanced をクリックします。
詳細ページが表示されます。
GCP キーの詳細を更新します。
Google Cloud KMSタブがまだアクティブになっていない場合は、 Google Cloud KMSをクリックします。
Encryption Key Credentialsダイアログ ボックスがまだ表示されていない場合は、 Encryption Key Credentialsを展開します。
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 ] セクションをクリックします。
[Update Credentials] をクリックします。
Atlas は、キー識別子のローテーション プロセス中に Atlas コンソールにバナーを表示します。
警告
変更が配置されるまで、元のキー バージョン リソース ID を削除したり無効にしたり しない でください。
クラスターが クラスターのバックアップを使用する場合は、スナップショットが暗号化にそのキーを使用していないことを確認するまで、元のキー バージョン リソース ID を削除したり無効にしたり しないでください。
アラート
Atlas は、この手順の完了時にencryption key rotation alertタイマーをリセットします。
検索ノードでのカスタマー マネージド キーの有効化
デフォルトでは、MongoDBプロセスと検索プロセスは同じノードで実行されます。このアーキテクチャでは、カスタマー マネージドの暗号化はデータベースデータに適用されますが、検索インデックスには適用されません。
専用の検索ノードを有効にすると、検索プロセスは別々のノードで実行されます。これにより、検索ノード データの暗号化が有効になり、データベースデータと検索インデックスの両方を同じカスタマー マネージド キーで暗号化して、包括的な暗号化をカバーすることができます。
注意
この機能は KMS プロバイダー全体で利用できますが、検索ノードは AWS 上にある必要があります。
関連トピック
Atlas クラスターの配置時にキー管理を使用して保管時の暗号化を有効にするには、「独自の暗号化キーの管理 」を参照してください。
既存の Atlas クラスターでキー管理を使用して保管時の暗号化を有効にするには、 「 保管時の暗号化の有効化 」を参照してください。
Atlas でキー管理を使用した保管時の暗号化の詳細については、「 カスタマー キー管理を使用した保管時の暗号化 」を参照してください。
MongoDB の保存時の暗号化の詳細については、MongoDB サーバーのドキュメントの「保存時の暗号化」を参照してください。
クラウドバックアップによる保管時の暗号化について詳しくは、「ストレージ エンジンとクラウドバックアップの暗号化」を参照してください。