Como fazer upgrade para as políticas de segurança Beta

Duas APIs de segurança Beta, PeerAuthentication e RequestAuthentication, foram introduzidas no Anthos Service Mesh 1.5. A política de autenticação Alfa está com o uso sendo descontinuado. Nesta página, explicamos como atualizar a política de autenticação Alfa para as políticas de segurança Beta.

Alterar a política selecionada pelo serviço para o seletor de carga de trabalho

Todas as políticas de segurança Beta precisam usar modelos de configuração de seletor de carga de trabalho ou baseados em namespace, e não baseados em serviço.

Atualizar para RequestAuthentication

O exemplo a seguir mostra como atualizar da Policy Alfa para RequestAuthentication:

# Alpha policy for authentication to enable Origin Authentication for service foo.
apiVersion: "authentication.istio.io/v1alpha1"
kind: "Policy"
metadata:
  name: "jwt-example"
spec:
  targets:
  - name: httpbin
  origins:
  - jwt:
      issuer: "testing@secure.istio.io"
      jwksUri: "https://raw.githubusercontent.com/istio/istio/release-1.5/security/tools/jwt/samples/jwks.json"

Atualize para o recurso RequestAuthentication Beta correspondente:

apiVersion: "security.istio.io/v1beta1"
kind: "RequestAuthentication"
metadata:
  name: "jwt-example"
spec:
  selector:
    matchLabels:
      app: httpbin
  jwtRules:
  - issuer: "testing@secure.istio.io"
    jwksUri: "https://raw.githubusercontent.com/istio/istio/release-1.5/security/tools/jwt/samples/jwks.json"

Atualizar para PeerAuthentication

Também é necessário atualizar as políticas de autenticação para a TLS mútua (mTLS, na sigla em inglês). A MeshPolicy Alfa ativou a mTLS PERMISSIVE ou STRICT na malha inteira. O recurso PeerAuthentication Beta substitui a MeshPolicy Alfa. Especificamente, se você tiver uma MeshPolicy semelhante ao seguinte:

apiVersion: "authentication.istio.io/v1alpha1"
kind: "MeshPolicy"
metadata:
  name: "default"
  labels:
    release: istio
spec:
  peers:
  - mtls:
      mode: PERMISSIVE

Atualize-a com um recurso PeerAuthentication no namespace raiz:

apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
  name: "default"
  namespace: "istio-system"
spec:
  mtls:
    mode: PERMISSIVE

Antes do Anthos Service Mesh 1.6.14, a instalação padrão inclui MeshPolicy com o modo PERMISSIVE. O Anthos Service Mesh 1.6.14 não gera mais MeshPolicy..

  1. Recomendamos que você use o PeerAuthentication baseado em namespace. Embora o Anthos Service Mesh seja compatível com [auto mTLS](https://istio.io/v1.6/docs/tasks/security/authentication/authn-policy/#auto-mutual-tls{: class="external"}, ele funciona bem apenas com o PeerAuthentication na malha ou no namespace. Ao usar PeerAuthentication na carga de trabalho, você precisa configurar uma DestinationRule correspondente.
  2. É possível configurar a política de autenticação Alfa para usar a autenticação de origem para negar solicitações. No entanto, o novo RequestAuthentication só rejeita solicitações quando o token é inválido. Recomendamos que você use uma AuthorizationPolicy para definir mais controle de acesso.
  3. Embora a política de autenticação Alfa ainda funcione no Anthos Service Mesh 1.6.14-asm.2, a política de autenticação Alfa terá o uso totalmente descontinuado na próxima versão. Recomendamos que você conclua a migração o quanto antes.
  4. Durante a transição, se houver políticas Alfa e Beta, somente as políticas Beta entrarão em vigor, e as políticas Alfa serão ignoradas.
  5. Saiba mais em Política de autenticação (em inglês) na documentação do Istio.

A seguir