资源: AuthorizationPolicy
AuthorizationPolicy 是一项资源,用于指定服务器应如何向传入连接授权。除非此资源附加到目标 HTTPS 代理或端点配置选择器资源,否则它本身不会更改配置。
JSON 表示法 |
---|
{ "name": string, "description": string, "createTime": string, "updateTime": string, "labels": { string: string, ... }, "action": enum ( |
字段 | |
---|---|
name |
必需。AuthorizationPolicy 资源的名称。它与模式 |
description |
可选。资源的自由文本说明。 |
createTime |
仅限输出。创建资源时的时间戳。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
updateTime |
仅限输出。资源更新时的时间戳。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
labels |
可选。与 AuthorizationPolicy 资源关联的标签标记集。 包含一系列 |
action |
必需。找到规则匹配项时要执行的操作。可能的值为“ALLOW”或“DENY”。 |
rules[] |
可选。要匹配的规则列表。请注意,至少必须匹配一条规则,才能执行“操作”字段中指定的操作。如果有匹配的来源和目标,则匹配规则。如果留空,则系统会对每个请求应用 |
internalCaller |
可选。一个用于识别内部控制器的标志。如果设置此字段,即使未设置其他选填字段,系统也将触发 P4SA 检查,以验证调用方是否来自列入许可名单的服务的 P4SA。 |
操作
用于定义要执行的操作的可能值。
枚举 | |
---|---|
ACTION_UNSPECIFIED |
默认值。 |
ALLOW |
授予访问权限。 |
DENY |
拒绝访问。应避免使用拒绝规则,除非这些规则用于提供默认的“全部拒绝”回退。 |
规则
规则的规范。
JSON 表示法 |
---|
{ "sources": [ { object ( |
字段 | |
---|---|
sources[] |
可选。流量来源属性列表。所有来源必须一致。如果主账号和 ipBlocks 均匹配,则来源匹配。如果未设置此政策,系统将应用“操作”字段中指定的操作,而不对来源进行任何规则检查。 |
destinations[] |
可选。流量目的地的属性列表。所有目标页面必须一致。如果请求与所有指定的主机、端口、方法和标头匹配,则目的地就是匹配项。如果未设置此政策,系统将应用“action”字段中指定的操作,而不会对目标页面进行任何规则检查。 |
来源
流量来源属性规范。
JSON 表示法 |
---|
{ "principals": [ string ], "ipBlocks": [ string ] } |
字段 | |
---|---|
principals[] |
可选。用于授权匹配的对等身份列表。至少应匹配一个主账号。每个对等方都可以是完全匹配、前缀匹配(例如“namespace/*”)或后缀匹配(例如“*/service-account”)或存在状态匹配“*”。基于没有证书验证的主账号名称(由 ServerTlsPolicy 资源配置)进行的授权被视为不安全。 |
ipBlocks[] |
可选。要根据来源 IP 地址匹配的 CIDR 范围列表。应至少匹配一个 IP 地址段。单个 IP(例如,“1.2.3.4”)和 CIDR(例如"1.2.3.0/24")。应避免仅根据来源 IP 进行授权。任何负载平衡器或代理的 IP 地址都应被视为不受信任。 |
目的地
流量目的地属性的规范。
JSON 表示法 |
---|
{
"hosts": [
string
],
"ports": [
integer
],
"paths": [
string
],
"methods": [
string
],
"httpHeaderMatch": {
object ( |
字段 | |
---|---|
hosts[] |
必需。要匹配的主机名列表。与 http 请求中的“:authority”标头匹配。至少应匹配一个主机。每个主机可以是完全匹配、前缀匹配(例如“mydomain.*”)或后缀匹配(例如“*.myorg.com”)或存在状态(任意)匹配“*”。 |
ports[] |
必需。要匹配的目标端口列表。应至少匹配 1 个端口。 |
paths[] |
可选。要匹配的 HTTP 路径列表。gRPC 方法必须以“/packageName.serviceName/methodName”的形式以完全限定名称提供。至少应匹配一条路径。每个路径可以是完全匹配、前缀匹配(例如“/packageName.serviceName/*”)或后缀匹配(例如“*/video”),也可以是存在状态(任意)匹配“*”。 |
methods[] |
可选。要匹配的 HTTP 方法列表。至少应匹配一个方法。不应为 gRPC 服务设置此字段。 |
httpHeaderMatch |
可选。与 http 标头中的键值对匹配。提供基于 HTTP 标头的灵活匹配,适用于潜在的高级应用场景。至少应匹配一个标题。除非有强有力的保证,请求通过受信任的客户端或代理到达,否则请避免使用标头匹配做出授权决策。 |
HttpHeaderMatch
HTTP 标头匹配属性的规范。
JSON 表示法 |
---|
{ "headerName": string, // Union field |
字段 | |
---|---|
headerName |
必需。要匹配的 HTTP 标头的名称。如需与 HTTP 请求的授权进行匹配,请使用标头名称为“:authority”的 headerMatch。如需匹配请求的方法,请使用 headerName ":method"。 |
联合字段
|
|
regexMatch |
必需。标头的值必须与 regexMatch 中指定的正则表达式匹配。有关正则表达式语法,请参阅:en.cppreference.com/w/cpp/regex/ecmascript。如需匹配 HTTP 请求中指定的端口,请使用 headerMatch 并将 headerName 设置为 Host 并采用满足 RFC2616 Host 标头端口说明符的正则表达式。 |
方法 |
|
---|---|
|
在给定的项目和位置中创建新的 AuthorizationPolicy。 |
|
删除单个 AuthorizationPolicy。 |
|
获取单个 AuthorizationPolicy 的详细信息。 |
|
获取资源的访问权限控制政策。 |
|
列出给定项目和位置中的 AuthorizationPolicy。 |
|
更新单个 AuthorizationPolicy 的参数。 |
|
设置对指定资源的访问权限控制政策。 |
|
返回调用者对指定资源拥有的权限。 |