REST Resource: projects.locations.authorizationPolicies

Ressource: AuthorizationPolicy

AuthorizationPolicy ist eine Ressource, die angibt, wie ein Server eingehende Verbindungen autorisieren soll. Diese Ressource selbst ändert die Konfiguration nur, wenn sie an eine Auswahlressource für den Ziel-HTTPS-Proxy oder die Endpunktkonfiguration angehängt ist.

JSON-Darstellung
{
  "name": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "action": enum (Action),
  "rules": [
    {
      object (Rule)
    }
  ]
}
Felder
name

string

Erforderlich. Name der „AuthorizationPolicy“-Ressource. Entspricht dem Muster projects/{project}/locations/{location}/authorizationPolicies/<authorizationPolicy>.

description

string

Optional. Textbeschreibung der Ressource.

createTime

string (Timestamp format)

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

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30"

updateTime

string (Timestamp format)

Nur Ausgabe. Der Zeitstempel der Ressourcenaktualisierung.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

labels

map (key: string, value: string)

Optional. Eine Reihe von Label-Tags, die der AuthorizationPolicy-Ressource zugeordnet sind.

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

action

enum (Action)

Erforderlich. Die Aktion, die ausgeführt werden soll, wenn eine Regelübereinstimmung gefunden wird. Mögliche Werte sind „ALLOW“ oder „DENY“.

rules[]

object (Rule)

Optional. Liste der Regeln, die abgeglichen werden sollen. Hinweis: Mindestens eine der Regeln muss übereinstimmen, damit die im Feld „action“ angegebene Aktion ausgeführt wird. Eine Regel gilt als Übereinstimmung, wenn es eine übereinstimmende Quelle und ein übereinstimmendes Ziel gibt. Wenn Sie das Feld leer lassen, wird die im Feld action angegebene Aktion auf jede Anfrage angewendet.

Aktion

Mögliche Werte, die definieren, welche Aktion ausgeführt werden soll.

Enums
ACTION_UNSPECIFIED Standardwert.
ALLOW Gewähren Sie den Zugriff.
DENY Zugriff verweigern: Ablehnungsregeln sollten vermieden werden, es sei denn, sie werden als standardmäßiger „Alle ablehnen“-Fallback verwendet.

Regel

Spezifikation von Regeln

JSON-Darstellung
{
  "sources": [
    {
      object (Source)
    }
  ],
  "destinations": [
    {
      object (Destination)
    }
  ]
}
Felder
sources[]

object (Source)

Optional. Liste der Attribute für die Besucherquelle. Alle Quellen müssen übereinstimmen. Eine Quelle ist eine Übereinstimmung, wenn sowohl die Principals als auch die IP-Blöcke übereinstimmen. Wenn nicht festgelegt, wird die im Feld „action“ angegebene Aktion ohne Regelprüfungen für die Quelle angewendet.

destinations[]

object (Destination)

Optional. Liste der Attribute für das Traffic-Ziel. Alle Ziele müssen übereinstimmen. Ein Ziel ist eine Übereinstimmung, wenn eine Anfrage mit allen angegebenen Hosts, Ports, Methoden und Headern übereinstimmt. Wenn nichts festgelegt ist, wird die im Feld „action“ angegebene Aktion ohne Regelprüfungen für das Ziel angewendet.

Quelle

Angabe von Attributen für Traffic-Quellen

JSON-Darstellung
{
  "principals": [
    string
  ],
  "ipBlocks": [
    string
  ]
}
Felder
principals[]

string

Optional. Liste der Peer-Identitäten, die für die Autorisierung abgeglichen werden sollen. Mindestens ein Prinzipal muss übereinstimmen. Jeder Peer kann eine genaue Übereinstimmung, eine Präfixübereinstimmung (z. B. „namespace/*“), eine Suffixübereinstimmung (z. B. „*/service-account“) oder eine Übereinstimmung mit dem Vorhandensein („*“) sein. Die Autorisierung basierend auf dem Prinzipalnamen ohne Zertifikatsvalidierung (konfiguriert durch die ServerTlsPolicy-Ressource) gilt als unsicher.

ipBlocks[]

string

Optional. Liste der CIDR-Bereiche, die anhand der Quell-IP-Adresse abgeglichen werden sollen. Mindestens ein IP-Block sollte übereinstimmen. Es werden einzelne IP-Adressen (z.B. „1.2.3.4“) und CIDR-Bereiche (z.B. „1.2.3.0/24“) unterstützt. Die Autorisierung sollte nicht nur auf der Quell-IP-Adresse basieren. Die IP-Adressen von Load-Balancern oder Proxys sollten als nicht vertrauenswürdig betrachtet werden.

Ziel

Spezifikation von Attributen für das Traffic-Ziel.

JSON-Darstellung
{
  "hosts": [
    string
  ],
  "ports": [
    integer
  ],
  "paths": [
    string
  ],
  "methods": [
    string
  ],
  "httpHeaderMatch": {
    object (HttpHeaderMatch)
  }
}
Felder
hosts[]

string

Erforderlich. Liste der Hostnamen, die abgeglichen werden sollen. Wird mit dem Header „:authority“ in HTTP-Anfragen abgeglichen. Mindestens ein Host sollte übereinstimmen. Jeder Host kann eine genaue Übereinstimmung, eine Präfixübereinstimmung (z. B. „meinedomain.*“), eine Suffixübereinstimmung (z. B. „*.meineorganisation.de“) oder eine Übereinstimmung mit einem beliebigen Wert („*“) sein.

ports[]

integer (uint32 format)

Erforderlich. Liste der abzugleichenden Zielports. Mindestens ein Port sollte übereinstimmen.

paths[]

string

Optional. Eine Liste der abzugleichenden HTTP-Pfade. gRPC-Methoden müssen als voll qualifizierter Name im Format „/packageName.serviceName/methodName“ angegeben werden. Mindestens ein Pfad sollte übereinstimmen. Jeder Pfad kann eine genaue Übereinstimmung, eine Präfixübereinstimmung (z. B. „/packageName.serviceName/*“), eine Suffixübereinstimmung (z. B. „*/video“) oder eine Übereinstimmung mit Vorhandensein (beliebig) „*“ sein.

methods[]

string

Optional. Eine Liste der HTTP-Methoden für den Abgleich. Mindestens eine Methode muss übereinstimmen. Sollte für gRPC-Dienste nicht festgelegt werden.

httpHeaderMatch

object (HttpHeaderMatch)

Optional. Abgleich mit Schlüssel/Wert-Paar im HTTP-Header. Bietet einen flexiblen Abgleich basierend auf HTTP-Headern für potenziell erweiterte Anwendungsfälle. Mindestens ein Header muss übereinstimmen. Vermeiden Sie die Verwendung von Header-Abgleich für Autorisierungsentscheidungen, es sei denn, es gibt eine starke Garantie dafür, dass Anfragen über einen vertrauenswürdigen Client oder Proxy eingehen.

HttpHeaderMatch

Spezifikation von Attributen für den Abgleich von HTTP-Headern.

JSON-Darstellung
{
  "headerName": string,

  // Union field type can be only one of the following:
  "regexMatch": string
  // End of list of possible types for union field type.
}
Felder
headerName

string

Erforderlich. Der Name des abzugleichenden HTTP-Headers. Wenn Sie die Autorität der HTTP-Anfrage abgleichen möchten, verwenden Sie „headerMatch“ mit dem Headernamen „:authority“. Verwenden Sie den Header-Namen „:method“, um die Methode einer Anfrage abzugleichen.

Union-Feld type.

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

regexMatch

string

Erforderlich. Der Wert des Headers muss dem regulären Ausdruck entsprechen, der in „regexMatch“ angegeben ist. Informationen zur Grammatik regulärer Ausdrücke finden Sie unter en.cppreference.com/w/cpp/regex/ecmascript. Wenn Sie einen Abgleich mit einem in der HTTP-Anfrage angegebenen Port durchführen möchten, verwenden Sie „headerMatch“ mit „headerName“ auf „Host“ und einem regulären Ausdruck, der dem Port-Spezifizierer des RFC2616-Host-Headers entspricht.

Methoden

create

Erstellt eine neue „AuthorizationPolicy“ in einem bestimmten Projekt und an einem bestimmten Standort

delete

Löscht eine einzelne „AuthorizationPolicy“.

get

Ruft Details zu einer einzelnen „AuthorizationPolicy“ ab

list

Listet „AuthorizationPolicies“ in einem bestimmten Projekt und an einem bestimmten Standort auf.

patch

Aktualisiert die Parameter einer einzelnen AuthorizationPolicy.