エンドポイント・ゲートウェイの作成
プライベートVPCネットワーク上でアクセスしたいサードパーティ製サービス IBM Cloud® やアプリケーション向けに、エンドポイントゲートウェイを作成できます。 コンソール、CLI、API、Terraformを使うことができる。
ローカルアクセス仮想プライベートエンドポイントゲートウェイを作成するには(現在、のみサポートされています Cloud Object Storage )、 ローカルアクセス仮想プライベートエンドポイントゲートウェイの作成 の手順に従ってください。 サポート対象の IBM Cloud サービスまたはサードパーティ製サービスやアプリケーションにアクセスアカウントクロスアカウントエンドポイントゲートウェイを設定するには、詳細については アカウントアカウントエンドポイントゲートウェイの作成 を参照してください。
開始前に
エンドポイント・ゲートウェイを作成する前に、 仮想プライベート・エンドポイント・ゲートウェイの計画を 確認し、以下の前提条件を満たしていることを確認してください:
-
VPC
-
エンドポイント・ゲートウェイをプロビジョンするときに同時に IP アドレスをバインドする場合は、1 つ以上のアベイラビリティー・ゾーンのサブネット
-
サービスのインスタンス
-
エンドポイント・ゲートウェイの作成、予約 IP の作成またはバインド、およびターゲット・サービスの表示またはリスト表示を行える適切な IAM 権限
-
構成するサービスで VPE が有効になっていることの確認
-
アカウントアカウントVPEを作成する場合は、以下の要件を満たしていることを確認してください:
- 必要なIAM権限とコンテキストベースの制限(CBR)ポリシーが設定されていることを確認し、アクセスを許可してください。
- 対象サービスがアカウントアカウントVPEsをサポートしていることを確認してください。 詳細については、当該サービスのドキュメントをご確認ください。
- 対象サービスインスタンスのクラウドリソース名(CRN)を取得する必要があります。
- アカウントIBM Cloud アカウントに存在するターゲットサービスインスタンスを、 アカウントサアカウント内のVPEが使用できるようにするには、次のセクションで説明するようにサービス間認可ポリシーを作成する必要があります。
コンソールでエンドポイント・ゲートウェイを作成する
IBM Cloud コンソールでエンドポイントゲートウェイを作成するには、以下の手順に従ってください
-
IBM Cloud コンソールで、 [Navigation]メニューの
選択し、 [Infrastructure
> [Network] > [Virtual Private Endpoint Gateways ]の順にクリックします。 「VPC 用の仮想プライベート・エンドポイント・ゲートウェイ (Virtual private endpoint gateways for VPC)」ページが表示されます。
-
**「作成」**をクリックしてプロビジョニング・ページに移動します。
-
「詳細」セクションの以下のフィールドに値を入力します。
- 名前 - エンドポイント・ゲートウェイの固有名を入力します。
- リソース・グループ - エンドポイント・ゲートウェイのリソース・グループを選択します。 このエンドポイント・ゲートウェイにデフォルト・グループを使用することも、リストから選択することもできます。 詳しくは、『リソースをリソース・グループに編成するためのベスト・プラクティス』を参照してください。
- タグ- 必要に応じてタグを追加し、リソースを整理したり、使用コストを追跡したり、アクセス権限を管理したりできます。
- アクセス管理タグ-オプションで、アクセス管理タグをリソースに追加して、アクセス制御の関係を編成することもできます。 サポートされるアクセス管理タグの形式は
key:valueのみです。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。 - 仮想プライベートクラウド- VPE IPアドレスが必要なVPCを選択します。 選択した VPC のリージョンに基づいて、システムは、エンドポイント・ゲートウェイに関連付けるためにアクセスできる IBM サービスのリストを提供します。 選択した VPC のリージョンでターゲット・サービスが提供されていない場合は、別のリージョンでサービスを選択するようにリージョンを変更できます。
目的のサービスまたはサービス・インスタンスが表示されない場合は、IAM の権限を再確認してください。 また、ゲートウェイにバインドする予約 IP アドレスを割り振ることも、ゲートウェイにバインドする予約 IP アドレスを割り振るための VPC サブネットを指定することもできます。
-
「セキュリティー・グループ」セクションで、セキュリティー・グループ・テーブルから関連付けるセキュリティー・グループのチェック・ボックスを選択します。 その後、これらのセキュリティグループを管理し、エンドポイントゲートウェイへの着信トラフィックに対するセキュリティルールを強化することができます。
セキュリティー・グループを指定せずにエンドポイント・ゲートウェイを作成すると、VPC のデフォルトのセキュリティー・グループがエンドポイント・ゲートウェイに関連付けられます。 詳しくは、『エンドポイント・ゲートウェイで使用する ACL およびセキュリティー・グループの構成』を参照してください。
セキュリティ・グループがサポートされる前に作成されたエンドポイント・ゲートウェイには、セキュリティ・グループが添付されていません。 また、すべてのインバウンド・トラフィックも許可します。 セキュリティグループがアタッチされていないVPEにセキュリティグループをアタッチした場合、そのVPEをセキュリティグループがない状態に戻すことはできません。 すべてのインバウンド・トラフィックを許可するためのルールを指定したセキュリティー・グループを関連付けることにより、以前の「すべてのインバウンド・トラフィックを許可する」動作に戻すことができます。 ただし、このルールは、より制限の厳しいセキュリティグループを設定する場合に比べて本質的にセキュリティが低いため、推奨されません。
-
Request connection to a service セクションで、IBM Cloud またはIBM Cloud 以外のサービスのいずれかを選択し、このエンドポイントゲートウェイを使用してアクセスします。
-
IBM Cloud サービスの場合は、メニューから使用可能な IBM Cloud サービス・オファリングを選択し、その地域を選択します。 パフォーマンスを最適化するために、地域が事前に選択されています。
-
IBMIBM Cloud以外のサービスの場合は、プライベート・パス・サービスのクラウド・リソース名 (CRN) を入力します (サービス・プロバイダーから取得)。
接続要求が確認のためにサービス・プロバイダーに送信されます。
審査は、プロバイダーが選択したアカウントポリシーに基づいて自動化されるかもしれないし、プロバイダーがリクエストを手動で審査することを選択した場合は数日かかるかもしれない。 要求が許可されると、通知を受け取り、サービスにアクセスできるようになります。 要求が拒否された場合は、サービス・プロバイダーに連絡してください。
-
-
「DNSの共有」セクションで、次のDNS解決バインディングモードのいずれかを選択します:
- 「 Primary 」を使用すると、DNS共有VPC内のVPEゲートウェイのサービスエンドポイントを、DNSハブVPCと共有して、名前解決を行うことができます。
- 無効にすると、VPEゲートウェイのサービスエンドポイントが名前解決のために共有されなくなります。
VPCがDNSハブである場合、DNS共有は常にプライマリに設定され、モードを変更することはできません。
-
「予約済み IP」セクションで、予約済み IP アドレスを選択します。 以下の選択肢があります。
-
「 私のために1つ選んでください 」 - IPアドレスの名前プレフィックスを入力するか、自動的に1つが選択されます。 1つ以上のサブネットを選択し(ゾーンごとに1つのサブネットを推奨)、エンドポイントゲートウェイが削除された場合にこの予約済みIPを自動的に削除したい場合は、自動解放トグルを有効にしてください。
-
既存のIPアドレスから選択- 既存のIPアドレスの一覧から選択してください。 IP アドレスが存在しない場合は、「IPを予約」をクリックして予約してください。
VPC内の各AZにつき、1つのVPEゲートウェイにバインドできる予約済みIPアドレスは1つだけです。 VPC内のすべてのサブネットにおいて、同一アベイラビリティゾーン内に他のバインディングが存在しないことを確認してください。
-
後で選択- エンドポイントゲートウェイの作成後、いずれかの時点でIPアドレスを選択します。
-
-
注文の概要を確認し、仮想プライベートエンドポイントゲートウェイを作成をクリックします。 エンドポイント・ゲートウェイの使用が要求されます。
CLI からのエンドポイントゲートウェイの作成
開始する前に、 CLI 環境をセットアップします。
CLI からエンドポイントゲートウェイを作成するには、以下の手順に従ってください
-
エンドポイント・ゲートウェイのターゲットとして設定できる IBM Cloud サービス・インスタンスをリスト表示します。
ibmcloud is endpoint-gateway-targets -
以下のコマンドを実行して、エンドポイント・ゲートウェイを作成します。
ibmcloud is endpoint-gateway-create --target TARGET [--target-type private_path_service_gateway | provider_cloud_service | provider_infrastructure_service] [--vpc VPC] [--name NAME] [--rip RIP --subnet SUBNET | (--new-reserved-ip NEW_RESERVED_IP1 --new-reserved-ip NEW_RESERVED_IP2 ...)] [--allow-dns-resolution-binding false | true] [--sg SG] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] [--output JSON] [-q, --quiet]ここで、
--target-type:- このエンドポイントゲートウェイのターゲットのタイプと、以下のいずれかを示す:
private_path_service_gateway、provider_cloud_service、provider_infrastructure_serviceのいずれか。 --vpc:- VPCのIDまたは名前を示します。
--target:- プロバイダーのインフラストラクチャ・サービスの名前、またはプロバイダーのクラウド・サービス・インスタンスのCRNを示します。
ibmcloud is endpoint-gateway-targetsコマンドを使用すると、エンドポイントゲートウェイのターゲットとして設定できるプロバイダーのクラウドおよびインフラストラクチャサービスの一覧を表示できます。 --name:- エンドポイントゲートウェイの新しい名前を示します。
--rip:- エンドポイントゲートウェイにバインドされる予約済みIPのIDを示します。
--subnet:- サブネットの ID または名前。 この名前は、予約済み IP が名前形式の場合のみ必要です。
--new-reserved-ip:- 新しい予約IPコンフィギュレーションをJSON形式またはJSONファイル
RESERVED_IP_JSON|@RESERVED_IP_JSON_FILEで示します。 --sg:- セキュリティグループのIDを示します。
-sgを指定しない場合、VPCのデフォルトのセキュリティグループがエンドポイントゲートウェイにバインドされます。--resource-group-id:- リソースグループのIDを示します。 このオプションは
--resource-group-nameと同時に指定することはできません。 --resource-group-name:- リソースグループの名前を示します。 このオプションは
--resource-group-idと同時に指定することはできません。 --output:- 出力フォーマットを示す。 JSON のみがサポートされます。
-q, --quiet:- 冗長出力を抑制する。
詳細およびコマンド例については、 VPC CLIリファレンスを 参照してください。
API を使用したエンドポイントゲートウェイの作成
API を使用してエンドポイントゲートウェイを作成するには、以下の手順に従ってください
-
API 環境をセットアップします。
-
API コマンドで使用する以下の値を変数に格納します。
- ResourceGroupId- まず、リソースグループを取得し、変数に値を設定します:
export ResourceGroupId=<your_resourcegroup_id>- VpcId -
list vpcコマンド(前述の変数を指定して)を実行し、指定された ID に基づいて変数に値を設定します:
export VpcId=<your_VPC_id>- TargetCrn- エンドポイントゲートウェイを設定する「 IBM Cloud 」サービスのインスタンスの名前(CRN)。
ibmcloud is endpoint-gateway-targetsコマンドを使用すると、エンドポイント・ゲートウェイのターゲットとして設定できる IBM Cloud サービス・インスタンスをリストできます。
export TargetCrn=<CRN of a target service>SubnetID(オプション) - サブネット ID。
export SubnetID=<your_subnet_id> -
すべての変数の初期化が完了したら、以下のアクションのいずれかを選択してください:
- VPC を指定してエンドポイント・ゲートウェイを作成します。
curl -X POST -sH "Authorization:${iam_token}" \ "$vpc_api_endpoint/v1/endpoint_gateways?version=$api_version&generation=2" \ -d '{ "name": "endpoint-gateway-1", "resource_group": {"id": "'$ResourceGroupId'"}, "vpc": {"id": "'$VpcId'"}, "target": { "crn": "'$TargetCrn'", "resource_type": "provider_cloud_service" }, "security_groups": [ {"id": "'$sg'"} ] }'プライベート・パス・サービスに接続するためにエンドポイント・ゲートウェイを作成する場合は、「リソース・タイプ」=「private_path_service_gateway」であることを確認してください。
サービス・インスタンスのためにエンドポイント・ゲートウェイを作成して予約 IP アドレスを割り当てたら、そのエンドポイント・ゲートウェイに VPC ネットワークの IP アドレスをバインドする必要があります。 詳しくは、予約 IP アドレスのバインドおよびアンバインドを参照してください。 これらのバインドされた IP アドレスは、エンドポイント・ゲートウェイにマップされたサービスにアクセスするための VPE となります。
- 予約済み IP アドレスを関連付けたエンドポイントゲートウェイを作成します:
curl -X POST -sH "Authorization:${iam_token}" \ "$vpc_api_endpoint/v1/endpoint_gateways?version=$api_version&generation=2" \ -d '{ "name": "endpoint-gateway-1", "resource_group": {"id": "'$ResourceGroupId'"}, "vpc": {"id": "'$VpcId'"}, "target": { "crn": "'$TargetCrn'", "resource_type": "provider_cloud_service" }, "security_groups": [ {"id": "'$sg'"} ], "ips": [ {"subnet": {"id": "'$SubnetID'"}} ] }'プライベート・パス・サービスに接続するためのエンドポイント・ゲートウェイを作成する際には、「リソース・タイプ」が
private_path_service_gatewayに設定されていることを確認してください。
IBM Cloud サービスにエンドポイント・ゲートウェイを作成すると、そのサービスに関連付けられているエンドポイントが表示されます。 エンドポイントゲートウェイは、IPアドレスのバインドや解除、リソースグループの変更、タグの更新など、さまざまな方法で編集できます。 何らかの理由でサービス・エンドポイントを変更する必要がある場合は、エンドポイント・ゲートウェイを削除して再作成する必要があります。
Terraform を使用したエンドポイント・ゲートウェイの作成
Terraform を使用して、エンドポイント・ゲートウェイを作成できます。
Terraformを使用するには、Terraform CLIをダウンロードし、Provider IBM Cloud プラグインを設定してください。 詳しくは、 Terraform の概要 を参照してください。
次の例は、VPEゲートウェイを作成するものです:
resource "ibm_is_virtual_endpoint_gateway" "example" {
name = "example-endpoint-gateway"
target {
name = "ibm-ntp-server"
resource_type = "provider_infrastructure_service"
}
vpc = ibm_is_vpc.example.id
resource_group = data.ibm_resource_group.example.id
security_groups = [ibm_is_security_group.example.id]
}
resource "ibm_is_virtual_endpoint_gateway" "example1" {
name = "example-endpoint-gateway-1"
target {
name = "ibm-ntp-server"
resource_type = "provider_infrastructure_service"
}
vpc = ibm_is_vpc.example.id
ips {
subnet = ibm_is_subnet.example.id
name = "example-reserved-ip"
}
resource_group = data.ibm_resource_group.example.id
security_groups = [ibm_is_security_group.example.id]
}
resource "ibm_is_virtual_endpoint_gateway" "example3" {
name = "example-endpoint-gateway-2"
target {
name = "ibm-ntp-server"
resource_type = "provider_infrastructure_service"
}
vpc = ibm_is_vpc.example.id
ips {
subnet = ibm_is_subnet.example.id
name = "example-reserved-ip"
}
resource_group = data.ibm_resource_group.example.id
security_groups = [ibm_is_security_group.example.id]
}
resource "ibm_is_virtual_endpoint_gateway" "example4" {
name = "example-endpoint-gateway-3"
target {
crn = "crn:v1:bluemix:public:cloud-object-storage:global:::endpoint:s3.direct.mil01.cloud-object-storage.appdomain.cloud"
resource_type = "provider_cloud_service"
}
vpc = ibm_is_vpc.example.id
resource_group = data.ibm_resource_group.example.id
security_groups = [ibm_is_security_group.example.id]
}
VPE ゲートウェイの作成後
VPC の仮想プライベートエンドポイントゲートウェイページに戻ると、エンドポイントゲートウェイが表に表示されます。
- IBM Cloud サービスの場合、エンドポイントゲートウェイのステータスは
UpdatingからStableに変わります。 Actions メニューActions をクリックすると、IP の名前の変更、予約、バインド、IP のバインド解除、エンドポイントゲートウェイの削除ができます。
- IBM Cloud (サード・パーティー) 以外のサービスの場合、サービス・プロバイダーが接続要求を許可または拒否するまで、エンドポイント・ゲートウェイの状況は
Pendingになります。 接続が確立されると、状況がStableに変わります。 「追跡」 をクリックするか、エンドポイント・ゲートウェイのテーブル行を展開して、要求の進行状況を表示できます。 - オプションで、VPE ゲートウェイのテーブル行に DNS 解決バインディング・スイッチがあります。これにより、このエンドポイント・ゲートウェイの DNS 共有を有効または無効にすることができます。 詳しくは、 VPE ゲートウェイの DNS 共有について を参照してください。