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: 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.
A autenticação é
o processo de verificação da 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 da seguinte maneira.
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
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=true
está incluído nos metadados do projeto para todos os novos projetos.- As solicitações que definem
enable-oslogin
comofalse
nos 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 VMs:- Cloud Data Fusion versões 6.1.4 e anteriores
- Cloud Composer
- Clusters públicos do Google Kubernetes Engine (GKE) que executam versões anteriores à 1.23.5
- Clusters particulares do GKE que executam versões do pool de nós anteriores à 1.20.5
- Dataproc sem servidor
- VMs do SQL Server e do Windows Server
- VMs do Fedora CoreOS. Para gerenciar o acesso das instâncias às VMs criadas usando essas imagens, use o sistema de ignição do Fedora CoreOS.
Soluções alternativas para o Cloud Data Fusion, Cloud Composer e GKE
Para usar o Login do SO em organizações que usam o Cloud Data Fusion, o Cloud Composer e o GKE, 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 do Google Cloud ou a CLI do Google Cloud.
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-id
pelo 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 Console do Google Cloud, acesse a página de seleção do projeto e da organização.
- No menu suspenso Organização, selecione sua organização.
- Clique em Tudo para ver todas as organizações.
- Clique no nome da organização.
- Clique em Adicionar para acrescentar um novo papel a um usuário.
- Especifique o nome de usuário para quem você quer configurar o acesso à instância.
- Clique em Selecionar um papel para especificar os papéis que você quer conceder aos usuários.
- Na lista de papéis do Compute Engine, selecione Usuário externo do login do SO do Compute.
- Clique em Adicionar para confirmar a concessão do papel selecionado ao usuário.
- 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 OS Login
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.com
terá o nome de usuáriouser
se 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 administrador do Google Workspace, é possível usar o SDK Admin do Google Workspace para fazer a auditoria das ações realizadas com a API OS Login. 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 do Google Cloud
na documentação das APIs de relatórios relacionadas ao 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ê é administrador de uma organização, poderá usar 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 entre1001
e60000
ou entre65535
e2147483647
. Para acessar um Container-Optimized OS, oUID
precisa ter um valor entre65536
e214748646
. OUID
precisa 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/bash
ou/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
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.
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 uma cota maior no Console do Google Cloud da página "Cotas".
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
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 da força de trabalho com o Login do SO.
Os usuários em organizações que usam a federação de identidade de colaboradores não podem 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 do Google Cloud, a gcloud CLI 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 VMs.
- 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 gcloud CLI, 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 compute ssh
:
-
No Console do Google Cloud, ative o Cloud Shell.
Na parte inferior do Console do 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 compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME
Conecte-se à VM executando o seguinte comando:
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
--project
e--zone
desse comando. 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_username
do 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.signSshPublicKey
e 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_NAME
pelo 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_username
do 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.