使用基于上下文的专用端点限制,将入站流量限制在应用程序和功能上
此功能为测试版功能,仅供评估和测试之用。
您可以使用 IBM Cloud® 基于上下文的规则来限制专用端点访问 IBM Cloud® Code Engine 应用程序和功能。 Code Engine 作业不支持此功能。 基于上下文的限制不是分配访问权限,而是检查访问请求是否来自您配置的允许上下文。 您可以限制 Code Engine 项目中应用程序和功能的入站流量,以 保护项目免受不必要的入站流量影响。
使用基于上下文的限制和专用端点保护 Code Engine 资源时,除了使用基于上下文的规则限制连接到应用程序或功能的入站流量外,还可以 限制谁可以管理 Code Engine 资源,如部署或更新应用程序和机密。
Code Engine 基于上下文的限制可针对单个项目、整个资源组或某个位置(区域)。 您还可以限制哪些服务可以从 Code Engine 访问。 有关 IBM Cloud 基于上下文的限制的更多信息,请参阅 什么是基于上下文的限制。
当基于上下文的限制规则涵盖资源组或位置时,限制适用于现有项目。 如果在同一位置或资源组中创建新项目,则必须更新规则(不做任何更改)以将限制应用到新项目。 请注意,您不必更改规则;只需单击“编辑”,然后单击“应用”,即可确保新项目与限制相关联。
为 Code Engine 资源创建基于上下文的限制
要创建基于上下文的限制,请参阅 创建基于上下文的限制。 以下是为 Code Engine 资源创建资源的具体步骤。
-
转到 "基于上下文的限制 规则 "页面。
-
单击创建为基于上下文的限制创建新规则,从服务开始。
-
选择 Code Engine****服务,然后单击“下一步”选择要保护的服务 API。
-
通过选择服务 API 的数据平面选项来限制访问以保护您的 Code Engine 应用程序或功能工作负载。
您可以在数据平面级别定义工作负载限制,因此至少要选择数据平面服务。 您还可以选择其他服务或平台 API。
单击“下一步”设置资源限制范围。
-
将限制应用于单个项目、整个资源组或有多个项目的位置(区域)。 在“资源”部分应用此范围,然后单击“审核”继续。
-
单击“继续”为规则添加上下文。
-
Code Engine 的数据平面 API 为私有工作负载而非公共工作负载提供限制。 默认情况下,所有公共工作负载均可访问。 要使基于上下文的限制既能限制私人入站连接,又能保持所有公共端点的可访问性,就必须创建一个空的公共上下文。 如果没有这个空的公共端点,就会出现规则设置错误。 创建空的公共上下文:
- 将端点设置为开启。
- 选择“公共”。
- 网络区留空。 确保本部分未启用任何网络区域,以便所有公共端点都能访问。
如果需要,您可以限制私人端点:
- 要禁止访问项目中的所有私有端点,请确保只存在空的公共上下文,且未设置私有上下文。
- 要限制项目内的私有工作负载,请选择要允许的网络区域列表(例如,可以允许 VPC 访问 Code Engine 项目中的私有网络)。
- IPv6 Code Engine 不支持限制。
-
单击“继续”提供规则详细信息。
-
提供规则的名称或描述。
-
选择已启用 执行。
-
查看摘要并单击“创建”。
测试基于上下文的专用入站连接限制规则
创建基于上下文的限制规则后,可以使用专用应用程序或函数对其进行测试。 只允许访问允许列表中的 IP 地址。 如果请求来自未列入允许列表的 IP 地址,则会显示 RBAC Access Denied
错误信息。 例如,如果您只允许 9.9.9.9/32
,那么您的应用程序或功能只能从该 IP 范围访问。 任何超出该范围的内容都会出现错误信息。
如果选择了指向 VPC(虚拟私有云)的网络区域,还必须创建一个 VPE(虚拟私有端点)网关,以允许 VPC 访问私有工作负载。 创建网关后,由于 PDNS 解析,可能会出现暂时延迟。 一开始,您可能会看到 RBAC Access Denied
错误信息,但过一段时间后,您就会获得访问权限。