开放策略代理(OPA)插件通过为应用注入OPA Sidecar代理来定义访问控制策略。ASM提供了OPA注入范围控制功能,启用该功能后,仅添加了opa-istio-injection=enabled
标签的命名空间下的Pod会注入OPA Sidecar代理。本文介绍如何控制OPA Sidecar代理注入范围。
前提条件
- 已创建ASM实例,且ASM实例为v1.12.4.19或以上版本。具体操作,请参见创建ASM实例。
- 添加集群到ASM实例。具体操作,请参见添加集群到ASM实例。
- 已启用OPA插件。具体操作,请参见启用OPA插件。
- 已创建命名空间。具体操作,请参见管理命名空间。本文以创建default和develop命名空间为例。
- 已在命名空间下部署应用。具体操作,请参见创建无状态工作负载Deployment。本文以在default命名空间下部署Nginx应用,在develop命名空间下部署Sleep应用为例。
背景信息
本文在启用OPA注入范围控制功能后,为default命名空间添加opa-istio-injection=enabled
标签,develop命名空间则不添加opa-istio-injection=enabled
标签,查看Nginx应用和Sleep应用是否都注入OPA Sidecar代理,从而验证控制OPA Sidecar代理注入范围是否成功。
步骤一:启用OPA注入范围控制功能
- 登录ASM控制台。
- 在左侧导航栏,选择 。
- 在网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理。
- 在基本信息页面右上角单击功能设置。
- 在功能设置更新面板策略控制下选中启用开放策略代理OPA插件,单击确定。
步骤二:为命名空间添加标签
以下介绍如何在容器服务控制台上为default命名空间添加
opa-istio-injection=enabled
标签,您也可以通过kubectl工具连接集群,然后执行以下命令,为命名空间添加标签。连接集群的具体操作,请参见通过kubectl工具连接集群。kubectl label namespace default opa-istio-injection=enabled --overwrite
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏中,选择命名空间与配额。
- 在命名空间页面单击default命名空间右侧操作列下的编辑。
- 在编辑命名空间对话框中设置变量名称为opa-istio-injection,变量值为enabled,单击添加,然后单击确定。
步骤三:重启应用
通过删除Pod的方式使应用重启。重启应用后,会自动注入OPA Sideacr代理。