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 nicht, es sei denn, sie ist an eine Auswahlressource für die Ziel-HTTPS-Proxy- oder Endpunktkonfiguration angehängt.

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 übereinstimmen müssen. Mindestens eine der Regeln muss übereinstimmen, damit die im Feld „action“ angegebene Aktion ausgeführt wird. Eine Regel gilt als übereinstimmend, 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 die auszuführende Aktion definieren.

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

Regel

Spezifikation von Regeln.

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

object (Source)

Optional. Liste der Attribute für die Traffic-Quelle. Alle Quellen müssen übereinstimmen. Eine Quelle ist eine Übereinstimmung, wenn sowohl Hauptkonten als auch ipBlocks ü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 Trafficziel. 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

Spezifikation der Attribute 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 Hauptkonto muss übereinstimmen. Jeder Peer kann eine genaue Übereinstimmung, eine Präfixübereinstimmung (z. B. „namespace/*“), eine Suffixübereinstimmung (z. B. „*/service-account“) oder eine Vorhandenseinsübereinstimmung „*“ sein. Die Autorisierung basierend auf dem Hauptkontonamen 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 muss übereinstimmen. Einzelne IP-Adressen (z.B. „1.2.3.4“) und CIDR-Blöcke (z.B. „1.2.3.0/24“) werden unterstützt. Eine Autorisierung, die nur auf der Quell-IP-Adresse basiert, sollte vermieden werden. Die IP-Adressen von Load Balancern oder Proxys sollten als nicht vertrauenswürdig eingestuft werden.

Ziel

Spezifikation von Attributen für Traffic-Ziele.

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

string

Erforderlich. Liste der Hostnamen, die übereinstimmen müssen. Wird mit dem Header „:authority“ in HTTP-Anfragen abgeglichen. Mindestens ein Host muss übereinstimmen. Jeder Host kann eine genaue Übereinstimmung, eine Präfixübereinstimmung (z. B. „mydomain.*“), eine Suffixübereinstimmung (z. B. „*.myorg.com“) oder eine Übereinstimmung mit einem beliebigen Host („*“) sein.

ports[]

integer (uint32 format)

Erforderlich. Liste der Zielports für den Abgleich. Mindestens ein Port muss übereinstimmen.

paths[]

string

Optional. Eine Liste der HTTP-Pfade für den Abgleich. gRPC-Methoden müssen als voll qualifizierter Name im Format „/packageName.serviceName/methodName“ angegeben werden. Mindestens ein Pfad muss ü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 einem beliebigen Wert („*“) sein.

methods[]

string

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

httpHeaderMatch

object (HttpHeaderMatch)

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

HttpHeaderMatch

Spezifikation von HTTP-Header-Abgleichsattributen.

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. Verwenden Sie für den Abgleich mit der Autorität der HTTP-Anfrage einen headerMatch mit dem Headernamen „:authority“. Verwenden Sie zum Abgleichen der Methode einer Anfrage den headerName „:method“.

Union-Feld type.

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

regexMatch

string

Erforderlich. Der Wert des Headers muss mit dem in regexMatch angegebenen regulären Ausdruck übereinstimmen. Informationen zur Grammatik regulärer Ausdrücke finden Sie unter: en.cppreference.com/w/cpp/regex/ecmascript. Verwenden Sie für den Abgleich mit einem in der HTTP-Anfrage angegebenen Port einen „headerMatch“ mit „headerName“ auf „Host“ und einen regulären Ausdruck, der dem Portbezeichner des RFC2616-Hostheaders 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.