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)
    }
  ]
}
字段
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”字段中指定的操作。如果存在匹配的来源和目标,则规则即为匹配规则。如果留空,系统会对每个请求应用 action 字段中指定的操作。

操作

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

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

规则

规则规范。

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

object (Source)

可选。流量来源的属性列表。所有来源都必须匹配。如果主账号和 IP 网段都匹配,则相应来源属于匹配来源。如果未设置,系统将应用“action”字段中指定的操作,而不会对来源进行任何规则检查。

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 进行授权。任何负载平衡器或代理的 IP 地址都应被视为不可信。

目的地

流量目标属性规范。

JSON 表示法
{
  "hosts": [
    string
  ],
  "ports": [
    integer
  ],
  "methods": [
    string
  ],
  "httpHeaderMatch": {
    object (HttpHeaderMatch)
  }
}
字段
hosts[]

string

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

ports[]

integer (uint32 format)

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

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。如需匹配请求的方法,请使用标头名称“:method”。

联合字段 type

type 只能是下列其中一项:

regexMatch

string

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

方法

create

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

delete

删除单个 AuthorizationPolicy。

get

获取单个 AuthorizationPolicy 的详细信息。

getIamPolicy

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

list

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

patch

更新单个 AuthorizationPolicy 的参数。

setIamPolicy

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

testIamPermissions

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