アカウント間接続の追加
UI、CLI、API、および Terraform を使用して、他の IBM Cloud アカウント内のネットワークへの接続を要求できます。
計画関連事項
アカウント間接続を追加する前に、以下の考慮事項を確認してください。
-
トランジットゲートウェイを別のアカウントのネットワークに接続すると、そのトランジットゲートウェイに接続されているすべてのリソースに、別のネットワークからアクセスできるようになります。 信頼できるアカウントを使用していることを確認してください。 以下のネットワーク接続は、アカウント間接続として許可されます。
- VPC
- クラシック・インフラストラクチャー
- 冗長GRE
- Direct Link
- Power System 仮想サーバー
- アンバインドされた GRE トンネル
-
未処理要求は、各ゲートウェイにつき 10 個しか許可されません。 追加の要求を作成するには、未処理の接続要求を取り消すか、それが承認されるのを待つ必要があります。 接続要求は、72 時間以内に承認されないと有効期限切れになります。
-
トラフィック・フローを制御するために、ACL、セキュリティー・グループ、またはその他のネットワーク・サービスなどのセキュリティー管理を使用することを強くお勧めします。 IBM Cloud Transit Gatewayはセキュリティ・グループやACLを提供しませんが、それらが接続するネットワークはトランジット・ゲートウェイの通信に影響を与える可能性があります。 ACL およびセキュリティー・グループについて詳しくは、以下のトピックを参照してください。
UIでクロスアカウント接続を追加する
UI を使用して、異なるアカウントが所有するネットワークを接続するには、以下の手順を実行します。
-
ブラウザから IBM Cloud コンソールを開き、アカウントにログインします。
-
左上のナビゲーションメニュー(
Menu)アイコンを選択し、 インフラストラクチャー(Infrastructure) > ネットワーク(Network) > Transit Gateway )をクリックします。
-
接続を追加する中継ゲートウェイの名前をクリックします。 次に、 Add connection をクリックする。
-
ネットワーク接続タイプを選択します。 次に、 別のアカウントのネットワークへの接続を要求するを選択します。
-
クロス・アカウント・ネットワークの CRN を入力するか、Classic インフラストラクチャまたは Unbound またはRedundantGRE,の場合は、接続するIBM Cloudアカウント ID を入力します。
- クラシック・インフラストラクチャーまたは Unbound または RedundantGRE トンネル接続の IBM Cloud アカウント ID を取得するには、 IBM Cloud コンソールから 「管理」>「アカウント」 を選択し、 「アカウント設定」 を選択します。 アカウント ID は、**「アカウント設定」ページの「アカウント」**セクションに表示されます。
- VPC、 Direct Link、または Power Systems Virtual Serverの CRN を取得するには、左上にあるナビゲーション・メニュー・アイコン
を選択し、 「リソース・リスト」 をクリックします。 「ネットワーキング」 (VPC および Direct Linkの場合) または 「コンピューティング」 ( Power Systems Virtual Serverの場合) を展開して、ネットワーキング・リソースをリストし、探しているサービスを見つけます。 次に、サービスのテーブル行の任意の場所をクリックします (「名前」リンクを除く)。 表示されたサイド・ウィンドウから、CRN をコピーして「接続の追加」ペインに貼り付けます。
-
残りのフィールドに入力し、 「追加」 をクリックします。 **「承認保留中」**状況のネットワーク接続がゲートウェイ所有者のアカウントに表示されるようになりました。
クラシック・インフラストラクチャー接続の場合、ID 番号は、 SoftLayer アカウントではなく、 IBM Cloud アカウントの ID 番号です。
その後、ネットワーク所有者のアカウントで要求の通知を受信します。 ネットワーク所有者がアカウント間の接続を拒否する場合、接続は確立されず、接続に**「拒否済み」**状態が表示されます。 これで、この接続を削除できます。 アカウント間の接続が明示的に承認されないと、72 時間後に期限切れになります。
接続要求の有効期限が切れるか、接続要求が拒否された場合は、再送信することができます。
-
ネットワーク所有者のアカウントで 必要な IAM パーミッション を持つユーザーは、ゲートウェイと、それに接続されている他のすべての接続の詳細を、 View only モードで見ることができます。 ネットワーク所有者のアカウントから、「Transit Gateway」ページに移動し、テーブル内のゲートウェイ名をクリックします。
-
「接続」セクションの**「アクションの必要」で、着信ネットワーク接続の要求を確認します。 必要な追加 IAM 許可を持つユーザーが、「承認」**をクリックして要求を承認することができます。
ネットワーク所有者のアカウントが、接続要求が正当なソースからのものであることを確認し、それを承認した後、システムは、同じトランジットゲートウェイに接続されている他のすべてのネットワークとの間のルートを確立する。 ネットワーク・トラフィック・フローを制御するには、どのアカウントからもアクセスできるネットワーク内でネットワーク ACL またはセキュリティー・グループ (あるいは両方) を使用することを強くお勧めします。 アカウント間接続は、いずれのアカウントからも、適切な許可を持っているユーザーを介して一方的にデタッチすることができます。
**「承認」をクリックして確認します。 ネットワーク接続の状況が「接続中 (Attaching)」**を示します。
-
元のアカウントに戻すと、接続の状況が **「接続されました」**に変わります。これは、ネットワーク要求が承認されたことを示します。
ゲートウェイ所有者のアカウント (またはネットワーク所有者のアカウント) は接続を削除できます。 ネットワーク所有者が接続を削除すると、ゲートウェイ所有者には接続の状況が**「デタッチ済み (Detached)」**として表示されます。
CLIからのクロスアカウント接続の追加
アカウント間接続の作成は、以下のステップで構成されます。
- 他のアカウントと通信するための接続を要求する。
- 他のアカウントでの接続を承認/拒否する。
例えば、別のアカウントと通信するために接続を要求するには、以下のコマンドを実行します。
ibmcloud tg connection-create|cc GATEWAY_ID --name NAME --network-type NETWORK-TYPE --network-id NETWORK_ID [-h, --help]
ここで、
GATEWAY_ID
-
新しい接続のゲートウェイのID。
--name
-
新しい接続の名前。
--network-type
-
接続のネットワークタイプ。 値は、
classic
、vpc
、directlink
、またはpower_virtual_server
です。アンバインドされた GRE トンネルを作成するには、
ibmcloud tg connection-create-gre
コマンドを参照してください。 --network-id
-
ネットワーク接続のID。
classic
接続の場合は、値を設定しない。 他のすべてのネットワーク・タイプには CRN を使用してください。 --output json
-
オプション。 出力をJSON形式で表示するかどうかを指定します。
--help | -h
-
オプション。 このコマンドに関するヘルプを入手する。
例
この例では、 vpcCRN="crn:v1:bluemix:public:is:us-south:a/3aa0a9999a1a46258064d84f7f447920::vpc:r134-f87014d5-87d2-46d1-9999-24683082f6bc"
を使用する vpc-connection
という名前の VPC 接続を作成します。
ibmcloud tg cc $gateway --name vpc-connection --network-id $vpcCRN --network-type vpc
classic-conn
という名前のクラシック接続を作成します。
ibmcloud tg cc $gateway --name classic-conn --network-account-id 67123579566843320188712647902101 --network-type classic
別のアカウントからの接続をネットワーク所有者として承認するには、以下のコマンドを実行する:
ibmcloud tg connection-approve|ca GATEWAY_ID CONNECTION_ID [-h, --help]
ネットワーク所有者である別のアカウントからの接続を拒否するには、以下のコマンドを実行する:
ibmcloud tg connection-reject|cr GATEWAY_ID CONNECTION_ID [-h, --help]
使用可能なコマンドおよびオプションについて詳しくは、「 Transit Gateway 」コマンド・リファレンスの「 接続 」を参照してください。
APIによるクロスアカウント接続の追加
クロスアカウント接続を追加するには、以下の手順に従ってください:
- 他のアカウント間で通信するための接続を要求します。
- 要求された接続に対してアクションを実行します。 これを完了する必要があります。
クラシック・アカウント間接続の場合は、network-account-id
が、通信を要求しているアカウントに設定されていることを確認してください。 VPC アカウント間接続の場合は、network-id
が、通信を要求しているアカウントに設定されていることを確認してください。
詳しくは、 Transit Gateway API リファレンスの Transit Gateway および Transit Gateway を参照してください。
アカウント間接続の要求
元のアカウントは、もう一方のアカウントと通信するために接続を要求しなければならない。
要求の例
この例は、アカウント間接続を要求する元のアカウントを示しています。
curl -X POST --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{ "network_type": "vpc" }'
"
{base_url}/transit_gateways/{transit_gateway_id}/connections?version={version}"
"name": "Transit_Service_BWTN_SJ_DL",
"network_id": "crn:v1:bluemix:public:is:us-south:a/123456::vpc:4727d842-f94f-4a2d-824a-9bc9b02c523b",
"network_type": "vpc",
"prefix_filters": [
{
"action": "permit",
"ge": 0,
"le": 32,
"prefix": "192.168.100.0/24"
}
],
"prefix_filters_default": "permit",
応答例
この例は、アカウント間接続の要求からの応答を示しています。
{
"created_at": "2020-03-31T12:08:05Z",
"id": "1a15dca5-7e33-45e1-b7c5-bc690e569531",
"name": "example-connection",
"network_id": "crn:[...]",
"network_type": "vpc",
"status": "pending",
"updated_at": "2020-03-31T12:08:05Z"
}
要求された接続に対してアクションを実行する
元のアカウントがクロスアカウント接続を要求した後、もう一方のアカウントは要求された接続に対してアクションを実行しなければならない。
要求の例
この例は、アカウント間接続の承認を示しています。
"
{base_url}/transit_gateways/{transit_gateway_id}/connections/{id}/actions?version={version}"
{
"action": "approve"
}
応答例
この例は、呼び出し元が要求されたアクションを実行する権限がない場合の状況コード 403 の応答を示しています。
{
"errors": [
{
"code": "missing_field",
"message": "The `location` field is required.",
"more_info": "https://transitservice.cloud.ibm.com/",
"target": {
"name": "location",
"type": "field"
}
}
],
"trace": "86780a34-e651-4b47-9fb0-184a169cc9af"
}
Terraform を使用した接続の追加
Terraformを使用してトランジットゲートウェイ用のクロスコネクションを作成するときにリソースに指定できる以下の引数参照を確認してください:
引数 | 詳細 |
---|---|
** | base_connection_id** オプション 強制的に新しいリソース 文字列 |
base_network_type オプション 新規リソースを強制します ストリング |
基本ネットワーク・タイプ。 許可される値は classic です。このフィールドは unbound_gre_tunnel タイプの接続にのみ適用される。 |
** | gateway** 必須 新しいリソースを強制 文字列|トランジット・ゲートウェイの識別子を入力してください |
local_gateway_ip オプション 新規リソースを強制的に ストリング |
ローカル・ゲートウェイの IP アドレス。 このフィールドは、 gre_tunnel および unbound_gre_tunnel タイプの接続にのみ適用され、必須である。 |
local_tunnel_ip オプション 新規リソースの強制 ストリング |
ローカル・トンネルの IP アドレス。 このフィールドは、 gre_tunnel および unbound_gre_tunnel タイプの接続にのみ適用され、必須である |
name オプションの ストリング |
接続名。 名前が指定されない場合、ネットワーク・タイプに応じたデフォルトの名前が提供されます。例えば、ネットワーク・タイプがVPCの場合は vpc 、ネットワーク・タイプがclassic. |
** | network_account_id** オプション 新規リソースの強制 文字列 |
network_type 必須 新規リソースを強制的に ストリング |
ネットワーク・タイプ。 許可される値は、 classic 、 directlink 、 gre_tunnel 、 unbound_gre_tunnel 、および vpc です。 |
network_id オプション 新規リソースを強制的に ストリング |
この接続を介して接続されているネットワークの ID。 このパラメータは、ネットワークタイプ vpc および directlink 、接続する VPC またはダイレクトリンクゲートウェイの CRN に必要です。このフィールドは、ネットワーク・タイプ( classic )では未指定でなければならない。例: crn:v1:bluemix:public:is:us-south:a/123456::vpc:4727d842-f94f-4a2d-824a-9bc9b02c523b |
** | remote_bgp_asn** オプション 新しいリソースを強制 integer |
** | remote_gateway_ip** オプション 新しいリソースを強制 文字列 |
** | remote_tunnel_ip** オプション 新しいリソースを強制 文字列 |
zone Optional Forces new resource string |
GREトンネルの場所。 このフィールドは、 gre_tunnel および unbound_gre_tunnel タイプの接続にのみ適用されます。 |
例
この例では、Terraformを使ってトランジットゲートウェイの相互接続を作成する方法を説明します:
resource "ibm_tg_connection" "test_ibm_tg_connection" {
gateway = ibm_tg_gateway.test_tg_gateway.id
network_type = "vpc"
name = "myconnection"
network_id = ibm_is_vpc.test_tg_vpc.resource_crn
}