- 资源:AuthzPolicy
- 目标
- LoadBalancingScheme
- AuthzRule
- 来源
- RequestSource
- StringMatch
- RequestResource
- TagValueIdSet
- 目标
- RequestOperation
- HeaderSet
- HeaderMatch
- AuthzAction
- CustomProvider
- CloudIap
- AuthzExtension
- 方法
资源:AuthzPolicy
AuthzPolicy
是一种资源,可用于将流量转发到设计用于扫描流量以实现安全目的的宣传信息后端。
JSON 表示法 |
---|
{ "name": string, "createTime": string, "updateTime": string, "description": string, "labels": { string: string, ... }, "target": { object ( |
字段 | |
---|---|
name |
必需。标识符。 |
createTime |
仅限输出。创建资源时的时间戳。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
updateTime |
仅限输出。更新资源时的时间戳。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
description |
可选。资源的人类可读说明。 |
labels |
可选。与 格式必须符合以下要求。 包含一系列 |
target |
必需。指定应将此政策应用到哪些资源。 |
httpRules[] |
可选。与传入请求匹配的授权 HTTP 规则列表。当至少有一项 HTTP 规则与请求匹配,或者政策中未指定任何 HTTP 规则时,就会发生政策匹配。至少需要一条 HTTP 规则才能执行“允许”或“拒绝”操作。仅限 5 条规则。 |
action |
必需。可以是 如果操作为 如果操作为 如果操作为 收到请求后,系统会按以下顺序评估政策:
|
customProvider |
可选。如果操作为 |
目标
指定应将此政策应用到的目标集。
JSON 表示法 |
---|
{
"loadBalancingScheme": enum ( |
字段 | |
---|---|
loadBalancingScheme |
必需。此政策和扩展程序引用的所有网关和转发规则都必须采用相同的负载均衡方案。支持的值: |
resources[] |
必需。此政策将应用到的转发规则的引用列表。 |
LoadBalancingScheme
AuthzPolicy
资源支持的负载均衡方案。有效值为 INTERNAL_MANAGED
和 EXTERNAL_MANAGED
。 如需了解详情,请参阅后端服务概览。
枚举 | |
---|---|
LOAD_BALANCING_SCHEME_UNSPECIFIED |
默认值。请勿使用。 |
INTERNAL_MANAGED |
表示此负载平衡器用于区域内部或跨区域内部应用负载均衡。 |
EXTERNAL_MANAGED |
表示此网关类用于全球外部应用负载平衡器或区域级外部应用负载平衡器。 |
INTERNAL_SELF_MANAGED |
表示此属性用于 Cloud Service Mesh。仅供 CSM GKE 控制器使用。 |
AuthzRule
与传入请求进行匹配的条件。
JSON 表示法 |
---|
{ "from": { object ( |
字段 | |
---|---|
from |
可选。描述请求的一个或多个来源的属性。 |
to |
可选。描述请求的一个或多个目标的属性。 |
when |
可选。描述操作必须满足的条件的 CEL 表达式。CEL 表达式的结果与“from”和“to”进行 AND 运算。如需查看可用属性的列表,请参阅 CEL 语言参考文档。 |
来源
描述请求的一个或多个来源的属性。
JSON 表示法 |
---|
{ "sources": [ { object ( |
字段 | |
---|---|
sources[] |
可选。描述请求来源的属性。必须至少指定 sources 或 notSources 之一。仅限 5 个来源。当任何来源(在 sources 或 notSources 中)与请求匹配时,就会发生匹配。在单个来源中,匹配遵循跨字段的 AND 语义和单个字段内的 OR 语义,即当任意主键匹配且任意 ipBlock 匹配时,就会发生匹配。 |
notSources[] |
可选。描述请求来源的否定属性。与不符合此字段中指定条件的来源发出的请求匹配。必须至少指定 sources 或 notSources 中的一个。 |
RequestSource
描述单个来源的属性。
JSON 表示法 |
---|
{ "principals": [ { object ( |
字段 | |
---|---|
principals[] |
可选。派生自客户端证书的身份列表。除非为转发规则或网关启用了双向 TLS,否则此字段不会匹配请求。每个身份都是一个字符串,其值与 URI SAN、DNS SAN 或客户端证书中的主题字段进行匹配。匹配可以是完全匹配、前缀匹配、后缀匹配或子字符串匹配。必须指定“完全匹配”、“前缀”、“后缀”或“包含”。仅限 5 个主账号。 |
resources[] |
可选。与请求的来源虚拟机的资源进行匹配的资源列表。仅限 5 个资源。 |
StringMatch
确定应如何匹配字符串值。
JSON 表示法 |
---|
{ "ignoreCase": boolean, // Union field |
字段 | |
---|---|
ignoreCase |
如果为 true,则表示完全匹配/前缀匹配/后缀匹配/包含匹配不应区分大小写。例如,如果匹配器 |
联合字段
|
|
exact |
输入字符串必须与此处指定的字符串完全匹配。 示例:
|
prefix |
输入字符串必须具有此处指定的前缀。注意:不允许使用空前缀,请改用正则表达式。 示例:
|
suffix |
输入字符串必须具有此处指定的后缀。注意:不允许使用空前缀,请改用正则表达式。 示例:
|
contains |
输入字符串必须包含此处指定的子字符串。注意:不允许使用空的包含匹配,请改用正则表达式。 示例:
|
RequestResource
描述访问内部应用负载平衡器的客户端虚拟机资源的属性。
JSON 表示法 |
---|
{ "tagValueIdSet": { object ( |
字段 | |
---|---|
tagValueIdSet |
可选。资源标记值永久 ID 列表,用于与请求的源虚拟机关联的资源管理器标记值进行匹配。 |
iamServiceAccount |
可选。与发送请求的虚拟机的来源服务账号匹配的 IAM 服务账号。 |
TagValueIdSet
描述一组资源标记值永久 ID,以便与与请求的来源虚拟机关联的资源管理器标记值进行匹配。
JSON 表示法 |
---|
{ "ids": [ string ] } |
字段 | |
---|---|
ids[] |
必需。资源标记值永久 ID 列表,用于与请求的源虚拟机关联的资源管理器标记值进行匹配。匹配遵循 AND 语义,这意味着所有 ID 都必须匹配。仅限 5 个匹配项。 |
目标
描述请求的一个或多个目标的属性。
JSON 表示法 |
---|
{ "operations": [ { object ( |
字段 | |
---|---|
operations[] |
可选。描述请求的一个或多个目标的属性。必须至少指定 operations 或 notOperations 之一。仅限 5 项操作。当任何操作(在 operations 或 notOperations 中)匹配时,就会发生匹配。在操作中,匹配遵循跨字段的 AND 语义和字段内的 OR 语义,即当任意路径匹配且任意标头匹配且任意方法匹配时,就会发生匹配。 |
notOperations[] |
可选。描述请求目标的否定属性。与不符合此字段中指定条件的操作请求匹配。必须至少指定 operations 或 notOperations 中的一个。 |
RequestOperation
描述请求的一个或多个目标的属性。
JSON 表示法 |
---|
{ "headerSet": { object ( |
字段 | |
---|---|
headerSet |
可选。与 HTTP 标头中的内容进行匹配的标头列表。 |
hosts[] |
可选。要进行匹配的 HTTP 主机列表。匹配类型可以是完全匹配、前缀匹配、后缀匹配或包含匹配(子字符串匹配)。除非设置了 ignoreCase,否则匹配始终区分大小写。仅限 5 个匹配项。 |
paths[] |
可选。要进行匹配的路径列表。匹配类型可以是完全匹配、前缀匹配、后缀匹配或包含匹配(子字符串匹配)。除非设置了 ignoreCase,否则匹配始终区分大小写。仅限 5 个匹配项。请注意,此路径匹配包含查询参数。对于 gRPC 服务,此名称应为完全限定名称,格式为 /package.service/method。 |
methods[] |
可选。要匹配的 HTTP 方法列表。每个条目都必须是有效的 HTTP 方法名称(GET、PUT、POST、HEAD、PATCH、DELETE、OPTIONS)。此匹配类型仅允许完全匹配,并且始终区分大小写。 |
HeaderSet
描述要进行匹配的一组 HTTP 标头。
JSON 表示法 |
---|
{
"headers": [
{
object ( |
字段 | |
---|---|
headers[] |
必需。与 HTTP 标头中的内容进行匹配的标头列表。匹配类型可以是完全匹配、前缀匹配、后缀匹配或包含匹配(子字符串匹配)。匹配遵循 AND 语义,这意味着所有标头都必须匹配。除非设置了 ignoreCase,否则匹配始终区分大小写。仅限 5 个匹配项。 |
HeaderMatch
确定应如何匹配 HTTP 标头。
JSON 表示法 |
---|
{
"name": string,
"value": {
object ( |
字段 | |
---|---|
name |
可选。指定请求中的标头名称。 |
value |
可选。指定如何执行标头匹配。 |
AuthzAction
要应用于此政策的操作。有效值包括 ALLOW
、DENY
和 CUSTOM
。
枚举 | |
---|---|
AUTHZ_ACTION_UNSPECIFIED |
未指定操作。 |
ALLOW |
允许请求传递到后端。 |
DENY |
拒绝请求并向客户端返回 HTTP 404。 |
CUSTOM |
将授权决策委托给外部授权引擎。 |
CustomProvider
允许将授权决策委托给 Cloud IAP 或 Service Extensions。
JSON 表示法 |
---|
{ "cloudIap": { object ( |
字段 | |
---|---|
cloudIap |
可选。将授权决策委托给 Cloud IAP。仅适用于受管理的负载平衡器。在 AuthzPolicy 级别启用 Cloud IAP 与 BackendService 中的 Cloud IAP 设置不兼容。如果同时在两处启用 IAP,请求将会失败。确保在 AuthzPolicy 或 BackendService 中启用了 IAP,但两者中不同时启用。 |
authzExtension |
可选。将授权决策委托给用户编写的 Service Extension。只能指定 cloudIap 或 authzExtension 中的一项。 |
CloudIap
此类型没有字段。
可选。将授权决策委托给 Cloud IAP。仅适用于受管理的负载平衡器。在 AuthzPolicy 级别启用 Cloud IAP 与 BackendService 中的 Cloud IAP 设置不兼容。如果同时在两处启用 IAP,请求将会失败。确保在 AuthzPolicy 或 BackendService 中启用了 IAP,但两者中不同时启用。
AuthzExtension
可选。将授权决定委托给用户编写的扩展程序。只能指定 cloudIap 或 authzExtension 中的一项。
JSON 表示法 |
---|
{ "resources": [ string ] } |
字段 | |
---|---|
resources[] |
必需。对与此政策匹配的请求将调用的授权扩展程序的引用列表。仅限 1 个自定义提供程序。 |
方法 |
|
---|---|
|
在给定的项目和位置中创建一个新 AuthzPolicy。 |
|
删除单个 AuthzPolicy。 |
|
获取单个 AuthzPolicy 的详细信息。 |
|
列出给定项目和位置中的 AuthzPolicy。 |
|
更新单个 EntityType 的参数。 |