Para obter controle granular sobre o tráfego HTTP, configure uma política de autorização que gerencie o acesso entre services. Essa política garante que apenas requisições autorizadas acessem services específicos, aumentando a segurança e a confiabilidade do ambiente.
Pré-requisitos
Você implantou o deployed the Bookinfo application to the ASM instance.
Os recursos necessários do Istio já foram definidos. Para mais informações, consulte Use Istio resources to route traffic to different versions of a service.
Etapa 1: Configurar uma política de autorização que nega todo o tráfego
Primeiro, configure uma política base para negar todas as requisições às cargas de trabalho. Em seguida, conceda permissões específicas de forma incremental.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em o nome da instância do ASM. No painel de navegação à esquerda, escolha . Na página exibida, clique em Create from YAML.
-
Na página Create, selecione default na lista suspensa Namespaces, escolha qualquer Scenario Template, cole o conteúdo YAML abaixo no editor YAML e clique em Create.
apiVersion: security.istio.io/v1beta1 kind: AuthorizationPolicy metadata: name: allow-nothing namespace: default spec: {}Após a criação, a política de autorização allow-nothing aparece na página AuthorizationPolicy.
-
Na barra de endereços do navegador, insira
http://{your_ingress_gateway_address}/productpagepara acessar a aplicação Bookinfo.A página retorna
RBAC: access denied, indicando que você não tem as permissões necessárias. Para saber como obter o endereço IP do gateway, consulte Obtain an ingress gateway address.
Etapa 2: Configurar a política para o service Productpage
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em o nome da instância do ASM. No painel de navegação à esquerda, escolha .
-
Utilize um dos métodos a seguir para crie uma política de autorização que permita o acesso ao service Productpage.
Método 1: Criar via YAML
Na página AuthorizationPolicy, clique em Create from YAML.
-
Na página Create, selecione default na lista suspensa Namespaces, escolha qualquer Scenario Template, cole o conteúdo YAML abaixo no editor YAML e clique em Create.
apiVersion: security.istio.io/v1beta1 kind: AuthorizationPolicy metadata: name: "productpage-viewer" namespace: default spec: selector: matchLabels: app: productpage action: ALLOW rules: - to: - operation: methods: ["GET"]
Método 2: Criar pela interface
Na página AuthorizationPolicy, clique em Create.
-
Na página Create, configure os parâmetros conforme a tabela a seguir e clique em Create.
Parâmetro
Descrição
Name
Insira productpage-viewer.
Policy Type
Selecione ALLOW.
Namespaces
Na aba Workload Scope, defina Namespaces como default.
Effective Scope
Escolha Service.
Workload
Selecione productpage.
Request Matching Rules
Na seção Add Request Target, ative Methods e defina o valor como GET.
Após a criação, a política de autorização productpage-viewer aparece na página AuthorizationPolicy.
-
Na barra de endereços do navegador, insira
http://{your_ingress_gateway_address}/productpagepara acessar a aplicação Bookinfo.Agora é possível acessar a página Productpage. No entanto, os services Details e Reviews falham ao carregar porque ainda exigem autorização.
Etapa 3: Configurar a política para o service Details
Configure uma política de autorização para o service Details a fim de permitir requisições provenientes do serviceAccount do Productpage.
-
Obtenha o valor do parâmetro
serviceAccountda carga de trabalho Productpage.Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em o nome do seu cluster. No painel de navegação à esquerda, clique em .
-
Na página Deployments, localize o deployment productpage-v1. Na coluna Actions, escolha para encontrar o valor do parâmetro
serviceAccount.O valor do parâmetro
serviceAccountébookinfo-productpage.dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: bookinfo-productpage serviceAccountName: bookinfo-productpage
-
Crie a política de autorização.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em o nome da instância do ASM. No painel de navegação à esquerda, escolha .
-
Crie a política de autorização utilizando um dos métodos a seguir.
Método 1: Criar via YAML
Na página AuthorizationPolicy, clique em Create from YAML.
-
Na página Create, selecione default na lista suspensa Namespaces, escolha qualquer Scenario Template, cole o conteúdo YAML abaixo no editor YAML e clique em Create.
kind: AuthorizationPolicy apiVersion: security.istio.io/v1beta1 metadata: name: details-viewer namespace: default spec: action: ALLOW rules: - to: - operation: methods: - GET - from: - source: principals: - cluster.local/ns/default/sa/bookinfo-productpage # This is the serviceAccount value obtained in the previous sub-step. selector: matchLabels: app: details
Método 2: Criar pela interface
Na página AuthorizationPolicy, clique em Create.
-
Na página Create, configure os parâmetros conforme a tabela a seguir e clique em Create.
Parâmetro
Descrição
Name
Insira details-viewer.
Policy Type
Selecione ALLOW.
Namespaces
Na aba Workload Scope, defina Namespaces como default.
Effective Scope
Escolha Service.
Workload
Selecione details.
Request Matching Rules
-
Na seção Add Request Source, ative Principals e defina o valor como cluster.local/ns/default/sa/bookinfo-productpage.
Notabookinfo-productpageé o valor do parâmetroserviceAccountobtido na the first sub-step. -
Na seção Add Request Target, ative Methods e defina o valor como GET.
-
Após a criação, a política de autorização details-viewer aparece na página AuthorizationPolicy.
-
Na barra de endereços do navegador, insira
http://{your_ingress_gateway_address}/productpagepara acessar a aplicação Bookinfo.O service Details agora está acessível, mas o service Reviews ainda não.
Etapa 4: Configurar a política para o service Reviews
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em o nome da instância do ASM. No painel de navegação à esquerda, escolha .
-
Crie a política de autorização utilizando um dos métodos a seguir.
Método 1: Criar via YAML
Na página AuthorizationPolicy, clique em Create from YAML.
-
Na página Create, selecione default na lista suspensa Namespaces, escolha qualquer Scenario Template, cole o conteúdo YAML abaixo no editor YAML e clique em Create.
kind: AuthorizationPolicy apiVersion: security.istio.io/v1beta1 metadata: name: reviews-viewer namespace: default spec: action: ALLOW rules: - to: - operation: methods: - GET - from: - source: principals: - cluster.local/ns/default/sa/bookinfo-productpage selector: matchLabels: app: reviews
Método 2: Criar pela interface
Na página AuthorizationPolicy, clique em Create.
-
Na página Create, configure os parâmetros conforme a tabela a seguir e clique em Create.
Parâmetro
Descrição
Name
Insira reviews-viewer.
Policy Type
Selecione ALLOW.
Namespaces
Na aba Workload Scope, defina Namespaces como default.
Effective Scope
Escolha Service.
Workload
Selecione reviews.
Request Matching Rules
-
Na seção Add Request Source, ative Principals e defina o valor como cluster.local/ns/default/sa/bookinfo-productpage.
Notabookinfo-productpageé o valor do parâmetroserviceAccountobtido na Step 3. -
Na seção Add Request Target, ative Methods e defina o valor como GET.
-
Após a criação, a política de autorização reviews-viewer aparece na página AuthorizationPolicy.
-
Na barra de endereços do navegador, insira
http://{your_ingress_gateway_address}/productpagepara acessar a aplicação Bookinfo.Os services Details e Reviews agora estão acessíveis.
Documentos relacionados
Políticas de autorização mal configuradas podem causar negações ou concessões de acesso não intencionais. Para evitar isso, utilize o modo dry-run para testar os efeitos de uma política analisando logs antes da aplicação. Para mais informações, consulte Use the dry-run mode for an ASM authorization policy.
Para aplicar controle granular sobre o tráfego TCP entre services, consulte Configure an authorization policy for TCP traffic.
Para controlar o acesso a services fora do mesh, consulte Control access from services in a mesh to an external website e Control access from services in a mesh to an external database.
É possível personalizar o conteúdo dos logs de acesso do gateway do ASM para identificar rapidamente possíveis problemas de segurança. Para mais informações, consulte Generate and collect ASM gateway access logs.
Ative o recurso de auditoria do mesh para registrar e rastrear operações de usuários. Também é possível configure alertas de auditoria para operações em recursos do mesh e receber notificações quando recursos críticos forem modificados. Para mais informações, consulte Use KubeAPI operation audit e Configure audit alerts for operations on mesh resources.