Esta página mostra como usar o serviço de políticas da organização para exigir que os clusters do GKE usem uma ou mais políticas da plataforma baseadas em verificações de validação contínua (CV). Especifica as políticas da plataforma baseadas em verificações necessárias nas restrições personalizadas. Em seguida, aplica as restrições personalizadas na sua política da organização.
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
- As políticas e as restrições organizacionais são oferecidas sem custo financeiro.
Antes de começar
- Ative a autorização binária.
- Configure a CV com políticas da plataforma baseadas em verificações e, pelo menos, uma política da plataforma baseada em verificações de CV.
Funções necessárias
Para receber as autorizações de que precisa para criar restrições e aplicar políticas organizacionais,
peça ao seu administrador que lhe conceda a função do IAM de
administrador da política organizacional (roles/orgpolicy.policyAdmin
)
na sua Google Cloud organizaçã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.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Crie uma restrição personalizada de CV
Consola
Na Google Cloud consola, aceda à página Políticas de organização.
Na página Políticas da organização, clique em
Restrição personalizada.Se lhe for pedido, clique em Mudar para a organização principal. Para saber mais sobre as organizações, consulte o artigo Introdução ao serviço de políticas da organização
Em Detalhes da restrição, introduza as seguintes informações nos campos:
Nome a apresentar: um nome a apresentar para a restrição, como
Require a Binary Authorization continuous validation policy for all GKE clusters
. Usa o nome a apresentar para procurar a restrição depois de a guardar. O campo do nome a apresentar tem um comprimento máximo de 200 carateresID da restrição: um ID da restrição. Por exemplo:
RequireBinAuthzCVPolicy
.Descrição (opcional): uma descrição simples da restrição a apresentar como uma mensagem de erro quando a política é violada. O campo da descrição tem um comprimento máximo de 2000 carateres.
Em Aplicação, faça o seguinte:
Em Tipos de recursos, introduza
container.googleaips.com/Cluster
.Em Método de aplicação, selecione Aplicar na criação e atualização.
Introduza uma expressão no campo Condição. Este campo tem um comprimento máximo de 1000 carateres. A restrição personalizada é aplicada quando a condição é avaliada como
true
. A condição é uma expressão na sintaxe do Idioma de expressão comum (IEC). Pode combinar expressões com e (&&
) e ou (||
) para criar uma condição complexa. O IEC é um idioma de expressão semelhante a C. Para saber mais acerca da sintaxe e da semântica do IEC, consulte https://github.com/google/cel-spec. Para introduzir a condição, faça o seguinte:Clique em
Editar condição.Introduza uma expressão para verificar a existência de uma política da plataforma de CV. A seguinte condição requer que exista uma associação de políticas da plataforma de CV e que a política da plataforma tenha um nome específico:
resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID/platforms/gke/policies/POLICY_ID")
Substitua o seguinte:
PROJECT_ID
: o ID do projeto da sua política da plataforma. O projeto tem de estar na mesma organização.POLICY_ID
: o ID da política da sua política de plataforma.
A condição seguinte requer que existam duas associações de políticas da plataforma de CV e que cada uma tenha um nome de política da plataforma específico.
resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID1/platforms/gke/policies/POLICY_ID1") && resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID2/platforms/gke/policies/POLICY_ID2")
PROJECT_ID1
: o ID do projeto da sua primeira política da plataforma. O projeto tem de estar na mesma organização.POLICY_ID1
: o ID da política da sua primeira política da plataforma.PROJECT_ID2
: o ID do projeto da sua segunda política da plataforma.POLICY_ID2
: o ID da política da sua segunda política de plataformas.Clique em Guardar.
Em Ação, selecione Permitir.
Para criar a sua restrição personalizada, clique em Criar restrição.
gcloud
Crie um ficheiro YAML para a restrição personalizada:
name: organizations/ORGANIZATION_ID/customConstraints/custom.CONSTRAINT_ID resource_types: container.googleapis.com/Cluster method_types: - CREATE - UPDATE condition: >- CONDITION action_type: ACTION display_name: DISPLAY_NAME description: DESCRIPTION
Substitua o seguinte:
ORGANIZATION_ID
: o ID da sua organização, por exemplo,123456789
.CONSTRAINT_ID
: um ID de restrição, por exemplo,RequireBinAuthzCVPolicy
.CONDITION
: introduza uma expressão para verificar a existência de uma política da plataforma de CV. Este campo tem um comprimento máximo de 1000 carateres. A restrição personalizada é aplicada quando a condição é avaliada comotrue
. A condição é uma expressão na sintaxe do Idioma de expressão comum (IEC). Pode combinar expressões com e (&&
) e ou (||
) para criar uma condição complexa. O IEC é um idioma de expressão semelhante a C. Para saber mais sobre a sintaxe e a semântica da CEL, consulte https://github.com/google/cel-spec. A seguinte condição requer que exista uma associação de políticas da plataforma de CV e que a política da plataforma tenha um nome específico:resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID/platforms/gke/policies/POLICY_ID")
Substitua o seguinte:
PROJECT_ID
: o ID do projeto da sua política da plataforma. O projeto tem de estar na mesma organização.POLICY_ID
: o ID da política da sua política de plataforma.
A condição seguinte requer que existam duas associações de políticas da plataforma de CV e que cada uma tenha um nome de política da plataforma específico.
resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID1/platforms/gke/policies/POLICY_ID1") && resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID2/platforms/gke/policies/POLICY_ID2")
PROJECT_ID1
: o ID do projeto da sua primeira política da plataforma. O projeto tem de estar na mesma organização.POLICY_ID1
: o ID da política da sua primeira política da plataforma.PROJECT_ID2
: o ID do projeto da sua segunda política da plataforma.POLICY_ID2
: o ID da política da sua segunda política de plataformas.ACTION
: a ação a realizar se a condiçãocondition
for cumprida. Pode serALLOW
ouDENY
.DISPLAY_NAME
: um nome simples para a restrição, por exemplo,Require a Binary Authorization continuous validation policy for all GKE clusters
. O campo do nome a apresentar tem um comprimento máximo de 200 carateresDESCRIPTION
: uma descrição simples da restrição a apresentar como uma mensagem de erro quando a política é violada. O campo da descrição tem um comprimento máximo de 2000 carateres.
Aplique a restrição personalizada:
gcloud org-policies set-custom-constraint CUSTOM_CONSTRAINT_PATH
Substitua
CUSTOM_CONSTRAINT_PATH
pelo caminho da definição da restrição personalizada.Verifique se a restrição personalizada existe:
gcloud org-policies list-custom-constraints \ --organization=ORGANIZATION_ID
O resultado é semelhante ao seguinte:
CUSTOM_CONSTRAINT: custom.RequireBinAuthzCVPolicy ACTION_TYPE: ALLOW METHOD_TYPES: CREATE,UPDATE RESOURCE_TYPES: container.googleapis.com/Cluster DISPLAY_NAME: This cluster requires the continuous validation policy: projects/my-project/platforms/gke/policies/my-policy
Para ativar a aplicação da restrição personalizada que criou, crie uma política da organização.
Use uma política da organização para aplicar a restrição personalizada
Para aplicar a nova restrição personalizada, crie uma política da organização que faça referência à restrição e, em seguida, aplique a política da organização.
Consola
Para aplicar a restrição, faça o seguinte:
Na Google Cloud consola, aceda à página Políticas de organização.
Selecione o seletor de projetos e, em seguida, selecione a organização.
Pesquise e selecione a restrição na lista.
Na página Detalhes da política dessa restrição, clique em Gerir política.
Na página Editar política, selecione Substituir política do elemento principal.
Clique em Adicionar regra.
Em Aplicação, selecione Ativar.
Opcional: clique em Testar alterações para simular o efeito desta política da organização. Para mais informações, consulte o artigo Teste as alterações da política da organização com o simulador de políticas.
Para concluir e aplicar a política da organização, clique em Definir política.
gcloud
Crie um ficheiro de definição de política YAML:
name: organizations/ORGANIZATION_ID/policies/custom.CONSTRAINT_ID spec: rules: - enforce: true
Substitua o seguinte:
ORGANIZATION_ID
: o ID da organizaçãoCONSTRAINT_ID
: o ID da restrição
Aplique a política:
gcloud org-policies set-policy ORG_POLICY_PATH
Substitua
ORG_POLICY_PATH
pelo caminho para o ficheiro de definição de políticas.Verifique se a política existe:
gcloud org-policies list \ --organization=ORGANIZATION_ID
Substitua
ORGANIZATION_ID
pelo ID da organização.Para ver uma lista de argumentos, consulte o artigo
gcloud org-policies list
.O resultado é semelhante ao seguinte:
CONSTRAINT: custom.RequireBinAuthzCVPolicy LIST_POLICY: - BOOLEAN_POLICY: SET ETAG: CN622LIGEIDXnpMB-
A política pode demorar até 15 minutos a entrar em vigor.
Para aplicar várias restrições a políticas baseadas na verificação de CV, faça o seguinte:
- Crie uma restrição personalizada por política baseada na verificação de CV.
- Atualize a política de organização com cada restrição personalizada, conforme descrito nesta secção.
Elimine a restrição personalizada
Pode eliminar uma restrição personalizada através da Google Cloud consola ou da CLI Google Cloud.
Consola
Na Google Cloud consola, aceda à página Políticas de organização.
Selecione o selecionador de projetos na parte superior da página.
No selecionador de projetos, selecione a sua organização.
Pesquise e selecione a restrição na lista.
Em Detalhes da restrição, clique em
Eliminar.Para confirmar que quer eliminar a restrição, clique em Eliminar.
gcloud
Para eliminar uma restrição personalizada, use o comando da CLI gcloud:org-policies delete-custom-constraint
gcloud org-policies delete-custom-constraint custom.CONSTRAINT_ID \
--organization=ORGANIZATION_ID
Substitua o seguinte:
ORGANIZATION_ID
: o ID da sua organização, como123456789
CONSTRAINT_NAME
: o nome da restrição personalizada
O resultado é semelhante ao seguinte:
Deleted custom constraint [organizations/123456789/customConstraints/CONSTRAINT_NAME]
Depois de eliminar uma restrição personalizada, todas as políticas que foram criadas com essa restrição continuam a existir, mas são ignoradas. Não pode criar outra restrição personalizada com o mesmo nome de uma restrição personalizada eliminada.
O que se segue?
- Saiba mais acerca das restrições da política da organização.
- Use a verificação da atualização das imagens
- Use a verificação de atestação de assinatura simples
- Use a verificação de assinatura do Sigstore
- Use a verificação SLSA
- Use a verificação de diretório fidedigno
- Use a verificação de vulnerabilidades
- Veja os registos de CV