使用外联连接功能 Code Engine
IBM Cloud® Code Engine 出站连接功能支持通过CIDR表示法为出站连接指定允许的目的地IP地址范围,从而为您的 Code Engine 项目定义可到达的终端。 允许的目的地确保出站流量仅限于您定义的安全地址。 因此,您可以阻止对互联网的非法访问,并提高合规性和安全性。
出站连接规则不会影响内部群集通信:指定出站连接不会阻止 Code Engine 项目中的应用程序相互通信。
您的使用案例将决定您的出站连接规格。 典型的用例如下所示:
-
如果项目中的 Code Engine 应用程序不应该到达任何外部终端,则说明没有规则(即没有允许的IP地址)。
-
指定一个允许的目的地IP地址范围(
0.0.0.0/0
),以允许所有可能的终端。 默认情况下,有一个名为 “允许所有”的规则,其IP范围设置为 0.0.0.0/0。 -
指定规则,允许的IP地址范围,允许您的 Code Engine 项目中的工作负载仅到达您指定的端点范围(例如,您的本地数据中心)。
您可以使用控制台或 CLI 创建出站连接。
使用控制台管理允许的目的地IP地址范围
添加允许的出站连接目标IP地址范围
您可以创建允许的目的地IP地址范围,以限制您的工作负载可通过外部网络连接的位置。
- 转到连接页面:
- 在 Code Engine 控制面板的项目页面中选择您的项目。
- 点击“项目设置”>“连接”,查看现有允许的目的地IP地址范围列表。
- 点击 “添加” 创建允许的目的地IP地址范围。
- 提供名称。
- 以 CIDR 符号提供 IP 地址范围。
- 确认您的配置。
更新允许的出站连接目的地IP地址范围
您可以更改允许的目的地IP地址范围,以禁止您的工作负载连接到非预期的终端(例如,连接到公共互联网)。
- 转到连接页面:
- 在 Code Engine 控制面板的项目页面中选择您的项目。
- 点击“项目设置”>“连接”,查看现有允许的目的地IP地址范围列表。
- 点击您要编辑的允许的目的地IP地址范围所在行。
- 请提供更新的IP地址范围并保存您的更改。
当您更新出站连接规则时,请注意:
-
允许的目的地IP地址范围不冲突,可以叠加。 当您定义多个范围时,允许的目的地会创建所有指定范围的并集,因此添加范围的顺序不会影响最终允许的目的地。 如果添加的第二个范围已经包含在现有范围内,系统会拒绝创建,因为这是多余的。
-
指定IP地址范围
0.0.0.0/0
将删除所有现有规则并开启完全连接。 -
在您限制了出站连接规则后,您的工作负载可能需要一些时间来适应这些规则。 例如,如果您在更新出站连接规则之前,代码中使用的 HTTP 客户端建立了连接,则该客户端可能会打开与该端点的连接。 为确保您的出站连接规则立即生效,请重置所有连接。 您可以通过重新部署工作负载或在代码中处理此类情况来重置。
-
在限制了 Code Engine 项目的出站连接后,您会看到一些意想不到的副作用,例如构建运行失败,因为无法进行任何外部请求。
删除允许的出站连接目标IP地址范围
如果您不再需要为出站连接定义之前定义的允许目标IP地址范围,可以将其删除。
删除允许的目标IP地址范围,将阻止项目中的 Code Engine 应用程序、功能和作业的出站流量。
- 转到连接页面:
- 在 Code Engine 控制面板的项目页面中选择您的项目。
- 点击“项目设置”>“连接”,查看现有允许的目的地IP地址范围列表。
- 找到您要删除的允许的目的地IP地址范围,点击删除(垃圾桶)图标。
- 出现提示时,确认删除。
使用CLI管理允许的目的地IP地址范围
要使用CLI命令允许目标IP地址范围,请登录您的 IBM Cloud 账户,并 选择 Code Engine 账户和资源组。
对于 Code Engine 连接CLI命令,您可以指定 --cidr-name
和 --cidr
的值 请遵循以下CIDR指南:
- 请勿使用 保留IP地址范围内的 IP地址。
- 请勿重复使用
--cidr-name
和--cidr
。 - 请勿使用不支持的CIDR名称。
- 不要使用不支持的 IP 地址范围。 遵循CIDR表示法。
添加允许的出站连接目标IP地址范围
您可以创建允许的目的地IP地址范围,以限制您的工作负载可通过外部网络连接的位置。
-
选择 Code Engine 项目。 例如:
ibmcloud ce project select --name myproject
-
通过指定
--cidr-name
和--cidr
选项,创建允许的目的地IP地址范围。 请提供有效的姓名和IP地址。 参考以下例子:ibmcloud ce connectivity outbound create --cidr-name mycidr1 --cidr 192.68.5.0/24 ibmcloud ce connectivity outbound create --cidr-name mycidr2-allow-all --cidr 0.0.0.0/0 ibmcloud ce connectivity outbound create --cidr-name mycidr2-allow-all --cidr 0.0.0.0/0 --force
显示允许的出站连接目标IP地址范围
要显示特定的允许目标IP地址范围,请指定CIDR名称。 例如:
ibmcloud ce connectivity outbound get --cidr-name mycidr
要显示所有允许的目的地IP地址范围,请运行:
ibmcloud ce connectivity outbound list
更新允许的出站连接目的地IP地址范围
您可以更改允许的目的地IP地址范围,以阻止您的工作负载连接到非预期的终端(例如连接到公共互联网)。
通过指定 --cidr-name
和 --cidr
选项,更新允许的目的地IP地址范围。 请提供有效的姓名和IP地址。 参考以下例子:
ibmcloud ce connectivity outbound update --cidr-name mycidr1 --cidr 192.68.5.0/24
ibmcloud ce connectivity outbound update --cidr-name mycidr2-allow-all --cidr 0.0.0.0/0
Are you sure you want to update an allowed destination IP address range with '0.0.0.0/0'?, It will remove all other entries [y/N]>
ibmcloud ce connectivity outbound update --cidr-name mycidr2-allow-all --cidr 0.0.0.0/0 --force
当您更新出站连接规则时,请注意:
-
允许的目的地IP地址范围不冲突,可以叠加。 当您定义多个范围时,允许的目的地会创建所有指定范围的并集,因此添加范围的顺序不会影响最终允许的目的地。 如果添加的第二个范围已经包含在现有范围内,系统会拒绝创建,因为这是多余的。
-
指定IP地址范围
0.0.0.0/0
将删除所有现有规则并开启完全连接。 -
即使您限制了出站连接规则,您的工作负载也需要一段时间才能适应这些规则。 例如,如果您在更新出站连接规则之前,代码中使用的 HTTP 客户端建立了连接,则该客户端可能会打开与该端点的连接。 为确保您的出站连接规则立即生效,请重置所有连接。 您可以通过重新部署工作负载或在代码中处理此类情况来重置。
-
在限制了 Code Engine 项目的出站连接后,您会看到一些意想不到的副作用,例如构建运行失败,因为无法进行任何外部请求。
删除允许的出站连接目标IP地址范围
如果您不再需要为出站连接定义之前定义的允许目标IP地址范围,可以将其删除。
删除允许的目标IP地址范围,将阻止项目中的 Code Engine 应用程序、功能和作业的出站流量。
要删除允许的目的地IP地址范围并确认,请指定CIDR名称。 例如:
ibmcloud ce connectivity outbound delete --cidr-name mycidr
要强制删除允许的目的地IP地址范围(即无需确认),请运行:
ibmcloud ce connectivity outbound delete --cidr-name mycidr --force