创建和管理连接器端点
创建 Connector 并部署 Connector 代理 后,您可以创建端点来管理 IBM Cloud Satellite 位置与在位置外运行的服务、服务器或应用程序之间的网络。
从 CLI 创建端点
-
运行以下命令查找 Satellite 连接器的 ID。
ibmcloud sat connector ls
-
运行命令创建端点。
ibmcloud sat endpoint create --dest-hostname HOSTNAME --connector-id ID --dest-type location --dest-port PORT --name NAME --source-protocol PROTOCOL [--dest-protocol PROTOCOL] [--sni SNI]
--connector-id ID
- Satellite 连接器的 ID。 要查找连接器标识,请运行
ibmcloud sat connector ls
。 --dest-hostname HOSTNAME
- 指示要连接到的目标的标准域名 (FQDN) 或外部可访问的 IP 地址。 对于
location
端点,该值必须从 Satellite 位置的控制平面主机或 Satellite Connector 的代理运行所在位置解析,并且可以从控制平面主机到达。 --dest-port PORT
- 提供目标资源侦听入局请求的端口。 确保端口与目标协议匹配。
--dest-protocol PROTOCOL
- 指定目标的协议。 如果未指定此选项,那么将从源协议继承目标协议。 可用选项:
TCP
和TLS
。 --dest-type TYPE
- 指定目标资源的运行位置,可以是 IBM Cloud (
cloud
) 或 Satellite 位置 (location
)。可用选项:location
,cloud
。 --name NAME
- 提供端点的名称。
--sni SNI
- 如果指定了
TLS
或HTTPS
源协议,并希望在 TLS 握手时添加单独的主机名,请指定服务器名称指示符。 --source-protocol PROTOCOL
- 提供源用于连接目标资源的协议。 有关更多信息,请参阅 加密协议。 可用选项:
TCP
,TLS
,HTTP
,HTTPS
和HTTP-tunnel
。
-
确认端点已创建。
ibmcloud sat endpoint ls --connector-id ID
-
如果通过指定
--dest-type=cloud
来创建云上端点,则必须配置位置的 Connector 代理,以便将目标端口暴露给源应用程序的请求。 请按照 为云端点配置代理端口 中的步骤操作。
用于创建端点的示例命令
使用 HTTPS 源协议和 TLS 目标协议创建端点并指定 SNI 主机名的示例命令。
ibmcloud sat endpoint create --dest-hostname server1.mydomain.com --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI --dest-type location --dest-port 443 --name myendpoint --source-protocol HTTPS --dest-protocol TLS --sni mydomain.com
用于创建使用 TCP 协议的端点的示例命令。
ibmcloud sat endpoint create --dest-hostname server1.mydomain.com --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI --dest-type location --dest-port 443 --name myendpoint --source-protocol TCP --dest-protocol TCP
为云端点配置代理端口
云上端点允许您访问 IBM Cloud 位置网络之外的资源。 这包括可从您的 Satellite 账户访问的任何公共或私有服务,例如 IBM Cloud IAM 的端点或私有 IBM Cloud Object Storage 邮筒。
从源应用程序调用云上端点时,首先会被定向到在您所在位置运行的本地 Connector 代理。 不过,在源程序访问端点之前,必须确保源程序可以访问代理监听的端点目标端口。 对于 Docker 或 Rancher 等容器平台,这要求您将端点的目标端口映射到适当的端口,以便代理运行的容器外的客户端可以访问。 请按照以下步骤完成此要求。
-
运行命令获取目标端口。 在输出结果中,找到 Address 列中列出的端口号。
ibmcloud sat endpoints --connector-id <connector ID>
示例输出。 在本例中,目标端口号是
29998
。OK ID Name Destination Type Address Status A1A1AAaaaAAaA11AAAAAaA11aaaAaaaAaA_aaaaa test123 cloud TCP :29998 enabled
-
使用适合容器平台的步骤,将目标端口映射到容器。 对于大多数平台,包括 Docker 和 Rancher,你可以在启动 Connector 代理时使用
-p LISTENPORT:CONTAINERPORT
选项。例如,使用 Docker 时,以下命令会为端点的容器内部目标端口
8443
暴露端口29998
。docker run -d --network host --platform linux/amd64 --env-file ~/agent/env-files/env.txt -v ~/agent/env-files:/agent-env-files icr.io/ibm/satellite-connector/satellite-connector-agent:latest -p 8443:29998
您可能还需要与您的容器平台和操作系统合作,允许外部流量进入您选择的
LISTENPORT
中。 在前面的例子中,LISTENPORT
是8443
。 -
现在,可以通过容器平台中设置的 IP 地址或 DNS 名称(在本例中为 8443 端口)访问该资源。
通过 CLI 创建访问控制列表 (ACL) 规则
-
运行以下命令为一个或多个子网创建 ACL 规则,并可选择绑定到一个或多个端点。
ibmcloud sat acl create --connector-id ID --name NAME --subnet SUBNET [--subnet SUBNET ...] [--endpoint ENDPOINT ...]
--connector-id ID
- Satellite 连接器的 ID。 要查找连接器标识,请运行
ibmcloud sat connector ls
。 --name NAME
- ACL 的名称。
--subnet SUBNET
- 此 ACL 允许的 IP 或 CIDR 块。 值必须完全包含在以下 CIDR 中:10.0.0.0/8, 161.26.0.0/16, 166.8.0.0/14, 172.16.0.0/12.
--endpoint ENDPOINT
- 要为该 ACL 启用的端点的名称或 ID。
-
验证 ACL 是否已创建。
ibmcloud sat acl ls --connector-id ID
-
您还可以为现有 ACL 添加或删除端点或子网。
ibmcloud sat acl endpoint add --connector-id ID --acl-id ID --endpoint ENDPOINT [--endpoint ENDPOINT ...] ibmcloud sat acl endpoint rm --connector-id ID --acl-id ID --endpoint ENDPOINT [--endpoint ENDPOINT ...] ibmcloud sat acl subnet add --connector-id ID --acl-id ID --subnet SUBNET [--subnet SUBNET ...] ibmcloud sat acl subnet rm --connector-id ID --acl-id ID --subnet SUBNET [--subnet SUBNET ...]
创建 ACL 的命令示例
示例命令创建 ACL 规则,允许子网10.123.76.192/26访问端点 "myendpoint
。
ibmcloud sat acl create --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI --name myrule --subnet 10.123.76.192/26 --endpoint myendpoint
示例输出
OK
ACL created with ID A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI-Source-vbfea
使用新创建的 ACL 的 ID 运行以下命令,在 ACL 中添加第二个子网 10.194.127.64/26。
ibmcloud sat acl subnet add --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI --acl-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI-Source-vbfea --subnet 10.194.127.64/26
运行以下命令列出 ACL。 myrule
ACL 现在包括两个子网 10.123.76.192/26 和 10.194.127.64/26。
ibmcloud sat acl ls --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI
OK
ID Name Subnets Created
A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI-Source-vbfea myrule 10.123.76.192/26,10.194.127.64/26 11 minutes ago
从控制台创建端点
-
从 连接器控制台,单击要为其创建端点的连接器。
-
单击“用户端点”选项卡,然后单击“创建端点”。
-
选择端点类型。
- 代理程序位置
- 与 Connector 代理运行在同一网络上的目标资源。
- Cloud
- 在 IBM Cloud 中运行的目标资源。
-
单击下一步
-
在“资源详细信息”页面上,输入以下详细信息。
- 端点名称
- 为端点命名
- 目标 FQDN 或 IP
- 输入要连接的目标资源的标准域名或 IP 地址。
- 目标端口
- 输入目标资源侦听传入请求的端口。
-
单击下一步。
-
在“协议”页面上,选择源必须用于连接到目标 FQDN 或 IP 地址的协议。 此协议必须与目标资源的端口匹配。 有关更多信息,请参阅 端点协议。
- 如果您选择了 TLS 或 HTTPS 协议,并希望要求对目的地证书进行服务器端验证,请选择验证目的地证书复选框。
- 如果您选择了 TLS 或 HTTPS 协议,但目标资源仍在开发中,则可单击上传证书添加自签名证书文件。
ssl.crt
文件必须包含资源主机名的公开 base-64 编码证书,不得包含私人ssl.key
证书密钥。 要使用 OpenSSL, 创建用于测试目的的自签名证书,请参阅本自 签名 SSL 证书教程。 - 如果您选择了 TLS 或 HTTPS 协议,并希望允许为资源连接的 TLS 握手提供单独的主机名,请输入服务器名称指示符 (SNI)。
-
在“访问控制表”页面上,单击 创建规则。
-
可选: 在“ACL 规则”页面上,输入 规则名称,然后输入将允许连接到端点的客户机的 IBM Cloud 专用 IP 地址。 此值可以是单个 IP 地址、CIDR 块或逗号分隔列表。 该值必须完全包含在以下 CIDR 中: 10.0.0.0/8,161.26.0.0/16,166.8.0.0/14,172.16.0.0/12。
如果没有选择任何规则,任何连接到 IBM Cloud 专用网络的客户端都可以使用该端点连接到在您所在位置运行的目标资源。
-
在“连接设置”页面上,设置 1 到 600 之间的不活动超时。
-
单击 创建端点。
为终端创建访问控制列表(ACL)规则
-
从 Satellite 控制台,单击要为其创建 ACL 规则的连接器。
-
在“连接器概述”页面上,单击 访问控制表 选项卡,然后单击 创建规则。
-
在 ACL 规则页面,完成以下步骤。
-
输入规则名称。
-
输入允许连接到端点的客户机的 IP 地址。 此值可以是单个 IP 地址、CIDR 块或逗号分隔列表。 该值必须完全包含在以下 CIDR 中: 10.0.0.0/8,161.26.0.0/16,166.8.0.0/14,172.16.0.0/12。
如果没有选择任何规则,任何连接到 IBM Cloud 专用网络的客户端都可以使用该端点连接到在您所在位置运行的目标资源。
-
选择该规则应控制访问的端点(或多个端点)。
-
-
单击创建。