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á suspensa. 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.5, a instalação padrão inclui MeshPolicy com o modo PERMISSIVE. O Anthos Service Mesh 1.5 e superiores não geram mais MeshPolicy.

  1. Recomendamos que você use o PeerAuthentication baseado em namespace. Embora o Anthos Service Mesh seja compatível com a mTLS automática (em inglês), ele só funciona bem com PeerAuthentication no nível da malha ou do namespace. Ao usar PeerAuthentication no nível da 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.5.x, a política de autenticação Alfa será totalmente suspensa 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