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 de utilizadores no local. O principal exemplo de utilização da autorização binária no Google Distributed Cloud é proteger as cargas de trabalho nos seus clusters de utilizadores. 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 clusters de utilizadores. 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 de utilizadores, certifique-se de que cumpre os seguintes critérios de pré-requisitos:
Registe o cluster numa frota: para um cluster criado com
gkectl
, o cluster é registado no projeto Google Cloud que especificar 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, consulte o artigo Regras de proxy e firewall.
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 gkectl
ou a CLI gcloud.
gkectl
Para ativar a autorização binária quando cria um cluster com o gkectl
:
Antes de criar o cluster, adicione
binaryAuthorization.evaluationMode
ao ficheiro de configuração do cluster de utilizadores, conforme mostrado no exemplo seguinte:... 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.disabled
: 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
gkectl create cluster
.
Para mais informações sobre a criação de clusters, consulte a vista geral da instalação do Google Distributed Cloud.
Ative ou desative a política de autorização binária para um cluster existente
Se tiver um cluster existente da versão 1.28 ou superior, pode ativar ou desativar a autorização binária em qualquer altura através do gkectl
ou da CLI gcloud.
gkectl
Para ativar:
Edite o ficheiro de configuração do cluster para adicionar os
binaryAuthorization
campos:... binaryAuthorization: evaluationMode: "project_singleton_policy_enforce"
Atualize o cluster:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --force
Substitua o seguinte:
ADMIN_CLUSTER_KUBECONFIG
: o caminho do ficheiro kubeconfig do cluster de administradorUSER_CLUSTER_CONFIG_FILE
: o caminho do ficheiro de configuração do cluster de utilizadores.
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
gkectl
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:
Edite o ficheiro de configuração do cluster e remova a secção
binaryAuthorization
ou definaevaluationMode
comodisabled
.... binaryAuthorization: evaluationMode: "disabled"
Atualize o cluster:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --force
Depois de fazer esta alteração, aguarde alguns minutos até que a implementação denominada
binauthz-module-deployment
no espaço de nomesbinauthz-system
seja removida.
Resolução de problemas
Se não concluir todos os pré-requisitos, pode ver uma mensagem como a seguinte, que 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