Como configurar o login do SO com a autenticação de dois fatores

Se você usar o login do SO para gerenciar o acesso às instâncias, poderá adicionar uma camada extra de segurança usando a autenticação de dois fatores, também conhecida como 2FA.

O login do SO é compatível com os seguintes métodos de 2FA ou tipos de desafio:

Para usar a autenticação 2FA nas instâncias, conclua as etapas a seguir:

  1. Ative a 2FA no seu domínio ou Conta do Google.
  2. Ative a 2FA no seu projeto ou instância.
  3. Conecte-se às instâncias.

Depois de configurar a 2FA do login do SO, use os registros de auditoria para monitorar as sessões de autenticação.

Sistemas operacionais compatíveis

A autenticação de dois fatores do login do SO exige a criação de imagens do sistema operacional após as seguintes datas:

Sistema operacional Datas
CentOS 6 e 7 26 de março de 2019
Debian 9 26 de março de 2019
RHEL 6 e 7 26 de março de 2019
SUSE 12 e 15 Não compatível no momento
Ubuntu 14.04 LTS, 16.04 LTS, 18.04 LTS e 18.10 Não compatível no momento

Como ativar a 2FA no seu domínio ou Conta do Google

Antes de ativar a autenticação de dois fatores no seu projeto ou instância, ative a 2FA no seu domínio ou Conta do Google. Certifique-se de ativar a 2FA no domínio que contém o projeto ou as instâncias ou para o usuário que é o proprietário deles.

Um administrador do G Suite pode ativar a autenticação de dois fatores em um domínio. Um usuário individual do Google pode ativar a autenticação de dois fatores no nível da conta de usuário.

Domínio

A autenticação de dois fatores em um domínio precisa ser ativada por um administrador do G Suite.

Para ativar a 2FA em um domínio, consulte Proteger sua empresa com a verificação em duas etapas no guia de administração do G Suite.

Conta de usuário

Se as contas de usuário não forem gerenciadas por um administrador do G Suite, será possível configurar a 2FA para Contas do Google individuais.

Para configurar a 2FA em uma Conta do Google individual, consulte Verificação em duas etapas do Google.

Como ativar a 2FA no seu projeto ou instância

Depois de ativar a autenticação de dois fatores no nível do domínio ou da conta de usuário, ative as instâncias individuais ou o projeto para usar a 2FA do login do SO.

É necessário que a instância ou o projeto tenha o login do SO ativado para usar a 2FA.

É possível configurar o login do SO e a 2FA durante a criação da instância ou a configuração do projeto. Outra opção é configurar a 2FA em uma instância ou um projeto atual que já tenha o login do SO ativado.

Para configurar seu projeto ou instância para usar a autenticação de dois fatores do login do SO, defina "enable-oslogin-2fa=TRUE" nos metadados do projeto ou da instância.

Console

Defina enable-oslogin-2fa nos metadados da instância ao criá-la:

  1. No Console do GCP, acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VMs"

  2. Clique em Criar instância.
  3. Na página Criar uma nova instância, preencha as propriedades pretendidas da instância.
  4. Na seção Metadados, adicione as seguintes entradas de metadados:

    • enable-oslogin com o valor TRUE
    • enable-oslogin-2fa com o valor TRUE
  5. Clique em Criar para criar a instância.

Defina enable-oslogin-2fa nos metadados do projeto para que isso seja aplicado a todas as instâncias do projeto:

  1. Acesse a página "Metadados".

    Acessar a página "Metadados"

  2. Clique em Editar.
  3. Inclua uma entrada de metadados com a chave enable-oslogin-2fa e o valor TRUE. Se preferir, defina o valor como FALSE para desativar o recurso.
  4. Clique em Salvar para aplicar as alterações.

Para VMs que não estejam executando o CoreOS, essa alteração é aplicada instantaneamente. Não é preciso reiniciar a instância. Para distribuições do CoreOS, reinicialize ou reinicie a instância para que a alteração entre em vigor. Para reiniciar, execute uma parada e, em seguida, inicie a operação nas instâncias.

Defina enable-oslogin-2fa nos metadados de uma instância atual:

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VMs"

  2. Clique no nome da instância em que você quer definir o valor dos metadados.
  3. Para editar as configurações da instância, clique em Editar na parte superior da página de detalhes da instância.
  4. Na seção Metadados personalizados, adicione uma entrada de metadados com a chave enable-oslogin-2fa e o valor TRUE. Outra opção é definir o valor como FALSE para excluir a instância do recurso. Verifique também se enable-oslogin está configurado como True.
  5. Na parte inferior da página de detalhes da instância, clique em Salvar para aplicar as alterações à instância.

Para todos os sistemas operacionais, exceto CoreOS, essa alteração é aplicada instantaneamente. Não é preciso reiniciar a instância. Para distribuições do CoreOS, reinicialize ou reinicie a instância para que a alteração entre em vigor. Para reiniciar, execute uma parada e, em seguida, inicie a operação nas instâncias.

gcloud

Defina enable-oslogin-2fa nos metadados da instância ao criá-la:

gcloud compute instances create [INSTANCE_NAME] \
  --metadata enable-oslogin=True,enable-oslogin-2fa=True

Defina enable-oslogin-2fa nos metadados do projeto para que isso seja aplicado a todas as instâncias do projeto:

gcloud compute project-info add-metadata \
  --metadata enable-oslogin=True,enable-oslogin-2fa=True

Defina enable-oslogin-2fa nos metadados de uma instância atual:

gcloud compute instances add-metadata \
  --metadata enable-oslogin=True,enable-oslogin-2fa=True [INSTANCE_NAME]

[INSTANCE_NAME] é o nome da instância.

Como estabelecer conexão com instâncias

Depois de configurar os papéis necessários, conecte-se a uma instância usando as ferramentas do Compute Engine. O Compute Engine gera automaticamente chaves SSH e as associa à sua conta de usuário. Se preferir, para criar suas próprias chaves SSH e adicionar chaves públicas à sua conta de usuário, conecte-se a instâncias usando ferramentas de terceiros. A instância recebe a chave pública da sua conta de usuário e permite que você se conecte à instância caso forneça o nome de usuário correto e a chave SSH privada.

Quando você se conectar à sua instância, receberá uma mensagem com base no método de 2FA ou no tipo de desafio selecionado.

  • Para o Google Authenticator, você verá a seguinte mensagem:

    "Enter your one-time password:"

  • Para a verificação por mensagem de texto ou chamada telefônica, você verá a seguinte mensagem:

    "A security code has been sent to your phone. Enter code to continue:"

  • Para o prompt do smartphone, você verá a seguinte mensagem:

    A login prompt has been sent to your enrolled device:"

    Para o método do prompt do smartphone ou tablet, aceite as mensagens no dispositivo para continuar. Para outros métodos, insira o código de segurança ou a senha única.

Depois de se conectar à instância, consulte os comportamentos de login esperados.

Como ver os registros de auditoria da 2FA do login do SO

O Compute Engine fornece registros de auditoria para rastrear solicitações de autenticação de dois fatores. A autenticação de dois fatores tem dois tipos de solicitação:

  • StartSession: inicia uma nova sessão de autenticação. Em uma chamada StartSession, um cliente declara os recursos dele para o servidor e recebe informações sobre o primeiro desafio. Uma chamada StartSession retorna estes elementos:

    • Um código de sessão, passado para todas as chamadas subsequentes de ContinueSession
    • Informações sobre o desafio ou o método de 2FA usado nessa nova sessão de autenticação
  • ContinueSession: continua uma sessão de autenticação atual. Usando o código de sessão fornecido, a API ContinueSession pode executar uma das duas ações a seguir:

    • Aceitar a resposta de um desafio ou método e, em seguida, autenticar, rejeitar ou exigir outros desafios ao usuário.
    • Alternar para um tipo de desafio diferente daquele inicialmente proposto pelo servidor na rodada anterior de chamadas de API. Se um cliente optar por concluir um tipo de desafio diferente (por exemplo, Google Authenticator em vez do prompt do smartphone), ele poderá solicitar um tipo de desafio distinto em uma chamada para o servidor usando um request.challengeId do tipo pretendido.

Para ver os registros, você precisa ter permissões para o visualizador de registros ou ser um leitor ou editor do projeto.

  1. Acesse a página "Registros" no Console do GCP:

    Acessar a página "Registros"

  2. Expanda o menu suspenso e selecione Audited Resource.
  3. Na barra de pesquisa, digite oslogin.googleapis.com e pressione Enter.
  4. Você verá uma lista de registros de auditoria com descrições das solicitações de autenticação de dois fatores. Expanda qualquer uma das entradas para mais informações:

    Captura de tela dos registros de auditoria da autenticação de dois fatores

Em qualquer um dos registros de auditoria, você pode:

  1. expandir a propriedade protoPayload;

    Captura de tela das métricas do registro de auditoria da autenticação de dois fatores

  2. procurar methodName para ver a atividade a que este registro se aplica, seja uma solicitação StartSession ou ContinueSession. Por exemplo, se o registro rastrear uma solicitação StartSession, o nome do método será "google.cloud.oslogin.OsLoginService.v1.StartSession". Da mesma forma, um registro ContinueSession terá um método "google.cloud.oslogin.OsLoginService.v1.ContinueSession". Uma entrada de registro de auditoria é registrada para todas as solicitações de início e continuação da sessão.

Há diferentes propriedades de registros de auditoria para tipos de registro distintos. Por exemplo, os registros de auditoria relacionados a StartSession têm propriedades específicas para iniciar sessões, enquanto os registros de ContinueSession têm o próprio conjunto de propriedades. Há algumas propriedades de registros de auditoria que também são compartilhadas entre os tipos de registro.

Todos os registros de auditoria de autenticação de dois fatores

Propriedade Valor
serviceName oslogin.googleapis.com
resourceName Uma string com o número do projeto. Esse número indica a qual solicitação de login o registro de auditoria pertence. Por exemplo, projects/myproject12345.
severity O nível de gravidade da mensagem do registro. Por exemplo, INFO ou WARNING.
request.email O endereço de e-mail do usuário que a chamada de API está autenticando.
request.numericProjectId O número do projeto do Google Cloud Platform.
response.@type type.googleapis.com/google.cloud.oslogin.OsLoginService.v1.StartOrContinueSessionResponse
response.sessionId Uma string com o código exclusivo da sessão. Esse código é transmitido para a próxima chamada de API na sequência.
response.authenticationStatus Status da sessão. Por exemplo, Authenticated, Challenge required ou Challenge pending.
response.challenges O conjunto de desafios que é possível tentar passar nesta rodada de autenticação. No máximo, um desses desafios é iniciado e tem o status READY. Os outros são fornecidos como opções que o usuário pode especificar como uma alternativa ao desafio principal proposto.

Registros de auditoria StartSession

Propriedade Valor
methodName google.cloud.oslogin.OsLoginService.v1.StartSession
request.@type type.googleapis.com/google.cloud.oslogin.OsLoginService.v1.StartSessionRequest
request.supportedChallengeTypes A lista de tipos de desafio ou métodos de 2FA que podem ser escolhidos.

Registros de auditoria ContinueSession

Propriedade Valor
methodName google.cloud.oslogin.OsLoginService.v1.ContinueSession
request.sessionId Uma string com o código exclusivo da sessão anterior. Esse código é transmitido da chamada de API anterior na sequência.
request.@type type.googleapis.com/google.cloud.oslogin.OsLoginService.v1.ContinueSessionRequest
request.challengeId Uma string com o código do desafio que será iniciado ou executado. Esse código precisa pertencer a um tipo de desafio retornado da chamada response.challenges em uma resposta de API anterior.
request.action A ação a ser tomada.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine