Este documento descreve como usar o Login do SO para gerenciar o acesso a instâncias de VM em toda a organização.
Neste tópico, abordamos as seguintes tarefas:
- Ativar o Login do SO em uma organização usando uma política dela: use uma política da organização para garantir que todas as instâncias de VM da organização tenham o Login do SO ativado.
- Conceder acesso à instância para usuários de fora da organização: permita que contas de usuário de fora da sua organização usem o SSH para conexão com as instâncias.
- Gerenciar a API Login do SO: permita ou negue o acesso de usuários para usar a API Login do SO. Também ative ou desative os recursos da API Login do SO.
- Fazer auditoria de eventos de login do SO: rastreie eventos e atividades relacionados ao login do SO, como adição, exclusão ou atualização de uma chave SSH ou exclusão de informações POSIX.
- Modificar contas de usuário usando a API Directory: atualize as propriedades do usuário, como nome de usuário e informações da conta POSIX, por meio da API Directory.
- Usar grupos do Linux com o Login do SO (descontinuado): gerencie as permissões de usuário nas VMs usando grupos do Linux com o Login do SO.
- Usar o Login do SO com a federação de identidade de colaboradores (pré-lançamento): conecte-se a VMs que tenham o Login do SO ativado quando a organização usar um provedor de identidade externo (IdP).
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 Google Cloud . 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 Google Cloud para acessar serviços Google Cloud e APIs, não é necessário configurar a autenticação.
gcloud
-
Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initAo 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.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para CLI gcloud.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .
Política da organização de login do SO
Configure uma restrição de Login do SO na organização para garantir que todos os novos projetos e as instâncias de VM criadas neles tenham esse recurso ativado.
Quando essa restrição é configurada, as seguintes condições são aplicadas:
enable-oslogin=trueestá incluído nos metadados do projeto para todos os novos projetos.- As solicitações que definem
enable-oslogincomofalsenos metadados da instância ou do projeto são rejeitadas para VMs e projetos novos e atuais.
Limitações
O Login do SO não é compatível com os seguintes produtos, recursos e imagens de SO:- Cloud Data Fusion versões 6.1.4 e anteriores.
- Serviço gerenciado para Apache Airflow 1.
- 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 de SO:
- Windows Server e SQL Server.
- Fedora CoreOS. Para gerenciar o acesso das instâncias às instâncias de computação criadas usando essas imagens, use o sistema de ignição do Fedora CoreOS.
- SLES 16. Para gerenciar o acesso a instâncias de computação criadas com essas imagens, use o SSH baseado em metadados.
Soluções alternativas para o Cloud Data Fusion e o Airflow Gerenciado
Para usar o Login do SO em organizações que usam o Cloud Data Fusion e o Airflow Gerenciado, ative a restrição de login do SO no nível da organização e desative seletivamente a restrição em projetos ou pastas dos projetos afetados.
Para mais informações sobre como editar políticas da organização, consulte Como criar e editar políticas.
Ativar a política da organização
Para ativar a política de Login do SO, é possível definir a restrição desse recurso em projetos e pastas específicos usando a CLI do Google Cloud. Também é possível definir a restrição de Login do SO em toda a organização usando o console Google Cloud ou a Google Cloud CLI.
Console
Para definir a política da organização de Login do SO no console, conclua as seguintes etapas:
- No console do Google Cloud , acesse a página Políticas da organização.
- Na lista de políticas, clique em Requer Login do SO para ver as restrições desse recurso.
- Clique em Editar para editar suas restrições de Login do SO atuais.
- Na página Editar, selecione Personalizar.
- Para ativar a aplicação dessa restrição, selecione Ativado.
- Clique em Salvar para aplicar as configurações da restrição.
gcloud
Para definir a política da organização de Login do SO, use o comando gcloud beta resource-manager org-policies enable-enforce.
Encontre o ID da sua organização
gcloud organizations list
Defina a restrição na sua organização. Substitua
organization-idpelo ID da organização.gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \ --organization=organization-id
É possível também aplicar a política da organização de Login do SO a uma pasta ou um projeto com as sinalizações --folder ou --project e o ID da pasta e do projeto, respectivamente.
Para pastas, execute o seguinte comando:
gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
--folder=folder-id
Para projetos, execute o seguinte comando:
gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
--project=project-id
Substitua:
folder-id: o ID da pasta.project-id: o ID do projeto.
Conceda acesso à instância a usuários fora da sua organização.
Por padrão, os usuários de fora da organização não podem definir chaves SSH para instâncias da organização nem receber acesso a elas. Em algumas situações, talvez seja necessário conceder acesso a instâncias para usuários que façam parte de uma organização diferente ou que tenham uma conta gmail.com do Google de uso doméstico.
O papel do IAM roles/compute.osLoginExternalUser permite que contas do Google externas interajam com os outros papéis do Login do SO para que configurem informações da conta POSIX.
Para conceder roles/compute.osLoginExternalUser e outros papéis com acesso a instâncias de Login do SO necessárias para usuários de fora da sua organização, conclua as seguintes etapas:
- No Google Cloud console, acesse a página IAM e administrador.
- Clique no menu suspenso Selecionar um projeto. Na caixa de diálogo Selecionar um recurso, selecione sua organização fazendo o seguinte:
- Clique no menu suspenso da organização para ver todas as suas organizações.
- Selecione sua organização no menu suspenso.
- Clique em Conceder acesso para adicionar uma nova função a um usuário.
- No campo Novos participantes, adicione o endereço de e-mail do usuário para quem você quer configurar o acesso à instância.
- No menu suspenso Papel, selecione o papel Usuário externo do login do SO do Compute.
- Clique em Salvar.
- Conceda os outros papéis de acesso à instância do Login do SO ao usuário no nível do projeto ou da organização, se ainda não tiver feito isso.
Agora o usuário pode conectar-se a instâncias do projeto que tenham o Login do SO ativado.
Gerenciar a API Login do SO
No nível da organização, é possível restringir o acesso à API OS Login ao configurar os controles de administrador do Google Workspace. Para fazer isso ou visualizar as opções de configuração, consulte Controlar quem usa o Google Cloud na sua organização. Como um administrador do Google Workspace, também é possível ativar ou desativar determinados recursos da API OS Login. Isso inclui as seguintes opções:
- Escolher se quer incluir o sufixo de domínio nos nomes de usuário gerados pela API Login do SO. Por exemplo, no domínio
example.com, o usuáriouser@example.comterá o nome de usuáriouserse a configuração para incluir o sufixo de domínio não estiver marcada. - Decidir se os membros da sua organização podem gerenciar chaves SSH usando a API Login do SO.
- Restringir ou permitir o acesso à VM aos usuários que não fazem parte da sua organização.
Para mais informações sobre como ativar ou desativar as configurações da API Login do SO, consulte Escolher configurações para o Google Cloud Platform.
Auditar eventos de login do SO
Como um admin do Google Workspace, é possível usar o SDK Admin do Google Workspace para fazer a auditoria das ações realizadas com a API Login do SO. Ao analisar esses eventos, é possível rastrear quando um usuário adiciona, exclui ou atualiza uma chave SSH ou exclui informações da conta POSIX.
É possível recuperar os eventos de atividade de auditoria da API OS Login usando o
SDK Admin do Google Workspace, basta chamar Activities.list() com
applicationName=gcp. Para mais informações, consulte
Eventos de atividade doGoogle Cloud
na documentação da API Reports do SDK Admin do Google Workspace.
Modifique as contas de usuários usando a API Directory.
O Login do SO usa as configurações de usuário do Cloud Identity ou do Google Workspace para se conectar a uma instância. Se você é um superadministrador do Google Workspace, use a API Directory para concluir as seguintes tarefas nas contas de usuário do Google Workspace ou do Cloud Identity:
- Modificar as configurações de login da instância
- Tornar o usuário um administrador
- Modificar as propriedades do usuário, como nome da conta e e-mail
- Adicionar e remover chaves SSH de um usuário
- Modificar informações da conta POSIX
- Alterar o nome de usuário com que ele se conecta à instância
Os exemplos a seguir mostram como modificar ou remover contas de usuário usando a API Directory. Para mais informações sobre as propriedades da conta que podem ser editadas, consulte a referência da API Directory.
Modificar propriedades da conta
Para modificar as informações da conta POSIX de um usuário ou gerenciar as chaves SSH do usuário, emita uma solicitação PUT para o método directory.users.update e especifique uma ou mais propriedades para alterar na conta de usuário.
Se você modificar as propriedades posixAccounts de um usuário, precisará especificar os valores atuais ou novos username, uid e gid na solicitação.
Se você modificar as propriedades sshPublicKeys do usuário, precisará especificar o valor key na solicitação.
Veja a seguir um exemplo de solicitação PUT:
PUT https://admin.googleapis.com/admin/directory/v1/users/USER_KEY
{
"posixAccounts": [
{
"username": "USERNAME",
"uid": "UID",
"gid": "GID",
"homeDirectory": "USER_HOME_PATH",
"shell": "SHELL_PATH"
}
],
"sshPublicKeys": [
{
"key": "KEY_VALUE",
"expirationTimeUsec": EXPIRATION_TIME
}
],
}
Substitua:
USER_KEY: endereço de e-mail principal do usuário, endereço de e-mail de alias ou ID exclusivo do usuário.USERNAME: o nome de usuário que o Compute Engine adiciona à VM para o usuário. Esse valor precisa ser exclusivo na sua organização e não pode terminar com um til ("~") ou conter um ponto (".").UID: ID do usuário na VM dele. Essa propriedade precisa ser um valor entre1001e60000ou entre65535e2147483647. Para acessar um Container-Optimized OS, oUIDprecisa ter um valor entre65536e214748646. OUIDprecisa ser exclusivo na sua organização;GID: o ID do grupo na VM a que o usuário pertence.USER_HOME_PATH: (opcional) o diretório inicial na VM do usuário. Por exemplo,/home/example_username.SHELL_PATH: (opcional) o caminho para o shell padrão do usuário depois que ele se conecta à instância. Por exemplo,/bin/bashou/bin/sh.KEY_VALUE: o valor da chave SSH pública.EXPIRATION_TIME: (opcional) o prazo de validade da chave em microssegundos desde a época (1 segundo = 106 microssegundos).
Remover as propriedades da conta
Para limpar os dados posixAccounts e sshPublicKeys de um usuário,
emita uma solicitação PUT para o
método directory.users.update,
configurando os campos posixAccounts e sshPublicKeys como null:
PUT https://admin.googleapis.com/admin/directory/v1/users/USER_KEY
{
"posixAccounts": null,
"sshPublicKeys": null
}
Substitua USER_KEY pelo endereço de e-mail principal
do usuário, pelo endereço de e-mail do alias ou pelo ID exclusivo do usuário.
Usar grupos do Linux com o Login do SO (descontinuado)
Os administradores da organização podem usar a API Cloud Identity Groups para configurar grupos complementares do Linux para usuários do Login do SO, criando e gerenciando grupos POSIX. O Login do SO vincula grupos POSIX a grupos Linux complementares nas VMs da sua organização para que você possa gerenciar as permissões que os usuários têm nas VMs.
Gerenciar a associação de usuários em grupos do Linux
Para criar um grupo POSIX, consulte Como criar e atualizar grupos POSIX.
Para adicionar usuários a um grupo, consulte Adicionar ou convidar usuários para um grupo.
Elas são atualizadas em até 10 minutos. As alterações em grupo são
refletidas em todas as VMs recém-criadas. As atualizações do grupo POSIX podem levar até seis horas
para serem propagadas para todas as VMs em execução. Os usuários talvez precisem sair ou usar o comando newgrp
para observar as mudanças no grupo.
Excluir configurações de grupos POSIX
O suporte a grupos POSIX do Login do SO foi descontinuado. Recomendamos que você exclua as configurações de grupos POSIX do Login do SO.
Você precisa ser um administrador da organização para excluir as configurações de grupo POSIX do Login do SO.
- Se você não souber o ID do recurso da organização, consulte como conseguir esse ID.
- Liste todos os grupos POSIX na sua organização. Anote o endereço de e-mail de cada grupo.
- Para cada grupo POSIX na sua organização, faça o seguinte:
- Recupere as informações do grupo. Observe o
posixGroups.gid. - Exclua o grupo POSIX.
- Recupere as informações do grupo. Observe o
- Se quiser, verifique se todos os grupos foram excluídos listando todos os grupos POSIX na sua organização. Se todos os grupos forem excluídos, a resposta vai estar vazia.
Limites de taxa para grupos do Linux com Login do SO
Grupos do Linux com Login do SO usam
cota oslogin.googleapis.com/metadata_server_groups_requests. Por padrão, o
limite de cota é de 60 solicitações/minuto por projeto para uma determinada região.
Se você precisar de uma limitação de taxa mais alta, solicite um ajuste de cota na página "Cotas" do console do Google Cloud .
Usar a federação de identidade de colaboradores com o Login do SO
As organizações que usam a federação de identidade de colaboradores podem usar o Login do SO para gerenciar o acesso às VMs. Quando a federação de identidade de colaboradores está ativada em uma organização, o Login do SO usa a autenticação com base no certificado no lugar daquela com base em chave para verificar as identidades dos usuários.
Antes de começar
- Crie um pool de identidades de colaboradores.
- Configure mapeamentos de atributos
google.posix_username. Configure a VM para que use o Login do SO com a federação de identidade de colaboradores conforme a seguir:
Para confirmar se a VM tem o OpenSSH 7.4 ou posterior instalado, execute o seguinte comando na VM:
ssh -V
Limitações
- Não é possível usar a federação de identidade de colaboradores com a autenticação de dois fatores (2FA) do Login do SO.
- A VM a que você está se conectando precisa ter o OpenSSH versão 7.4 ou mais recente para usar a federação de identidade de colaboradores com o Login do SO.
- Se sua organização usa a federação de identidade de colaboradores, não é possível acessar as portas seriais da VM.
Conectar-se a VMs que usam o Login do SO e a federação de identidade de colaboradores
Conecte-se a VMs que usam o Login do SO com a federação de identidade de colaboradores usando o console doGoogle Cloud , a CLI gcloud ou outros clientes SSH.
Console
Quando você se conecta a VMs que usam o Login do SO com a federação de identidade de colaboradores via SSH no navegador, o Compute Engine configura o certificado SSH em seu nome quando você tenta se conectar.
Para se conectar a VMs, faça isto:
- No console do Google Cloud , acesse a página Instâncias de VM.
-
Na lista de instâncias de máquina virtual, clique em SSH na linha da
instância à qual você quer se conectar.

gcloud
Quando você se conecta a VMs que usam o Login do SO com a federação de identidade de colaboradores via CLI gcloud, o Compute Engine configura o certificado SSH em seu nome quando você tenta se conectar.
Conecte-se a uma VM usando SSH executando o
comando gcloud beta compute ssh:
-
No console do Google Cloud , ative o Cloud Shell.
Na parte de baixo do console Google Cloud , uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
Execute este comando:
gcloud beta compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME
Substitua:
PROJECT_ID: o ID do projeto que contém a VM.ZONE: o nome da zona em que a VM está localizada.VM_NAME: o nome da VM
Se você tiver definido as propriedades padrão para a Google Cloud CLI, poderá omitir as sinalizações
--projecte--zonedesse comando. Por exemplo:gcloud compute ssh VM_NAME
IAP Desktop
Quando você se conecta a VMs que usam o Login do SO com a federação de identidade de colaboradores via Desktop IAP, o Compute Engine configura o certificado SSH em seu nome quando você tenta se conectar.
Para se conectar a uma VM usando o IAP Desktop, faça o seguinte:
-
Instale o IAP Desktop na sua estação de trabalho, se ainda não tiver feito isso.
-
Abra o IAP Desktop. A janela Adicionar projetos será aberta.
-
Quando solicitado, faça login com a federação de identidade de colaboradores.
-
Na janela Adicionar projetos, insira o ID ou o nome do projeto que contém as VMs a que você quer se conectar.
-
Na janela Project Explorer, clique com o botão direito do mouse no nome da VM novamente e selecione Conectar para se conectar à VM.
Cliente SSH
Para se conectar a uma VM que usa o Login do SO com a federação de identidade de colaboradores via cliente SSH, faça isto:
- Crie uma chave SSH caso ainda não tenha uma.
Assine sua chave SSH pública usando o método
users.projects.locations.signSshPublicKey:POST https://oslogin.googleapis.com/v1beta/users/USER/projects/PROJECT_ID/locations/LOCATION:signSshPublicKey { "ssh_public_key": "PUBLIC_KEY" }Substitua:
USER: uma identidade exclusiva em um pool de colaboradores, no seguinte formato:principal:%2F%2Fiam.googleapis.com%2Flocations%2Fglobal%2FworkforcePools%2POOL_ID%2Fsubject%2FSUBJECT_ATTRIBUTE_VALUE
Substitua:
POOL_ID: o pool de colaboradores do qual o usuário faz parte.SUBJECT_ATTRIBUTE_VALUE: o valor do mapeamento de atributosgoogle.posix_usernamedo usuário.
PROJECT_ID: o ID do projeto que contém a VM a que você quer se conectar.LOCATION: a zona onde está localizada a VM a que você quer se conectar.PUBLIC_KEY: o conteúdo do arquivo da sua chave pública SSH.
Copie o certificado SSH da saída do método
user.signSshPublicKeye salve o conteúdo em um novo arquivo.Execute o comando a seguir para definir permissões no arquivo do certificado SSH:
sudo chmod 600 FILE_NAME
Substitua
FILE_NAMEpelo nome do arquivo.Conecte-se à VM usando o seguinte comando:
ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
Substitua:
PATH_TO_PRIVATE_KEY: o caminho para o arquivo da sua chave SSH particular.PATH_TO_SSH_CERTIFICATE: o caminho para o arquivo do seu certificado SSH.USERNAME: o valor do mapeamento de atributosgoogle.posix_usernamedo usuário.EXTERNAL_IP: o endereço IP externo da VM.
A seguir
- Saiba como configurar o login do SO.
- Saiba como configurar o login do SO com a verificação em duas etapas.
- Leia uma visão geral do recurso de Login do SO.
- Resolva problemas do Login do SO.