Docs Menu
Docs Home
/ /
アプリを保護する

VPC プライベートエンドポイントの使用(プレビュー)

プライベートエンドポイント を使用すると、仮想プライベートクラウド(VPC)内から Atlas App Services にアクセスできます。 これは、パブリック インターネットを経由しないAtlas App Services Goのプライベート接続であり、 VPC 外からのリクエストでは 404エラーが返されます。

プライベートエンドポイントは、 AWSのリージョンにローカルに配置された Atlas App Services アプリでのみ使用できます。 AWS PrivateLink を使用してAWS VPCに接続します。詳細については、 「AWS PrivateLink とは」を参照してください。 AWSドキュメントの 。

App Services プライベートエンドポイントには次の 2 種類があります。

  • 一般: クライアント HTTP リクエストにservices.cloud.mongodb.comを使用するエンドポイント。

  • 同期: 同期 WebSocket 接続にservices.cloud.mongodb.comを使用するエンドポイント。

重要

カスタムHTTPS endpointsおよびData APIエンドポイントは、 プライベート エンドポイント ではサポートされていません。

以下の情報を収集します。

  • VPC ID は、 Amazon Web Services VPCダッシュボード、またはAmazon Web Services CLI で describe-vpcs コマンドを実行中ことで確認できます。

  • サブネット ID は、 Amazon Web Services VPCダッシュボード、またはAmazon Web Services CLI で describe-subnets コマンドを実行中ことで見つけることができます。

VPC用のプライベートホストゾーンを設定します。これにはVPC ID が必要です。ModifyVpcAttribute を使用して、次のVPC属性を true に設定します。

  • EnableDnsHostnames

  • EnableDnsSupport

また、 Amazon Web Services CLIをインストールして認証する必要があります。

App Services UI または管理 API を使用して、新しい一般エンドポイントまたは同期エンドポイントを追加できます。

1
  1. App Services UI で、 App Settingsに移動し、 Private Endpointsタブをクリックします。

  2. [Add Private Endpoint をクリックし、[General] をクリックします。

  3. VPC ID とサブネット ID(カンマ区切りのリスト)を別々のフィールドに追加し、 Next ] をクリックします。

  4. 生成されたVPC Interface Endpoint Commandをコピーします。 コマンドは次のようになります。

    aws ec2 create-vpc-endpoint \
    --vpc-endpoint-type Interface
    --service-name <App Services Endpoint Service Name> \
    --vpc-id <your-vpc-id> \
    --region <your-aws-deployment-region> \
    --subnet-ids <your-subnet-ids>
  5. ターミナルで、生成されたAmazon Web Services CLIコマンドを実行してVPCエンドポイントを作成します。

2

VPC にインターフェイスエンドポイントを作成したので、それをアプリに追加する必要があります。

  1. 前のステップで実行した コマンドの出力、または VPCダッシュボードのエンドポイント詳細画面で、 エンドポイントID CLIAmazon Web ServicesVPCを見つけます。この値はvpce-から始まります。

  2. 新しい VPC エンドポイントの ID をコピーして、App Services UI のYour VPC Endpoint IDフィールドに貼り付け、 Nextをクリックします。

  3. これが最初に作成するプライベートエンドポイントである場合は、PrivateLink 接続外のリクエストからのすべてのアクセスを制限または開くために使用できるトグルが表示されます。 デフォルトでは、App Services は PrivateLink 接続外部からのすべてのリクエストをブロックします。 この設定は、このエンドポイントと作成する 追加のすべてのエンドポイントに適用されます。 詳細については、「アクセス制限の変更」を参照してください。

  4. [Finish Endpoint Creation] をクリックします。

1
  1. List VPC プライベートエンドポイント サービスエンドポイントを呼び出します。

  2. 応答オブジェクトをフィルタリングして、アプリの配置リージョンと作成するエンドポイント タイプのエントリを見つけます。

    curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoint_service_infos \
    -H "Authorization: Bearer <access_token>"
    [
    {
    "cloud_provider_region": "aws-us-east-1",
    "service_name": "com.amazonaws.vpce.us-east-1.vpce-svc-0718bec2c0bdeab5c",
    "endpoint_type": "general"
    },
    ...
    ]
  3. 前のステップで、目的のエントリからservice_nameフィールドを取得します。

  4. Amazon Web Services CLI の create-vpc-endpoint コマンドを使用してVPCエンドポイントを作成します。App Services エンドポイント サービス名、 VPC ID、サブネット ID、 Amazon Web Services配置リージョンが必要です。 コマンドは次のようになります。

aws ec2 create-vpc-endpoint \
--vpc-endpoint-type Interface
--service-name <App Services Endpoint Service Name> \
--vpc-id <your-vpc-id> \
--region <your-aws-deployment-region> \
--subnet-ids <your-subnet-ids>
2

VPC にインターフェイスエンドポイントを作成したので、それをアプリに追加する必要があります。

  1. 前のステップで実行した コマンドの出力、または VPCダッシュボードのエンドポイント詳細画面で、 エンドポイントID CLIAmazon Web ServicesVPCを見つけます。この値はvpce-から始まります。

  2. VPC エンドポイントの ID が取得されたら、「 エンドポイント ID、クラウド配置リージョン、エンドポイントタイプを使用して VPC プライベートエンドポイントの作成」を呼び出します。 たとえば、 aws-us-east-1を使用する場合は次のようになります。

curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoints \
-X POST \
-H "Authorization: Bearer <accessToken>" \
-H "Content-Type: application/json" \
-d '{
"cloud_provider_region": "<your-cloud-deployment-region>",
"cloud_provider_endpoint_id": "<your-vpc-endpoint-id>",
"endpoint_type": "general",
"comment": "Optional: add a comment describing the endpoint."
}'

すべての同期エンドポイントは 一般的なエンドポイント と組み合わせる必要があります。

1
  1. App Services UI で、 App Settingsに移動し、 Private Endpointsタブをクリックします。

  2. [Add Private Endpoint をクリックし、[Sync] をクリックします。

  3. VPC ID とサブネット ID(カンマ区切りのリスト)を別々のフィールドに追加し、 Next ] をクリックします。

  4. 生成されたVPC Interface Endpoint Commandをコピーします。 コマンドは次のようになります。

    aws ec2 create-vpc-endpoint \
    --vpc-endpoint-type Interface
    --service-name <App Services Endpoint Service Name> \
    --vpc-id <your-vpc-id> \
    --region <your-aws-deployment-region> \
    --subnet-ids <your-subnet-ids>
  5. ターミナルで、生成されたAmazon Web Services CLIコマンドを実行してVPCエンドポイントを作成します。

  6. また、App Services が生成するコマンドを使用して、一般的なエンドポイントも作成する必要があります。

2

VPC にインターフェースエンドポイントを作成したので、それらをアプリに追加する必要があります。

  1. 前のステップで実行した コマンドの出力、または ダッシュボードのエンドポイント詳細画面で、VPC 同期 エンドポイント ID および 一般的な VPC エンドポイント IDCLIAmazon Web ServicesVPC を見つけます。この値はvpce-から始まります。

  2. 新しい VPC エンドポイント ID をコピーし、App Services UI のそれぞれのYour VPC Endpoint IDフィールドに貼り付け、 Nextをクリックします。

  3. これが最初に作成するプライベートエンドポイントである場合は、PrivateLink 接続外のリクエストからのすべてのアクセスを制限または開くために使用できるトグルが表示されます。 デフォルトでは、App Services は PrivateLink 接続外部からのすべてのリクエストをブロックします。 この設定は、このエンドポイントと作成する 追加のすべてのエンドポイントに適用されます。 詳細については、「アクセス制限の変更」を参照してください。

  4. このページに記載されている一般プライベートエンドポイントの作成手順に従って、一般プライベートエンドポイントも作成する必要があります。

  5. [Finish Endpoint Creation] をクリックします。

1
  1. List VPC プライベートエンドポイント サービスエンドポイントを呼び出します。

  2. 応答オブジェクトをフィルタリングして、アプリの配置リージョンと作成するエンドポイント タイプのエントリを見つけます。

    curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoint_service_infos \
    -H "Authorization: Bearer <access_token>"
    [
    {
    "cloud_provider_region": "aws-us-east-1",
    "service_name": "com.amazonaws.vpce.us-east-1.vpce-svc-0718bec2c0bdeab5c",
    "endpoint_type": "sync"
    },
    ...
    ]
  3. 前のステップで、目的のエントリからservice_nameフィールドを取得します。

  4. Amazon Web Services CLI の create-vpc-endpoint コマンドを使用してVPCエンドポイントを作成します。App Services エンドポイント サービス名、 VPC ID、サブネット ID、 Amazon Web Services配置リージョンが必要です。 コマンドは次のようになります。

aws ec2 create-vpc-endpoint \
--vpc-endpoint-type Interface
--service-name <App Services Endpoint Service Name> \
--vpc-id <your-vpc-id> \
--region <your-aws-deployment-region> \
--subnet-ids <your-subnet-ids>
2

VPC にインターフェイスエンドポイントを作成したので、それをアプリに追加する必要があります。

  1. 前のステップで実行した コマンドの出力、または VPCダッシュボードのエンドポイント詳細画面で、 同期 エンドポイントID CLIAmazon Web ServicesVPCを見つけます。この値はvpce-から始まります。

  2. エンドポイント ID、クラウド配置リージョン、エンドポイントタイプを指定して VPC プライベートエンドポイントの作成を呼び出して、同期プライベートエンドポイントを作成します。 たとえば、 aws-us-east-1を使用する場合は次のようになります。

    curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoints \
    -X POST \
    -H "Authorization: Bearer <accessToken>" \
    -H "Content-Type: application/json" \
    -d '{
    "cloud_provider_region": "<your-cloud-deployment-region>",
    "cloud_provider_endpoint_id": "<your-vpc-endpoint-id>",
    "endpoint_type": "sync",
    "comment": "Optional: add a comment describing the endpoint."
    }'
  3. このページに記載されている一般プライベートエンドポイントの作成手順に従って、一般プライベートエンドポイントも作成する必要があります。

デフォルトでは、すべてのプライベートエンドポイントは内部リクエストのみを処理します。 PrivateLink 接続外のすべてのリクエストからアクセスを開くことを選択できます。

重要

この設定は、すべてのエンドポイントにグローバルです。

この設定は、次の 3 つの方法で切り替えることができます。

  • UI で、 Restrict Access Private Endpointsタブのエンドポイントのリストから [] ボタンをクリックします。

  • UI では、最初のプライベートエンドポイントを作成するときに、 Modify Your VPC Private DNSステップでこの設定を切り替えるオプションがあります。

  • Admin API で、ブール値(デフォルトの制限を削除するにはtrue 、デフォルトの制限を再度有効にするにはfalse )を指定してAtlas 非 VPC リクエストを呼び出します。

プライベートエンドポイントを有効にした場合でも、 IP アクセス リスト へのパブリック IP 追加といった他のメソッドを使って App Services アプリケーションへのアクセスを有効にできます。

プライベートエンドポイントを介したリクエストは IP アクセス リストを無視するため、プライベート IP を IP アクセス リストに追加する必要はありません。

Atlas Device SDK は 一般 エンドポイントと 同期 エンドポイントにアクセスできます。 ただし、新しいドメインをサポートするバージョンを使用する必要があります。

  • グローバルに配置されたアプリまたは Azure または GCP に配置されたローカルアプリでは、プライベートエンドポイントは使用できません。

  • プライベートエンドポイントが有効になっている場合、パブリックインターネット接続を使用してアプリにアクセスすることはできません。 すべてのリクエストはプライベートエンドポイントを介して送信される必要があります。

  • 配置モデルを変更する場合は、アプリの新しいリージョン用に新しいプライベートエンドポイントを作成する必要があります。

  • プライベートエンドポイント を同時に使用し、 MongoDB ワイヤプロトコル 経由で接続を許可することはできません。 一方が有効になっている場合は、もう一方を有効にすることはできません。

  • デフォルトでは、プライベートエンドポイントは VPC 内からのリクエストのみを処理します。 また、パブリック インターネットからのリクエストも受け入れるようにアプリを構成できます。 その方法については、「アクセス制限の変更 」を参照してください。

  • 外部 を呼び出す App Services などのすべての アウトバウンドtrigger APIリクエストは、パブリックGo インターネット経由で送信され 。

戻る

開発者アクセスの管理

項目一覧