注意
AKV(Azure Key Vault)のカスタマー マネージド キー(CMK)を使用して、Atlas で保管中のデータをさらに暗号化できます。 このページでは、Atlas プロジェクトとそのプロジェクト内のクラスターで AKVを使用してカスタマー キー管理を構成する方法について説明します。
前提条件
MongoDB プロジェクトでAKVを使用してカスタマー マネージド キーを有効にするには、次の手順を実行する必要があります。
M10 以上のクラスターを使用します。
Azureアカウントと Key Vault の認証情報と、暗号化のキーのキー識別子をAKVに用意します。
アカウントには、クライアント ID、テナント ID、およびシークレットが必要です。
キーヴォールトには、サブスクリプション ID、リソース グループ名、およびキーヴォールト名が必要です。
これらのAzureコンポーネントの構成方法については、 Azureドキュメント を参照してください。
Atlas は、Atlas プロジェクト内のクラスターの保管時の暗号化を有効にするときにこれらのリソースを使用します。
ユーザーがクラスターを簡単に作成または変更できるようにするには、キーへの公開アクセスを許可します。 キーの範囲を絞り込んでリスクを軽減するには、 TLSや認証などの制御を使用します。
定義されたIP範囲へのアクセスを制限するには、Atlas IPアドレスとクラスター ノードのパブリックIPアドレスからのアクセスを許可します。
Atlas が AKV と通信できることを確認します。接続の中断を回避するには、ノードのIPアドレスが 変更される たびに 構成を更新 してください。例、インバウンド アクセス ルールを更新する必要がある場合があります。
AKV へのアクセスを制限すると、 IPアドレスが変更されたときの複雑さが増す。例、クラスターを作成または更新するときは、AKV 内のすべての新しいIPアドレスへのアクセスを許可する必要があります。
Atlas コントロール プレーンの送信IPアドレスを追加します。Atlas Administration APIを使用して送信IPアドレスを取得する方法については、「 Atlas Control Plane のIPアドレスの取得 」を参照してください。
If your App registrations use 条件付きアクセス ポリシー を使用する場合は一般的ではありません。アプリ登録用に Atlas Control Plane のIPアドレス と クラスター ノードのパブリックIPアドレス からのリクエストを許可する必要があります。これはアプリ登録にのみ使用され、キーヴォールトアクセスには使用されません。
プロジェクトでのカスタマー マネージド キーの有効化
プロジェクト内のクラスターで CMK を有効にする前に、プロジェクトでCMKを有効にする必要があります。 Atlas UI と Atlas Administration API からプロジェクトでCMKを有効にできます。
AtlasGoAdvancedAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
。サイドバーで、Security 見出しの下の Database & Network Access をクリックします。
サイドバーで、Advanced をクリックします。
詳細ページが表示されます。
Account Credentials を入力します。
clientId | Azureアプリケーションの Client ID(または Application ID)を入力します。必要なアクセス権が Active Directory Application に割り当てられていることを確認してください。詳細については、 「必要なアクセス権」 を参照してください。 |
テナント ID | Active Directory テナントのTenant ID (またはDirectory ID )を入力します。 |
シークレット | Active Directory テナントに関連付けられているアプリケーションの有効期限が切れていないクライアント シークレットの 1 つを入力します。 |
Azure 環境 | Active Directory テナントが存在する Azure クラウドを選択します。 |
Key Vault Credentials を入力します。
サブスクリプション ID | キーヴォールトのSubscription IDを入力します。 |
リソース グループ名 | キーヴォールトを含むAzure Resource GroupのResource Group名を入力します。 |
キーヴォールト名 | キーヴォールトの名前を入力します。キーヴォールトに必要なアクセス ポリシーがあることを確認します。詳細については、 「必要なアクセス権」 を参照してください。 |
Encryption Key を入力します。
キー識別子 | Key Vault で作成されたキーの完全なURLを入力します。 重要: キー識別子は、完全なAzure一般形式で指定する必要があります。
|
(任意) AKV へのプライベートエンドポイント接続を構成します。
詳細については、 「 プロジェクトでのプライベートエンドポイント接続の有効化と設定」を参照してください
ネットワーク設定を確認します。
Azure Private Link を使用してAtlas Administration API を使用して Atlas を構成し、Atlas と Key Vault 間のすべてのトラフィックがAzureのプライベート ネットワーク インターフェースで行われるようにした場合、Atlas はRequire Private NetworkingステータスをActiveに設定します。 ステータスがInactive の場合、Atlas で AKV へのプライベートエンドポイント接続を使用する場合 は、プロジェクトのプライベートエンドポイント接続の有効化と設定 の手順を完了できます。
PATCH
encryptionAtRest
エンドポイント に リクエストを送信します。
例
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/vnd.atlas.2024-05-30+json" \ --header "Content-Type: application/vnd.atlas.2024-05-30+json" \ --request PATCH "https://cloud.mongodb.com/api/atlas/v2/groups/66c9e8f1dd6c9960802420e9/encryptionAtRest" \ --data ' { "azureKeyVault": { "azureEnvironment": "AZURE", "clientID": "b054a9ff-b60a-4cb6-8df6-20726eaefce6", "enabled": true, "keyIdentifier": "https://test-tf-export.vault.azure.net/keys/test/78b9134f9bc94fda8027a32b4715bf3f", "keyVaultName": "test-tf-export", "resourceGroupName": "test-tf-export", "secret": "", "subscriptionID": "009774e0-124f-4a69-83e0-ca8cd8acb4e2", "tenantID": "1f6ef922-9303-402a-bae2-cc68810b023c" } }'
プロジェクトの CMK を使用した保管時の暗号化の構成を確認します。
AKVを使用して管理するキーを使用して保管時の暗号化を有効化および構成するリクエストを確認するには、 GET
リクエストをencryptionAtRest
エンドポイントに送信します。
例
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/vnd.atlas.2024-05-30+json" \ --header "Content-Type: application/vnd.atlas.2024-05-30+json" \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest"
{ "azureKeyVault": { "azureEnvironment": "AZURE", "clientID": "632ff709-32a8-48a3-8224-30d2386fadaf", "enabled": true, "keyIdentifier": "https://EXAMPLEKeyVault.vault.azure.net/keys/EXAMPLEKey/d891821e3d364e9eb88fbd3d11807b86", "keyVaultName": "string", "requirePrivateNetworking": false, "resourceGroupName": "string", "subscriptionID": "a39012fb-d604-4cd1-8841-77f705f3e6d5", "tenantID": "ee46317d-36a3-4472-a3dd-6549e901da0b", "valid": true } }
プロジェクトでCMKを使用して保管時の暗号化を正常に有効にしている場合、レスポンスではenabled
はtrue
になります。 プライベートネットワークを設定して 、Atlasと Key Vault 間のすべてのトラフィックがAzureのプライベートネットワークインターフェイスを介して行われるようにすることができます。 詳細については、 「 プロジェクトでのプライベートエンドポイント接続の有効化と設定 」を参照してください。
Atlas クラスターのカスタマー キー管理の有効化
プロジェクトでカスタマー マネージド キーを有効 にした後、暗号化するデータを含む各 Atlas クラスターに対してカスタマー キー マネジメントを有効にする必要があります。
注意
該当プロジェクト内のクラスターのカスタマー キー管理を有効にするには、Project Owner
ロールが必要です。
新しいクラスターの場合は、クラスターを作成するときに 独自の暗号化キーの管理設定を [Yes] に切り替えます。
既存クラスターの場合:
AtlasGoClustersAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
サイドバーで、 Database見出しの下のClustersをクリックします。
[ Clusters (クラスター) ] ページが表示されます。
プロジェクトのカスタマー マネージド キーの無効化
プロジェクトの機能を無効にする前に、プロジェクト内の各クラスターでカスタマー キー管理を無効にする必要があります。
警告
Atlas プロジェクト内でカスタマー キー管理を無効にする前に、Atlas プロジェクト内のいずれかのクラスターが使用する AKV キーを無効にしたり削除したりし ない でください。Atlas がAKVキーにアクセスできない場合、そのキーが暗号化したデータにはアクセスできなくなります。
暗号化のキーへのアクセスを取り消す
Atlas の暗号化のキーへのアクセスは、 AKV内から取り消すことができます。 Atlas は、 AKV IP アクセス リストで Atlas コントロール プレーンが制限されていない限り、暗号化のキーへのアクセスを取り消すと、クラスターを自動的に一時停止します。
クラスターの自動一時停止を許可するには、次のいずれかを行う必要があります。
AKVの IP アクセス リストを無効にする
Atlas コントロール プレーン から AKV へのアクセスを許可します。
注意
MongoDB は、新しい Atlas コントロール プレーンの IP アドレスを徐々に追加します。 AKVの IP アクセス リストを使用している間は、IP アクセス リストを更新してクラスターの自動一時停止を許可する必要があります。
IPAtlas暗号化のキーへのアクセスを取り消すときに、 コントロール プレーンからのアクセスが制限されている場合は、 Atlas アクセスを取り消すためにクラスターを手動で一時停止する必要がありAtlas 。
Azure Key 識別子のローテーション
注意
開始する前に、 「 Azure キー識別子のローテーションについて 」を参照してください。
Atlasプロジェクトに関連付けられた AKV に新しいキーを作成する必要があります。次の手順では、Atlas で新しいキー識別子を指定して、Atlasプロジェクトキー識別子をローテーションする方法を説明します。
AtlasGoAdvancedAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
。サイドバーで、Security 見出しの下の Database & Network Access をクリックします。
サイドバーで、Advanced をクリックします。
詳細ページが表示されます。
Azure 認証情報を更新します。
Azure Key Vaultセレクターがまだアクティブでない場合は、 Azure Key Vaultをクリックします。
Encryption Keyセレクターがまだアクティブでない場合は、 Encryption Keyをクリックします。
Key Identifierフィールドに Azure キー識別子を入力します。
新しい暗号化キー識別子への完全なURLを含めます。 例:
https://mykeyvault.vault.azure.net/keys/AtlasKMSKey/a241124e3d364e9eb99fbd3e11124b23 重要
暗号化のキーは、プロジェクト用に構成されたキーヴォールトに属している必要があります。 プロジェクトに現在構成されているキーヴォールトを表示するには、 Key Vaultセクションをクリックします。
[Update Credentials] をクリックします。
Atlas は、キー識別子のローテーション プロセス中に Atlas UI にバナーを表示します。 変更がデプロイされるまで、元のキー識別子を削除したり無効にしたり しない でください。
クラスターが クラスターのバックアップを使用する場合は、スナップショットが暗号化にそのキーを使用していないことを検証するまで、元のキー識別子を削除したり無効にしたり しないでください。
関連トピック
Atlas クラスターの配置時にキー管理を使用して保管時の暗号化を有効にするには、「独自の暗号化キーの管理 」を参照してください。
既存の Atlas クラスターでキー管理を使用して保管時の暗号化を有効にするには、 「 保管時の暗号化の有効化 」を参照してください。
Atlas でキー管理を使用した保管時の暗号化の詳細については、「 カスタマー キー管理を使用した保管時の暗号化 」を参照してください。
MongoDB の保存時の暗号化の詳細については、MongoDB サーバーのドキュメントの「保存時の暗号化」を参照してください。
クラウドバックアップによる保管時の暗号化について詳しくは、「ストレージ エンジンとクラウドバックアップの暗号化」を参照してください。
検索ノードでカスタマーキー管理を有効にするには、検索ノードのデータ暗号化の有効化を参照してください。