Docs Menu

パブリック ネットワーク経由で 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アドレスが 変更された 場合は、接続の中断を回避するために構成を更新する必要があります。

1

警告

ナビゲーションの改善が進行中

現在、新しく改善されたナビゲーション エクスペリエンスを展開しています。次の手順が Atlas UIのビューと一致しない場合は、プレビュー ドキュメントを参照してください。

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

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

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

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

2
3

保存時の暗号化に使用する Amazon Web Services KMS キーにアクセスするための新しいAmazon Web Services IAM ロールを作成するには、「Amazon Web Services CLI を使用した新しいロールの作成 」の手順に従います。承認する既存の Amazon Web Services IAM ロールがある場合は、「既存のロールへの信頼関係の追加」手順に従ってください。

4

注意

このポリシーステートメントにより、 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"
]
}
]
}
5
6
  1. AWS IAM role ドロップダウン リストから割り当てるロールを選択します。

  2. Customer Master Key ID フィールドに暗号化のキーを指定します。

  3. 暗号化のキーの Amazon Web Services リージョンを選択します。

1

API エンドポイントを使用して、新しいAmazon Web Services IAM ロールを作成します。Atlas は、Amazon Web Services アカウントの認証にこのロールを使用します。

返されたフィールド値 atlasAWSAccountArnatlasAssumedRoleExternalId を、次の手順で使用するために保存しておきます。

2
  1. Amazon Web Servicesマネジメント コンソールにログインします。

  2. Identity and Access Management (IAM)サービスに移動します。

  3. 左側のナビゲーションからRolesを選択します。

  4. ロールのリストから Atlas アクセスに使用する既存の IAM ロールをクリックします。

  5. Trust Relationships タブを選択します。

  6. Edit trust relationshipボタンをクリックします。

  7. 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>"
    }
    }
    }
    ]
    }
  8. Update Trust Policyボタンをクリックします。

3

APIエンドポイントを使用して、新しい IAM 引き受けロール ARN を承認および構成します。API 呼び出しに成功した場合は、 Amazon Web Services を使用する Atlas サービスを構成するときに roleId 値を使用できます。

4

承認された 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 キーにアクセスするようにプロジェクトを最初に設定した場合は、次の手順に従ってこの新しい要件に準拠するためにロールベースのアクセスに切り替えます。

重要

暗号化キーをロールベースのアクセスに切り替えた場合、そのプロジェクトでは、ロールベースのアクセス構成を取り消して、暗号化のキーの認証情報ベースのアクセスに戻すことはできません。

1

警告

ナビゲーションの改善が進行中

現在、新しく改善されたナビゲーション エクスペリエンスを展開しています。次の手順が Atlas UIのビューと一致しない場合は、プレビュー ドキュメントを参照してください。

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

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

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

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

2
3
4

保存時の暗号化に使用する Amazon Web Services KMS キーにアクセスするための新しいAmazon Web Services IAM ロールを作成するには、「Amazon Web Services CLI を使用した新しいロールの作成 」の手順に従います。承認する既存の Amazon Web Services IAM ロールがある場合は、「既存のロールへの信頼関係の追加」手順に従ってください。

Atlas 管理 API を使用して暗号化のキー マネジメントを更新するには、上記の手順と同じ手順を使用します。

プロジェクトの暗号化のキーでロールベース アクセスを有効にした後、暗号化するデータを含む各 Atlas クラスターに対してカスタマーキー マネジメントを有効にする必要があります。

注意

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

新しいクラスターの場合は、クラスターを作成するときに 独自の暗号化キーの管理設定を [Yes] に切り替えます。

既存クラスターの場合:

1

警告

ナビゲーションの改善が進行中

現在、新しく改善されたナビゲーション エクスペリエンスを展開しています。次の手順が Atlas UIのビューと一致しない場合は、プレビュー ドキュメントを参照してください。

  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] をクリックしてクラスターをアップデートします。