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.
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 selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte 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=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 1
- 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
Permissões exigidas para a tarefa
Para executar essa tarefa, é necessário ter permissões:
resourcemanager.organizationAdmin role
. Para mais informações, consulte Controle de acesso para organizações que usam o IAM.- Para saber mais sobre como gerenciar políticas no nível da organização, consulte Adicionar um administrador de políticas 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.
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.
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 IAM e administrador.
- Clique no menu suspenso Selecionar um projeto. Na caixa de diálogo Select a resource
que aparece, selecione sua organização:
- Clique no menu suspenso "Organização" para ver todas as organizações.
- Selecione sua organização no menu suspenso.
- Clique em Conceder acesso para adicionar um novo papel 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 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 atividadeGoogle 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ê é 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.
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).
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 dos grupos POSIX do Login do SO.
Você precisa ser um administrador da organização para excluir as configurações do grupo POSIX do Login do SO.
- Se você não souber o ID do recurso da sua organização, peça o ID do recurso da sua organização.
- Listar 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:
- Recuperar as informações do grupo. Observe o
posixGroups.gid
. - Exclua o grupo POSIX.
- Recuperar as informações do grupo. Observe o
- Opcionalmente, verifique se todos os grupos foram excluídos listando todos os grupos POSIX na sua organização. Se todos os grupos tiverem sido 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 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.
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:
- In the Google Cloud console, go to the VM instances page.
-
In the list of virtual machine instances, click SSH in the row of
the instance that you want to connect to.
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 beta compute ssh
:
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
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
--project
e--zone
desse comando. Por exemplo:gcloud compute ssh
VM_NAME
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.
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%2
POOL_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.