As restrições gerenciadas são políticas da organização predefinidas, criadas em uma plataforma moderna, que oferecem controle centralizado e programático sobre os recursos do Compute Engine. Eles incluem suporte integrado para ferramentas de implantação segura como Simulador de política e o teste a seco.
As restrições gerenciadas são identificadas pelo prefixo compute.managed.* e servem como uma substituição direta para as restrições legadas compute.*.
Vantagens
- Implantação e monitoramento seguros: implemente políticas com ferramentas completas, controle de mudanças mais rápido e implante gradualmente usando recursos de simulação e simulação.
- Registro consistente: impõe uniformidade nas mensagens de registro e erro, simplificando o monitoramento centralizado e agilizando as auditorias.
Herança de políticas
As políticas da organização definidas em um recurso são herdadas pelos descendentes dele na hierarquia de recursos. Por exemplo, se você aplicar uma política a uma pasta,o Cloud de Confiance by S3NS vai aplicá-la a todos os projetos dessa pasta.
Preços
O serviço de políticas da organização, incluindo as políticas predefinidas (legadas), gerenciadas e personalizadas, é oferecido sem custos financeiros.
Antes de começar
-
Configure a autenticação, caso ainda não tenha feito isso.
Com isso, você confirma sua identidade para acesso a serviços e APIs do Cloud de Confiance by S3NS . Para executar
códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console Cloud de Confiance para acessar serviços Cloud de Confiance by S3NS e APIs, não é necessário configurar a autenticação.
gcloud
-
Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada. Depois de fazer login, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud init
-
- Defina uma região e uma zona padrão.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Cloud de Confiance .
- Verifique qual é o ID da organização.
- Se ainda não tiver feito isso, instale a
CLI gcloud e inicialize-a executando
gcloud init. - Defina um projeto padrão para seus testes.
Funções exigidas
Para receber as permissões necessárias para gerenciar políticas da organização com restrições gerenciadas, peça ao administrador que conceda a você os seguintes papéis do IAM:
- Administrador de políticas da organização (
roles/orgpolicy.policyAdmin) no recurso da organização -
Para testar as restrições:
Administrador da instância do Compute (v1) (
roles/compute.instanceAdmin.v1) no projeto
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para gerenciar políticas da organização com restrições gerenciadas. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para gerenciar políticas da organização com restrições gerenciadas:
-
orgpolicy.constraints.list -
orgpolicy.policies.create -
orgpolicy.policies.delete -
orgpolicy.policies.list -
orgpolicy.policies.update -
orgpolicy.policy.get -
orgpolicy.policy.set -
Para testar as restrições:
compute.instances.createno projeto- Usar uma imagem personalizada para criar a VM:
compute.images.useReadOnlyna imagem - Utilizar um snapshot para criar a VM:
compute.snapshots.useReadOnlyno snapshot - Usar um modelo de instância para criar a VM:
compute.instanceTemplates.useReadOnlyno modelo de instância - Atribuir uma rede legada à VM:
compute.networks.useno projeto - Especificar um endereço IP estático para a VM:
compute.addresses.useno projeto - Atribuir um endereço IP externo à VM ao usar uma rede legada:
compute.networks.useExternalIpno projeto - Especificar uma sub-rede para a VM:
compute.subnetworks.useno projeto ou na sub-rede escolhida - Atribuir um endereço IP externo à VM ao usar uma rede VPC:
compute.subnetworks.useExternalIpno projeto ou na sub-rede escolhida - Definir os metadados da instância da VM:
compute.instances.setMetadatano projeto - Definir tags para a VM:
compute.instances.setTagsna VM - Definir rótulos para a VM:
compute.instances.setLabelsna VM - Definir uma conta de serviço para a VM usar:
compute.instances.setServiceAccountna VM - Criar um disco para a VM:
compute.disks.createno projeto - Anexar um disco atual no modo somente leitura ou de leitura e gravação:
compute.disks.useno disco - Anexar um disco atual no modo somente leitura:
compute.disks.useReadOnlyno disco
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Restrições gerenciadas disponíveis
As seguintes restrições gerenciadas de política da organização estão disponíveis para o Compute Engine:
Avaliação hierárquica de metadados
As restrições gerenciadas que dependem de chaves de metadados predefinidas, como login do SO ou acesso à porta serial, oferecem suporte à avaliação hierárquica. Quando o Compute Engine avalia essas restrições, ele verifica os valores de metadados definidos no nível da instância de VM, do projeto ou da zona.
Definir valores de metadados no nível do projeto ou da zona permite gerenciar instâncias de VM em grande escala. No entanto, a aplicação de restrições ocorre apenas durante a criação de instâncias de VM ou chamadas de API de atualização. Assim, as mudanças nos metadados do projeto ou da zona afetam a conformidade de uma instância de VM com as restrições somente quando essa instância é criada ou atualizada.
Restrições e níveis com base em metadados
| Restrição | Chave de metadados | Níveis da hierarquia de metadados |
|---|---|---|
compute.managed.disableSerialPortAccess |
serial-port-enable |
Projeto, zonal, instância |
compute.managed.requireOsLogin |
enable-oslogin |
Projeto, zonal, instância |
compute.managed.disableGuestAttributesAccess |
enable-guest-attributes |
Projeto, zonal, instância |
compute.managed.requireOsConfig |
enable-osconfig |
Projeto, zonal, instância |
compute.managed.disallowGlobalDns |
VmDnsSetting |
Projeto, instância |
Lançamento seguro: o ciclo de vida da política
Para evitar interrupções no serviço ao implementar gradualmente novas restrições, o Google recomenda que você implemente restrições gerenciadas seguindo estas etapas:
Analisar com o Simulador de política
Antes de aplicar uma política, use Simulador de política para saber quais recursos atuais violam a política. Siga estas etapas:
No console do Cloud de Confiance , acesse a página Políticas da organização.
Na barra de filtro, pesquise sua restrição e clique no nome dela para acessar a página Detalhes da política.
Clique em Testar mudanças para gerar um relatório de simulação.
As mudanças nos metadados hierárquicos podem levar algumas horas para aparecer no relatório de simulação de restrições nas configurações de metadados da VM.
Analise o relatório para reconfigurar recursos fora de conformidade ou pedir isenções.
Validar com simulação
O modo de teste registra violações no Cloud Logging, mas não aplica restrições.
Para testar uma restrição, use o comando gcloud org-policies set-policy da seguinte maneira:
Crie um arquivo YAML de política (por exemplo,
dry-run-policy.yaml) com umdryRunSpec:name: projects/PROJECT_ID/policies/compute.managed.requireOsLogin dryRunSpec: rules: - enforce: trueSubstitua
PROJECT_IDpela ID do seu projeto.Aplique a política:
gcloud org-policies set-policy dry-run-policy.yaml
Aplicação total
Depois de simular e testar a política, é possível aplicá-la a um recurso. As mudanças nas políticas podem levar até 15 minutos para serem propagadas em todos os sistemas do Cloud de Confiance by S3NS .
Testar a aplicação de restrições
Depois de definir uma política, é possível verificar a aplicação usando a
CLI gcloud. Por exemplo, para testar a restrição compute.managed.requireOsLogin, siga estas etapas:
Liste as políticas atuais para confirmar sua configuração:
gcloud org-policies list --project=PROJECT_IDAplique a política de aplicação usando um arquivo YAML:
gcloud org-policies set-policy enforce_managed_constraint.yamlVerifique a aplicação chamando uma API de mutação. A tentativa de criar uma instância de VM com metadados não compatíveis deve falhar:
gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --metadata=enable-oslogin=falseSubstitua:
VM_NAME: o nome da nova instância de VM.MACHINE_TYPE: um tipo de máquina válido, por exemplo,e2-micro.IMAGE_FAMILY: uma família de imagens válida, por exemplo,debian-11.IMAGE_PROJECT: o projeto da família de imagens, por exemplo,debian-cloud.
Leia a mensagem de erro. Você vai receber uma negação indicando a restrição específica violada:
ERROR: (gcloud.compute.instances.create) Could not fetch resource: - Operation denied by org policy: [constraints/compute.managed.requireOsLogin]
Exceções condicionais com tags
É possível usar tags para conceder exceções a recursos específicos com base nas necessidades da empresa. Neste exemplo, usamos uma tag chamada osLoginOptional para identificar recursos isentos da exigência de Login do SO. Quando você vincula essa tag com um valor de true a um recurso, a política da organização permite que esse recurso específico exista sem o login do SO ativado, mesmo que a política continue sendo aplicada estritamente ao restante do seu ambiente.
Para conceder uma exceção usando tags, siga estas etapas:
Crie uma tag: use a CLI gcloud para criar uma chave e um valor de tag.
Crie a chave da tag:
gcloud resource-manager tags keys create osLoginOptional \ --parent=organizations/ORGANIZATION_IDCrie o valor da tag:
gcloud resource-manager tags values create true \ --parent=organizations/ORGANIZATION_ID/tagKeys/osLoginOptional
Substitua
ORGANIZATION_IDpelo ID da organização.Vincule a tag a um recurso. Para isentar um projeto da restrição
compute.managed.requireOsLogin, vincule a tagosLoginOptional=trueao projeto usando o comandogcloud resource-manager tags bindings create:gcloud resource-manager tags bindings create \ --tag-value=ORGANIZATION_ID/osLoginOptional/true \ --parent=//cloudresourcemanager.googleapis.com/projects/PROJECT_ID \ --location=globalSubstitua
ORGANIZATION_IDpelo ID da organização ePROJECT_IDpelo ID do projeto que você quer isentar.Para saber como vincular tags a outros recursos, consulte Vincular uma tag a um recurso.
Atualize a política: crie ou atualize o arquivo YAML da política (por exemplo,
policy.yaml) para incluir a regra condicional.name: projects/PROJECT_ID/policies/compute.managed.requireOsLogin spec: rules: - condition: expression: "resource.matchTag('ORGANIZATION_ID/osLoginOptional', 'true')" enforce: false - enforce: trueSubstitua:
PROJECT_ID: o ID do projeto.ORGANIZATION_ID: o código da sua organização.
Aplique a política: use o seguinte comando da CLI gcloud para ativar a configuração:
gcloud org-policies set-policy policy.yaml
Migração de restrições legadas
Ao migrar, observe que as restrições gerenciadas melhoram, mas não replicam exatamente o comportamento das políticas legadas. As restrições gerenciadas oferecem mais previsibilidade porque verificam violações apenas durante solicitações de API que criam ou modificam recursos. Se uma solicitação violar uma restrição, a chamada de API vai falhar com um erro claro. Isso é diferente das políticas legadas, que podiam ser aplicadas em várias etapas de uma operação ou usadas como atributos de recursos, tornando o comportamento de aplicação menos previsível.
Ao migrar de uma restrição compute.* legada para um equivalente compute.managed.*
moderno, siga estas etapas para evitar o aumento não intencional das restrições:
- Descobrir: identifique a nova alternativa de restrição gerenciada.
- Analise e valide: use o Simulador de política e a simulação, conforme descrito anteriormente.
- Imponha a restrição gerenciada: aplique a nova restrição gerenciada junto com a legada.
- Exclua as políticas legadas:
- Acesse o Inventário de recursos no console do Cloud de Confiance e filtre por
orgpolicy.Policye o nome da restrição legada para identificar todas as políticas que usam a restrição legada. - Exclua todas as políticas que usam a restrição legada. Excluir uma política a redefine para o comportamento padrão gerenciado pelo Google para essa restrição.
- Acesse o Inventário de recursos no console do Cloud de Confiance e filtre por
A seguir
- Saiba mais sobre os conceitos básicos e benefícios do serviço em Introdução ao serviço de políticas da organização.
- Para instruções detalhadas sobre como criar e gerenciar políticas, consulte a documentação do Resource Manager.
- Confira a lista completa de restrições disponíveis em todos os serviços do Cloud de Confiance by S3NS .
- Saiba como usar o Simulador de políticas para fazer uma análise avançada do impacto das políticas da organização.