IBM Cloud Docs
添加跨帐户连接

添加跨帐户连接

您可以使用 UI,CLI,API 和 Terraform 请求与其他 IBM Cloud 帐户中的网络的连接。

规划注意事项

在添加跨帐户连接之前,请查看以下注意事项:

  • 将中转网关连接到另一个账户的网络后,所有连接到该中转网关的资源都可以从另一个网络访问。 确保使用可信账户。 允许以下网络连接作为跨帐户连接:

    • 经典基础结构
    • Direct Link
    • Power System 虚拟服务器
    • 冗余 GRE
    • 未绑定的 GRE 隧道
    • VPC
  • 每个网关只允许 10 个暂挂请求。 要创建更多请求,可以取消暂挂的连接请求,或者等待其核准。 如果在 72 小时内未核准连接请求,那么这些请求将到期。

  • 强烈建议使用 安全性控制(例如 ACL,安全组或其他网络服务) 来控制流量。 IBM Cloud Transit Gateway不提供安全组或 ACL,但它们所连接的网络可能会影响转接网关的通信。 有关 ACL 和安全组的更多信息,请参阅以下主题:

在 UI 中添加跨帐户连接

要使用 UI 连接不同帐户拥有的网络,请执行以下步骤:

  1. 从浏览器打开 IBM Cloud 控制台并登录账户。

  2. 从左上角选择导航菜单图标 导航菜单图标,然后单击基础架构 > 网络 > Transit Gateway

  3. 单击要在其中添加连接的 Transit Gateway 的名称。 然后点击添加连接

  4. 选择网络连接类型。 然后,选择请求连接到另一个账户的网络

  5. 输入跨账户网络的 CRN,如果是 Classic 基础设施或 Unbound 或 Redundant GRE,则输入要连接的 IBM Cloud 账户 ID。

    • 要获取经典基础架构或未绑定或冗余 GRE 隧道连接的 IBM Cloud 账户 ID,请从 IBM Cloud 控制台选择“管理”>“账户”,然后选择“账户设置”。 您的帐户标识将显示在“帐户设置”页面的 帐户 部分中。
    • 要获取 VPC,Direct Link或 Power Systems Virtual Server的 CRN,请从左上方选择“导航菜单”图标 "菜单" 图标,然后单击 资源列表。 展开 联网 (针对 VPC 和 Direct Link) 或 计算 (针对 Power Systems Virtual Server) 以列出联网资源,然后找到您要查找的服务。 接下来,单击服务的表行中的任何位置 ("名称" 链接除外)。 从显示的侧窗口中,复制 CRN 并将其粘贴到“添加连接”窗格中。
  6. 填写所有剩余字段,然后单击 添加。 现在,网络连接将在网关所有者的帐户中显示 暂挂 核准状态。

    对于经典基础架构连接,标识号用于 IBM Cloud 帐户,而不是 SoftLayer 帐户。

    然后,网络所有者的帐户将接收到请求的通知。 如果网络所有者拒绝跨帐户连接,那么不会建立任何连接,并且该连接将显示状态 已拒绝。 现在可以删除此连接。 如果未明确核准跨帐户连接,那么该连接将在 72 小时后到期。

    如果连接请求到期或被拒绝,那么可以重新提交这些连接请求。

  7. 网络所有者帐户中具有 必需 IAM 许可权 的用户可以在 仅查看 方式下查看网关以及附加到该网关的所有其他连接的详细信息。 从网络所有者的帐户中,转至 " Transit Gateway " 页面,然后单击表中的网关名称。

  8. 在“连接”部分中,请参阅 所需操作 以查看入局网络连接请求。 然后,具有 必需的其他 IAM 许可权 的用户可以单击 核准 以核准请求。

    在网络所有者的帐户确保连接请求来自合法源并核准后,系统将建立与连接到同一运输网关的所有其他网络之间的路由。 强烈建议在可跨帐户访问的网络中使用 网络 ACL 和/或安全组 来控制网络流量流。 您可以通过具有相应许可权的用户,通过任一帐户单方面拆离跨帐户连接。

    单击“批准”确认。 网络连接的状态指示 正在连接

  9. 当您更改回原始帐户时,连接状态将更改为 已连接,这指示网络请求已核准。

    网关所有者的帐户 (或网络所有者的帐户) 可以删除连接。 如果网络所有者删除连接,那么网关所有者会将连接状态视为 已拆离

从 CLI 添加跨帐户连接

创建跨帐户连接包括以下步骤:

  1. 请求连接以与其他帐户通信。
  2. 核准/拒绝其他帐户上的连接。

例如,要请求连接以与另一个帐户进行通信,请运行以下命令:

ibmcloud tg connection-create|cc GATEWAY_ID --name NAME --network-id NETWORK_ID --network-type NETWORK_TYPE --network-account-id ACCOUNT_ID [--default-prefix-filter DEFAULT_PREFIX_FILTER]  [--output json]

其中: GATEWAY_ID : 新连接所使用的网关的标识。

--name
新连接的名称。
--network-id
网络连接的 ID。 classic,不设置数值。 将 CRN 用于所有其他网络类型。 例如,查找 VPC 的 CRN:
ibmcloud is vpc VPC_ID --json
--network-type
连接的网络类型。 值为 classic, directlink, power_virtual_server,和 vpc
--network-account-id
用于创建经典连接的 IBM Cloud 账户的 ID。 仅用于 classic 类型,当连接账户与网关账户不同时。
--default-prefix-filter
可选:连接的默认前缀过滤器 (permit | deny)。
--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 命令参考中的 Connections

使用 API 添加跨帐户连接

要添加跨账户连接,请按以下步骤操作:

  1. 请求连接以在其他帐户之间进行通信。
  2. 对请求的连接执行操作。 必须完成此操作。

对于经典跨帐户连接,请确保将 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 为 Transit Gateway 创建交叉连接时可以为资源指定的以下参数引用:

用于创建连接的 Terraform 参数引用
参数 详细信息
base_connection_id
可选
强制使用新资源
字符串
配置隧道的 network_type "classic" 连接的标识。
此字段仅适用于网络类型 gre_tunnel 连接。
base_network_type
可选
强制使用新资源
字符串
基本网络类型。 允许的值为 classic
此字段仅适用于 unbound_gre_tunnel 类型的连接。
gateway
必需
强制使用新资源
字符串
输入 Transit Gateway 标识。
local_gateway_ip
可选
强制使用新资源
字符串
本地网关 IP 地址。
此字段对于 gre_tunnelunbound_gre_tunnel 类型的连接是必需的,并且仅适用于这些连接。
local_tunnel_ip
可选
强制使用新资源
字符串
本地隧道 IP 地址。
此字段对于 gre_tunnelunbound_gre_tunnel 类型的连接是必需的,并且仅适用于这些连接。
name
可选
字符串
连接名称。 如果未提供名称,那么将根据网络类型提供缺省名称,例如 vpc 表示网络类型 VPC,classic 表示网络类型经典。
network_account_id
可选
强制使用新资源
字符串
网络连接的帐户的标识。 如果网络与网关位于不同的帐户中,那么将使用此项。
network_type
必需
强制使用新资源
字符串
网络类型。 允许的值为 classicdirectlinkgre_tunnelunbound_gre_tunnelvpc
network_id
可选
强制使用新资源
字符串
要通过此连接连接到的网络的标识。
对于网络类型 vpcdirectlink以及要连接的 VPC 或直接链路网关的 CRN ,此参数是必需的。
对于网络类型 classic,必须未指定此字段。
示例:crn:v1:bluemix:public:is:us-south:a/123456::vpc:4727d842-f94f-4a2d-824a-9bc9b02c523b
remote_bgp_asn
可选
强制新资源
整数
远程网络 BGP ASN (如果未指定,将为连接生成)。
此字段仅适用于 gre_tunnelunbound_gre_tunnel 类型的连接。
remote_gateway_ip
可选
强制使用新资源
字符串
远程网关 IP 地址。 此字段仅适用于 gre_tunnelunbound_gre_tunnel 类型的连接。
remote_tunnel_ip
可选
强制使用新资源
字符串
远程隧道 IP 地址。 此字段仅适用于 gre_tunnelunbound_gre_tunnel 类型的连接。
zone
可选
强制使用新资源
字符串
GRE 隧道的位置。 此字段仅适用于 gre_tunnelunbound_gre_tunnel 类型的连接。

示例

此示例说明如何使用 Terraform 创建 Transit Gateway 交叉连接:

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
}