Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

プライベートエンドポイントにわたる Azure Key Vault を使用したカスタマーキーの管理

項目一覧

  • Considerations
  • ユースケース
  • メリット
  • 制限
  • 前提条件
  • 手順
  • プロジェクトでのカスタマー マネージド キーの有効化
  • プロジェクトでのプライベートエンドポイント接続の有効化と設定
  • Atlas クラスターのカスタマー キー管理の有効化
  • プロジェクトのカスタマー マネージド キーの無効化
  • プライベートエンドポイント接続の拒否または削除
  • プロジェクトのプライベートエンドポイント接続の無効化
  • 暗号化のキーへのアクセスを取り消す
  • Azure Key 識別子のローテーション
  • 関連トピック

注意

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

  • サーバーレス インスタンス

  • M0 クラスター

  • M2/M5 クラスター

  • Flex クラスター

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

AKV(Azure Key Vault)のカスタマー マネージド キー(CMK)を使用して、Atlas で保管中のデータをさらに暗号化できます。 Azure Private Link を使用して、 AKVへのすべてのトラフィックを構成することもできます。

このページでは、Atlas Administration API を使用してAKVで Azure Private Link を自動的に設定し、Atlas とAKV間のすべてのトラフィックがAzureのプライベート ネットワーク インターフェイスを介して行われるようにする方法について説明します。

プライベートエンドポイントでAKVを使用して保管時の暗号化を有効にする前に、次のユースケース、利点、制限、前提条件を確認してください。

Atlas は 1 つのクラウド サービス プロバイダーに配置されているとします。 AKVへのすべてのアクセスは、クラウドプロバイダーのプライベート ネットワーク インフラストラクチャ経由で発生する必要があります。 このページでは、Atlas プロジェクトでプライベートエンドポイント接続を有効にする手順について説明します。

Atlas Administration API を使用して、Atlas が プライベートエンドポイント を使用してAKVで保管時の暗号化を構成できるようにします。 これにより、 AKVへのすべてのトラフィックはプライベートエンドポイントのセットを通過し、 AKVがパブリックインターネットまたはパブリック IP アドレスに公開されるのを回避できます。 すべてのAKVトラフィックをAzureのプライベート ネットワーク内に保持することで、データのセキュリティを強化しながら、許可された IP アドレスを維持する必要がなくなります。

Atlas では、マルチクラウド配置のプライベートエンドポイント経由でCMKを使用した保管時の暗号化はサポートされていません。 マルチクラウド クラスターを含む既存のプロジェクトで Azure Private Link 経由でCMKを使用して保管時の暗号化を有効にすると、Atlas はプロジェクト内のマルチクラウド クラスターを無効にします。

Atlas では、 INACTIVE状態のプロジェクトで、プライベートエンドポイント経由でCMKを使用した保管時の暗号化はサポートされていません。

は、Atlas またはAmazon Web Services クラスターのプライベートネットワーク経由での AKVGoogle Cloud Platform アクセスをサポートしていません。

MongoDB プロジェクトでAKVを使用してカスタマー マネージド キーを有効にするには、次の手順を実行する必要があります。

  • M10 以上のクラスターを使用します。

  • Azureアカウントと Key Vault の認証情報と、暗号化のキーのキー識別子をAKVに用意します。

    • アカウントには、クライアント ID、テナント ID、およびシークレットが必要です。

    • キーヴォールトには、サブスクリプション ID、リソース グループ名、およびキーヴォールト名が必要です。

    これらの Azure コンポーネントの構成方法については、 Azure ドキュメント を参照してください。

    Atlas は、Atlas プロジェクト内のクラスターの保管時の暗号化を有効にするときにこれらのリソースを使用します。

  • App registrationsが条件付きアクセス ポリシーを使用する場合は、Atlas Control Plane のIPアドレス からのリクエストを許可する必要があります。キーヴォールトへのパブリック アクセスを有効にする必要はありません。

注意

Azure サブスクライブリソースプロバイダーに Microsoft .Network を登録する必要があります。詳しくは、 Azureのドキュメント を参照してください。

プロジェクト内のクラスターで CMK を有効にする前に、プロジェクトでCMKを有効にする必要があります。 Atlas UI と Atlas Administration API からプロジェクトでCMKを有効にできます。

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

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

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

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

2
3
4

clientId

Azure アプリケーションのClient ID (またはApplication ID )を入力します。 Active Directory ApplicationにはAzure key Vault Readerのロールが割り当てられている必要があります。

テナント ID

Active Directory テナントのTenant ID (またはDirectory ID )を入力します。

シークレット

Active Directory テナントに関連付けられているアプリケーションの有効期限が切れていないクライアント シークレットの 1 つを入力します。

Azure 環境

Active Directory テナントが存在する Azure クラウドを選択します。

5

サブスクリプション ID

キーヴォールトのSubscription IDを入力します。

リソース グループ名

キーヴォールトを含むAzure Resource GroupResource Group名を入力します。

キーヴォールト名

キーヴォールトの名前を入力します。 Key Vault リソース グループはResource Groupと一致する必要があり、Key Vault には次のアクセス ポリシーが必要です。

  • キー管理操作

  • GET

  • 暗号化操作:

    • ENCRYPT

    • DECRYPT

注意

AKV へのプライベートエンドポイント接続を有効にして設定した後は、ここで AKV 認証情報を変更することはできません。

6

キー識別子

Key Vault で作成されたキーの完全なURLを入力します。

重要: キー識別子は、完全な Azure一般形式 で指定する必要があります。

https://{keyvault-name}.vault.azure.net/{object-type}/{object-name}/{object-version}
7

詳細については、 「 プロジェクトでのプライベートエンドポイント接続の有効化と設定」を参照してください

8

Azure Private Link を使用してAtlas Administration API を使用して Atlas を構成し、Atlas と Key Vault 間のすべてのトラフィックがAzureのプライベート ネットワーク インターフェースで行われるようにした場合、Atlas はRequire Private NetworkingステータスをActiveに設定します。 ステータスがInactive の場合、Atlas で AKV へのプライベートエンドポイント接続を使用する場合 は、プロジェクトのプライベートエンドポイント接続の有効化と設定 の手順を完了できます。

注意

プライベートエンドポイント経由でAKVを使用した保管時の暗号化 機能は、リクエストによって利用できます。 Atlas 配置でこの機能をリクエストするには、アカウント マネージャーに問い合わせてください。

9

Atlas は、暗号化プロセス中に Atlas コンソールにバナーを表示します。

1

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"
}
}'

注意

AKV へのプライベートエンドポイント接続を有効にして設定した後は、次の設定を変更できません。

  • keyVaultName

  • resourceGroupName

  • subscriptionID

2

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を使用して保管時の暗号化を正常に有効にしている場合、レスポンスではenabledtrueになります。 プライベートネットワークを設定して 、Atlasと Key Vault 間のすべてのトラフィックがAzureのプライベートネットワークインターフェイスを介して行われるようにすることができます。 詳細については、 「 プロジェクトでのプライベートエンドポイント接続の有効化と設定 」を参照してください。

プライベートエンドポイントを有効にして設定できるのは、Atlas Administration API のみです。 プライベートネットワークを有効にして、 AKVにプライベートエンドポイントを設定するには、次の手順を実行する必要があります。

1

エンドポイントPATCHリクエストを送信し、 requirePrivateNetworkingフラグの値をtrueに設定します。

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Accept: application/vnd.atlas.2023-01-01+json" \
--header "Content-Type: application/vnd.atlas.2023-01-01+json" \
--include \
--request PATCH "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest/" \
--data '
{
"azureKeyVault": {
"azureEnvironment": "AZURE",
"clientID": "632ff709-32a8-48a3-8224-30d2386fadaf",
"enabled": true,
"keyIdentifier": "https://EXAMPLEKeyVault.vault.azure.net/keys/EXAMPLEKey/d891821e3d364e9eb88fbd3d11807b86",
"keyVaultName": "string",
"requirePrivateNetworking": true,
"resourceGroupName": "string",
"secret": "string",
"subscriptionID": "a39012fb-d604-4cd1-8841-77f705f3e6d5",
"tenantID": "ee46317d-36a3-4472-a3dd-6549e901da0b"
}
}'
2

Atlas Administration API を使用して、 AKVと通信するためのプライベートエンドポイントを作成します。

POSTAtlas でプライベートエンドポイントを作成する Azure リージョンを含む エンドポイント に リクエストを送信します。Atlas でプライベートエンドポイントを作成するリージョンごとに個別のリクエストを送信する必要があります。

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Accept: application/vnd.atlas.2023-01-01+json" \
--header "Content-Type: application/vnd.atlas.2023-01-01+json" \
--include \
--request POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest/AZURE/privateEndpoints" \
--data '
{
"regionName": "US_CENTRAL"
}'

プライベートエンドポイントを承認すると、次の制限が適用されます。

  • Atlas は、承認されたプライベートエンドポイントを持つリージョンにのみすべての新しいクラスターを作成します。

  • Atlas は、承認されたプライベートエンドポイントを持つリージョンにのみ既存のクラスターに追加のノードを配置します。

3

Azure UI を使用できます 、 CLI 、または Terraform を使用してプライベートエンドポイント接続を承認します。

承認すると、Atlas は、パブリック インターネットを使用した接続を許可する既存のクラスターを含む、カスタマー マネージド キーを有効にしたすべてのクラスターを、プライベートエンドポイント接続のみを使用するように自動的に移行します。 オプションで、クラスターをプライベートエンドポイント接続を使用するように移行した後に、 AKVへのパブリックインターネットアクセスを無効にすることができます。 Azure上のすべての新しい Atlas クラスターは、デフォルトでは、アクティブなプライベートエンドポイント接続のみを使用します。

4

プライベートエンドポイントのステータスを確認するには、 encryptionAtRestエンドポイントにGETリクエストを送信します。

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Accept: application/vnd.atlas.2023-01-01+json" \
--header "Content-Type: application/vnd.atlas.2023-01-01+json" \
--include \
--request GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest/AZURE/privateEndpoints"
{
"links": [
{
"href": "https://cloud.mongodb.com/api/atlas",
"rel": "self"
}
],
"results": [
{
"cloudProvider": "AZURE",
"errorMessage": "string",
"id": "24-hexadecimal-digit-string",
"regionName": "string",
"status": "INITIATING",
"privateEndpointConnectionName": "string"
}
],
"totalCount": 0
}

プライベートエンドポイントを承認してから、プライベートエンドポイントの現在のステータスが Atlas に反映されるまでに最大 3 分かかります。 プライベートエンドポイントは、次のいずれかのステータスになります。

初期化

Atlas がプライベートエンドポイントを作成しているプロセス中であることを示します。

PENDING_ACCe使用

プライベートエンドポイントがまだ承認されていないことを示します。 Atlas がプライベートエンドポイントを使用できるようにするには、プライベートエンドポイントを受け入れる必要があります。

アクティブ

プライベートエンドポイントが承認され、Atlas が または として使用していることを示します。

PENDING_RECREATION

プライベートエンドポイントが拒否または削除され、Atlas が同じリージョンに新しいプライベートエンドポイントを作成するプロセス中であることを示します。

失敗

プライベートエンドポイントの作成が失敗したことを示します。

Deleting

Atlas がプライベートエンドポイントの削除プロセス中であることを示します。

プロジェクトで CMK を使用した保管時の暗号化(オーバープライベート ネットワーク)を有効にしたら、プロジェクト内の各 Atlas クラスターに対して CMK を使用した保管 時の暗号化を 有効にできます。

プロジェクトでカスタマー マネージド キーを有効 にした後、暗号化するデータを含む各 Atlas クラスターに対してカスタマー キー マネジメントを有効にする必要があります。 Atlas プロジェクトにプライベートエンドポイント接続を構成した場合、Atlas は、パブリック インターネットを使用した接続を許可する既存のクラスターを含む、カスタマー マネージド キーをすでに有効にしたすべてのクラスターを、プライベートエンドポイント接続のみを使用するように自動的に移行します。

注意

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

新しいクラスターの場合は、クラスターを作成するときに、 独自の暗号化キーの管理設定 をYesに切り替えます(まだ有効になっていない場合)。

既存クラスターの場合:

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

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

  3. まだ表示されていない場合は、サイドバーの [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] をクリックしてクラスターをアップデートします。

プロジェクトの CMK を無効にするには、まず、状態に関係なく、プロジェクトに関連付けられているすべてのプライベートエンドポイントを削除する必要があります。アクティブなプライベートエンドポイントに関連付けられているプロジェクトの CMK を無効にしようとすると、Atlas にエラーが表示されます。

プロジェクトのすべてのプライベートエンドポイントを削除した後、プロジェクトの機能を無効にする前に、プロジェクト内の各クラスターでカスタマー キー管理を無効にする必要があります。

警告

Atlas プロジェクト内でカスタマー キー管理を無効にする前に、Atlas プロジェクト内のいずれかのクラスターが使用する AKV キーを無効にしたり削除したりし ない でください。Atlas がAKVキーにアクセスできない場合、キーが暗号化したデータにアクセスできなくなります。

DELETEプライベートエンドポイントを正常に削除するには、Atlas Administration APIエンドポイントに GETリクエストを送信し、削除するプロジェクトとプライベートエンドポイントのIDを指定します。削除するプライベートエンドポイントのIDは、Atlas Administration API 1 つのプロバイダーの 1 つのプライベートエンドポイント サービスを返す リクエストを送信することで取得できます。

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Accept: application/vnd.atlas.2024-10-23+json" \\ or a different version of the Atlas Admin API
--header "Content-Type: application/json" \
--include \
--request DELETE "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest/AZURE/privateEndpoints/{endpointId}" \
--data '
{
"cloudProvider": "AZURE",
"regions": [
"string"
]
}'

Atlas Administration API を使用してプライベートエンドポイントを削除すると、プライベートエンドポイントはDELETINGステータスに移行し、Atlas がプライベートエンドポイントを削除します。

Azure UI からアクティブなプライベートエンドポイントを削除または拒否すると、Atlas は同じリージョンに新しいプライベートエンドポイントの再作成を自動的に試行します。 プライベートエンドポイントのステータスを確認するには、Atlas Administration API encryptionAtRest GETすべてのエンドポイントまたは1 つのエンドポイントを取得します。このパスにはプライベートエンドポイントの ID を指定する必要があります。

1 つのプロジェクトのすべてのプライベートエンドポイントを返す

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Accept: application/vnd.atlas.2024-10-23+json" \\ or a different version of the Atlas Admin API
--header "Content-Type: application/json" \
--include \
--request GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest/AZURE/privateEndpoints/"

Atlas が新しいプライベートエンドポイントを作成しようとしている間に、拒否または削除したプライベートエンドポイントのステータスはPENDING_RECREATIONに移行し、Atlas が作成しようとする新しいエンドポイントはINITIATING状態になります。 新しいプライベートエンドポイントは、作成後に承認する必要があります。

プロジェクトのプライベートエンドポイント接続を無効にするには、まずプロジェクトに関連付けられているすべてのプライベートエンドポイントを削除する必要があります。 Atlas は、プロジェクトのプライベートエンドポイント接続を無効にしません。

プロジェクトのすべてのプライベートエンドポイントを削除した後、Atlas Administration API を使用してプロジェクトのプライベートエンドポイント接続を無効にできます。 プライベートエンドポイント接続を無効にするには、 requirePrivateNetworkingブール値フラグ値をfalseに設定して、エンドポイントPATCHリクエストを送信します。

{
"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",
"secret": "string",
"subscriptionID": "a39012fb-d604-4cd1-8841-77f705f3e6d5",
"tenantID": "ee46317d-36a3-4472-a3dd-6549e901da0b"
}
}

AKV内から Atlas の暗号化のキーへのアクセスを取り消して、データを固定できます。 暗号化のキーへのアクセスを取り消すと、Atlas はクラスターを自動的に一時停止します。

注意

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

  • サーバーレス インスタンス

  • M0 クラスター

  • M2/M5 クラスター

  • Flex クラスター

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

開始する前に、 「 Azure キー識別子のローテーションについて 」を参照してください。

Atlas プロジェクトに関連付けられたAKVに新しいキーを作成する必要があります。 次の手順では、Atlas で新しいキー識別子を指定して、Atlas プロジェクト キー識別子をローテーションする方法を説明します。

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

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

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

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

2
3
  1. Azure Key Vaultセレクターがまだアクティブでない場合は、 Azure Key Vaultをクリックします。

  2. Encryption Keyセレクターがまだアクティブでない場合は、 Encryption Keyをクリックします。

  3. Key Identifierフィールドに Azure キー識別子を入力します。

    新しい暗号化キー識別子への完全なURLを含めます。 例:

    https://mykeyvault.vault.azure.net/keys/AtlasKMSKey/a241124e3d364e9eb99fbd3e11124b23

    重要

    暗号化のキーは、プロジェクト用に構成されたキーヴォールトに属している必要があります。 プロジェクトに現在構成されているキーヴォールトを表示するには、 Key Vaultセクションをクリックします。

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

Atlas は、キー識別子のローテーション プロセス中に Atlas UI にバナーを表示します。 変更がデプロイされるまで、元のキー識別子を削除したり無効にしたり しない でください。

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

戻る

パブリック ネットワーク経由のアクセスの設定