Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Verifique assinaturas de imagens de contêiner com kritis-validation-hook

Última atualização: Jun 27, 2026

Este tópico explica como usar o Container Registry (ACR), o Key Management Service (KMS), o Security Center e o componente kritis-validation-hook para verificar automaticamente as assinaturas de imagens de contêiner. Esse processo garante a implantação apenas de imagens de contêiner provenientes de autoridades confiáveis, reduzindo o risco de código acidental ou malicioso em seu ambiente.

Pré-requisitos

  • O Security Center deve estar ativado:

    • Assinatura: Ultimate (caso sua edição atual não ofereça suporte a este recurso, faça o upgrade).

    • Pagamento conforme o uso: o plano de pagamento conforme o uso de Host and Container Security está ativado (se ainda não estiver, compre-o).

  • Crie uma chave do KMS que utilize um algoritmo de criptografia assimétrica. Para mais informações, consulte Gerenciar chaves.

    Importante

    A assinatura de contêineres exige uma chave assimétrica. Ao criar a chave do KMS, defina o Key Type como RSA_2048 e o Key Usage como Sign/Verify. Para mais detalhes sobre os algoritmos de chave do KMS, consulte a Visão geral do Key Management Service.

  • Você deve ter uma instância do ACR Enterprise Edition com a especificação Advanced.

Etapa 1: Instale o kritis-validation-hook

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

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

  3. Na página Add-ons, clique na aba Security, localize o kritis-validation-hook e clique em Install.

  4. Conceda as permissões necessárias ao componente kritis-validation-hook.

    O cluster deve ter as permissões adequadas para executar o componente kritis-validation-hook. Para mais informações, consulte Configurar permissões de acesso para recursos.

Etapa 2: Crie uma chave do KMS para assinatura de imagens

Para obter instruções sobre como criar uma Customer Master Key (CMK), consulte Gerenciar chaves.

Importante

Ao criar a chave, defina o Key Type como RSA_2048 e o Key Usage como Sign/Verify.

Etapa 3: Crie uma testemunha no Security Center

  1. Faça login no console do Security Center.

  2. No painel de navegação à esquerda, escolha Protection Configuration > Container Protection > Container Image Signing.

  3. Na aba Witness, clique em Create Witness. Após configurar os parâmetros, clique em OK.

    Parâmetro

    Descrição

    Witness Name

    A testemunha é selecionada durante a configuração de uma política de segurança para autorizar suas imagens de contêiner. Recomendamos definir um nome fácil de identificar.

    Select Certificate

    Selecione na lista de certificados a chave do KMS criada.

    Description

    Insira uma descrição para a testemunha.

Etapa 4: Ative a assinatura automática de imagens no ACR

  1. Faça login no console do Container Registry.

  2. Na barra de navegação superior, selecione uma região.

  3. No painel de navegação à esquerda, clique em Instances.

  4. Na página Instance, localize a instância Enterprise Edition e clique no nome dela ou em Manage na coluna Actions.

    Nota

    Para criar uma instância Enterprise Edition, clique em Create ACR EE. Certifique-se de definir a Specification como Advanced.

  5. No painel de navegação à esquerda da página de detalhes da instância, escolha Repository > Namespaces.

    Crie um namespace. É possível ativar a assinatura de imagens para todas as imagens de contêiner neste namespace. Para mais informações, consulte Operações básicas em namespaces.

  6. Ative a assinatura automática de imagens para o namespace criado.

    Ao adicionar uma regra de assinatura, selecione a testemunha criada no Security Center na Etapa 3.

    1. No painel de navegação à esquerda da página de detalhes da instância, escolha Security and Trust > Image Signature .

    2. Na aba Image Signature , clique em Create a signature rule.

      Para mais detalhes sobre como configurar uma regra de assinatura, consulte Configurar uma regra para assinatura automática de imagens.

Etapa 5: Ative a verificação de assinatura no Security Center

Crie e ative uma política de segurança no Security Center para impor a verificação de assinatura de imagens de contêiner em um namespace específico do Kubernetes.

  1. Faça login no console do Security Center.

  2. No painel de navegação à esquerda, escolha Protection Configuration > Container Protection > Container Image Signing.

  3. Na aba Security Policy, clique em Add Policy. Após configurar a política, clique em OK.

    Parâmetro

    Descrição

    Policy Name

    Insira um nome descritivo para a política de segurança.

    Witness

    Selecione a testemunha criada.

    Application Cluster

    Clique no grupo de clusters para o qual deseja ativar a verificação de assinatura e selecione o Cluster Namespace alvo.

    Policy Status

    Ative esta opção para habilitar a política imediatamente.

    Nota

    A política vem desativada por padrão.

    Descrição

    Insira uma descrição para a política de segurança.

Etapa 6: Validar a verificação automática de assinatura

Nota

Caso a imutabilidade de tag de imagem não esteja ativada, use uma referência de imagem no formato de digest. Para mais informações, consulte Ativar imutabilidade de tag de imagem.

Execute os comandos abaixo para confirmar se a verificação de assinatura funciona conforme o esperado.

  • No namespace onde a verificação de assinatura está ativa, tentativas de implantar imagens de contêiner não assinadas são rejeitadas.

    Use uma referência de imagem no formato de tag:

    kubectl -n default create deployment not-sign --image=alpine:3.11 -- sleep 10
    Error from server: admission webhook "kritis-validation-hook-deployments.grafeas.io" denied the request: image alpine:3.11 is not attested

    Use uma referência de imagem no formato de digest:

    kubectl -n default create deployment not-sign --image=alpine@sha256:ddba4d27a7ffc3f86dd6c2f92041af252a1f23a8e742c90e6e1297bfa1bc0c45 -- sleep 10
    Error from server: admission webhook "kritis-validation-hook-deployments.grafeas.io" denied the request: image alpine@sha256:ddba4d27a7ffc3f86dd6c2f92041af252a1f23a8e742c90e6e1297bfa1bc0c45 is not attested
  • Envie uma imagem para o namespace do ACR onde a assinatura automática está ativada. Em seguida, confirme se é possível implantar a imagem de contêiner assinada como uma carga de trabalho.

    docker push kritis-demo***.cn-hongkong.cr.aliyuncs.com/kritis-demo***/alpine:3.11
    The push refers to repository [kritis-demo***.cn-hongkong.cr.aliyuncs.com/kritis-demo***/alpine]
    5216338b40a7: Pushed
    3.11: digest: sha256:ddba4d27a7ffc3f86dd6c2f92041af252a1f23a8e742c90e6e1297bfa1bc0c45 size: 528

    Implante a imagem de contêiner assinada automaticamente:

    kubectl -n default create deployment is-signed --image=kritis-demo***.cn-hongkong.cr.aliyuncs.com/kritis-demo***/alpine@sha256:ddba4d27a7ffc3f86dd6c2f92041af252a1f23a8e742c90e6e1297bfa1bc0c45 -- sleep 10
    deployment.apps/is-signed created
  • Documentos relacionados