REST Resource: projects.locations.authzPolicies

Ressource: AuthzPolicy

AuthzPolicy ist eine Ressource, mit der Traffic an ein Callout-Backend weitergeleitet werden kann, das den Traffic aus Sicherheitsgründen scannt.

JSON-Darstellung
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "description": string,
  "labels": {
    string: string,
    ...
  },
  "target": {
    object (Target)
  },
  "httpRules": [
    {
      object (AuthzRule)
    }
  ],
  "action": enum (AuthzAction),
  "customProvider": {
    object (CustomProvider)
  }
}
Felder
name

string

Erforderlich. Kennung. Name der AuthzPolicy-Ressource im folgenden Format: projects/{project}/locations/{location}/authzPolicies/{authzPolicy}.

createTime

string (Timestamp format)

Nur Ausgabe. Der Zeitstempel, der angibt, wann die Ressource erstellt wurde.

Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: "2014-10-02T15:01:23Z" und "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Nur Ausgabe. Der Zeitstempel, der angibt, wann die Ressource aktualisiert wurde.

Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: "2014-10-02T15:01:23Z" und "2014-10-02T15:01:23.045123456Z".

description

string

Optional. Eine für Menschen lesbare Beschreibung der Ressource.

labels

map (key: string, value: string)

Optional. Mit der AuthzPolicy-Ressource verknüpfte Labels.

Das Format muss den folgenden Anforderungen entsprechen.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

target

object (Target)

Erforderlich. Gibt die Ressourcen an, auf die diese Richtlinie angewendet werden soll.

httpRules[]

object (AuthzRule)

Optional. Eine Liste von HTTP-Autorisierungsregeln, die mit der eingehenden Anfrage abgeglichen werden. Eine Richtlinienübereinstimmung tritt auf, wenn mindestens eine HTTP-Regel mit der Anfrage übereinstimmt oder wenn in der Richtlinie keine HTTP-Regeln angegeben sind. Für die Aktion „Zulassen“ oder „Verweigern“ ist mindestens eine HTTP-Regel erforderlich. Begrenzt auf 5 Regeln.

action

enum (AuthzAction)

Erforderlich. Kann ALLOW, DENY oder CUSTOM sein:

Wenn die Aktion CUSTOM ist, muss customProvider angegeben werden.

Wenn die Aktion ALLOW ist, sind nur Anfragen zulässig, die der Richtlinie entsprechen.

Wenn die Aktion DENY ist, werden nur Anfragen abgelehnt, die der Richtlinie entsprechen.

Wenn eine Anfrage eingeht, werden die Richtlinien in der folgenden Reihenfolge ausgewertet:

  1. Wenn eine CUSTOM-Richtlinie mit der Anfrage übereinstimmt, wird die CUSTOM-Richtlinie mithilfe der benutzerdefinierten Autorisierungsanbieter ausgewertet. Wenn der Anbieter die Anfrage ablehnt, wird sie abgelehnt.

  2. Wenn DENY-Richtlinien mit der Anfrage übereinstimmen, wird die Anfrage abgelehnt.

  3. Wenn für die Ressource keine ALLOW-Richtlinien vorhanden sind oder eine der ALLOW-Richtlinien mit der Anfrage übereinstimmt, ist die Anfrage zulässig.

  4. Andernfalls wird die Anfrage standardmäßig abgelehnt, wenn keine der konfigurierten AuthzPolicies mit der Aktion ALLOW mit der Anfrage übereinstimmt.

customProvider

object (CustomProvider)

Optional. Erforderlich, wenn die Aktion CUSTOM ist. Ermöglicht die Delegierung von Autorisierungsentscheidungen an Cloud IAP oder an Service Extensions. Es muss entweder cloudIap oder authzExtension angegeben werden.

Ziel

Gibt die Ziele an, auf die diese Richtlinie angewendet werden soll.

JSON-Darstellung
{
  "loadBalancingScheme": enum (LoadBalancingScheme),
  "resources": [
    string
  ]
}
Felder
loadBalancingScheme

enum (LoadBalancingScheme)

Erforderlich. Alle Gateways und Weiterleitungsregeln, auf die in dieser Richtlinie und in den Erweiterungen verwiesen wird, müssen dasselbe Load Balancing-Schema verwenden. Unterstützte Werte: INTERNAL_MANAGED und EXTERNAL_MANAGED. Weitere Informationen finden Sie unter Übersicht über Back-End-Dienste.

resources[]

string

Erforderlich. Eine Liste der Weiterleitungsregeln, auf die diese Richtlinie angewendet wird.

LoadBalancingScheme

Load Balancing-Schemas, die von der AuthzPolicy-Ressource unterstützt werden. Gültige Werte sind INTERNAL_MANAGED und EXTERNAL_MANAGED. Weitere Informationen finden Sie unter Übersicht über Back-End-Dienste.

Enums
LOAD_BALANCING_SCHEME_UNSPECIFIED Standardwert. Nicht verwenden.
INTERNAL_MANAGED Gibt an, dass dies für regionales internes oder regionenübergreifendes internes Application Load Balancing verwendet wird.
EXTERNAL_MANAGED Gibt an, dass dies für globales externes oder regionales externes Application Load Balancing verwendet wird.
INTERNAL_SELF_MANAGED Gibt an, dass dies für Cloud Service Mesh verwendet wird. Nur für den CSM GKE-Controller gedacht.

AuthzRule

Bedingungen, die mit der eingehenden Anfrage abgeglichen werden sollen.

JSON-Darstellung
{
  "from": {
    object (From)
  },
  "to": {
    object (To)
  },
  "when": string
}
Felder
from

object (From)

Optional. Beschreibt Eigenschaften einer oder mehrerer Quellen einer Anfrage.

to

object (To)

Optional. Beschreibt die Eigenschaften eines oder mehrerer Ziele einer Anfrage.

when

string

Optional. CEL-Ausdruck, der die Bedingungen beschreibt, die für die Aktion erfüllt sein müssen. Das Ergebnis des CEL-Ausdrucks wird mit „von“ und „bis“ verknüpft. Eine Liste der verfügbaren Attribute finden Sie in der CEL-Sprachreferenz.

From

Beschreibt Eigenschaften einer oder mehrerer Quellen einer Anfrage.

JSON-Darstellung
{
  "sources": [
    {
      object (RequestSource)
    }
  ],
  "notSources": [
    {
      object (RequestSource)
    }
  ]
}
Felder
sources[]

object (RequestSource)

Optional. Beschreibt die Eigenschaften der Quellen einer Anfrage. Es muss mindestens eine der Optionen „sources“ oder „notSources“ angegeben werden. Begrenzt auf 5 Quellen. Eine Übereinstimmung liegt vor, wenn JEDE Quelle (in „sources“ oder „notSources“) mit der Anfrage übereinstimmt. Innerhalb einer einzelnen Quelle folgt die Übereinstimmung der AND-Semantik über Felder hinweg und der OR-Semantik innerhalb eines einzelnen Felds. Das heißt, es kommt zu einer Übereinstimmung, wenn JEDER Hauptnutzer UND JEDE IP-Block-Adresse übereinstimmt.

notSources[]

object (RequestSource)

Optional. Beschreibt die negierten Eigenschaften von Anfragequellen. Gleicht Anfragen von Quellen ab, die nicht den in diesem Feld angegebenen Kriterien entsprechen. Es muss mindestens eine der Optionen „sources“ oder „notSources“ angegeben werden.

RequestSource

Beschreibt die Eigenschaften einer einzelnen Quelle.

JSON-Darstellung
{
  "principals": [
    {
      object (StringMatch)
    }
  ],
  "resources": [
    {
      object (RequestResource)
    }
  ]
}
Felder
principals[]

object (StringMatch)

Optional. Eine Liste der Identitäten, die aus dem Zertifikat des Clients abgeleitet wurden. Dieses Feld wird nur dann mit einer Anfrage abgeglichen, wenn die gegenseitige TLS-Authentifizierung für die Weiterleitungsregel oder das Gateway aktiviert ist. Jede Identität ist ein String, dessen Wert mit dem URI-SAN, dem DNS-SAN oder dem Subject-Feld im Zertifikat des Clients abgeglichen wird. Die Übereinstimmung kann als genau, Präfix, Suffix oder Teilstring erfolgen. Es muss eine der Optionen „genau“, „Präfix“, „Suffix“ oder „enthält“ angegeben werden. Begrenzt auf 5 Hauptkonten.

resources[]

object (RequestResource)

Optional. Eine Liste von Ressourcen, die mit der Ressource der Quell-VM einer Anfrage abgeglichen werden. Begrenzt auf 5 Ressourcen.

StringMatch

Bestimmt, wie ein Stringwert abgeglichen werden soll.

JSON-Darstellung
{
  "ignoreCase": boolean,

  // Union field match_pattern can be only one of the following:
  "exact": string,
  "prefix": string,
  "suffix": string,
  "contains": string
  // End of list of possible types for union field match_pattern.
}
Felder
ignoreCase

boolean

Wenn „wahr“ festgelegt ist, wird bei der Übereinstimmung mit „genau“, „Präfix“, „Suffix“ oder „enthält“ die Groß-/Kleinschreibung nicht berücksichtigt. Beispiel: Wenn der Matcher data auf „wahr“ gesetzt ist, werden sowohl Data als auch data abgeglichen.

Union-Feld match_pattern.

Für match_pattern ist nur einer der folgenden Werte zulässig:

exact

string

Der Eingabestring muss genau mit dem hier angegebenen String übereinstimmen.

Beispiele:

  • abc stimmt nur mit dem Wert abc überein.
prefix

string

Der Eingabestring muss das hier angegebene Präfix haben. Hinweis: Leeres Präfix ist nicht zulässig. Verwenden Sie stattdessen reguläre Ausdrücke.

Beispiele:

  • abc stimmt mit dem Wert abc.xyz überein
suffix

string

Der Eingabestring muss das hier angegebene Suffix haben. Hinweis: Leeres Präfix ist nicht zulässig. Verwenden Sie stattdessen reguläre Ausdrücke.

Beispiele:

  • abc stimmt mit dem Wert xyz.abc überein
contains

string

Der Eingabestring muss den hier angegebenen Teilstring enthalten. Hinweis: Leere Übereinstimmungen mit „enthält“ sind nicht zulässig. Verwenden Sie stattdessen reguläre Ausdrücke.

Beispiele:

  • abc stimmt mit dem Wert xyz.abc.def überein

RequestResource

Beschreibt die Eigenschaften einer Client-VM-Ressource, die auf die internen Application Load Balancer zugreift.

JSON-Darstellung
{
  "tagValueIdSet": {
    object (TagValueIdSet)
  },
  "iamServiceAccount": {
    object (StringMatch)
  }
}
Felder
tagValueIdSet

object (TagValueIdSet)

Optional. Eine Liste der permanenten IDs von Ressourcen-Tag-Werten, die mit dem Wert der Ressourcenmanager-Tags abgeglichen werden, der mit der Quell-VM einer Anfrage verknüpft ist.

iamServiceAccount

object (StringMatch)

Optional. Ein IAM-Dienstkonto, das mit dem Quelldienstkonto der VM abgeglichen werden soll, von der die Anfrage gesendet wird.

TagValueIdSet

Beschreibt eine Reihe von permanenten IDs für Ressourcen-Tag-Werte, die mit dem Wert der Ressourcenmanager-Tags abgeglichen werden, der mit der Quell-VM einer Anfrage verknüpft ist.

JSON-Darstellung
{
  "ids": [
    string
  ]
}
Felder
ids[]

string (int64 format)

Erforderlich. Eine Liste der permanenten IDs von Ressourcen-Tag-Werten, die mit dem Wert der Ressourcenmanager-Tags abgeglichen werden, der mit der Quell-VM einer Anfrage verknüpft ist. Der Abgleich folgt der AND-Semantik, d. h. alle IDs müssen übereinstimmen. Begrenzt auf 5 Übereinstimmungen.

To

Beschreibt die Eigenschaften eines oder mehrerer Ziele einer Anfrage.

JSON-Darstellung
{
  "operations": [
    {
      object (RequestOperation)
    }
  ],
  "notOperations": [
    {
      object (RequestOperation)
    }
  ]
}
Felder
operations[]

object (RequestOperation)

Optional. Beschreibt die Eigenschaften eines oder mehrerer Ziele einer Anfrage. Es muss mindestens eine der Optionen „operations“ oder „notOperations“ angegeben werden. Begrenzt auf 5 Vorgänge. Eine Übereinstimmung tritt auf, wenn JEDER Vorgang (in „operations“ oder „notOperations“) übereinstimmt. Innerhalb eines Vorgangs folgt die Übereinstimmung der AND-Semantik über Felder hinweg und der OR-Semantik innerhalb eines Felds. Das heißt, es kommt zu einer Übereinstimmung, wenn JEDER Pfad UND JEDER Header UND JEDE Methode übereinstimmen.

notOperations[]

object (RequestOperation)

Optional. Beschreibt die negierten Eigenschaften der Ziele einer Anfrage. Gleicht Anfragen für Vorgänge ab, die nicht den in diesem Feld angegebenen Kriterien entsprechen. Es muss mindestens eine der Optionen „operations“ oder „notOperations“ angegeben werden.

RequestOperation

Beschreibt die Eigenschaften eines oder mehrerer Ziele einer Anfrage.

JSON-Darstellung
{
  "headerSet": {
    object (HeaderSet)
  },
  "hosts": [
    {
      object (StringMatch)
    }
  ],
  "paths": [
    {
      object (StringMatch)
    }
  ],
  "methods": [
    string
  ]
}
Felder
headerSet

object (HeaderSet)

Optional. Eine Liste von Headern für den Abgleich im HTTP-Header.

hosts[]

object (StringMatch)

Optional. Eine Liste von HTTP-Hosts für den Abgleich. Die Übereinstimmung kann „exakt“, „Präfix“, „Suffix“ oder „enthält“ (Teilstringübereinstimmung) sein. Bei Übereinstimmungen wird immer zwischen Groß- und Kleinschreibung unterschieden, es sei denn, die Option „ignoreCase“ ist festgelegt. Begrenzt auf 5 Übereinstimmungen.

paths[]

object (StringMatch)

Optional. Eine Liste von Pfaden für den Abgleich. Die Übereinstimmung kann „exakt“, „Präfix“, „Suffix“ oder „enthält“ (Teilstringübereinstimmung) sein. Bei Übereinstimmungen wird immer zwischen Groß- und Kleinschreibung unterschieden, es sei denn, die Option „ignoreCase“ ist festgelegt. Begrenzt auf 5 Übereinstimmungen. Beachten Sie, dass diese Pfadübereinstimmung die Abfrageparameter enthält. Bei gRPC-Diensten sollte dies ein vollständig qualifizierter Name vom Typ /package.service/method sein.

methods[]

string

Optional. Eine Liste der HTTP-Methoden für den Abgleich. Jeder Eintrag muss ein gültiger HTTP-Methodenname sein (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). Es ist nur eine genaue Übereinstimmung zulässig und die Groß-/Kleinschreibung wird immer berücksichtigt.

HeaderSet

Beschreibt eine Reihe von HTTP-Headern, die abgeglichen werden sollen.

JSON-Darstellung
{
  "headers": [
    {
      object (HeaderMatch)
    }
  ]
}
Felder
headers[]

object (HeaderMatch)

Erforderlich. Eine Liste von Headern für den Abgleich im HTTP-Header. Die Übereinstimmung kann „exakt“, „Präfix“, „Suffix“ oder „enthält“ (Teilstringübereinstimmung) sein. Der Abgleich folgt der AND-Semantik, d. h. alle Header müssen übereinstimmen. Bei Übereinstimmungen wird immer zwischen Groß- und Kleinschreibung unterschieden, es sei denn, die Option „ignoreCase“ ist festgelegt. Begrenzt auf 5 Übereinstimmungen.

HeaderMatch

Bestimmt, wie ein HTTP-Header abgeglichen werden soll.

JSON-Darstellung
{
  "name": string,
  "value": {
    object (StringMatch)
  }
}
Felder
name

string

Optional. Gibt den Namen des Headers in der Anfrage an.

value

object (StringMatch)

Optional. Gibt an, wie der Abgleich des Headers erfolgt.

AuthzAction

Die Aktion, die auf diese Richtlinie angewendet werden soll. Gültige Werte sind ALLOW, DENY und CUSTOM.

Enums
AUTHZ_ACTION_UNSPECIFIED Nicht angegebene Aktion.
ALLOW Die Anfrage wird an das Backend weitergeleitet.
DENY Lehnt die Anfrage ab und gibt den HTTP-Fehler 404 an den Client zurück.
CUSTOM Die Autorisierungsentscheidung an eine externe Autorisierungs-Engine delegieren.

CustomProvider

Ermöglicht die Delegierung von Autorisierungsentscheidungen an Cloud IAP oder an Service Extensions.

JSON-Darstellung
{
  "cloudIap": {
    object (CloudIap)
  },
  "authzExtension": {
    object (AuthzExtension)
  }
}
Felder
cloudIap

object (CloudIap)

Optional. Delegiert Autorisierungsentscheidungen an Cloud IAP. Gilt nur für verwaltete Load Balancer. Die Aktivierung von Cloud IAP auf AuthzPolicy-Ebene ist nicht mit den Cloud IAP-Einstellungen im BackendService kompatibel. Wenn Sie IAP an beiden Stellen aktivieren, schlägt die Anfrage fehl. Achten Sie darauf, dass IAP entweder in der AuthzPolicy oder im BackendService aktiviert ist, aber nicht an beiden Stellen.

authzExtension

object (AuthzExtension)

Optional. Autorisierungsentscheidung an vom Nutzer erstellte Diensterweiterung delegieren. Es kann nur entweder „cloudIap“ oder „authzExtension“ angegeben werden.

CloudIap

Dieser Typ hat keine Felder.

Optional. Delegiert Autorisierungsentscheidungen an Cloud IAP. Gilt nur für verwaltete Load Balancer. Die Aktivierung von Cloud IAP auf AuthzPolicy-Ebene ist nicht mit den Cloud IAP-Einstellungen im BackendService kompatibel. Wenn Sie IAP an beiden Stellen aktivieren, schlägt die Anfrage fehl. Achten Sie darauf, dass IAP entweder in der AuthzPolicy oder im BackendService aktiviert ist, aber nicht an beiden Stellen.

AuthzExtension

Optional. Autorisierungsentscheidung an vom Nutzer erstellte Erweiterung delegieren. Es kann nur entweder „cloudIap“ oder „authzExtension“ angegeben werden.

JSON-Darstellung
{
  "resources": [
    string
  ]
}
Felder
resources[]

string

Erforderlich. Eine Liste von Referenzen auf Autorisierungserweiterungen, die für Anfragen aufgerufen werden, die dieser Richtlinie entsprechen. Begrenzt auf einen (1) benutzerdefinierten Anbieter.

Methoden

create

Erstellt eine neue AuthzPolicy in einem bestimmten Projekt und an einem bestimmten Standort.

delete

Löscht eine einzelne AuthzPolicy.

get

Ruft Details zu einer einzelnen AuthzPolicy ab.

list

Listet AuthzPolicies in einem angegebenen Projekt und an einem angegebenen Standort auf.

patch

Aktualisiert die Parameter einer einzelnen AuthzPolicy.