REST Resource: projects.locations.authorizationPolicies

Recurso: AuthorizationPolicy

AuthorizationPolicy é um recurso que especifica como um servidor deve autorizar conexões de entrada. Esse recurso em si não muda a configuração, a menos que esteja anexado a um proxy HTTPS de destino ou recurso de seletor de configuração de endpoint.

Representação JSON
{
  "name": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "action": enum (Action),
  "rules": [
    {
      object (Rule)
    }
  ]
}
Campos
name

string

Obrigatório. Nome do recurso AuthorizationPolicy. Ele corresponde ao padrão projects/{project}/locations/{location}/authorizationPolicies/<authorizationPolicy>.

description

string

Opcional. Descrição de texto livre do recurso.

createTime

string (Timestamp format)

Apenas saída. O carimbo de data/hora em que o recurso foi criado.

Usa RFC 3339, em que a saída gerada é sempre normalizada em Z e usa 0, 3, 6 ou 9 dígitos fracionários. Outros ajustes também são aceitos. Por exemplo, "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30";

updateTime

string (Timestamp format)

Apenas saída. O carimbo de data/hora em que o recurso foi atualizado.

Usa RFC 3339, em que a saída gerada é sempre normalizada em Z e usa 0, 3, 6 ou 9 dígitos fracionários. Outros ajustes também são aceitos. Por exemplo, "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30";

labels

map (key: string, value: string)

Opcional. Conjunto de tags de rótulo associadas ao recurso AuthorizationPolicy.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

action

enum (Action)

Obrigatório. A ação a ser tomada quando uma correspondência de regra for encontrada. Os valores possíveis são "ALLOW" ou "DENY".

rules[]

object (Rule)

Opcional. Lista de regras a serem correspondidas. Pelo menos uma das regras precisa corresponder para que a ação especificada no campo "action" seja realizada. Uma regra é uma correspondência se houver uma origem e um destino correspondentes. Se deixado em branco, a ação especificada no campo action será aplicada a todas as solicitações.

Ação

Valores possíveis que definem qual ação tomar.

Enums
ACTION_UNSPECIFIED Valor padrão.
ALLOW Conceda acesso.
DENY Negar acesso. As regras de negação devem ser evitadas, a menos que sejam usadas para fornecer um fallback padrão "negar tudo".

Regra

Especificação de regras.

Representação JSON
{
  "sources": [
    {
      object (Source)
    }
  ],
  "destinations": [
    {
      object (Destination)
    }
  ]
}
Campos
sources[]

object (Source)

Opcional. Lista de atributos da origem de tráfego. Todas as fontes precisam corresponder. Uma origem será uma correspondência se os principais e os ipBlocks forem iguais. Se não for definido, a ação especificada no campo "action" será aplicada sem verificações de regra para a origem.

destinations[]

object (Destination)

Opcional. Lista de atributos do destino de tráfego. Todos os destinos precisam corresponder. Um destino é uma correspondência se uma solicitação corresponder a todos os hosts, portas, métodos e cabeçalhos especificados. Se não for definido, a ação especificada no campo "action" será aplicada sem verificações de regra para o destino.

Origem

Especificação de atributos de origem de tráfego.

Representação JSON
{
  "principals": [
    string
  ],
  "ipBlocks": [
    string
  ]
}
Campos
principals[]

string

Opcional. Lista de identidades de partes para correspondência de autorização. Pelo menos um principal precisa corresponder. Cada elemento pode ser uma correspondência exata, de prefixo (por exemplo, "namespace/*"), de sufixo (por exemplo, "*/service-account") ou de presença "*". A autorização baseada no nome principal sem validação de certificado (configurada pelo recurso ServerTlsPolicy) é considerada insegura.

ipBlocks[]

string

Opcional. Lista de intervalos CIDR para correspondência com base no endereço IP de origem. Pelo menos um bloco de IP precisa corresponder. IP único (por exemplo, "1.2.3.4") e CIDR (por exemplo, "1.2.3.0/24") são aceitos. É recomendável evitar a autorização com base apenas no IP de origem. Os endereços IP de balanceadores de carga ou proxies não são confiáveis.

Destino

Especificação de atributos de destino de tráfego.

Representação JSON
{
  "hosts": [
    string
  ],
  "ports": [
    integer
  ],
  "paths": [
    string
  ],
  "methods": [
    string
  ],
  "httpHeaderMatch": {
    object (HttpHeaderMatch)
  }
}
Campos
hosts[]

string

Obrigatório. Lista de nomes de host a serem correspondidos. Corresponde ao cabeçalho ":authority" em solicitações HTTP. Pelo menos um host precisa corresponder. Cada host pode ser uma correspondência exata, de prefixo (por exemplo, "mydomain.*"), de sufixo (por exemplo, "*.myorg.com") ou de presença (qualquer) "*".

ports[]

integer (uint32 format)

Obrigatório. Lista de portas de destino para correspondência. Pelo menos uma porta precisa corresponder.

paths[]

string

Opcional. Uma lista de caminhos HTTP a serem correspondidos. Os métodos gRPC precisam ser apresentados como um nome totalmente qualificado no formato "/packageName.serviceName/methodName". Pelo menos um caminho precisa corresponder. Cada caminho pode ser uma correspondência exata, de prefixo (por exemplo, "/packageName.serviceName/*") ou de sufixo (por exemplo, "*/video") ou uma correspondência de presença (qualquer) "*".

methods[]

string

Opcional. Uma lista de métodos HTTP para corresponder. Pelo menos um método precisa corresponder. Não deve ser definido para serviços gRPC.

httpHeaderMatch

object (HttpHeaderMatch)

Opcional. Corresponde ao par chave:valor no cabeçalho HTTP. Fornece uma correspondência flexível com base em cabeçalhos HTTP para casos de uso potencialmente avançados. Pelo menos um cabeçalho precisa corresponder. Evite usar correspondências de cabeçalho para tomar decisões de autorização, a menos que haja uma garantia forte de que as solicitações chegam por um cliente ou proxy confiável.

HttpHeaderMatch

Especificação de atributos de correspondência de cabeçalho HTTP.

Representação 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.
}
Campos
headerName

string

Obrigatório. O nome do cabeçalho HTTP a ser correspondido. Para corresponder à autoridade da solicitação HTTP, use um headerMatch com o nome do cabeçalho ":authority". Para corresponder ao método de uma solicitação, use o headerName ":method".

Campo de união type.

type pode ser apenas de um dos tipos a seguir:

regexMatch

string

Obrigatório. O valor do cabeçalho precisa corresponder à expressão regular especificada em regexMatch. Para a gramática de expressões regulares, consulte: en.cppreference.com/w/cpp/regex/ecmascript. Para fazer a correspondência com uma porta especificada na solicitação HTTP, use um headerMatch com headerName definido como Host e uma expressão regular que atenda ao especificador de porta do cabeçalho Host RFC2616.

Métodos

create

Cria uma AuthorizationPolicy em um determinado projeto e local.

delete

Exclui uma única AuthorizationPolicy.

get

Recebe detalhes de uma única AuthorizationPolicy.

list

Lista as AuthorizationPolicies em um determinado projeto e local.

patch

Atualiza os parâmetros de uma única AuthorizationPolicy.