Configurar a aplicação da política de autorização binária
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A autorização binária para o Google Distributed Cloud é um recurso do Google Cloud que estende a aplicação obrigatória hospedada no momento da implantação da autorização binária em clusters locais de usuário. O principal caso de uso da autorização binária no
Google Distributed Cloud é proteger cargas de trabalho nos clusters de usuários. Siga as etapas deste guia para aplicar as regras
obrigatórias de uma política de autorização binária configurada no seu projeto do Google Cloud
aos clusters de usuário. Para mais informações sobre políticas e regras de autorização binária, confira Visão geral da autorização binária.
Pré-requisitos
Antes de ativar a aplicação da política de autorização binária em um cluster de usuário,
verifique se você atendeu aos seguintes pré-requisitos:
Registrar o cluster com uma frota: um cluster criado com gkectl
é registrado no projeto do Google Cloud especificado no
campo gkeConnect.projectID no arquivo de configuração do cluster. Esse
projeto é chamado de projeto host
da frota.
Para saber mais sobre frotas, incluindo casos de uso, práticas recomendadas e exemplos,
confira a documentação Gerenciamento de frotas.
Adicionar o papel de avaliador da política de autorização binária ao projeto host
da frota: para conceder o papel de avaliador da política de autorização binária
(roles/binaryauthorization.policyEvaluator) à conta de serviço
do Kubernetes no seu projeto host da frota, execute o seguinte comando:
Se o cluster estiver em execução atrás de um servidor proxy, verifique se o servidor proxy
permite conexões com a API autorização binária
(binaryauthorization.googleapis.com). Ela fornece validação e controle de implantação com base em políticas para as imagens implantadas no cluster. Para
mais informações, consulte
Regras de proxy e firewall.
Depois de atender aos pré-requisitos, é possível ativar (ou desativar) a
política de autorização binária ao criar um novo cluster ou atualizar
um atual.
Ativar a política de autorização binária durante a criação do cluster
É possível ativar a aplicação da política de autorização binária com gkectl
ou gcloud CLI.
gkectl
Para ativar a autorização binária ao criar um cluster com gkectl:
Antes de criar o cluster, adicione
binaryAuthorization.evaluationMode ao arquivo de configuração do cluster de usuário,
conforme o exemplo a seguir:
project_singleton_policy_enforce: aplica as regras especificadas na
política de autorização binária, também conhecida como política de
projeto Singleton, no projeto do Google Cloud para controlar a implantação de imagens de contêiner no cluster.
disabled: desativa o uso da autorização binária do cluster.
Esse é o valor padrão. Se você omitir binaryAuthorization, o
recurso será desativado.
Faça as outras alterações necessárias no arquivo de configuração do cluster e
execute o comando gkectl create cluster.
ADMIN_CLUSTER_KUBECONFIG: o caminho do arquivo kubeconfig
do cluster de administrador.
USER_CLUSTER_CONFIG_FILE: o caminho do arquivo
de configuração do cluster de usuário.
Aguarde até que a implantação chamada binauthz-module-deployment no namespace binauthz-system fique pronta.
Quando a implantação estiver pronta, a autorização binária aplicará as regras
especificadas na política de autorização binária, também conhecida como
política de projeto singleton. Essa política está associada ao projeto
do Google Cloud e especifica regras para controlar a implantação de
imagens de contêiner. Para mais informações sobre como usar o gkectl para atualizar um
cluster, confira Atualizar clusters.
Para mais informações sobre políticas e regras de autorização binária,
confira Visão geral da autorização binária.
Para desativar:
Edite o arquivo de configuração do cluster e remova a
seção binaryAuthorization ou defina evaluationMode como
disabled.
Depois de fazer essa mudança, aguarde alguns minutos até que a implantação chamada
binauthz-module-deployment no namespace binauthz-system seja
removida.
Solução de problemas
Se você não concluir todos os pré-requisitos, uma mensagem como esta
indicará que há um problema com a configuração da autorização binária:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-11-26 UTC."],[],[],null,["# Set up Binary Authorization policy enforcement\n\nBinary Authorization for Google Distributed Cloud is a Google Cloud feature\nthat extends the hosted, deploy-time enforcement of\n[Binary Authorization](/binary-authorization/docs/overview) to your on-premises\nuser clusters. The primary use case for Binary Authorization on\nGoogle Distributed Cloud is to secure workloads on your user clusters. Follow the\nsteps in this guide to apply the enforcement rules of a Binary Authorization\npolicy configured in your Google Cloud project to your user clusters. For more\ninformation about Binary Authorization policies and rules, see\n[Binary Authorizationoverview](/binary-authorization/docs/key-concepts).\n| **Note:** If you enabled the ([Preview](/products#product-launch-stages)) Binary Authorization for Google Distributed Cloud, [disable it and clean up the\n| resources](/binary-authorization/docs/setting-up-on-prem#clean_up) before you enable the GA feature. Use the instructions in this document to enable the GA feature on version 1.28 or higher clusters.\n\nPrerequisites\n-------------\n\nBefore you can enable Binary Authorization policy enforcement for a user\ncluster, ensure you've met the following prerequisite criteria:\n\n- **Register the cluster with a fleet:** For a cluster created with `gkectl`,\n the cluster is registered to the Google Cloud project that you specify\n in the `gkeConnect.projectID` field in the cluster configuration file. This\n project is referred to as the [fleet host\n project](/anthos/fleet-management/docs/fleet-concepts#fleet-host-project).\n To learn more about fleets, including use cases, best practices, and\n examples, see the [Fleet management](/anthos/fleet-management/docs)\n documentation.\n\n- **Enable the Binary Authorization API in your Google Cloud project:** [enable\n the Binary Authorization service](/binary-authorization/docs/enabling) in\n your fleet host project.\n\n- **Add the Binary Authorization Policy Evaluator role to your fleet host\n project:** To grant the Binary Authorization Policy Evaluator\n (`roles/binaryauthorization.policyEvaluator`) role to the Kubernetes service\n account on your fleet host project, run the following command:\n\n gcloud projects add-iam-policy-binding \u003cvar label=\"ID for the fleet host project\" translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e \\\n --member=\"serviceAccount:\u003cvar scope=\"PROJECT_ID\" translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e.svc.id.goog[binauthz-system/binauthz-agent]\" \\\n --role=\"roles/binaryauthorization.policyEvaluator\"\n\n If your cluster is running behind a proxy server, make sure the proxy server\n allows connections to the Binary Authorization API\n (`binaryauthorization.googleapis.com`). This API provides policy-based\n deployment validation and control for images deployed to your cluster. For\n more information about, see\n [Proxy and firewall rules proxy](/kubernetes-engine/distributed-cloud/vmware/docs/how-to/firewall-rules).\n\nOnce you satisfy the prerequisites, you can enable (or disable) the\nBinary Authorization policy when you create a new cluster or update an existing\ncluster.\n\nEnable the Binary Authorization policy during cluster creation\n--------------------------------------------------------------\n\nYou can enable the Binary Authorization policy enforcement with either `gkectl`\nor gcloud CLI. \n\n### `gkectl`\n\nTo enable Binary Authorization when you create a cluster with `gkectl`:\n\n1. Before you create your cluster, add\n `binaryAuthorization.evaluationMode` to the user cluster\n configuration file as shown in the following example:\n\n ...\n binaryAuthorization:\n evaluationMode: \"project_singleton_policy_enforce\"\n ...\n\n Allowed values for `evaluationMode` are:\n - `project_singleton_policy_enforce`: enforce the rules specified in the\n Binary Authorization *policy* , also known as a *project-singleton\n policy*, on your Google Cloud project to govern the deployment of\n container images on your cluster.\n\n - `disabled`: disable the use of Binary Authorization for your cluster.\n This is the default value. If you omit `binaryAuthorization`, the\n feature is disabled.\n\n2. Make any other changes needed in the cluster configuration file and then\n run the `gkectl create cluster` command.\n\nFor more information about creating clusters, see\n[Google Distributed Cloud installation overview](/kubernetes-engine/distributed-cloud/vmware/docs/how-to/install-overview).\n\nEnable or disable the Binary Authorization policy for an existing cluster\n-------------------------------------------------------------------------\n\nIf you have an existing version 1.28 or higher cluster, you can enable or\ndisable Binary Authorization at any time, using `gkectl` or\ngcloud CLI. \n\n### `gkectl`\n\n- To enable:\n\n 1. Edit the cluster configuration file to add the `binaryAuthorization`\n fields:\n\n ...\n binaryAuthorization:\n evaluationMode: \"project_singleton_policy_enforce\"\n\n 2. Update the cluster:\n\n ```\n gkectl update cluster \\\n --kubeconfig ADMIN_CLUSTER_KUBECONFIG \\\n --config USER_CLUSTER_CONFIG_FILE \\\n --force\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eADMIN_CLUSTER_KUBECONFIG\u003c/var\u003e: the path of the admin cluster kubeconfig file\n - \u003cvar translate=\"no\"\u003eUSER_CLUSTER_CONFIG_FILE\u003c/var\u003e: the path of your user cluster configuration file.\n 3. Wait for the Deployment named `binauthz-module-deployment` in the\n `binauthz-system` namespace to become ready.\n\n When the deployment is ready, Binary Authorization enforces the rules\n specified in the Binary Authorization *policy* , also known as a\n *project-singleton policy* . This policy is associated with your\n Google Cloud project and specifies rules to govern the deployment of\n container images. For more information about using `gkectl` to update a\n cluster, see [Update clusters](/kubernetes-engine/distributed-cloud/vmware/docs/how-to/upgrading).\n For more information about Binary Authorization policies and rules,\n see [Binary Authorization overview](/binary-authorization/docs/key-concepts).\n- To disable:\n\n 1. Edit the cluster configuration file and either remove the\n `binaryAuthorization` section or by set `evaluationMode` to\n `disabled`.\n\n ...\n binaryAuthorization:\n evaluationMode: \"disabled\"\n\n 2. Update the cluster:\n\n ```\n gkectl update cluster \\\n --kubeconfig ADMIN_CLUSTER_KUBECONFIG \\\n --config USER_CLUSTER_CONFIG_FILE \\\n --force\n ```\n\n After you make this change, wait a few minutes until the Deployment named\n `binauthz-module-deployment` in the `binauthz-system` namespace is\n removed.\n\nTroubleshooting\n---------------\n\nIf you don't complete all of the prerequisites, you may see a message like the\nfollowing indicates there is a problem with the Binary Authorization configuration: \n\n```bash\nfailed to validate Binary Authorization policy\n\n(1) Ensure the Binary Authorization API is enabled for your Google Cloud project:\n gcloud services enable binaryauthorization.googleapis.com --project=PROJECT_ID\n(2) Ensure an IAM policy binding is in place granting binaryauthorization.policyEvaluator role to the binauthz-system/binauthz-agent Kubernetes service account:\n gcloud projects add-iam-policy-binding PROJECT_ID \\\n --member=\"serviceAccount:\u003cvar class=\"readonly\" translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e.svc.id.goog[binauthz-system/binauthz-agent]\" \\\n --role=roles/binaryauthorization.policyEvaluator\n```"]]