REST Resource: projects.locations.endpointPolicies

リソース: EndpointPolicy

EndpointPolicy は、特定の条件に一致するエンドポイントに必要な構成を適用するのに役立つリソースです。たとえば、このリソースを使用して、ポート 8080 でサービスを提供するすべてのエンドポイントに「認証構成」を適用できます。

JSON 表現
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "type": enum (EndpointPolicyType),
  "authorizationPolicy": string,
  "endpointMatcher": {
    object (EndpointMatcher)
  },
  "trafficPortSelector": {
    object (TrafficPortSelector)
  },
  "description": string,
  "serverTlsPolicy": string,
  "clientTlsPolicy": string
}
フィールド
name

string

必須。EndpointPolicy リソースの名前。パターン projects/{project}/locations/global/endpointPolicies/{endpointPolicy} と一致します。

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)

省略可。EndpointPolicy リソースに関連付けられたラベルタグのセット。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

type

enum (EndpointPolicyType)

必須。エンドポイント ポリシーのタイプ。これは主に構成の検証に使用されます。

authorizationPolicy

string

省略可。このフィールドには、一致したエンドポイントの受信トラフィックに認可ポリシーを適用する AuthorizationPolicy リソースの URL を指定します。「認可」を参照してください。このフィールドが指定されていない場合、このエンドポイントの認可が無効になります(認可チェックなし)。

endpointMatcher

object (EndpointMatcher)

必須。ポリシーを適用するエンドポイントを選択するマッチャー。

trafficPortSelector

object (TrafficPortSelector)

省略可。(一致した)エンドポイントのポートセレクタ。ポートセレクタが指定されていない場合、一致した構成がすべてのポートに適用されます。

description

string

省略可。リソースのフリーテキストの説明。最大長は 1,024 文字です。

serverTlsPolicy

string

省略可。ServerTlsPolicy リソースを参照する URL。ServerTlsPolicy は、特定されたバックエンドで受信トラフィックを終了するために適用される認証ポリシーを決定するために使用されます。このフィールドが設定されていない場合、このエンドポイントの認証は無効になります(オープン)。

clientTlsPolicy

string

省略可。ClientTlsPolicy リソースを参照する URL。ClientTlsPolicy を設定すると、プロキシから実際のエンドポイントへのトラフィックの認証を指定できます。具体的には、プロキシからエンドポイントへの送信トラフィックに適用されます。これは通常、プロキシがコントロール プレーンへのエンドポイントとして自身を識別し、サイドカーとエンドポイントの間の接続で認証が必要なサイドカー モデルに使用されます。このフィールドが設定されていない場合、認証は無効になります(オープン)。EndpointPolicyType が SIDECAR_PROXY の場合にのみ適用されます。

EndpointPolicyType

エンドポイント ポリシーのタイプ。

列挙型
ENDPOINT_POLICY_TYPE_UNSPECIFIED デフォルト値。使用しないでください。
SIDECAR_PROXY サイドカーとしてデプロイされたプロキシを表します。
GRPC_SERVER プロキシレス gRPC バックエンドを表します。

EndpointMatcher

ポリシーを適用する必要があるエンドポイントを選択するマッチャーの定義。

JSON 表現
{

  // Union field matcher_type can be only one of the following:
  "metadataLabelMatcher": {
    object (MetadataLabelMatcher)
  }
  // End of list of possible types for union field matcher_type.
}
フィールド
共用体フィールド matcher_type。このエンドポイント マッチャーに使用するマッチャーのタイプを指定します。matcher_type は次のいずれかになります。
metadataLabelMatcher

object (MetadataLabelMatcher)

マッチャーは、xDS クライアントによって提示されたノード メタデータに基づいています。

MetadataLabelMatcher

マッチャーは、xDS クライアントによって提示されたノード メタデータに基づいています。

JSON 表現
{
  "metadataLabelMatchCriteria": enum (MetadataLabelMatchCriteria),
  "metadataLabels": [
    {
      object (MetadataLabels)
    }
  ]
}
フィールド
metadataLabelMatchCriteria

enum (MetadataLabelMatchCriteria)

マッチング方法を指定します。

サポートされている値は、MATCH_ANY です。マッチャーで指定されたラベルの少なくとも 1 つが、XDS クライアントによって提示されたメタデータと一致している必要があります。MATCH_ALL: xDS クライアントによって提示されたメタデータには、ここで指定されたすべてのラベルが含まれている必要があります。

選択は、最も一致するものに基づいて行われます。たとえば、3 つの EndpointPolicy リソース P1、P2、P3 があり、P1 に MATCH_ANY <A:1, B:1> というマッチャーがあり、P2 に MATCH_ALL <A:1,B:1> というマッチャーがあり、P3 に MATCH_ALL <A:1,B:1,C:1> というマッチャーがあるとします。

ラベルが <A:1> のクライアントが接続すると、P1 の構成が選択されます。

ラベルが <A:1,B:1> のクライアントが接続すると、P2 の構成が選択されます。

ラベルが <A:1,B:1,C:1> のクライアントが接続すると、P3 の構成が選択されます。

最も一致するものが複数ある場合(たとえば、セレクタ <A:1,D:1> がある構成 P4 が存在し、ラベルが <A:1,B:1,D:1> のクライアントが接続する場合など)、作成時間が古いほうが選択されます。

metadataLabels[]

object (MetadataLabels)

filterMatchCriteria に基づいて指定されたメタデータのラベルと一致する必要があるラベル値ペアのリスト。このリストには最大 64 個のエントリを含めることができます。一致条件が MATCH_ANY の場合は、このリストを空にしてワイルドカード一致を指定できます(つまり、任意のクライアントに一致します)。

MetadataLabelMatchCriteria

マッチング方法のロジックを定義する条件値。

列挙型
METADATA_LABEL_MATCH_CRITERIA_UNSPECIFIED デフォルト値。これは使用しないでください。
MATCH_ANY マッチャーで指定されたラベルの少なくとも 1 つが、xDS クライアントによって提示されたメタデータと一致している必要があります。
MATCH_ALL xDS クライアントによって提示されたメタデータには、ここで指定されたすべてのラベルが含まれている必要があります。

MetadataLabels

単一のラベルの名前ペアの値を定義します。

JSON 表現
{
  "labelName": string,
  "labelValue": string
}
フィールド
labelName

string

必須。xDS ノード メタデータでキーとして提示されるラベル名。

labelValue

string

必須。xDS ノード メタデータで、上記のキーに対応する値として提示されるラベル値。

TrafficPortSelector

ポートベースのセレクタの仕様。

JSON 表現
{
  "ports": [
    string
  ]
}
フィールド
ports[]

string

省略可。ポートのリスト。ポート番号またはポート範囲(例: [80-90] は 80~90 のすべてのポート(80 と 90 を含む)を指定します)、名前付きポート、またはすべてのポートを指定する *。リストが空の場合は、すべてのポートが選択されます。

メソッド

create

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

delete

1 つの EndpointPolicy を削除します。

get

1 つの EndpointPolicy の詳細を取得します。

list

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

patch

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

setIamPolicy

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

testIamPermissions

呼び出し元が指定されたリソース上で持つ権限を返します。