REST Resource: projects.locations.authorizationPolicies

资源: AuthorizationPolicy

AuthorizationPolicy 是一项资源,用于指定服务器应如何向传入连接授权。除非此资源附加到目标 HTTPS 代理或端点配置选择器资源,否则它本身不会更改配置。

JSON 表示法
{
  "name": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "action": enum (Action),
  "rules": [
    {
      object (Rule)
    }
  ],
  "internalCaller": boolean
}
字段
name

string

必需。AuthorizationPolicy 资源的名称。它与模式 projects/{project}/locations/{location}/authorizationPolicies/<authorizationPolicy> 匹配。

description

string

可选。资源的自由文本说明。

createTime

string (Timestamp format)

仅限输出。创建资源时的时间戳。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

updateTime

string (Timestamp format)

仅限输出。资源更新时的时间戳。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

labels

map (key: string, value: string)

可选。与 AuthorizationPolicy 资源关联的标签标记集。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

action

enum (Action)

必需。找到规则匹配项时要执行的操作。可能的值为“ALLOW”或“DENY”。

rules[]

object (Rule)

可选。要匹配的规则列表。请注意,至少必须匹配一条规则,才能执行“操作”字段中指定的操作。如果有匹配的来源和目标,则匹配规则。如果留空,则系统会对每个请求应用 action 字段中指定的操作。

internalCaller

boolean

可选。一个用于识别内部控制器的标志。如果设置此字段,即使未设置其他选填字段,系统也将触发 P4SA 检查,以验证调用方是否来自列入许可名单的服务的 P4SA。

操作

用于定义要执行的操作的可能值。

枚举
ACTION_UNSPECIFIED 默认值。
ALLOW 授予访问权限。
DENY 拒绝访问。应避免使用拒绝规则,除非这些规则用于提供默认的“全部拒绝”回退。

规则

规则的规范。

JSON 表示法
{
  "sources": [
    {
      object (Source)
    }
  ],
  "destinations": [
    {
      object (Destination)
    }
  ]
}
字段
sources[]

object (Source)

可选。流量来源属性列表。所有来源必须一致。如果主账号和 ipBlocks 均匹配,则来源匹配。如果未设置此政策,系统将应用“操作”字段中指定的操作,而不对来源进行任何规则检查。

destinations[]

object (Destination)

可选。流量目的地的属性列表。所有目标页面必须一致。如果请求与所有指定的主机、端口、方法和标头匹配,则目的地就是匹配项。如果未设置此政策,系统将应用“action”字段中指定的操作,而不会对目标页面进行任何规则检查。

来源

流量来源属性规范。

JSON 表示法
{
  "principals": [
    string
  ],
  "ipBlocks": [
    string
  ]
}
字段
principals[]

string

可选。用于授权匹配的对等身份列表。至少应匹配一个主账号。每个对等方都可以是完全匹配、前缀匹配(例如“namespace/*”)或后缀匹配(例如“*/service-account”)或存在状态匹配“*”。基于没有证书验证的主账号名称(由 ServerTlsPolicy 资源配置)进行的授权被视为不安全。

ipBlocks[]

string

可选。要根据来源 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 (HttpHeaderMatch)
  }
}
字段
hosts[]

string

必需。要匹配的主机名列表。与 http 请求中的“:authority”标头匹配。至少应匹配一个主机。每个主机可以是完全匹配、前缀匹配(例如“mydomain.*”)或后缀匹配(例如“*.myorg.com”)或存在状态(任意)匹配“*”。

ports[]

integer (uint32 format)

必需。要匹配的目标端口列表。应至少匹配 1 个端口。

paths[]

string

可选。要匹配的 HTTP 路径列表。gRPC 方法必须以“/packageName.serviceName/methodName”的形式以完全限定名称提供。至少应匹配一条路径。每个路径可以是完全匹配、前缀匹配(例如“/packageName.serviceName/*”)或后缀匹配(例如“*/video”),也可以是存在状态(任意)匹配“*”。

methods[]

string

可选。要匹配的 HTTP 方法列表。至少应匹配一个方法。不应为 gRPC 服务设置此字段。

httpHeaderMatch

object (HttpHeaderMatch)

可选。与 http 标头中的键值对匹配。提供基于 HTTP 标头的灵活匹配,适用于潜在的高级应用场景。至少应匹配一个标题。除非有强有力的保证,请求通过受信任的客户端或代理到达,否则请避免使用标头匹配做出授权决策。

HttpHeaderMatch

HTTP 标头匹配属性的规范。

JSON 表示法
{
  "headerName": string,

  // Union field type can be only one of the following:
  "regexMatch": string
  // End of list of possible types for union field type.
}
字段
headerName

string

必需。要匹配的 HTTP 标头的名称。如需与 HTTP 请求的授权进行匹配,请使用标头名称为“:authority”的 headerMatch。如需匹配请求的方法,请使用 headerName ":method"。

联合字段 type

type 只能是下列其中一项:

regexMatch

string

必需。标头的值必须与 regexMatch 中指定的正则表达式匹配。有关正则表达式语法,请参阅:en.cppreference.com/w/cpp/regex/ecmascript。如需匹配 HTTP 请求中指定的端口,请使用 headerMatch 并将 headerName 设置为 Host 并采用满足 RFC2616 Host 标头端口说明符的正则表达式。

方法

create

在给定的项目和位置中创建新的 AuthorizationPolicy。

delete

删除单个 AuthorizationPolicy。

get

获取单个 AuthorizationPolicy 的详细信息。

getIamPolicy

获取资源的访问权限控制政策。

list

列出给定项目和位置中的 AuthorizationPolicy。

patch

更新单个 AuthorizationPolicy 的参数。

setIamPolicy

设置对指定资源的访问权限控制政策。

testIamPermissions

返回调用者对指定资源拥有的权限。