工作负载选择器
WorkloadSelector
WorkloadSelector 指定用于确定是否可以将策略应用于代理的标准。匹配标准包括与代理关联的元数据、工作负载实例信息(例如附加到 pod/VM 的标签)或代理在初始握手期间提供给 Istio 的任何其他信息。如果指定了多个条件,则所有条件都需要匹配才能选择工作负载实例。目前,仅支持基于标签的选择机制。
PortSelector
PortSelector 是指定是否可以将策略应用于具有特定端口的侦听器的标准。
PolicyTargetReference
PolicyTargetReference 格式,如 GEP-2648 中定义。
PolicyTargetReference 指定了策略应该应用到的目标资源。它一次只能针对单个资源,但可用于针对更大的资源,例如可能应用于多个子资源的网关。PolicyTargetReference 将用于替代 RequestAuthentication、AuthorizationPolicy、Telemetry 和 WasmPlugin CRD 中的 WorkloadSelector 来定位 Kubernetes 网关。
以下是一个使用 PolicyTargetReference 将授权策略绑定到航点代理的示例。该示例将 action
设置为 DENY
以创建拒绝策略。它拒绝所有在 foo
命名空间中通过 waypoint
网关的端口 8080
上使用 POST
方法的请求。
apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
name: httpbin
namespace: foo
spec:
targetRefs:
- name: waypoint
kind: Gateway
group: gateway.networking.k8s.io
action: DENY
rules:
- to:
- operation:
methods: ["POST"]
ports: ["8080"]
WorkloadMode
WorkloadMode 允许选择底层工作负载在网络流量中的角色。如果工作负载是流量的目的地(即,从工作负载的角度看,流量方向是入站),则工作负载被认为是在 SERVER 模式下运行。如果工作负载是网络流量的源,则它被认为是在 CLIENT 模式下运行(流量是出站的)。
Name | 描述 |
---|---|
UNDEFINED | 默认值,将由其自身用法解释。 |
CLIENT | 选择工作负载是网络流量源的情况。此外,如果工作负载是网关,则选择此选项。 |
SERVER | 选择工作负载是网络流量目的地的情况。 |
CLIENT_AND_SERVER | 选择工作负载是网络流量源或目的地的情况。 |