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「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

updateTime

string (Timestamp format)

出力専用。リソース最終更新時のタイムスタンプ。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "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」フィールドで指定された操作を実行するには、少なくとも 1 つのルールが一致する必要があります。送信元と宛先が一致する場合、ルールは一致します。空白のままにすると、action フィールドに指定したアクションがすべてのリクエストに適用されます。

internalCaller

boolean

省略可。内部コントローラーを識別するためのフラグセットです。これを設定すると、他のオプションフィールドが未設定であっても、呼び出し元が許可リストに登録済みのサービスの P4SA であることを検証するための P4SA チェックがトリガーされます。

アクション

実行する操作を定義する設定可能な値。

列挙型
ACTION_UNSPECIFIED デフォルト値。
ALLOW アクセスを許可します。
DENY アクセスを拒否します。拒否ルールは、デフォルトの「すべて拒否」の代替機能を提供する目的で使用されていない限り、使用しないでください。

ルール

ルールの仕様。

JSON 表現
{
  "sources": [
    {
      object (Source)
    }
  ],
  "destinations": [
    {
      object (Destination)
    }
  ]
}
フィールド
sources[]

object (Source)

省略可。トラフィック ソースの属性のリスト。すべてのソースが一致している必要があります。principal と ipBlocks の両方が一致する場合、ソースは一致します。設定しない場合、「action」フィールドで指定されたアクションが適用され、ソースのルール チェックは行われません。

destinations[]

object (Destination)

省略可。トラフィックの宛先の属性リスト。すべての宛先が一致している必要があります。リクエストが指定されたすべてのホスト、ポート、メソッド、ヘッダーと一致する場合、宛先が一致します。設定されていない場合、宛先のルールチェックを行わずに、「action」フィールドで指定されたアクションが適用されます。

ソース

トラフィック ソースの属性の仕様。

JSON 表現
{
  "principals": [
    string
  ],
  "ipBlocks": [
    string
  ]
}
フィールド
principals[]

string

省略可。認可で照合するピア ID のリスト。少なくとも 1 つのプリンシパルが一致する必要があります。各ピアの一致は、完全一致、接頭辞の一致(例: 「namespace/*」)、接尾辞の一致(例: 「*/service-account」)、プレゼンス一致「*」のいずれかです。証明書の検証を行わずにプリンシパル名に基づく認可(ServerTlsPolicy リソースによって構成される)は、安全でないとみなされます。

ipBlocks[]

string

省略可。送信元 IP アドレスに基づいて照合する CIDR 範囲のリスト。少なくとも 1 つの 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」ヘッダーと照合されます。少なくとも 1 つのホストが一致する必要があります。各ホストの一致は、完全一致、接頭辞の一致(例: 「mydomain.*」)、接尾辞の一致(例: 「*.myorg.com」)、またはプレゼンス(任意)の一致のいずれかです。

ports[]

integer (uint32 format)

必須。照合する宛先ポートのリスト。少なくとも 1 つのポートが一致する必要があります。

paths[]

string

省略可。照合する HTTP パスのリスト。 gRPC メソッドは、「/packageName.serviceName/methodName」という形式の完全修飾名として提示する必要があります。少なくとも 1 つのパスが一致する必要があります。各パスの一致は、完全一致、接頭辞の一致(例: 「/packageName.serviceName/*」)、接尾辞の一致(例: 「*/video」)、またはプレゼンス(任意)の一致「*」のいずれかです。

methods[]

string

省略可。照合する HTTP メソッドのリスト。少なくとも 1 つのメソッドが一致する必要があります。gRPC サービスには設定しないでください。

httpHeaderMatch

object (HttpHeaderMatch)

省略可。http ヘッダーの Key-Value ペアと照合します。高度なユースケースで使用できる、HTTP ヘッダーに基づく柔軟な一致を提示します。少なくとも 1 つのヘッダーが一致する必要があります。リクエストが信頼できるクライアントまたはプロキシ経由で送信されることが確実な場合を除き、ヘッダーの一致を使用して認可を決定することは避けてください。

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 リクエストで指定されたポートとの照合には、headerName が Host に設定されている headerMatch と、RFC2616 Host ヘッダーのポート指定子の要件を満たす正規表現を使用します。

メソッド

create

指定されたプロジェクトとロケーションで新しい AuthorizationPolicy を作成します。

delete

1 つの AuthorizationPolicy を削除します。

get

1 つの AuthorizationPolicy の詳細情報を取得します。

getIamPolicy

リソースのアクセス制御ポリシーを取得します。

list

指定されたプロジェクトとロケーションの AuthorizationPolicy を一覧表示します。

patch

単一の AuthorizationPolicy のパラメータを更新します。

setIamPolicy

指定したリソースにアクセス制御ポリシーを設定します。

testIamPermissions

指定されたリソースに対して呼び出し元が持っている権限を返します。