--- title: 授权策略 description: 授权策略中支持的条件。 weight: 30 aliases: - /zh/docs/reference/config/security/conditions/ --- 此页面描述了可以用作[授权策略规则](/zh/docs/reference/config/security/authorization-policy/#Rule) `when` 字段中所支持的键和值的格式。 {{< warning >}} 不支持的键和值将被忽略。 {{< /warning >}} 有关更多信息,请参阅[授权概念页面](/zh/docs/concepts/security/#authorization)。 ## 支持条件{#supported-conditions} | 名称 | 描述 | 支持的协议 | 示例 | |------|-------------|--------------------|---------| | `request.headers` | `HTTP` 请求头,需要用 `[]` 括起来 | HTTP only | `key: request.headers[User-Agent]`
`values: ["Mozilla/*"]` | | `source.ip` | 源 `IP` 地址,支持单个 `IP` 或 `CIDR` | HTTP and TCP | `key: source.ip`
`values: ["10.1.2.3"]` | | `source.namespace` | 源负载实例命名空间,需启用双向 TLS | HTTP and TCP | `key: source.namespace`
`values: ["default"]` | | `source.principal` | 源负载的标识,需启用双向 TLS | HTTP and TCP | `key: source.principal`
`values: ["cluster.local/ns/default/sa/productpage"]` | | `request.auth.principal` | 已认证过 `principal` 的请求。 | HTTP only | `key: request.auth.principal`
`values: ["accounts.my-svc.com/104958560606"]` | | `request.auth.audiences` | 此身份验证信息的目标主体 | HTTP only | `key: request.auth.audiences`
`values: ["my-svc.com"]` | | `request.auth.presenter` | 证书的颁发者 | HTTP only | `key: request.auth.presenter`
`values: ["123456789012.my-svc.com"]` | | `request.auth.claims` | `Claims` 来源于 `JWT`。需要用 `[]` 括起来 | HTTP only | `key: request.auth.claims[iss]`
`values: ["*@foo.com"]` | | `destination.ip` | 目标 `IP` 地址,支持单个 `IP` 或 `CIDR` | HTTP and TCP | `key: destination.ip`
`values: ["10.1.2.3", "10.2.0.0/16"]` | | `destination.port` | 目标 `IP` 地址上的端口,必须在 `[0,65535]` 范围内 | HTTP and TCP | `key: destination.port`
`values: ["80", "443"]` | | `connection.sni` | 服务器名称指示,需启用双向 TLS | HTTP and TCP | `key: connection.sni`
`values: ["www.example.com"]` | | `experimental.envoy.filters.*` | 用于过滤器的实验性元数据匹配,包装的值 `[]` 作为列表匹配 | HTTP and TCP | `key: experimental.envoy.filters.network.mysql_proxy[db.table]`
`values: ["[update]"]` | {{< warning >}} 无法保证 `experimental.*` 密钥向后的兼容性,可以随时将它们删除,但是须要谨慎操作。 {{< /warning >}}