パブリック ネットワーク経由で Amazon Web Services を使用したカスタマー キーの管理
Amazon Web Services KMS で作成、所有、管理するカスタマー マネージド キー(CMK)を使用して、Atlas で保管中のデータを暗号化します。
このページでは、Amazon Web Services KMS を使用して Atlasプロジェクトとそのプロジェクト内のクラスターでカスタマーキー管理を設定する方法について説明します。
前提条件
MongoDB プロジェクトでAWS KMS を使用してカスタマー マネージド キーを有効にするには、次の手順を実行する必要があります。
M10 以上のクラスターを使用します。
十分な権限を持つ AWS IAM ロールを持っているようにします。Atlas には、キーを使用して次のアクションを実行する権限が必要です。
注意
AWS KMS キーを作成した IAM ロールではなく、別の AWS アカウントの AWS IAM ロールで AWS KMS キーを使用する場合は、十分な権限があることを確認してください。
外部 AWS アカウントを含めるには、 AWS KMS キーの下にキー ポリシー ステートメントを追加します。
外部 AWS アカウントの IAM ロールに IAM インライン ポリシーを追加します。
IAM ロールと CMK について詳しくは、AWS ドキュメントを参照してください。
上記の権限を確認したら、通常の手順に従って Atlas で KMS 設定を構成できますが、次の例外があります。
Amazon Web Services の KMS キーの完全な ARN を指定する必要があります(例:
arn:aws:kms:eu-west-2:111122223333:key/12345678-1234-1234-1234-12345678
マスター キーID (例:12345678-1234-1234-1234-12345678
)をAmazon Web Services KMS キーIDフィールドに入力しないでください。
IAM ロールの作成方法について詳しくは、 AWS ドキュメントで「IAMロール」を参照してください。
Atlas は、保存時の暗号化が有効になっているプロジェクト内のすべてのクラスターに対して同じ IAM ロールと Amazon Web Services KMS キー設定を使用します。
Amazon Web Services KMS 構成で必要な場合は、 Atlas IPアドレスとクラスター ノードのパブリックIPアドレスまたは DNS ホスト名からのアクセスを許可して、Atlas が KMS と通信できるようにします。ポリシードキュメントでIPアドレス条件演算子を構成 して、管理対象 IAM ロール ポリシーにIPアドレスを含める必要があります。ノードのIPアドレスが 変更された 場合は、接続の中断を回避するために構成を更新する必要があります。
手順
プロジェクトの暗号化のキーへのロールベース アクセスの有効化
Atlas Atlasで、プロジェクトの {0 ページにGoします。GoAdvanced
警告
ナビゲーションの改善が進行中
現在、新しく改善されたナビゲーション エクスペリエンスを展開しています。次の手順が Atlas UIのビューと一致しない場合は、プレビュー ドキュメントを参照してください。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のAdvancedをクリックします。
詳細ページが表示されます。
Authorize a new IAM role のリンクをクリックして、 AWS IAM ロールを許可し、保管時の暗号化に使用する AWS KMS キーにアクセスできるようにします。
保存時の暗号化に使用する Amazon Web Services KMS キーにアクセスするための新しいAmazon Web Services IAM ロールを作成するには、「Amazon Web Services CLI を使用した新しいロールの作成 」の手順に従います。承認する既存の Amazon Web Services IAM ロールがある場合は、「既存のロールへの信頼関係の追加」手順に従ってください。
AWS コンソールまたは CLI を使用して、AWS IAM ロールにアクセス ポリシーを追加します。詳細については、「 IAM ポリシーの管理 」を参照してください。
注意
このポリシーステートメントにより、 MongoDBのAmazon Web Services Principal は、暗号化および復号化操作にカスタマーのKMSキーを使用できるようになります。 Atlas Principal は秘密ではなく、すべての Atlas カスタマー間で使用されます。 これは、高度に制限された、目的限定のAmazon Web Servicesアカウントであり、IAM ユーザー以外のリソースは含まれません。 ポリシー ステートメント内のExternalId
は Atlas プロジェクトごとに一意ですが、秘密ではありません。 ExternalId
は、クロスコンテキスト(混乱した代理)への脆弱性の可能性を軽減するために使用されます。 こちら で説明されているように、Atlas が共通のプリンシパルを使用してすべてのカスタマーのキーにアクセスする方法を、アクセス パターンとして Amazon は推奨して います。
保管時の暗号化のアクセス ポリシーは次のようになります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/12x345y6-7z89-0a12-3456-xyz123456789" ] } ] }
cloudProviderAccess
エンドポイントに POST リクエストを送信します。
API エンドポイントを使用して、新しいAmazon Web Services IAM ロールを作成します。Atlas は、Amazon Web Services アカウントの認証にこのロールを使用します。
返されたフィールド値 atlasAWSAccountArn
と atlasAssumedRoleExternalId
を、次の手順で使用するために保存しておきます。
Amazon Web Services IAM ロールの信頼ポリシーを変更します。
Amazon Web Servicesマネジメント コンソールにログインします。
Identity and Access Management (IAM)サービスに移動します。
左側のナビゲーションからRolesを選択します。
ロールのリストから Atlas アクセスに使用する既存の IAM ロールをクリックします。
Trust Relationships タブを選択します。
Edit trust relationshipボタンをクリックします。
Policy Documentを編集します。 次のコンテンツを持つ新しい
Statement
オブジェクトを追加します。注意
このポリシーステートメントにより、 MongoDBのAmazon Web Services Principal は、暗号化および復号化操作にカスタマーのKMSキーを使用できるようになります。 Atlas Principal は秘密ではなく、すべての Atlas カスタマー間で使用されます。 これは、高度に制限された、目的限定のAmazon Web Servicesアカウントであり、IAM ユーザー以外のリソースは含まれません。 ポリシー ステートメント内の
ExternalId
は Atlas プロジェクトごとに一意ですが、秘密ではありません。ExternalId
は、クロスコンテキスト(混乱した代理)への脆弱性の可能性を軽減するために使用されます。 こちら で説明されているように、Atlas が共通のプリンシパルを使用してすべてのカスタマーのキーにアクセスする方法を、アクセス パターンとして Amazon は推奨して います。注意
強調表示された行を、ステップ 1 の API 呼び出しから返された値に置き換えます。
{ "Version": "2020-03-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "<atlasAWSAccountArn>" }, "Action:" "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "<atlasAssumedRoleExternalId>" } } } ] } Update Trust Policyボタンをクリックします。
新しく作成した IAM ロールを承認します。
APIエンドポイントを使用して、新しい IAM 引き受けロール ARN を承認および構成します。API 呼び出しに成功した場合は、 Amazon Web Services を使用する Atlas サービスを構成するときに roleId
値を使用できます。
ロール認証を用いたプロジェクトでの Amazon Web Services KMS の有効化
承認された Amazon Web Services IAM ロール ID を使用して awsKms.roleId
フィールドを更新するには、encryptionAtRest API エンドポイントに PATCH
リクエストを送信します。
例
curl --user "{public key}:{private key}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request PATCH \ "https://cloud.mongodb.com/api/atlas/v1.0/groups/{groupId}/encryptionAtRest?pretty=true&envelope=true" \ --data ' { "awsKms": { "enabled": true, "roleId": "<roleId>", "customerMasterKeyID": "<master-key-id>", "region": "<aws-region>" } }'
プロジェクトの暗号化のキーへのロールベース アクセスを有効 にした後、「Atlas クラスターのカスタマー キー管理の有効化」に従って、プロジェクト内の各 Atlas クラスターのカスタマー マネージド キーを有効にします。
プロジェクトの暗号化のキーのロールベース アクセスへの切り替え
年 1 月26 2021日現在、 Amazon Web Services、Atlas 内のAmazon Web Services KMS暗号化のキーへのアクセスを管理するために、IAM ユーザーではなく IAM ロールを使用する必要があります。IAM ユーザー認証情報を使用してAmazon Web Services KMS キーにアクセスするようにプロジェクトを最初に設定した場合は、次の手順に従ってこの新しい要件に準拠するためにロールベースのアクセスに切り替えます。
重要
暗号化キーをロールベースのアクセスに切り替えた場合、そのプロジェクトでは、ロールベースのアクセス構成を取り消して、暗号化のキーの認証情報ベースのアクセスに戻すことはできません。
AtlasGoAdvancedAtlas で、プロジェクトの ページにGoします。
警告
ナビゲーションの改善が進行中
現在、新しく改善されたナビゲーション エクスペリエンスを展開しています。次の手順が Atlas UIのビューと一致しない場合は、プレビュー ドキュメントを参照してください。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のAdvancedをクリックします。
詳細ページが表示されます。
保管時の暗号化に使用する AWS KMS キーにアクセスするための AWS IAM ロールを、Atlas に承認して割り当てます。
保存時の暗号化に使用する Amazon Web Services KMS キーにアクセスするための新しいAmazon Web Services IAM ロールを作成するには、「Amazon Web Services CLI を使用した新しいロールの作成 」の手順に従います。承認する既存の Amazon Web Services IAM ロールがある場合は、「既存のロールへの信頼関係の追加」手順に従ってください。
Atlas 管理 API を使用して暗号化のキー マネジメントを更新するには、上記の手順と同じ手順を使用します。
Atlas クラスターのカスタマー キー管理の有効化
プロジェクトの暗号化のキーでロールベース アクセスを有効にした後、暗号化するデータを含む各 Atlas クラスターに対してカスタマーキー マネジメントを有効にする必要があります。
注意
該当プロジェクト内のクラスターのカスタマー キー管理を有効にするには、Project Owner
ロールが必要です。
新しいクラスターの場合は、クラスターを作成するときに 独自の暗号化キーの管理設定を [Yes] に切り替えます。
既存クラスターの場合:
AtlasGoClustersAtlas で、プロジェクトの ページにGoします。
警告
ナビゲーションの改善が進行中
現在、新しく改善されたナビゲーション エクスペリエンスを展開しています。次の手順が Atlas UIのビューと一致しない場合は、プレビュー ドキュメントを参照してください。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。
[ Clusters (クラスター) ] ページが表示されます。