Configurar o Login do SO

Este documento descreve como configurar o Login do SO.

O Login do SO permite controlar o acesso a instâncias de máquina virtual (VM) com base nas permissões do IAM. Para saber mais sobre o Login do SO, consulte Sobre o Login do SO.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. Com isso, você confirma sua identidade para acesso a Google Cloud serviços e APIs do. Para executar código ou exemplos de um ambiente de desenvolvimento local, faça a autenticação no Compute Engine com um destes métodos:

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o Google Cloud console para acessar Google Cloud serviços e APIs, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  • Defina uma região e uma zona padrão.
  • Terraform

    Para usar os exemplos do Terraform desta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.

    1. Instale a Google Cloud CLI.

    2. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

    3. Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:

      gcloud auth application-default login

      Não é necessário fazer isso se você estiver usando o Cloud Shell.

      Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.

    Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

Limitações

O Login do SO não é compatível com o seguinte:
  • Perfis do Login do SO com um tamanho total maior que 32 KiB. O perfil do Login do SO inclui informações da conta no formato POSIX e chaves públicas SSH.
  • Instância de computação que usa as seguintes imagens do SO:
    • Windows Server e SQL Server.
    • Fedora CoreOS. Para gerenciar o acesso das instâncias às instâncias de computação criadas usando estas imagens, use o sistema de ignição do Fedora CoreOS.
    • SLES 16. Para gerenciar o acesso das instâncias às instâncias de computação criadas usando estas imagens, use o SSH baseado em metadados.

Para verificar o suporte do Login do SO para distribuições específicas do Linux, consulte Detalhes do sistema operacional.

Atribuir papéis do IAM para o Login do SO

Atribua todos os papéis do IAM necessários aos usuários que se conectam a VMs com o Login do SO ativado.

Papel Usuários obrigatórios Nível da concessão
roles/compute.osLogin ou roles/compute.osAdminLogin Todos os usuários

No projeto ou na instância.

Se um usuário precisar de acesso SSH pelo Google Cloud console ou pela Google Cloud CLI, conceda esses papéis para envolvidos no projeto ou, de forma complementar, um papel para envolvidos no projeto que contenha a compute.projects.get permissão.

roles/iap.tunnelResourceAccessor Todos os usuários que exigem acesso SSH usando o encaminhamento de TCP do IAP

No projeto ou na instância.

roles/iam.serviceAccountUser Todos os usuários, se a VM tiver uma conta de serviço Na conta de serviço.
roles/compute.osLoginExternalUser Usuários de uma organização diferente da VM a que estão se conectando

Na organização.

Esse papel precisa ser concedido por um administrador da organização.

Ativar o Login do SO

É possível ativar o Login do SO para uma única VM ou todas as VMs de um projeto definindo enable-oslogin como TRUE em metadados do projeto ou da instância.

Quando você define os metadados do Login do SO, o Compute Engine exclui os arquivos authorized_keys da VM e não aceita mais conexões das chaves SSH armazenadas nos metadados do projeto ou da instância.

Ativar o Login do SO para todas as VMs de um projeto

Para ativar o Login do SO em todas as VMs de um projeto, defina o seguinte valor em metadados do projeto:

  • Chave: enable-oslogin
  • Valor: TRUE

Ativar o Login do SO para uma única VM

Para ativar o Login do SO em uma única VM, defina o seguinte valor nos metadados da instância:

  • Chave: enable-oslogin
  • Valor: TRUE

Ativar o Login do SO durante a criação da VM

Ative o Login do SO ao criar uma VM usando o Google Cloud console ou a CLI gcloud.

Console

Crie uma VM que ativa o Login do SO na inicialização criando uma VM a partir de uma imagem pública e especificando as seguintes configurações:

  1. Expanda a seção Opções avançadas.
  2. Expanda a seção Segurança.
  3. Expanda a seção Gerenciar acesso.
  4. Selecione Controlar o acesso à VM usando permissões do IAM.
  5. Clique em Criar para criar e iniciar a VM.

gcloud

  1. No Google Cloud console, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte de baixo do Google Cloud console, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a Google Cloud CLI já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Crie uma VM que ativa o Login do SO na inicialização executando o seguinte gcloud compute instance create comando:

    gcloud compute instances create VM_NAME \
       --image-family=IMAGE_FAMILY \
       --image-project=IMAGE_PROJECT \
       --metadata enable-oslogin=TRUE
    

    Substitua:

    • VM_NAME: o nome da nova VM.
    • IMAGE_FAMILY: a família de imagens de um SO Linux. Isso cria a VM a partir da imagem do SO mais recente e não obsoleta. Para todas as famílias de imagens públicas, consulte Detalhes do sistema operacional.
    • IMAGE_PROJECT: o projeto de imagem que contém a família de imagens. Cada SO tem o próprio projeto de imagem. Para todos os projetos de imagem pública, consulte Detalhes do sistema operacional.

Terraform

É possível aplicar os valores de metadados a projetos ou VMs usando uma das seguintes opções:

  • Opção 1: defina enable-oslogin nos metadados de todo o projeto para que isso se aplique a todas as VMs nele.

    Use o recurso google_compute_project_metadata do Terraform e defina um valor de metadados em que oslogin=TRUE:

    resource "google_compute_project_metadata" "default" {
      metadata = {
        enable-oslogin = "TRUE"
      }
    }

    Se preferir, defina enable-oslogin como FALSE para desativar o login do SO.

  • Opção 2: defina enable-oslogin nos metadados de uma VM nova ou atual.

    Use o recurso google_compute_instance do Terraform e defina oslogin=TRUE. Substitua oslogin_instance_name pelo nome da VM.

    resource "google_compute_instance" "oslogin_instance" {
      name         = "oslogin-instance-name"
      machine_type = "f1-micro"
      zone         = "us-central1-c"
      metadata = {
        enable-oslogin : "TRUE"
      }
      boot_disk {
        initialize_params {
          image = "debian-cloud/debian-11"
        }
      }
      network_interface {
        # A default network is created for all GCP projects
        network = "default"
        access_config {
        }
      }
    }

    Se preferir, defina enable-oslogin como FALSE para impedir que a VM use o Login do SO.

Desative o Login do SO

É possível desativar o Login do SO definindo enable-oslogin como FALSE nos metadados do projeto ou da instância.

Quando o Login do SO está desativado, é possível se conectar às VMs usando chaves SSH armazenadas nos metadados.

Desativar o Login do SO para todas as VMs de um projeto

Para desativar o Login do SO em todas as VMs de um projeto, defina o seguinte valor em metadados do projeto:

  • Chave: enable-oslogin
  • Valor: FALSE

Desativar o Login do SO para uma única VM

Para desativar o Login do SO em uma única VM, defina o seguinte valor nos metadados da instância:

  • Chave: enable-oslogin
  • Valor: FALSE

Definir enable-oslogin como FALSE nos metadados da instância desativa o Login do SO para a VM, mesmo que enable-oslogin esteja definido como TRUE nos metadados do projeto.

Conectar-se a VMs com o Login do SO ativado

Conecte-se a VMs que têm o login do SO ativado usando os métodos descritos em Conectar-se a VMs do Linux.

Quando você se conecta a VMs com o Login do SO ativado, o Compute Engine usa o nome de usuário que o administrador da organização configurou para você. Se o administrador da organização não tiver configurado um nome de usuário, o Compute Engine gerará um nome de usuário no formato USERNAME_DOMAIN_SUFFIX. Para mais informações sobre nomes de usuários, consulte Como funciona o Login do SO.

Ativar o Login do SO com a autenticação de dois fatores

Para mais segurança, é possível exigir que os usuários usem a autenticação de dois fatores (2FA) ao se conectar a VMs com o Login do SO ativado. Se você planeja usar o Login do SO com a autenticação de dois fatores, os usuários precisam configurar a verificação em duas etapas nas contas. Para informações sobre os métodos de 2FA aceitos, consulte Sobre o Login do SO.

Antes de ativar a 2FA, verifique se o Login do SO está ativado, conforme descrito em Ativar o Login do SO. Para ativar a 2FA do Login do SO, defina o seguinte valor de metadados nos metadados da instância ou do projeto:

  • Chave: enable-oslogin-2fa
  • Valor: TRUE

Para que a 2FA do Login do SO seja aplicada, os metadados do Login do SO (enable-oslogin) e da 2FA do Login do SO (enable-oslogin-2fa) precisam ser definidos como TRUE.

Ao se conectar a VMs com a autenticação de dois fatores do Login do SO ativada, você também vê uma mensagem com base no método de verificação em duas etapas ou tipo de desafio selecionado. Para o método de solicitação no smartphone, aceite as mensagens no smartphone ou tablet para continuar. Para outros métodos, insira o código de segurança ou a senha única.

Solução de problemas do Login do SO

Para encontrar métodos de diagnóstico e resolução de erros do Login do SO, consulte Solução de problemas do Login do SO.

A seguir