Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Configure Pod security policies

Última atualização: Oct 13, 2026

Para atender aos requisitos de conformidade do cluster e aumentar a segurança, ative o recurso de governança de políticas. Esse recurso oferece uma biblioteca de políticas de segurança para aplicações em contêineres Kubernetes, abrangendo categorias como Infra (recursos da camada de infraestrutura), Compliance (padrões de conformidade do Kubernetes), PSP (extensões das capacidades do PodSecurityPolicy) e K8s-general (políticas gerais). No console ACK, é possível ativar ou personalizar políticas de segurança para suas aplicações em contêineres, garantindo que as implantações e atualizações de Pods sejam seguras e controladas.

Governança de políticas

A partir da versão 1.21 do Kubernetes, o PodSecurityPolicy (PSP) foi descontinuado. Em resposta a isso, o ACK atualizou seu recurso original de gerenciamento de políticas baseado em PSP. Construído sobre o controlador de admissão Gatekeeper, que utiliza políticas do Open Policy Agent (OPA), o ACK aprimorou o recurso com funcionalidades como estatísticas de status da governança de políticas, relatórios de logs e pesquisa de logs. O ACK também inclui uma vasta biblioteca de políticas com regras adaptadas para diversos cenários de aplicações Kubernetes. Configure essas políticas por meio de uma interface intuitiva no console ACK, simplificando o uso da governança de políticas.

Pré-requisitos

  • O cluster deve executar o Kubernetes 1.16 ou posterior. Para atualizar seu cluster, consulte {{XREF_0}}.

  • Caso utilize um usuário RAM para gerenciar políticas, verifique se ele possui as seguintes permissões:

    • cs:DescribePolicies: lista as políticas na biblioteca de políticas.

    • cs:DescribePolicyDetails: obtém os detalhes de um modelo de política.

    • cs:DescribePolicyGovernanceInCluster: obtém os detalhes da governança de políticas de um cluster.

    • cs:DescribePolicyInstances: lista as instâncias de política implantadas em um cluster.

    • cs:DescribePolicyInstancesStatus: obtém o status de implantação das instâncias de política para diferentes tipos de política em um cluster.

    • cs:DeployPolicyInstance: implanta uma instância de política em um cluster especificado.

    • cs:DeletePolicyInstance: exclui uma instância de política em um cluster especificado.

    • cs:ModifyPolicyInstance: modifica uma instância de política em um cluster especificado.

    Para mais informações sobre como criar uma política RAM personalizada, consulte {{XREF_1}}.

Componentes de governança de políticas

O ACK oferece dois tipos de componentes de governança de políticas: uma versão gerenciada e uma versão não gerenciada. Apenas um tipo pode ser ativado por vez em um cluster. A tabela a seguir compara as duas versões.

Item

Versão gerenciada

Versão não gerenciada

Modo de implantação

Implantação no plano de controle: o ACK implanta e gerencia totalmente os componentes no plano de controle do cluster.

Implantação no plano de dados: os componentes são implantados como uma carga de trabalho no seu cluster e instalados por padrão no namespace kube-system, consumindo recursos de Pod nos nós de trabalho.

Clusters aplicáveis

{{XREF_2}} da versão 1.30 ou posterior

ACK managed clusters e ACK dedicated clusters da versão 1.16 ou posterior

Configuração de parâmetros de inicialização

O sistema configura os parâmetros de inicialização do componente, que não podem ser personalizados.

É possível personalizar os parâmetros de inicialização dos componentes.

Instalação de componentes principais

  • managed-gatekeeper

  • managed-policy-template-controller

No console ACK, na página Add-ons, o cartão do componente da versão gerenciada é marcado com um ícone Managedimage.
  • gatekeeper

  • policy-template-controller

  • componente de coleta de logs (logtail-ds ou loongcollector)

Coleta de logs de políticas

Coleta logs usando o recurso {{XREF_3}} e os envia para um projeto do Log Service especificado.

Instala um componente de coleta de logs no cluster para coletar e enviar logs para um projeto do Log Service especificado.

Biblioteca de políticas

Todas as políticas em {{XREF_4}}

  • Todas as políticas em {{XREF_5}}

  • {{XREF_6}} fornecidas pelo Security Center

Observações

  • Este recurso aplica-se apenas a nós Linux.

  • Não há suporte para políticas personalizadas neste recurso. Todas as regras devem vir da biblioteca de políticas integrada do ACK.

Etapa 1: Instalar ou atualizar a governança de políticas

  1. Faça login no console ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Security > Policy Governance.

  3. Na página Policy, siga as instruções na tela para instalar ou atualizar os componentes.

    Ao ativar o recurso de governança de políticas, você deve instalar os seguintes componentes. Eles são gratuitos, mas consumirão recursos de Pod.

    • gatekeeper: um controlador de admissão de políticas do Kubernetes baseado no mecanismo de políticas OPA. Ele ajuda a gerenciar e aplicar políticas OPA no seu cluster, além de implementar recursos como gerenciamento de rótulos de namespace.

      Nota

      Use obrigatoriamente o componente gatekeeper fornecido pelo ACK. Se você instalou um componente gatekeeper de outra fonte, desinstale-o e reinstale a versão fornecida pelo ACK. Para mais informações sobre as notas de versão do componente gatekeeper, consulte {{XREF_7}}.

    • Componente de coleta de logs: coleta e recupera eventos de solicitações negadas ou sinalizadas por restrições de política.

    • policy-template-controller: um controlador Kubernetes desenvolvido com base em modelos de políticas da Alibaba Cloud. Ele facilita o gerenciamento de instâncias de política implantadas a partir de diferentes modelos e do status geral de governança do cluster.

Etapa 2: Usar a governança de políticas

Ponto de entrada

  1. Faça login no console ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Security > Policy Governance.

  3. Na página Policy, siga as instruções na tela para instalar ou atualizar componentes, se solicitado, e execute as operações conforme necessário.

Visualizar o status de aplicação de políticas

Clique na aba Overview para visualizar o status atual da governança de políticas do seu cluster.

  • A seção de visão geral de políticas exibe o número total de políticas de proteção de alto e médio risco, a quantidade de políticas ativadas e uma lista de políticas recomendadas para ativação.

  • Estatísticas de solicitações negadas e alertas nos últimos 7 dias.

  • Os registros de aplicação de políticas dos últimos 7 dias são exibidos. Por padrão, a tabela mostra os 100 logs mais recentes de solicitações negadas ou alertas desse período. Para visualizar mais logs de auditoria, clique no ícone 未知 ao lado de Actions within Last 7 Days e clique no link do Log Service na janela pop-up para ver todos os logs no Logstore especificado do console Log Service. A tabela Policy Enforcement Records for Last 7 Days, na parte inferior da página, mostra Enforcement Time, Policy Type, Policy Name, Policy Description, Risk Level, Action e Details de cada política. Utilize a caixa de pesquisa e os botões de filtro para localizar registros específicos.

Criar e gerenciar instâncias de política

Clique na aba My Policies e, em seguida, clique em Create Policy Instance. Na caixa de diálogo Create Policy Instance, configure os parâmetros.

Parâmetro

Descrição

Policy Type

Selecione um tipo de política. Valores válidos:

  • infra: políticas relacionadas a recursos da camada de infraestrutura.

  • compliance: políticas personalizadas com base em padrões de conformidade do Kubernetes, como o Alibaba Cloud Kubernetes Security Hardening.

  • psp: políticas que substituem as capacidades do Pod Security Policy (PSP).

  • k8s-general: políticas gerais que aplicam restrições de segurança às configurações de recursos do Kubernetes com base nas melhores práticas de segurança.

Para mais informações, consulte {{XREF_8}}{{XREF_9}}.

Policy Name

Com base no tipo de política selecionado, escolha o nome do modelo de política que deseja implantar na lista suspensa.

Action

  • Deny: bloqueia a implantação de recursos que violam a política.

  • Alert: permite a implantação de recursos que violam a política, mas gera um log de alerta.

Scope

Selecione os namespaces no cluster aos quais a instância de política se aplica.

Parameters

  • Se a caixa de texto estiver vazia, a regra não exige parâmetros.

  • Caso a caixa de texto contenha um modelo de parâmetro, configure-os no formato especificado com base nas descrições fornecidas.

Visualizar políticas e instâncias

Clique na aba My Policies para ver todas as políticas implantáveis no cluster.

  • Filtre as políticas exibidas no canto superior direito da lista. As políticas ativadas aparecem primeiro. A coluna Instances mostra o número de instâncias implantadas para a política correspondente no cluster.

    Se o valor na coluna Instances estiver vazio, a política ainda não foi implantada no cluster. Clique em Enabled na coluna Actions para configurar parâmetros e implantar a instância de política.

  • Clique em Edit na coluna Actions para modificar a configuração de uma instância de política.

    Se uma política tiver várias instâncias, clique em View Instances na coluna Actions e, em seguida, clique em Edit na instância desejada para modificá-la.

  • Clique em Delete na coluna Actions

    Políticas de segurança predefinidas para o ACK

    para excluir todas as instâncias da política implantadas no cluster.

Para mais informações sobre descrições de políticas e exemplos de modelos, consulte {{XREF_10}}{{XREF_11}}.

Operações relacionadas

Ativar proteção contra exclusão

Após ativar o recurso de governança de políticas conforme descrito em {{XREF_12}}, você também pode ativar a proteção contra exclusão para namespaces ou Services que envolvem negócios críticos ou dados sensíveis, evitando exclusões acidentais. Com a proteção ativada, é necessário desativá-la manualmente antes de excluir os recursos correspondentes.

Esta seção demonstra como ativar a proteção contra exclusão para um namespace existente. O processo é semelhante para outros recursos.

  • Ativar proteção contra exclusão para um namespace existente

    1. Faça login no console ACK. No painel de navegação à esquerda, clique em Clusters.

    2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Namespaces and Quotas.

    3. Na lista de namespaces, localize o namespace que deseja gerenciar, clique em Edit na coluna Actions e siga as instruções na tela na caixa de diálogo para ativar a proteção contra exclusão.

  • Ativar proteção contra exclusão para um Service existente

    1. Faça login no console ACK. No painel de navegação à esquerda, clique em Clusters.

    2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Network > Services.

    3. Na lista de Services, localize o Service que deseja gerenciar, clique em image na coluna Actions, clique em Enable Deletion Protection e siga as instruções na tela na caixa de diálogo para ativar a proteção contra exclusão.

Validação entre recursos com ack-policy-external-provider

Por padrão, o Gatekeeper toma decisões de política baseadas apenas no objeto em análise. No entanto, cenários complexos de segurança frequentemente exigem que uma política verifique o estado de outros recursos do cluster para garantir uma aplicação precisa.

O componente gerenciado ack-policy-external-provider atua como uma fonte de dados externa para o Gatekeeper, permitindo que desenvolvedores de políticas consultem recursos do Kubernetes diretamente em seu código Rego. Essa capacidade é necessária para políticas avançadas, como a política integrada de proteção contra exclusão de CRD.

Importante

O componente ack-policy-external-provider deve ser usado com {{XREF_13}}. Certifique-se de que o gatekeeper esteja implantado no seu cluster.

Instalar e configurar o ack-policy-external-provider

  1. Na página Clusters ACK, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Add-ons .

  2. Pesquise por ack-policy-external-provider e siga as instruções na tela para concluir a configuração.

    • ProviderPodNumber: o número de instâncias do componente.

    • ProtectedKinds: adicione os tipos de recurso correspondentes aos CRDs que deseja proteger.

      A proteção contra exclusão de CRD requer a verificação da existência de instâncias desse tipo de recurso no cluster. Seguindo o princípio do menor privilégio, o ack-policy-external-provider não possui as permissões de consulta necessárias por padrão e deve ser configurado manualmente.

      Defina ProviderPodNumber (número de réplicas, padrão: 1). Na seção ProtectedKinds, insira os nomes dos tipos de recurso (como pods, policies ou customresources). Clique em Add para adicionar várias entradas ou em Delete para remover uma entrada. Clique em OK.

Definição de API e parâmetros

O ack-policy-external-provider implementa um Provider de dados externo padrão do Gatekeeper. Em um modelo de política Rego, envie uma solicitação de consulta de recurso para este componente chamando a função external_data e especificando provider: ack-policy-external-data-provider.

Os parâmetros da solicitação são definidos no formato JSON. Veja alguns exemplos abaixo.

Error from server (Forbidden): admission webhook "delete.validation.gatekeeper.sh" denied the request: [block-crd-deletion-rule] The CRD simplestthings.example.com is not allowed to be deleted. Reason: It is not allowed to delete a CRD object when it contains a collection of custom resources. Current existing custom resources: my-simple-thing, etc.

A tabela a seguir descreve os parâmetros principais.

Parâmetro

Descrição

Obrigatório

action

O tipo de operação. Os valores suportados são ListK8sResource e GetK8sResource.

Sim

group

O grupo de API do recurso alvo.

Sim

version

A versão da API do recurso alvo.

Não

resource

O nome no plural do recurso alvo (como persistentvolumeclaims).

Sim

namespaced

Indica se o recurso alvo está localizado dentro de um namespace. true ou false.

Para recursos com escopo de cluster, use false.

Sim

namespace

Quando namespaced for true, especifique o namespace para a consulta.

Não

name

Quando action for GetK8sResource, especifique o nome do recurso a ser recuperado.

Não

labelSelector

Filtra recursos com base em rótulos, seguindo a sintaxe de seletor de rótulos do Kubernetes.

Não

limit

O número máximo de recursos retornados por ListK8sResource.

Não

requestID

O ID exclusivo da solicitação. Recomendamos usar review.uid.

Não

userInfo

As informações sobre o usuário que inicia a solicitação. Recomendamos usar review.userInfo.

Não

requestFrom

Um identificador para a origem da solicitação, geralmente o nome do modelo de política, usado para rastreamento de logs.

Sim

Exemplo: Impedir exclusão de CRD

Este exemplo mostra como usar o ack-policy-external-provider para implementar uma política avançada comum: proibir a exclusão de um CustomResourceDefinition (CRD) se ainda existirem instâncias de recursos personalizados (CR) associadas.

Esta política é uma regra integrada e não requer implantação manual. Esta seção serve apenas para fins de demonstração.
  • Lógica da política

    • Gatilho: o Gatekeeper detecta uma operação DELETE de CRD.

    • Consulta: as políticas Rego usam external_data para chamar o ack-policy-external-provider.

    • Verificação: com base nos parâmetros da solicitação, o componente ack-policy-external-provider consulta o cluster para verificar se existem instâncias CR correspondentes.

    • Decisão: se o resultado da consulta retornar pelo menos uma instância CR, o ack-policy-external-provider devolverá o resultado à política Rego, e a política acabará por deny (rejeitar) essa operação de exclusão.

  • Modelo de política (ConstraintTemplate)

    Define a lógica da política.

    Error from server (Forbidden): admission webhook "delete.validation.gatekeeper.sh" denied the request: [block-crd-deletion-rule] The CRD simplestthings.example.com is not allowed to be deleted. Reason: It is not allowed to delete a CRD object when it contains a collection of custom resources. Current existing custom resources: my-simple-thing, etc.
  • Instância de política (Constraint)

    Aplica o modelo a recursos específicos. Este exemplo aplica a política a todos os CRDs.

    Error from server (Forbidden): admission webhook "delete.validation.gatekeeper.sh" denied the request: [block-crd-deletion-rule] The CRD simplestthings.example.com is not allowed to be deleted. Reason: It is not allowed to delete a CRD object when it contains a collection of custom resources. Current existing custom resources: my-simple-thing, etc.
  • Verificar o resultado

    1. Crie um CRD de teste e uma instância CR correspondente.

      Error from server (Forbidden): admission webhook "delete.validation.gatekeeper.sh" denied the request: [block-crd-deletion-rule] The CRD simplestthings.example.com is not allowed to be deleted. Reason: It is not allowed to delete a CRD object when it contains a collection of custom resources. Current existing custom resources: my-simple-thing, etc.
    2. Tente excluir o CRD.

      Error from server (Forbidden): admission webhook "delete.validation.gatekeeper.sh" denied the request: [block-crd-deletion-rule] The CRD simplestthings.example.com is not allowed to be deleted. Reason: It is not allowed to delete a CRD object when it contains a collection of custom resources. Current existing custom resources: my-simple-thing, etc.
    3. Verifique se a política bloqueia a exclusão e retorna uma mensagem de erro clara.

      Saída esperada:

      Error from server (Forbidden): admission webhook "delete.validation.gatekeeper.sh" denied the request: [block-crd-deletion-rule] The CRD simplestthings.example.com is not allowed to be deleted. Reason: It is not allowed to delete a CRD object when it contains a collection of custom resources. Current existing custom resources: my-simple-thing, etc.

Tópicos relacionados

Configure a inspeção para verificar as cargas de trabalho do cluster

O recurso de inspeção permite verificar riscos de segurança nas configurações de cargas de trabalho. Para mais informações, consulte {{XREF_14}}{{XREF_15}}.