资源: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_UNSPECIFIED |
默认值。 |
ALLOW |
授予访问权限。 |
DENY |
拒绝访问。除非用于提供默认的“全部拒绝”回退,否则应避免使用拒绝规则。 |
规则
规则规范。
JSON 表示法 |
---|
{ "sources": [ { object ( |
字段 | |
---|---|
sources[] |
可选。流量来源的属性列表。所有来源都必须匹配。如果主账号和 ipBlock 都匹配,则表示相应来源匹配。如果未设置,系统将应用“操作”字段中指定的操作,而不会对来源进行任何规则检查。 |
destinations[] |
可选。流量目的地的属性列表。所有目的地都必须匹配。如果请求与所有指定的主机、端口、方法和标头都匹配,则表示相应目的地匹配。如果未设置,系统将应用“操作”字段中指定的操作,而不会对目的地进行任何规则检查。 |
来源
流量来源属性的规范。
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
],
"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。如要匹配请求的方法,可使用 headerName“:method”。 |
联合字段
|
|
regexMatch |
必需。标头的值必须与 regexMatch 中指定的正则表达式匹配。如需了解正则表达式语法,请参阅:en.cppreference.com/w/cpp/regex/ecmascript。如要针对 HTTP 请求中指定的端口进行匹配,可使用 headerMatch,将 headerName 设置为 Host,并使用符合 RFC2616 Host 标头端口说明符规范的正则表达式。 |
方法 |
|
---|---|
|
在给定项目和位置中创建一个新的 AuthorizationPolicy。 |
|
删除单个 AuthorizationPolicy。 |
|
获取单个 AuthorizationPolicy 的详细信息。 |
|
获取资源的访问权限控制政策。 |
|
列出给定项目和位置中的 AuthorizationPolicies。 |
|
更新单个 AuthorizationPolicy 的参数。 |
|
针对指定资源设置访问权限控制政策。 |
|
返回调用者对指定资源拥有的权限。 |