A autorização binária para o Google Distributed Cloud permite estender a aplicação hospedada no momento da implantação da autorização binária aos clusters locais. Embora seja usada principalmente para ajudar a proteger cargas de trabalho, a autorização binária funciona com todos os tipos de cluster para aplicar regras de aplicação de políticas configuradas no projeto do Google Cloud . Para mais informações sobre políticas e regras, consulte a 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, verifique se você atendeu aos seguintes pré-requisitos:
Registrar o cluster com uma frota: um cluster criado com
bmctlé registrado no projeto do Google Cloud especificado no campogkeConnect.projectIDno 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.Ativar a API Binary Authorization no projeto do Google Cloud :ative o serviço de autorização binária no projeto host da frota.
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:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.svc.id.goog[binauthz-system/binauthz-agent]" \ --role="roles/binaryauthorization.policyEvaluator"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 sobre o uso da configuração de proxy, consulte Instalar atrás de um proxy.
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 bmctl
ou a CLI gcloud.
bmctl
Para ativar a autorização binária ao criar um cluster com bmctl:
Antes de criar o cluster, adicione
spec.binaryAuthorization.evaluationModeao arquivo de configuração do cluster, conforme o exemplo a seguir:... --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-basic namespace: cluster-user-basic spec: type: user ... binaryAuthorization: evaluationMode: "PROJECT_SINGLETON_POLICY_ENFORCE"Os valores permitidos para
evaluationModesão:PROJECT_SINGLETON_POLICY_ENFORCE: aplica as regras especificadas na autorização binária política, também conhecida como política de projeto Singleton, no Google Cloud projeto para controlar a implantação de imagens do contêiner no cluster.DISABLE: desativa o uso da autorização binária do cluster. Esse é o valor padrão. Se você omitirbinaryAuthorization, o recurso será desativado.
Faça as outras alterações necessárias no arquivo de configuração do cluster e execute o comando
bmctl create cluster.
Para mais informações sobre como criar clusters, consulte Visão geral da criação de clusters.
CLI da gcloud
Para criar um cluster de usuário e ativar a autorização binária, adicione a sinalização
--binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCEao executar o comandogcloud container bare-metal clusters create.Isso cria um cluster de usuário que aplica 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 a CLI gcloud para criar um cluster de usuário, consulte Criar um cluster de usuário usando clientes da API GKE On-Prem. Para mais informações sobre políticas e regras de autorização binária, confira Visão geral da autorização binária.
Ativar ou desativar a política de autorização binária de um cluster atual
Se você tiver um cluster versão 1.16 ou superior, poderá ativar ou
desativar a autorização binária a qualquer momento usando bmctl ou
a CLI gcloud.
bmctl
Para ativar:
Edite o arquivo de configuração do cluster para adicionar os campos
binaryAuthorization:... --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-basic namespace: cluster-user-basic spec: type: user ... binaryAuthorization: evaluationMode: "PROJECT_SINGLETON_POLICY_ENFORCE"Atualize o cluster:
bmctl update cluster -c CLUSTER_NAME --admin-kubeconfig=CLUSTER_KUBECONFIGSubstitua:
CLUSTER_NAME: o nome do cluster a se fazer upgrade.CLUSTER_KUBECONFIG: o caminho até o arquivo kubeconfig do cluster.
Aguarde até que a implantação chamada
binauthz-module-deploymentno namespacebinauthz-systemfique 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 seuGoogle Cloud projeto e especifica regras para controlar a implantação de imagens do contêiner. Para mais informações sobre como usar o
bmctlpara 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:
Para desativar esse recurso, defina
evaluationModecomoDISABLEDou remova a seçãobinaryAuthorizationda especificação do cluster. Depois que essa mudança for feita, aguarde alguns minutos até que a implantação chamadabinauthz-module-deploymentno namespacebinauthz-systemseja removida.
CLI da gcloud
Para ativar a autorização binária de um cluster atual, adicione a sinalização
--binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCEao executar o comandogcloud container bare-metal clusters update.Isso atualiza um cluster de usuário para que a autorização binária aplique 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 doGoogle Cloud e especifica regras para controlar a implantação de imagens de contêiner. Para mais informações sobre como usar a CLI gcloud para atualizar um cluster de usuário, confira gcloud container bare-metal clusters update na referência da CLI gcloud. 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 a autorização binária de um cluster atual, execute o comando
gcloud container bare-metal clusters updatecom a sinalização--binauthz-evaluation-mode=DISABLED.
Solução de problemas
Se você não atender a todos os pré-requisitos, talvez nenhuma indicação antecipada de um problema seja exibida. Se a autorização binária começar a deixar de responder às solicitações de criação de pods, verifique o status.conditions para o ReplicaSet. Uma mensagem como esta indica que há um problema com a configuração da autorização binária:
failed to validate Binary Authorization policy (1) Ensure the Binary Authorization API is enabled for your Google Cloud project: gcloud services enable binaryauthorization.googleapis.com --project=PROJECT_ID (2) Ensure an IAM policy binding is in place granting binaryauthorization.policyEvaluator role to the binauthz-system/binauthz-agent Kubernetes service account: gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.svc.id.goog[binauthz-system/binauthz-agent]" \ --role=roles/binaryauthorization.policyEvaluator