Authorization

Na aba AUTHORIZATION é possível criar e aplicar regras de política de autorização para um determinado serviço, bem como visualizar as regras já aplicadas.

Ou seja, é aqui que você estabelece como será feita a verificação das permissões de acesso quando requisições são enviadas a um serviço dentro de um namespace.

authorization

Listagem de regras

A aba AUTHORIZATION lista as regras de política de autorização que já estão aplicadas a um serviço, exibindo as seguintes informações:

  • nome identificador para a regra;

  • métodos que estão dentro do escopo da regra;

  • endpoints a que a regra se aplica;

  • status do serviço;

  • data de criação da regra.

Além disso, a lista contém ícones de ação:

  • icon edit para editar a regra; e

  • icon delete para removê-la.

Configurando autorização

Para configurar uma nova regra de política de autorização, clique no botão ADD NEW RULE e preencha os campos abaixo:

authorization new
  • Name: nome identificador para a nova regra, que deve ser único para o namespace.

  • Methods: métodos HTTP incluídos no escopo a ser configurado.

  • Paths: endpoint ao qual a regra de autorização se aplica. Mais de um endpoint pode ser inserido.

  • CONDITIONS: seção opcional para incluir condições, ou seja, atributos opcionais formados por chave (Key) e valor (Value). Note que é possível adicionar mais de um valor por chave. Veja aqui as condições que você pode utilizar.

Actions

Dentro de uma política de autorização do Istio, existe um campo denominado action que é responsável por dizer ao Istio qual a política que será aplicada para as requisições. Veja abaixo um exemplo de objeto Authorization:

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
 name: httpbin
 namespace: foo
spec:
 action: ALLOW
 rules:
 - from:
   - source:
       principals: ["cluster.local/ns/default/sa/sleep"]
   - source:
       namespaces: ["test"]
   to:
   - operation:
       methods: ["GET"]
       paths: ["/info*"]
   - operation:
       methods: ["POST"]
       paths: ["/data"]
   when:
   - key: request.auth.claims[iss]
     values: ["https://accounts.google.com"]

Dentro do Sensedia Service Mesh, as políticas de autorização são criadas sempre com action: ALLOW; portanto, as requisições serão aceitas somente se elas estiverem em conformidade com as regras descritas dentro da chave rules (e rejeitadas caso não estejam).

Você pode consultar esta documentação para mais informações sobre os objetos de Authorization.

Caso a opção Mesh Security esteja ativa (em Meshes  mesh desejado  aba MESH SECURITY), os serviços do mesh serão bloqueados por padrão. Então, será necessário criar políticas de autorização para todos os serviços para os quais você deseja liberar acesso.
Thanks for your feedback!
EDIT
How useful was this article to you?