Use a verificação de atestação de assinatura simples

Esta página mostra como usar a validação contínua (CV) da autorização binária para a verificação de atestação de assinatura simples. A verificação valida as atestações de imagens de contentores associadas a Pods em execução num cluster do Google Kubernetes Engine (GKE) onde a CV está ativada.

Custos

Este guia usa os seguintes Google Cloud serviços:

  • Autorização binária, mas a CV está disponível sem custo financeiro durante a fase de pré-visualização
  • GKE
  • Cloud Key Management Service

Para gerar uma estimativa de custos com base na sua utilização projetada, use a calculadora de preços.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Binary Authorization, Cloud Key Management Service, Google Kubernetes Engine APIs:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable binaryauthorization.googleapis.com cloudkms.googleapis.com container.googleapis.com
  8. Install the Google Cloud CLI.

  9. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  10. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the Binary Authorization, Cloud Key Management Service, Google Kubernetes Engine APIs:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable binaryauthorization.googleapis.com cloudkms.googleapis.com container.googleapis.com
  14. Certifique-se de que a CLI gcloud está atualizada para a versão mais recente.
  15. Instale a ferramenta de linha de comandos kubectl.
  16. Se as suas políticas de autorização binária e clusters do GKE estiverem em projetos diferentes, certifique-se de que a autorização binária está ativada em ambos os projetos.
  17. Funções necessárias

    Esta secção mostra como definir funções para esta verificação.

    Vista geral

    Se executar todos os produtos mencionados neste guia no mesmo projeto, não tem de definir autorizações. A autorização binária configura as funções corretamente quando a ativa. Se executar os produtos em projetos diferentes, tem de definir funções conforme descrito nesta secção.

    Para garantir que o agente de serviço da autorização binária em cada projeto tem as autorizações necessárias para avaliar a verificação de atestação de assinatura simples de CV, peça ao seu administrador para conceder ao agente de serviço da autorização binária em cada projeto as seguintes funções de IAM:

    • Se o projeto do cluster for diferente do projeto da política: Binary Authorization Policy Evaluator (roles/binaryauthorization.policyEvaluator) no agente do serviço de autorização binária do projeto do cluster, para aceder ao projeto da política
    • Se o seu projeto de atestação for diferente do projeto de políticas: Leitor de ocorrências de análise de contentores (roles/containeranalysis.occurrences.viewer) no agente do serviço de autorização binária do projeto de políticas, para que possa aceder ao projeto de atestação

    Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

    O administrador também pode conceder ao agente do serviço de autorização binária em cada projeto as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

    Conceda funções através da CLI gcloud

    Para garantir que o agente do serviço de autorização binária em cada projeto tem as autorizações necessárias para avaliar a verificação de atestação de assinatura simples de CV, conceda ao agente do serviço de autorização binária em cada projeto as seguintes funções de IAM:

    1. Conceda autorização ao agente do serviço de autorização binária do projeto do cluster para aceder à política no projeto da política.

      1. Obtenha o agente do serviço de Autorização binária do projeto do cluster:

        PROJECT_NUMBER=$(gcloud projects list --filter="projectId:CLUSTER_PROJECT_ID" \
          --format="value(PROJECT_NUMBER)")
        CLUSTER_SERVICE_ACCOUNT="service-$PROJECT_NUMBER@gcp-sa-binaryauthorization.iam.gserviceaccount.com"
        

        Substitua CLUSTER_PROJECT_ID pelo ID do projeto do cluster.

      2. Permitir que o CV avalie a política no cluster:

        gcloud projects add-iam-policy-binding POLICY_PROJECT_ID \
            --member="serviceAccount:$CLUSTER_SERVICE_ACCOUNT" \
            --role='roles/binaryauthorization.policyEvaluator'
        

        Substitua POLICY_PROJECT_ID pelo ID do projeto que contém a sua política.

    2. Permita que o agente do serviço de autorização binária do projeto de políticas aceda às atestações no seu projeto de atestação:

      1. Obtenha o agente de serviço da Autorização binária do projeto de política:

        PROJECT_NUMBER=$(gcloud projects list \
          --filter="projectId: