パブリック ネットワーク経由で Azure Key Vault を使用してカスタマー キーを管理する
項目一覧
注意
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アドレスへのアクセスを許可する必要があります。
プロジェクトでのカスタマー マネージド キーの有効化
プロジェクト内のクラスターで CMK を有効にする前に、プロジェクトでCMKを有効にする必要があります。 Atlas UI と Atlas Administration API からプロジェクトでCMKを有効にできます。
Atlas Atlasで、プロジェクトの {0 ページにGoします。GoAdvanced
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のAdvancedをクリックします。
詳細ページが表示されます。
Account Credentialsを入力します。
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 クラウドを選択します。 |
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 へのプライベートエンドポイント接続を使用する場合 は、プロジェクトのプライベートエンドポイント接続の有効化と設定 の手順を完了できます。
注意
プライベートエンドポイント経由でAKVを使用した保管時の暗号化 機能は、リクエストによって利用できます。 Atlas 配置でこの機能をリクエストするには、アカウント マネージャーに問い合わせてください。
PATCH
encryptionAtRest
エンドポイント に リクエストを送信します。
例
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest" \ --data ' { "azureKeyVault": { "azureEnvironment": "AZURE", "clientID": "5e4ea010-a908-45a1-a70b-ebd2e4feb055", "enabled": true, "keyIdentifier": "https://{EXAMPLEKeyVault}.vault.azure.net/keys/{EXAMPLEKey}/ d891821e3d364e9eb88fbd3d11807b86", "keyVaultName": "string", "resourceGroupName": "string", "secret": "string", "subscriptionID": "d0dd68eb-7e97-448c-b361-f7a7213dc7e2", "tenantID": "f95ac700-4c8f-4a38-a8d1-1582733edd5b" } }'
プロジェクトの CMK を使用した保管時の暗号化の構成を確認します。
AKVを使用して管理するキーを使用して保管時の暗号化を有効化および構成するリクエストを確認するには、 GET
リクエストをencryptionAtRest
エンドポイントに送信します。
例
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest"
{ "azureKeyVault": { "azureEnvironment": "AZURE", "clientID": "5e4ea010-a908-45a1-a70b-ebd2e4feb055", "enabled": true, "keyIdentifier": "https://EXAMPLEKeyVault.vault.azure.net/keys/EXAMPLEKey/d891821e3d364e9eb88fbd3d11807b86", "keyVaultName": "string", "requirePrivateNetworking": false, "resourceGroupName": "string", "subscriptionID": "d0dd68eb-7e97-448c-b361-f7a7213dc7e2", "tenantID": "f95ac700-4c8f-4a38-a8d1-1582733edd5b", "valid": true } }
プロジェクトでCMKを使用して保管時の暗号化を正常に有効にしている場合、レスポンスではenabled
はtrue
になります。 プライベートネットワークを設定して 、Atlasと Key Vault 間のすべてのトラフィックがAzureのプライベートネットワークインターフェイスを介して行われるようにすることができます。 詳細については、 「 プロジェクトでのプライベートエンドポイント接続の有効化と設定 」を参照してください。
Atlas クラスターのカスタマー キー管理の有効化
プロジェクトでカスタマー マネージド キーを有効 にした後、暗号化するデータを含む各 Atlas クラスターに対してカスタマー キー マネジメントを有効にする必要があります。
注意
該当プロジェクト内のクラスターのカスタマー キー管理を有効にするには、Project Owner
ロールが必要です。
新しいクラスターの場合は、クラスターを作成するときに 独自の暗号化キーの管理設定を [Yes] に切り替えます。
既存クラスターの場合:
AtlasGoClustersAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
まだ表示されていない場合は、サイドバーの 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見出しの下の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 サーバーのドキュメントの「保存時の暗号化」を参照してください。
クラウドバックアップによる保管時の暗号化について詳しくは、「ストレージ エンジンとクラウドバックアップの暗号化」を参照してください。