资源: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[] |
可选。要匹配的规则列表。请注意,必须至少有一个规则匹配,系统才会执行“action”字段中指定的操作。如果存在匹配的来源和目标,则规则即为匹配规则。如果留空,系统会对每个请求应用 |
操作
用于定义要执行的操作的可能值。
枚举 | |
---|---|
ACTION_UNSPECIFIED |
默认值。 |
ALLOW |
授予访问权限。 |
DENY |
拒绝访问。除非用于提供默认的“全部拒绝”回退,否则应避免使用拒绝规则。 |
规则
规则规范。
JSON 表示法 |
---|
{ "sources": [ { object ( |
字段 | |
---|---|
sources[] |
可选。流量来源的属性列表。所有来源都必须匹配。如果主账号和 IP 网段都匹配,则相应来源属于匹配来源。如果未设置,系统将应用“action”字段中指定的操作,而不会对来源进行任何规则检查。 |
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 进行授权。任何负载平衡器或代理的 IP 地址都应被视为不可信。 |
目的地
流量目标属性规范。
JSON 表示法 |
---|
{
"hosts": [
string
],
"ports": [
integer
],
"methods": [
string
],
"httpHeaderMatch": {
object ( |
字段 | |
---|---|
hosts[] |
必需。要匹配的主机名列表。与 HTTP 请求中的“:authority”标头进行匹配。至少有一个主机应匹配。每个主机可以是完全匹配,也可以是前缀匹配(例如“mydomain.*”)、后缀匹配(例如“*.myorg.com”)或存在(任意)匹配“*”。 |
ports[] |
必需。要匹配的目标端口列表。至少有一个端口应匹配。 |
methods[] |
可选。要匹配的 HTTP 方法的列表。至少有一个方法应匹配。不应为 gRPC 服务设置。 |
httpHeaderMatch |
可选。与 http 标头中的键值对进行匹配。基于 HTTP 标头提供灵活匹配,适用于可能的高级用例。至少有一个标头应与其匹配。避免使用标头匹配来做出授权决策,除非有充分保证请求是通过可信客户端或代理传入的。 |
HttpHeaderMatch
HTTP 标头匹配属性的规范。
JSON 表示法 |
---|
{ "headerName": string, // Union field |
字段 | |
---|---|
headerName |
必需。要匹配的 HTTP 标头的名称。如需与 HTTP 请求的授权进行匹配,请使用标头名称为“:authority”的 headerMatch。如需匹配请求的方法,请使用标头名称“:method”。 |
联合字段
|
|
regexMatch |
必需。标头的值必须与 regexMatch 中指定的正则表达式匹配。如需与 HTTP 请求中指定的端口进行匹配,请使用将 headerName 设置为“Host”的 headerMatch,以及满足 RFC2616 Host 标头端口说明符的正则表达式。如需了解正则表达式语法,请参阅:en.cppreference.com/w/cpp/regex/ecmascript |
方法 |
|
---|---|
|
在给定的项目和位置中创建一个新的 AuthorizationPolicy。 |
|
删除单个 AuthorizationPolicy。 |
|
获取单个 AuthorizationPolicy 的详细信息。 |
|
获取资源的访问权限控制政策。 |
|
列出给定项目和位置中的 AuthorizationPolicy。 |
|
更新单个 AuthorizationPolicy 的参数。 |
|
针对指定资源设置访问权限控制政策。 |
|
返回调用者对指定资源拥有的权限。 |