{"meta":{"title":"Impondo atestados de artefatos com um controlador de admissão do Kubernetes","intro":"Use um controlador de admissão para impor atestados de artefato em seu cluster Kubernetes.","product":"GitHub Actions","breadcrumbs":[{"href":"/pt/actions","title":"GitHub Actions"},{"href":"/pt/actions/how-tos","title":"Instruções"},{"href":"/pt/actions/how-tos/secure-your-work","title":"Proteja seu trabalho"},{"href":"/pt/actions/how-tos/secure-your-work/use-artifact-attestations","title":"Usar atestados de artefatos"},{"href":"/pt/actions/how-tos/secure-your-work/use-artifact-attestations/enforce-artifact-attestations","title":"Impor atestados de artefatos"}],"documentType":"article"},"body":"# Impondo atestados de artefatos com um controlador de admissão do Kubernetes\n\nUse um controlador de admissão para impor atestados de artefato em seu cluster Kubernetes.\n\n> \\[!NOTE] Antes de continuar, verifique se você habilitou a procedência do build para imagens de contêiner, incluindo a definição do atributo `push-to-registry` na [ação `attest`](https://github.com/actions/attest), conforme documentado em [Gerando a procedência do build para imagens de contêiner](/pt/actions/how-tos/secure-your-work/use-artifact-attestations/use-artifact-attestations#generating-build-provenance-for-container-images). Isso é necessário para que o Controlador de Política verifique o atestado.\n\n## Introdução ao controlador de admissão do Kubernetes\n\nPara configurar um controlador de admissão para aplicar atestados de artefato do GitHub, você precisa:\n\n1. [Implantar o Sigstore Policy Controller](#deploy-the-sigstore-policy-controller).\n2. [Adicionar o GitHub `TrustRoot` e um `ClusterImagePolicy` ao cluster](#add-the-github-trustroot-and-a-clusterimagepolicy).\n3. [Habilitar a política em seu namespace](#enable-the-policy-in-your-namespace).\n\n### Implantar o Sigstore Policy Controller\n\nO Sigstore Policy Controller foi empacotado e disponibilizado por meio de um [Helm chart](https://github.com/sigstore/helm-charts). Antes de começar, verifique se de que tem os seguintes pré-requisitos:\n\n* Um cluster do Kubernetes com versão 1.27 ou posterior\n* [Helm](https://helm.sh/docs/intro/install/) 3.0 ou posterior\n* [kubectl](https://kubernetes.io/docs/tasks/tools/)\n\nPrimeiro, instale o gráfico Helm que implanta o Sigstore Policy Controller:\n\n```bash copy\nhelm upgrade policy-controller --install --atomic \\\n  --create-namespace --namespace artifact-attestations \\\n  oci://ghcr.io/sigstore/helm-charts/policy-controller \\\n  --version 0.10.5\n```\n\nIsso instala o Controlador de Política no namespace `artifact-attestations`. Neste ponto, nenhuma política foi configurada e não imporá atestados.\n\n### Adicione o GitHub `TrustRoot` e um `ClusterImagePolicy`\n\nDepois que o controlador de política tiver sido implantado, você precisará adicionar o GitHub `TrustRoot` e um `ClusterImagePolicy` ao cluster. Use o gráfico Helm que fornecemos para fazer isso. Certifique-se de substituir `MY-ORGANIZATION` pelo nome da sua organização do GitHub (por exemplo, `github` ou `octocat-inc`).\n\n```bash copy\nhelm upgrade trust-policies --install --atomic \\\n --namespace artifact-attestations \\\n oci://ghcr.io/github/artifact-attestations-helm-charts/trust-policies \\\n --version v0.7.0 \\\n --set policy.enabled=true \\\n --set policy.organization=MY-ORGANIZATION\n```\n\nAgora você instalou a raiz de confiança do GitHub e uma política de atestado de artefato em seu cluster. Essa política rejeitará artefatos que não tenham se originado de sua organização do GitHub.\n\n### Habilitar a política em seu namespace\n\n> \\[!WARNING]\n> Essa política não será aplicada até que você especifique a quais namespaces ela deve se aplicar.\n\nCada namespace em seu cluster pode impor políticas de forma independente. Para habilitar a imposição em um namespace, você pode adicionar o seguinte rótulo ao namespace:\n\n```yaml\nmetadata:\n  labels:\n    policy.sigstore.dev/include: \"true\"\n```\n\nDepois que o rótulo for adicionado, a política de atestado de artefato do GitHub será imposta no namespace.\n\nComo alternativa, você pode executar:\n\n```bash copy\nkubectl label namespace MY-NAMESPACE policy.sigstore.dev/include=true\n```\n\n### Imagens correspondentes\n\nPor padrão, a política instalada com o Helm chart `trust-policies` verificará a conformidade de todas as imagens antes de admiti-las no cluster. Se você pretende impor atestados apenas para um subconjunto de imagens, pode usar os valores do Helm `policy.images` e `policy.exemptImages` para especificar uma lista de imagens para correspondência. Esses valores podem ser definidos por meio de uma lista de padrões globais que correspondem aos nomes das imagens. A sintaxe de globbing usa a semântica Go [filepath](https://pkg.go.dev/path/filepath#Match), com a adição de `**` para corresponder a qualquer sequência de caracteres, incluindo barras.\n\nPor exemplo, para impor atestados para imagens que correspondem ao padrão `ghcr.io/MY-ORGANIZATION/*` e admitem `busybox` sem um atestado válido, é possível executar:\n\n```bash copy\nhelm upgrade trust-policies --install --atomic \\\n --namespace artifact-attestations \\\n oci://ghcr.io/github/artifact-attestations-helm-charts/trust-policies \\\n --version v0.7.0 \\\n --set policy.enabled=true \\\n --set policy.organization=MY-ORGANIZATION \\\n --set-json 'policy.exemptImages=[\"index.docker.io/library/busybox**\"]' \\\n --set-json 'policy.images=[\"ghcr.io/MY-ORGANIZATION/**\"]'\n```\n\nTodos os padrões devem usar o nome totalmente qualificado, mesmo que as imagens sejam originadas do Docker Hub. Neste exemplo, se quisermos isentar a imagem `busybox`, devemos fornecer o nome completo, incluindo o domínio, e o glob com asterisco duplo para corresponder a todas as versões da imagem: `index.docker.io/library/busybox**`.\n\nObserve que qualquer imagem que você pretenda admitir *deve* ter um padrão glob correspondente na lista `policy.images`. Se uma imagem não corresponder a padrão, ela será rejeitada. Além disso, se uma imagem corresponder a ambos `policy.images` e `policy.exemptImages`, ela será rejeitada.\n\n### Uso avançado\n\nPara ver o conjunto completo de opções que você pode configurar com o gráfico Helm, você pode executar um dos seguintes comandos.\nPara opções do controlador de políticas:\n\n```bash copy\nhelm show values oci://ghcr.io/sigstore/helm-charts/policy-controller --version 0.10.5\n```\n\nPara opções de política de confiança:\n\n```bash copy\nhelm show values oci://ghcr.io/github/artifact-attestations-helm-charts/trust-policies --version v0.7.0\n```\n\nPara obter mais informações sobre o Sigstore Policy Controller, consulte a [documentação do Sigstore Policy Controller](https://docs.sigstore.dev/policy-controller/overview/)."}