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_UNSPECIFIED 默认值。
ALLOW 授予访问权限。
DENY 拒绝访问。除非用于提供默认的“全部拒绝”回退,否则应避免使用拒绝规则。

规则

规则规范。

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

object (Source)

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

destinations[]

object (Destination)

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

来源

流量来源属性的规范。

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
  ],
  "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。如要匹配请求的方法,可使用 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

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

patch

更新单个 AuthorizationPolicy 的参数。

setIamPolicy

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

testIamPermissions

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