エンドポイント・ゲートウェイの作成

プライベート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 コンソールでエンドポイント・ゲートウェイを作成するには、以下の手順に従います:

  1. IBM Cloud コンソールで[Navigation]メニューの [Navigation]メニューアイコンを 選択し、 [Infrastructure VPC]アイコン > [Network] > [Virtual Private Endpoint Gateways ]の順にクリックします。 「VPC 用の仮想プライベート・エンドポイント・ゲートウェイ (Virtual private endpoint gateways for VPC)」ページが表示されます。

  2. **「作成」**をクリックしてプロビジョニング・ページに移動します。

  3. 「詳細」セクションの以下のフィールドに値を入力します。

    • 名前 - エンドポイント・ゲートウェイの固有名を入力します。
    • リソース・グループ - エンドポイント・ゲートウェイのリソース・グループを選択します。 このエンドポイント・ゲートウェイにデフォルト・グループを使用することも、リストから選択することもできます。 詳しくは、『リソースをリソース・グループに編成するためのベスト・プラクティス』を参照してください。
    • タグ- オプションで、タグを追加して、リソースの整理、使用コストの追跡、アクセス管理を行うことができます。
    • アクセス管理タグ-オプションで、アクセス管理タグをリソースに追加して、アクセス制御の関係を編成することもできます。 サポートされるアクセス管理タグの形式は key:value のみです。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。
    • 仮想プライベートクラウド- VPE IPアドレスが必要なVPCを選択します。 選択した VPC のリージョンに基づいて、システムは、エンドポイント・ゲートウェイに関連付けるためにアクセスできる IBM サービスのリストを提供します。 選択した VPC のリージョンでターゲット・サービスが提供されていない場合は、別のリージョンでサービスを選択するようにリージョンを変更できます。

    目的のサービスまたはサービス・インスタンスが表示されない場合は、IAM の権限を再確認してください。 また、ゲートウェイにバインドする予約 IP アドレスを割り振ることも、ゲートウェイにバインドする予約 IP アドレスを割り振るための VPC サブネットを指定することもできます。

  4. 「セキュリティー・グループ」セクションで、セキュリティー・グループ・テーブルから関連付けるセキュリティー・グループのチェック・ボックスを選択します。 そして、これらのセキュリティ・グループを管理し、エンドポイント・ゲートウェイに向かうインバウンド・トラフィックのセキュリティ・ルールを強化することができる。

    セキュリティー・グループを指定せずにエンドポイント・ゲートウェイを作成すると、VPC のデフォルトのセキュリティー・グループがエンドポイント・ゲートウェイに関連付けられます。 詳しくは、『エンドポイント・ゲートウェイで使用する ACL およびセキュリティー・グループの構成』を参照してください。

    セキュリティ・グループがサポートされる前に作成されたエンドポイント・ゲートウェイには、セキュリティ・グループが添付されていません。 また、すべてのインバウンド・トラフィックも許可します。 セキュリティグループがアタッチされていないVPEにセキュリティグループをアタッチした場合、そのVPEをセキュリティグループがない状態に戻すことはできません。 すべてのインバウンド・トラフィックを許可するためのルールを指定したセキュリティー・グループを関連付けることにより、以前の「すべてのインバウンド・トラフィックを許可する」動作に戻すことができます。 しかし、このルールは、より制限の厳しいセキュリティー・グループ を設定するよりも本質的に安全ではないので、推奨されない。

  5. Request connection to a service セクションで、IBM Cloud またはIBM Cloud 以外のサービスのいずれかを選択し、このエンドポイントゲートウェイを使用してアクセスします。

    • IBM Cloud サービスの場合は、メニューから使用可能な IBM Cloud サービス・オファリングを選択し、その地域を選択します。 パフォーマンスを最適化するために、あらかじめ領域が選択されている。

    • IBMIBM Cloud以外のサービスの場合は、プライベート・パス・サービスのクラウド・リソース名 (CRN) を入力します (サービス・プロバイダーから取得)。

      接続要求が確認のためにサービス・プロバイダーに送信されます。

      審査は、プロバイダーが選択したアカウントポリシーに基づいて自動化されるかもしれないし、プロバイダーがリクエストを手動で審査することを選択した場合は数日かかるかもしれない。 要求が許可されると、通知を受け取り、サービスにアクセスできるようになります。 要求が拒否された場合は、サービス・プロバイダーに連絡してください。

  6. 「DNSの共有」セクションで、次のDNS解決バインディングモードのいずれかを選択します:

    • プライマリ設定により、 DNS共有VPC内のVPEゲートウェイのサービスエンドポイントを、名前解決のためにDNSハブVPCと共有できるようになります。
    • 無効にすると、VPEゲートウェイのサービスエンドポイントが名前解決のために共有されなくなります。

    VPCがDNSハブである場合、DNS共有は常にプライマリに設定され、モードを変更することはできません。

  7. Reserved IPセクションで、予約済みIPアドレスを選択する。 以下の選択肢があります。

    • Select one for me- IPアドレスの名前のプレフィックスを入力します。 1つ以上のサブネットを選択し(ゾーンごとに1つのサブネットを推奨)、エンドポイントゲートウェイが削除された場合にこの予約済みIPを自動的に削除したい場合は、自動解放トグルを有効にしてください。

    • 既存のIPから選択- 既存のIPアドレスのリストから選択します。 IP アドレスが存在しない場合は、「IPを予約」をクリックして予約してください。

      VPC内の各アベイラビリティゾーン(AZ)において、VPEゲートウェイにバインドできる予約済みIPは1つだけです。 VPC内のすべてのサブネットにおいて、同一アベイラビリティゾーン内に他のバインディングが存在しないことを確認してください。

    • 後で選択- エンドポイントゲートウェイの作成後、いずれかの時点でIPアドレスを選択します。

  8. 注文の概要を確認し、仮想プライベートエンドポイントゲートウェイを作成をクリックします。 エンドポイント・ゲートウェイの使用が要求されます。

CLIからエンドポイント・ゲートウェイを作成する

開始する前に、 CLI 環境をセットアップします

CLI からエンドポイント・ゲートウェイを作成するには、以下の手順に従います:

  1. エンドポイント・ゲートウェイのターゲットとして設定できる IBM Cloud サービス・インスタンスをリスト表示します。

    ibmcloud is endpoint-gateway-targets
    
  2. 次のコマンドを実行してエンドポイント・ゲートウェイを作成する

    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_gatewayprovider_cloud_serviceprovider_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を使ってエンドポイント・ゲートウェイを作成するには、以下の手順に従ってください:

  1. API 環境をセットアップします。

  2. 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>
      
  3. すべての変数が開始されたら、以下のアクションのいずれかを選択します:

    • VPC を指定してエンドポイント・ゲートウェイを作成します。

      curl -X POST -sH "Authorization:${iam_token}" \
      "$vpc_api_endpoint/v1/endpoint_gateways?version=$api_version&generation=2" \
      -d {
      "name": endpoint-gateway-1",
      "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",
      "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 メニュー Actions をクリックすると、IP の名前の変更、予約、バインド、IP のバインド解除、エンドポイントゲートウェイの削除ができます。
  • IBM Cloud (サード・パーティー) 以外のサービスの場合、サービス・プロバイダーが接続要求を許可または拒否するまで、エンドポイント・ゲートウェイの状況は Pending になります。 接続が確立されると、状況が Stable に変わります。 「追跡」 をクリックするか、エンドポイント・ゲートウェイのテーブル行を展開して、要求の進行状況を表示できます。
  • オプションで、VPE ゲートウェイのテーブル行に DNS 解決バインディング・スイッチがあります。これにより、このエンドポイント・ゲートウェイの DNS 共有を有効または無効にすることができます。 詳しくは、 VPE ゲートウェイの DNS 共有について を参照してください。