プライベート・パス・サービスの作成
サービス・プロバイダーは、コンシューマー・アカウント ID の管理を担当します。 現在、アカウント ID の追跡または検証はサポートされていません。 詳しくは、 コンシューマー・アカウント ID の管理に関する責任 を参照してください。
VPC 用のプライベート・パス・サービスにより、サービス・プロバイダーは、ホストされている IBM Cloud およびサード・パーティーのサービスとアプリケーションのプライベート接続を作成して管理することができます。 プライベートパスのサービスは、コンソール、CLI、API、Terraformを使って作成できます。
開始前に
プライベート・パス・サービスを作成する前に、以下の前提条件を確認してください。
-
既知の制限については、 プライベート・パス・サービスの制限 を参照してください。
-
選択した VPC に VPC と少なくとも 1 つのサブネットがあることを確認してください。 詳細はこちら
-
プライベート・パス・ネットワーク・ロード・バランサーを作成します。 プライベート パス サービスをプロビジョニングするときにロード バランサーを作成することも、 VPC コンソールのロード バランサー を使用することもできます。
ロードバランサーとプライベートパスサービスの両方に同じVPCリージョンを使用する必要があります。
-
消費者が使用するサービスのDNS FQDNを選択する必要があります。 このドメインはコンシューマのプライベートDNSに設定されていますが、パブリックDNSでFQDNの所有権を証明する必要があります。 この場合、DNSプロバイダーへの手続きが必要になります。 詳細については、 サービス・エンドポイント(FQDN)の登録と所有権の 確認を参照してください。
サービス・エンドポイント(FQDN)の登録と所有権の確認 」に記載されている限定された事前定義ドメインのセットを使用する意思がある場合は、この要件をオプトアウトできます。
コンソール、CLI、API、または Terraform を使って IBM Cloud® Private Path サービスを作成できます。
コンソールでプライベートパスサービスを作成する
IBM Cloud コンソールを使用してプライベート・パス・サービスを作成するには、以下の手順を実行します。
-
ブラウザーから、IBM Cloud コンソールを開き、アカウントにログインします。
-
Navigation Menu
を選択し、Infrastructure(インフラストラクチャー) > Network(ネットワーク) > Private Path(プライベートパ)サービスのス順にクリックします。
-
「作成」 をクリックします。
-
重要な情報については、チェックリストを確認してください。
-
「ロケーション」セクションで、以下のフィールドが正しいことを確認します。 更新されていない場合は、「編集」アイコン
をクリックして更新します。
- 地域: プライベート・パス・サービスを作成する一般的なエリア。
- 地域 :プライベートパスサービスを作成する地域。
-
Details(詳細)セクションでは、以下の情報を入力してください:
- 名前: プライベート・パス・サービスの固有 ID (
my-privatepath-service
など) を入力します。 - リソース・グループ: 必要に応じてリソース・グループを選択します。
- タグ: オプションで、プライベート・パス・サービスのグループ化に役立つ関連タグを追加します。
- アクセス管理タグ: オプションで、アクセス管理タグをリソースに追加して、アクセス制御関係の編成に役立てます。 サポートされるアクセス管理タグの形式は
key:value
のみです。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。 - 仮想プライベート・クラウド: プライベート・パス・サービスを作成する VPC を選択します。
- 名前: プライベート・パス・サービスの固有 ID (
-
プライベートパスのネットワークロードバランサーセクションで、プライベートパスサービスのプライベートパスNLBを選択するか、[作成]をクリックして作成します。 プライベート・パスNLBを作成するには、以下の手順に従う:
「次へ」 をクリックして次のステップに進むか、左側のナビゲーション・メニューを使用して特定のセクションに戻ります。
-
Define details(詳細の定義)セクションでは、以下の情報を入力する:
- 名前: プライベート・パス NLB の固有 ID (
my-privatepath-service
など) を入力します。 - リソース・グループ: プライベート・パス NLB のリソース・グループを選択します。
- タグ: オプションで、プライベート・パス NLB のグループ化に役立つ関連タグを追加します。
- アクセス管理タグ: オプションで、アクセス管理タグをリソースに追加して、アクセス制御関係の編成に役立てます。 サポートされるアクセス管理タグの形式は
key:value
のみです。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。 - サブネット: プライベート・パス NLB を作成するサブネットを選択します。
- 名前: プライベート・パス NLB の固有 ID (
-
オプションとして、バックエンドプールの作成セクションで:
-
名前: プライベート・パス NLB の固有 ID (
my-ppnlb
など) を入力します。 -
方式 (ロード・バランシング・アルゴリズム) を選択します。 以下のオプションが表示されます。
- ラウンドロビン- 各インスタンスに順番にリクエストを転送する。 すべてのインスタンスが、ほぼ同数のクライアント接続を受信します。
- 重み付きラウンドロビン- 割り当てられた重みに比例して、各インスタンスに リクエストを転送する。 例えば、インスタンス A、B、および C があり、それらの重みが 60、60、および 30 に設定されている場合、インスタンス A と B は同数の接続を受信し、インスタンス C はその半数の接続を受信します。
「ヘルス・チェック」セクションで、以下を行います。
- ヘルス・チェック・パス- ヘルス・チェック・パスは、ヘルス・チェック・プロトコルとして HTTP を選択した場合にのみ適用されます。 ヘルス・チェック・パスは、プール内のインスタンスに HTTP ヘルス・チェック要求を送信するためにロード・バランサーが使用する URL を指定します。 デフォルトでは、ヘルス・チェックはルート・パス (/) に送信されます。
- ヘルス・プロトコル - ロード・バランサーがプール内のインスタンスにヘルス・チェック・メッセージを送信するために使用するプロトコル。
- ヘルスポート- ロードバランサーがヘルスチェックリクエストを送るポート。 デフォルトでは、ヘルス・チェックは、インスタンスにトラフィックを送信するときと同じポートで送信されます。
- 間隔 (Interval) - 2 つの連続するヘルス・チェック試行の間隔 (秒単位) デフォルトでは、ヘルス・チェックは 5 秒間隔で送信されます。
- Timeout- システムがヘルスチェック要求からの応答を待つ最大時間。 デフォルトでは、ロード・バランサーは応答を 2 秒待ちます。
- Max retries- インスタンスが不健康と宣言されるまでにロードバランサーが行う健康チェックの最大回数。 デフォルトでは、ヘルス・チェックが 2 回失敗すると、インスタンスは正常ではないと見なされます。
ロードバランサは不健康なインスタンスへのコネクションの送信を停止しますが、 これらのインスタンスの健康状態の監視は継続し、再び健康であることが確認された場合(つまり、 2回連続で健康状態のチェックに成功した場合)、その使用を再開します。
プール内のインスタンスが不健全で、アプリケーションが正常に動作していると思われる場合は、ヘルス・プロトコルとヘルス・パスの値を再度確認してください。 また、インスタンスに関連付けられているセキュリティー・グループも参照して、ロード・バランサーとインスタンスの間のトラフィックがルールで許可されていることを確認してください。
- 保存 をクリックします。 別のバックエンド・プールを作成する場合は、このステップを繰り返します。
-
-
オプションとして、[メンバーの追加] セクションで以下の情報を指定し、 [追加] をクリックします
-
バックエンド・プール: サーバーを接続するバックエンド・プールを選択します。
-
サブネット :表から特定のサブネットを検索し、アタッチするサブネットの横にあるボックスにチェックを入れます。 「ポート」列に、選択したサブネットごとにポート番号を入力します。
-
メンバータイプ :仮想サーバーインスタンス、またはアプリケーションロードバランサーをメンバーとして追加します。 仮想サーバーインスタンスの場合は、各タイプを個別にアタッチする。
プライベートパスNLBプールにALBをメンバーターゲットとしてアタッチした場合、そのプールに他のメンバーを追加することはできません。
-
-
オプションとして、「フロントエンドリスナーの追加」セクションで、フロントエンドリスナーをアタッチするバックエンドプールを選択します。 次に、リスナー・ポート値を選択し、 「保存」 をクリックします。 別のフロントエンド・リスナーを作成する場合は、このステップを繰り返します。
-
「レビュー」セクションで、送信した情報が正しいことを確認します。 注文の概要を確認し、「 作成 」をクリックします。
プライベートパスNLBが作成されるまで数分かかります。 ロード・バランサーが作成されると、その状況が表内で 「作成中」 から 「アクティブ」 に変わります。
-
-
Service endpointセクションで、Create をクリックします。 プライベート・パス・サービスを接続するサービス・エンドポイントの名前を指定します。 次に、FQDNドメイン名の所有権を確認し、[**追加]**をクリックします。 詳細については、サービス・エンドポイント(FQDN)の登録と所有権 の確認を参照してください。
-
サービス・エンドポイントのゾーン・アフィニティを有効または無効にします。 ゾーン・アフィニティーが有効になっている場合、エンドポイントは、接続の作成後にゾーンへの持続性を維持します。
-
「アカウント・ポリシー」セクションで、以下を行います。
- デフォルト・ポリシーは、各着信接続要求を確認してトリアージするように設定されています。 デフォルト・ポリシーを変更して、レビューなしですべての要求を許可または拒否することができます。
- デフォルトのポリシーとは異なるアカウントポリシーを設定するには、[作成]をクリックします。 ポリシーを設定するアカウントのアカウントIDを入力します。 アカウントポリシーオプションで、レビュー、許可、または拒否を選択します。
個々のアカウント・ポリシーは、デフォルト・ポリシーよりも優先されます。
-
概要ページを確認し、「 作成 」をクリックしてプライベート・パス・サービスを注文します。
プロビジョニングが完了すると、プライベート・パス・サービスの状況は、VPC テーブルのプライベート・パス・サービスで
Stable
を示します。
CLIからプライベート・パス・サービスを作成する
以下の例は、CLI を使用してプライベート・パス・サービスを作成する方法を示しています。
始める前に、CLI 環境のセットアップを確認してください。
CLIからプライベート・パス・サービスを作成するには、以下の手順に従います:
- 以下のコマンドを入力します。
ibmcloud is private-path-service-gateway-create
[--load balancer LOAD_BALANCER]
[--service-endpoints SERVICE_ENDPOINTS]
[--default-access-policy | deny | permit | review]
[--name NAME]
[--zonal-affinity | true | false]
[--output JSON] [-q, --quiet]
ここで、
--load-balancer
- このプライベートパスサービスのロードバランサーのIDまたは名前を示します。
--service-endpoints
- このプライベートパスサービスの完全修飾ドメイン名を示します。 大文字はすべて小文字に変換されます。
--default-access-policy
- 明示的なアカウントポリシーを持たないアカウントからのバインディングに使用するポリシーを示します。
deny
、permit
、review
のいずれか。 (デフォルト:deny
)。 --name
- このプライベート・パス・サービスの名前を示します。
--zonal-affinity
- は、このプライベート・パス・サービスがゾーン・アフィニティを持つかどうかを示す。 の一つ:
false
true
. --output
- 出力形式を指定します。JSON のみがサポートされています。 以下のいずれかです:
JSON
。 -q, --quiet
- 詳細出力を抑制します。
コマンドの例
-
許可ポリシーとゾーン・アフィニティーを使用して、ポリシー・ベースのプライベート・パス・サービスを作成します。
ibmcloud is private-path-service-gateway-create --load-balancer my-cli-nlb --service-endpoints cli.domain.com --default-access-policy permit --name cli-ppsg-1 --zonal-affinity true
-
拒否ポリシーとゾーン・アフィニティーを持つポリシー・ベースのプライベート・パス・サービスを作成します。
ibmcloud is private-path-service-gateway-create --load-balancer r006-d-439744e1-81d7-43fb-95d5-2356774240bb --service-endpoints clidemo.domain.com --default-access-policy deny --name cli-ppsg-2 --zonal-affinity true
API を使用してプライベートパスサービスを作成する
API を使用してプライベート・パス・サービスを作成するには、以下の手順に従ってください:
-
API 環境をセットアップします。
-
API コマンドで使用する以下の値を変数に格納します。
-
loadBalancerId
-まずロード・バランサーを取得してから、変数にデータを設定します。export loadBalancerId=<your_loadbalancer_id>
-
-
すべての変数が開始されると、プライベート・パス・サービスが作成される:
curl -X POST -sH "Authorization:${iam_token}" \ "$vpc_api_endpoint/v1/private_path_service_gateways?version=$api_version&generation=2" \ -d { "default_access_policy": "review", "load_balancer": { "id": "$loadBalancerId" }, "name": "my-ppsg", "service_endpoints": ["example.com"], "zonal_affinity": false }'
TerraformでPrivate Pathサービスを作成する
以下の例では、TerraformでPrivate Pathネットワークを規定している:
resource "ibm_is_private_path_service_gateway" "ppsg" {
default_access_policy = "deny"
load_balancer = ibm_is_lb.ppnlb.id
service_endpoints = ["my-service.example.com"]
zonal_affinity = false
name = "my-example-ppsg"
}
Terraformリソースに関するドキュメントは Terraform Registryを 参照。
サービスエンドポイント(FQDN)の登録と所有権の確認
プライベート・パス・サービスを作成する際には、提供する_サービス・エンドポイント_(DNS FQDN)を所有していることを証明する必要があります。 これは、DNSハイジャックやFQDNの衝突を防ぐために行われる。 所有権の確認は、各FQDN(サービス・エンドポイント)に特定の内容のTXTレコードを作成することで行われる。 パブリックDNSにTXTレコードを作成する。 パブリックDNSが参照されるのは、プライベート・パス・サービスが作成されるときだけである。 プライベートパスサービスが作成されると、データパスではプライベートDNSのみが使用されます(パブリックDNSは決して使用されません)。
必須の TXT
レコードは、ibm-domain-verification=
接頭辞で始まる必要があります。 接頭辞の後に、プライベートパスサービスを作成するユーザーに関連付けられたアカウント ID の SHA-256
ハッシュと一致する値が続く場合、検証は成功します。 追加するTXTレコードの例:
ibm-domain-verification=252cfc164d3600a79007f25312a6a924288cfc6dbcaeec838ca9048cde664acb
FQDNにTXTレコードを追加する方法の詳細は、使用するパブリックDNSサービスによって異なります。 詳細については、DNSサービスプロバイダーに相談されることをお勧めします。
プライベート・パス・サービスに複数のサービス・エンドポイントが指定されている場合、所有権の検証はそれらすべてについて成功しなければならない。
以下は、ドメイン名の所有権の検証をバイパスするために使用できるトップレベルドメインのリストです:
.intranet
.internal
.private
.corp
.home
.lan
ワイルドカード(*)ドメインに対応しています。 たとえば、 "service_endpoints": ["*.service.com"]
のプライベート・パス・サービスには、 api1.service.com
や api2.service.com
などのサブドメインがすべて含まれます。
ワイルドカードドメインに有効な TXT
レコードが含まれていれば、DNSの所有権の検証は成功します。 この例では、バリデーションをパスするために、有効な TXT
レコードを service.com
に追加します。