REST Resource: projects.locations.authorizationPolicies

Recurso: AuthorizationPolicy

AuthorizationPolicy é um recurso que especifica como um servidor deve autorizar as ligações recebidas. Este recurso em si não altera a configuração, a menos que esteja anexado a um proxy HTTPS de destino ou a um recurso seletor de configuração de ponto final.

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. 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. A data/hora em que o recurso foi criado.

Uma data/hora no formato "Zulu" UTC RFC3339, com resolução de nanosegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Apenas saída. A data/hora em que o recurso foi atualizado.

Uma data/hora no formato "Zulu" UTC RFC3339, com resolução de nanosegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

labels

map (key: string, value: string)

Opcional. Conjunto de etiquetas associadas ao recurso AuthorizationPolicy.

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

action

enum (Action)

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

rules[]

object (Rule)

Opcional. Lista de regras a corresponder. Tenha em atenção que, para a ação especificada no campo "action" ser realizada, pelo menos uma das regras tem de corresponder. Uma regra é uma correspondência se existir uma origem e um destino correspondentes. Se for deixado em branco, a ação especificada no campo action é aplicada em todos os pedidos.

Ação

Valores possíveis que definem a ação a realizar.

Enumerações
ACTION_UNSPECIFIED Valor predefinido.
ALLOW Conceder acesso.
DENY Negue o acesso. As regras de recusa devem ser evitadas, a menos que sejam usadas para fornecer uma alternativa "recusar tudo" predefinida.

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 têm de corresponder. Uma origem é uma correspondência se os principais e os ipBlocks corresponderem. Se não estiver definido, a ação especificada no campo "action" é aplicada sem verificações de regras para a origem.

destinations[]

object (Destination)

Opcional. Lista de atributos do destino de tráfego. Todos os destinos têm de corresponder. Um destino é uma correspondência se um pedido corresponder a todos os anfitriões, portas, métodos e cabeçalhos especificados. Se não estiver definido, a ação especificada no campo "action" é aplicada sem verificações de regras para o destino.

Origem

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

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

string

Opcional. Lista de identidades de pares a corresponder para autorização. Pelo menos um principal deve corresponder. Cada par pode ser uma correspondência exata, uma correspondência de prefixo (por exemplo, "namespace/*"), uma correspondência de sufixo (por exemplo, "*/service-account") ou uma correspondência 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 a corresponder com base no endereço IP de origem. Pelo menos um bloco de IPs deve corresponder. IP único (por exemplo, "1.2.3.4") e CIDR (por exemplo, "1.2.3.0/24") são suportados. Deve evitar a autorização baseada apenas no IP de origem. Os endereços IP de quaisquer balanceadores de carga ou proxies devem ser considerados não fidedignos.

Destino

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

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

string

Obrigatório. Lista de nomes de anfitriões a corresponder. Correspondido com o cabeçalho ":authority" em pedidos HTTP. Pelo menos, um anfitrião deve corresponder. Cada anfitrião pode ser uma correspondência exata, uma correspondência de prefixo (por exemplo, "mydomain.*"), uma correspondência de sufixo (por exemplo, "*.myorg.com") ou uma correspondência de presença (qualquer) "*".

ports[]

integer (uint32 format)

Obrigatório. Lista de portas de destino a corresponder. Pelo menos uma porta deve corresponder.

methods[]

string

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

httpHeaderMatch

object (HttpHeaderMatch)

Opcional. Fazer corresponder ao par de chave:valor no cabeçalho HTTP. Oferece uma correspondência flexível baseada em cabeçalhos HTTP, para exemplos de utilização potencialmente avançados. Pelo menos um cabeçalho deve corresponder. Evite usar correspondências de cabeçalhos para tomar decisões de autorização, a menos que haja uma forte garantia de que os pedidos chegam através de um proxy ou um cliente fidedigno.

HttpHeaderMatch

Especificação dos atributos de correspondência do 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 corresponder. Para a correspondência com a autoridade do pedido HTTP, use um headerMatch com o nome do cabeçalho ":authority". Para fazer corresponder o método de um pedido, use o headerName ":method".

Campo de união type.

type só pode ser uma das seguintes opções:

regexMatch

string

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

Métodos

create

Cria uma nova AuthorizationPolicy num determinado projeto e localização.

delete

Elimina uma AuthorizationPolicy.

get

Obtém detalhes de uma única AuthorizationPolicy.

getIamPolicy

Obtém a política de controlo de acesso para um recurso.

list

Apresenta AuthorizationPolicies num determinado projeto e localização.

patch

Atualiza os parâmetros de uma única AuthorizationPolicy.

setIamPolicy

Define a política de controlo de acesso no recurso especificado.

testIamPermissions

Devolve as autorizações que um autor da chamada tem no recurso especificado.