REST Resource: projects.locations.authorizationPolicies

Risorsa: AuthorizationPolicy

AuthorizationPolicy è una risorsa che specifica in che modo un server deve autorizzare le connessioni in entrata. Questa risorsa di per sé non modifica la configurazione, a meno che non venga collegata a un proxy HTTPS di destinazione o a una risorsa del selettore di configurazione degli endpoint.

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

string

Obbligatorio. Nome della risorsa AuthorizationPolicy. Corrisponde al pattern projects/{project}/locations/{location}/authorizationPolicies/<authorizationPolicy>.

description

string

Facoltativo. Descrizione in formato libero della risorsa.

createTime

string (Timestamp format)

Solo output. Timestamp di creazione della risorsa.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Solo output. Timestamp dell'aggiornamento della risorsa.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

labels

map (key: string, value: string)

Facoltativo. Insieme di tag di etichette associati alla risorsa AuthorizationPolicy.

Un oggetto contenente un elenco di coppie "key": value. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

action

enum (Action)

Obbligatorio. L'azione da intraprendere quando viene trovata una corrispondenza con una regola. I valori possibili sono "ALLOW" o "DENY".

rules[]

object (Rule)

Facoltativo. Elenco delle regole da abbinare. Tieni presente che almeno una delle regole deve corrispondere affinché venga eseguita l'azione specificata nel campo "Azione". Una regola corrisponde se l'origine e la destinazione corrispondono. Se viene lasciato vuoto, l'azione specificata nel campo action verrà applicata a ogni richiesta.

Azione

Valori possibili che definiscono l'azione da intraprendere.

Enum
ACTION_UNSPECIFIED Valore predefinito.
ALLOW Concedi l'accesso.
DENY Rifiuta l'accesso. Le regole di negazione devono essere evitate, a meno che non vengano utilizzate per fornire un fallback "nega tutto" predefinito.

Regola

Specifica delle regole.

Rappresentazione JSON
{
  "sources": [
    {
      object (Source)
    }
  ],
  "destinations": [
    {
      object (Destination)
    }
  ]
}
Campi
sources[]

object (Source)

Facoltativo. Elenco degli attributi per la sorgente di traffico. Tutte le fonti devono corrispondere. Un'origine è una corrispondenza se sia i principal sia gli ipBlock corrispondono. Se non viene impostata, l'azione specificata nel campo "azione" verrà applicata senza alcun controllo delle regole per l'origine.

destinations[]

object (Destination)

Facoltativo. Elenco degli attributi per la destinazione del traffico. Tutte le destinazioni devono corrispondere. Una destinazione è una corrispondenza se una richiesta corrisponde a tutti gli host, le porte, i metodi e le intestazioni specificati. Se non viene impostata, l'azione specificata nel campo "azione" verrà applicata senza alcun controllo delle regole per la destinazione.

Origine

Specifica degli attributi delle sorgenti di traffico.

Rappresentazione JSON
{
  "principals": [
    string
  ],
  "ipBlocks": [
    string
  ]
}
Campi
principals[]

string

Facoltativo. Elenco delle identità peer da abbinare per l'autorizzazione. Almeno un'entità deve corrispondere. Ogni peer può essere una corrispondenza esatta, una corrispondenza con prefisso (ad esempio "namespace/*"), una corrispondenza con suffisso (ad esempio "*/service-account") o una corrispondenza di presenza "*". L'autorizzazione basata sul nome principale senza la convalida del certificato (configurata dalla risorsa ServerTlsPolicy) è considerata non sicura.

ipBlocks[]

string

Facoltativo. Elenco di intervalli CIDR da abbinare in base all'indirizzo IP di origine. Deve corrispondere almeno un blocco IP. IP singolo (ad es. "1.2.3.4") e CIDR (ad es. "1.2.3.0/24") sono supportati. L'autorizzazione basata solo sull'IP di origine deve essere evitata. Gli indirizzi IP di eventuali bilanciatori del carico o proxy devono essere considerati non attendibili.

Destinazione

Specifica degli attributi della destinazione del traffico.

Rappresentazione JSON
{
  "hosts": [
    string
  ],
  "ports": [
    integer
  ],
  "paths": [
    string
  ],
  "methods": [
    string
  ],
  "httpHeaderMatch": {
    object (HttpHeaderMatch)
  }
}
Campi
hosts[]

string

Obbligatorio. Elenco dei nomi host da corrispondere. Corrispondenza con l'intestazione ":authority" nelle richieste HTTP. Deve corrispondere almeno un host. Ogni host può essere una corrispondenza esatta, una corrispondenza con prefisso (ad esempio "mydomain.*"), una corrispondenza con suffisso (ad esempio "*.myorg.com") o una corrispondenza di presenza (qualsiasi) "*".

ports[]

integer (uint32 format)

Obbligatorio. Elenco delle porte di destinazione da abbinare. Deve corrispondere almeno una porta.

paths[]

string

Facoltativo. Un elenco di percorsi HTTP da corrispondere. I metodi gRPC devono essere presentati come nome completo nel formato "/packageName.serviceName/methodName". Deve corrispondere almeno un percorso. Ogni percorso può essere una corrispondenza esatta, una corrispondenza con prefisso (ad esempio, "/packageName.serviceName/*") o una corrispondenza con suffisso (ad esempio, "*/video") o una corrispondenza di presenza (qualsiasi) "*".

methods[]

string

Facoltativo. Un elenco di metodi HTTP da abbinare. Deve corrispondere almeno un metodo. Non deve essere impostato per i servizi gRPC.

httpHeaderMatch

object (HttpHeaderMatch)

Facoltativo. Corrispondenza con la coppia chiave:valore nell'intestazione HTTP. Fornisce una corrispondenza flessibile basata sulle intestazioni HTTP, per casi d'uso potenzialmente avanzati. Almeno un'intestazione deve corrispondere. Evita di utilizzare le corrispondenze delle intestazioni per prendere decisioni di autorizzazione, a meno che non vi sia una forte garanzia che le richieste arrivino tramite un client o un proxy attendibile.

HttpHeaderMatch

Specifica degli attributi di corrispondenza delle intestazioni HTTP.

Rappresentazione JSON
{
  "headerName": string,

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

string

Obbligatorio. Il nome dell'intestazione HTTP da corrispondere. Per la corrispondenza con l'autorità della richiesta HTTP, utilizza headerMatch con il nome dell'intestazione ":authority". Per trovare una corrispondenza con il metodo di una richiesta, utilizza headerName ":method".

Campo unione type.

type può essere solo uno dei seguenti:

regexMatch

string

Obbligatorio. Il valore dell'intestazione deve corrispondere all'espressione regolare specificata in regexMatch. Per la grammatica delle espressioni regolari, consulta la pagina en.cppreference.com/w/cpp/regex/ecmascript. Per la corrispondenza con una porta specificata nella richiesta HTTP, utilizza headerMatch con headerName impostato su Host e un'espressione regolare che soddisfi lo specificatore di porta dell'intestazione Host RFC2616.

Metodi

create

Crea un nuovo AuthorizationPolicy in un progetto e una località specifici.

delete

Elimina una singola AuthorizationPolicy.

get

Recupera i dettagli di una singola AuthorizationPolicy.

list

Elenca AuthorizationPolicies in un determinato progetto e in una determinata località.

patch

Aggiorna i parametri di una singola AuthorizationPolicy.