REST Resource: projects.locations.authorizationPolicies

資源:AuthorizationPolicy

AuthorizationPolicy 資源可指定伺服器授權傳入連線的方式。除非附加至目標 HTTPS Proxy 或端點設定選取器資源,否則這項資源本身不會影響設定。

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)

僅供輸出。資源的建立時間戳記。

使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數位數。系統也接受「Z」以外的偏移量。例如:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

updateTime

string (Timestamp format)

僅供輸出。資源更新時間的時間戳記。

使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數位數。系統也接受「Z」以外的偏移量。例如:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

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)

(選用步驟) 流量來源的屬性清單。所有來源都必須相符。如果主體和 ipBlocks 都相符,來源即為相符。如果未設定,系統會套用「動作」欄位中指定的動作,且不會對來源進行任何規則檢查。

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 授權。任何負載平衡器或 Proxy 的 IP 位址都應視為不受信任。

目的地

流量目的地屬性規格。

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

string

這是必要旗標,要比對的主機名稱清單。與 HTTP 要求的「:authority」標頭相符。至少須符合一個主機。每個主機可以是完全相符、前置字元相符 (例如「mydomain.*」)、後置字元相符 (例如「*.myorg.com」),或是存在 (任何) 相符「*」。

ports[]

integer (uint32 format)

這是必要旗標,要比對的目的地通訊埠清單。至少要有一個通訊埠相符。

paths[]

string

(選用步驟) 要比對的 HTTP 路徑清單。gRPC 方法必須以完整名稱呈現,格式為「/packageName.serviceName/methodName」。至少應符合一個路徑。每個路徑可以是完全相符、前置字元相符 (例如「/packageName.serviceName/*」)、後置字元相符 (例如「*/video」),或是存在 (任何) 相符「*」。

methods[]

string

(選用步驟) 要比對的 HTTP 方法清單。至少應符合一種方法。不應為 gRPC 服務設定。

httpHeaderMatch

object (HttpHeaderMatch)

(選用步驟) 比對 HTTP 標頭中的鍵/值組合。根據 HTTP 標頭提供彈性比對,適用於進階用途。至少要有一個標頭相符。除非有強烈保證要求是透過可信任的用戶端或 Proxy 傳送,否則請避免使用標頭比對來做出授權決策。

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 要求的授權,請使用 headerMatch,並將標頭名稱設為「:authority」。如要比對要求的 method,請使用「:method」headerName。

聯集欄位 type

type 只能是下列其中一項:

regexMatch

string

這是必要旗標,標頭的值必須符合 regexMatch 中指定的規則運算式。如需規則運算式語法,請參閱:en.cppreference.com/w/cpp/regex/ecmascript。如要比對 HTTP 要求中指定的通訊埠,請使用 headerMatch,並將 headerName 設為 Host,以及符合 RFC2616 主機標頭通訊埠指定符的規則運算式。

方法

create

在指定專案和位置中建立新的 AuthorizationPolicy。

delete

刪除單一 AuthorizationPolicy。

get

取得單一 AuthorizationPolicy 的詳細資料。

list

列出指定專案和位置中的 AuthorizationPolicy。

patch

更新單一 AuthorizationPolicy 的參數。