A autorização binária para o Google Distributed Cloud é uma Google Cloud funcionalidade que estende a aplicação alojada no momento da implementação da autorização binária aos seus clusters no local. O exemplo de utilização principal da autorização binária no Google Distributed Cloud é proteger as cargas de trabalho, mas a autorização binária funciona com todos os tipos de clusters. Siga os passos neste guia para aplicar as regras de aplicação de uma política de autorização binária configurada no seu projeto aos seus clusters. Google Cloud Para mais informações acerca das políticas e regras de autorização binária, consulte a vista geral da autorização binária.
Pré-requisitos
Antes de poder ativar a aplicação da política de autorização binária para um cluster, certifique-se de que cumpre os seguintes critérios de pré-requisitos:
Registe o cluster numa frota: um cluster criado com
bmctl
é registado no projeto Google Cloud que especifica no campogkeConnect.projectID
do ficheiro de configuração do cluster. Este projeto é denominado projeto anfitrião da frota. Para saber mais sobre frotas, incluindo exemplos de utilização, práticas recomendadas e exemplos, consulte a documentação de gestão de frotas.Ative a API Binary Authorization no seu Google Cloud projeto: ative o serviço Binary Authorization no projeto anfitrião da frota.
Adicione a função Binary Authorization Policy Evaluator ao projeto anfitrião da frota: para conceder a função Binary Authorization Policy Evaluator (
roles/binaryauthorization.policyEvaluator
) à conta de serviço do Kubernetes no projeto anfitrião 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 a ser executado atrás de um servidor proxy, certifique-se de que o servidor proxy permite ligações à API Binary Authorization (
binaryauthorization.googleapis.com
). Esta API fornece validação e controlo de implementação baseados em políticas para imagens implementadas no seu cluster. Para mais informações sobre a utilização de uma configuração de proxy, consulte o artigo Instale através de um proxy.
Depois de cumprir os pré-requisitos, pode ativar (ou desativar) a política de autorização binária quando cria um novo cluster ou atualiza um cluster existente.
Ative a política de autorização binária durante a criação do cluster
Pode 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 quando cria um cluster com o bmctl
:
Antes de criar o cluster, adicione
spec.binaryAuthorization.evaluationMode
ao ficheiro de configuração do cluster conforme mostrado no exemplo seguinte:... --- 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
evaluationMode
são:PROJECT_SINGLETON_POLICY_ENFORCE
: aplique as regras especificadas na política de autorização binária, também conhecida como política de singleton do projeto, no seu projeto do Google Cloud para reger a implementação de imagens de contentores no seu cluster.DISABLE
: desative a utilização da autorização binária para o seu cluster. Este é o valor predefinido. Se omitirbinaryAuthorization
, a funcionalidade é desativada.
Faça outras alterações necessárias no ficheiro de configuração do cluster e, em seguida, execute o comando
bmctl create cluster
.
Para mais informações sobre a criação de clusters, consulte o artigo Vista geral da criação de clusters.
CLI gcloud
Para criar um cluster de utilizadores e ativar a autorização binária, adicione a flag
--binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE
quando executar o comandogcloud container bare-metal clusters create
.Isto cria um cluster de utilizadores que aplica as regras especificadas na política de autorização binária, também conhecida como política de projeto único. Esta política está associada ao seu projeto do Google Cloud e especifica regras para reger a implementação de imagens de contentores. Para mais informações sobre a utilização da CLI gcloud para criar um cluster de utilizadores, consulte o artigo Crie um cluster de utilizadores com clientes da API GKE On-Prem. Para mais informações acerca das políticas e regras de autorização binária, consulte a vista geral da autorização binária.
Ative ou desative a política de autorização binária para um cluster existente
Se tiver um cluster existente da versão 1.16 ou superior, pode ativar ou desativar a Autorização binária em qualquer altura através do bmctl
ou da CLI gcloud.
bmctl
Para ativar:
Edite o ficheiro de configuração do cluster para adicionar os
binaryAuthorization
campos:... --- 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_KUBECONFIG
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster a atualizar.CLUSTER_KUBECONFIG
: o caminho para o ficheiro kubeconfig do cluster.
Aguarde até que a implementação denominada
binauthz-module-deployment
no espaço de nomesbinauthz-system
fique pronta.Quando a implementação está pronta, a Autorização binária aplica as regras especificadas na política de Autorização binária, também conhecida como uma política de singleton do projeto. Esta política está associada ao seu projeto do Google Cloud e especifica regras para reger a implementação de imagens de contentores. Para mais informações sobre a utilização de
bmctl
para atualizar um cluster, consulte o artigo Atualizar clusters. Para mais informações acerca das políticas e regras de autorização binária, consulte a vista geral da autorização binária.
Para desativar:
Pode desativar esta funcionalidade definindo
evaluationMode
comoDISABLED
ou removendo a secçãobinaryAuthorization
da especificação do cluster. Depois de fazer esta alteração, aguarde alguns minutos até que a implementação denominadabinauthz-module-deployment
no espaço de nomesbinauthz-system
seja removida.
CLI gcloud
Para ativar a autorização binária para um cluster existente, adicione a flag
--binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE
quando executar o comandogcloud container bare-metal clusters update
.Esta ação atualiza um cluster de utilizadores 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 singleton do projeto. Esta política está associada ao seu projeto doGoogle Cloud e especifica regras para reger a implementação de imagens de contentores. Para mais informações sobre a utilização da CLI gcloud para atualizar um cluster de utilizadores, consulte o artigo gcloud container bare-metal clusters update na referência da CLI gcloud. Para mais informações acerca das políticas e regras de autorização binária, consulte a vista geral da autorização binária.
Para desativar a autorização binária para um cluster existente, execute o comando
gcloud container bare-metal clusters update
com a flag--binauthz-evaluation-mode=DISABLED
.
Resolução de problemas
Se não concluir todos os pré-requisitos, pode não ver nenhuma indicação antecipada de um problema. Se a autorização binária começar a falhar na resposta a pedidos de criação de pods, verifique status.conditions
para o ReplicaSet. Uma mensagem como a seguinte indica que existe 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