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 den Ziel-HTTPS-Proxy oder die 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. Sie stimmt mit dem Muster projects/{project}/locations/{location}/authorizationPolicies/<authorizationPolicy> überein.

description

string

Optional. Freitextbeschreibung 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 angibt, wann die Ressource aktualisiert 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".

labels

map (key: string, value: string)

Optional. Eine Reihe von Label-Tags, die mit der AuthorizationPolicy-Ressource verknüpft 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 ist eine Ü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 Standard-Fallback für „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 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 Zugriffsquellen

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 Ü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. Einzelne IP-Adresse (z.B. „1.2.3.4“) und CIDR (z.B. „1.2.3.0/24“) werden 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. „mydomain.*“), eine Suffixübereinstimmung (z. B. „*.myorg.com“) 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 sollte ü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-Übereinstimmungen 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 angegebenen Projekt und an einem angegebenen Ort.

delete

Löscht eine einzelne AuthorizationPolicy.

get

Ruft Details zu einer einzelnen AuthorizationPolicy ab.

list

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

patch

Aktualisiert die Parameter einer einzelnen AuthorizationPolicy.