Faça a gestão do Início de sessão do SO numa organização

Este documento descreve como pode usar o Início de sessão do SO para gerir o acesso a instâncias de VMs na sua organização.

Este tópico aborda as seguintes tarefas:

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

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

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

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

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

Política da organização do Início de sessão do SO

Pode configurar uma restrição do Início de sessão do SO na sua organização para garantir que todos os novos projetos e as instâncias de VM criadas nestes novos projetos têm o Início de sessão do SO ativado.

Quando esta restrição está configurada, aplicam-se as seguintes condições:

  • enable-oslogin=true está incluído nos metadados do projeto para todos os novos projetos.
  • Os pedidos que definem enable-oslogin como false nos metadados da instância ou do projeto são rejeitados para VMs e projetos novos e existentes.

Limitações

O início de sessão no SO não é suportado nos seguintes produtos, funcionalidades e VMs:
  • Versões 6.1.4 e anteriores do Cloud Data Fusion
  • Cloud Composer 1
  • VMs do Windows Server e SQL Server
  • VMs do Fedora CoreOS. Para gerir o acesso de instâncias a VMs criadas com estas imagens, use o sistema de ignição do Fedora CoreOS

Soluções alternativas para o Cloud Data Fusion e o Cloud Composer

Para usar o Início de sessão do SO em organizações que usam o Cloud Data Fusion e o Cloud Composer, pode ativar a restrição do Início de sessão do SO ao nível da organização e, em seguida, desativar seletivamente a restrição em projetos ou pastas para os projetos afetados.

Para mais informações sobre a edição de políticas da organização, consulte o artigo Criar e editar políticas.

Ative a política de organização

Para ativar a política de Início de sessão do SO, pode definir a restrição de Início de sessão do SO em projetos e pastas específicos através da CLI do Google Cloud. Também pode definir a restrição de início de sessão do SO em toda a organização através da Google Cloud consola ou da CLI do Google Cloud.

Consola

Para definir a política da organização de início de sessão no SO a partir da consola, conclua os seguintes passos:

  1. Na Google Cloud consola, aceda à página Políticas de organização.

    Aceda à página Políticas da organização

  2. Na lista de políticas, clique em Exigir início de sessão do SO para ver as restrições do início de sessão do SO.
  3. Clique em Editar para editar as restrições de início de sessão do SO existentes.
  4. Na página Editar, selecione Personalizar.
  5. Para ativar a aplicação desta restrição, selecione Ativado.
  6. Clique em Guardar para aplicar as definições de restrição.

gcloud

Para definir a política da organização de Início de sessão do SO, use o comando gcloud beta resource-manager org-policies enable-enforce.

  1. Encontre o ID da sua organização.

    gcloud organizations list
  2. Defina a restrição na sua organização. Substitua organization-id pelo seu ID da organização.

    gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
        --organization=organization-id
    

Também pode aplicar a política organizacional de início de sessão no SO a uma pasta ou a um projeto com os flags --folder ou --project e o ID da pasta e o ID do projeto, respetivamente.

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 o seguinte:

Conceda acesso a instâncias a utilizadores fora da sua organização

Por predefinição, os utilizadores fora da sua organização não podem definir chaves SSH para instâncias na sua organização nem receber acesso a instâncias na sua organização. Em algumas situações, pode ter de conceder acesso à instância a utilizadores que fazem parte de uma organização diferente ou que têm uma conta Google de consumidor.gmail.com

A função do IAM roles/compute.osLoginExternalUser permite que as Contas Google externas interajam com as outras funções de Início de sessão do SO ao permitir-lhes configurar informações da conta POSIX.

Para conceder a função roles/compute.osLoginExternalUser e outras funções de acesso de instância do SO Login necessárias a utilizadores fora da sua organização, conclua os seguintes passos:

  1. Na Google Cloud consola, aceda à página IAM e administração.

    Aceda a IAM e administração

  2. Clique no menu pendente Selecionar um projeto. Na caixa de diálogo Selecionar um recurso apresentada, selecione a sua organização fazendo o seguinte:
    1. Clique no menu pendente da organização para ver todas as suas organizações.
    2. Selecione a sua organização no menu pendente.
  3. Clique em Conceder acesso para adicionar uma nova função a um utilizador.
  4. No campo Novos membros, adicione o endereço de email do utilizador para o qual quer configurar o acesso à instância.
  5. No menu pendente Função, selecione a função Utilizador externo de início de sessão no SO do Compute.
  6. Clique em Guardar.
  7. Se ainda não o fez, conceda as funções de acesso da outra instância do SO Login ao utilizador ao nível do projeto ou da organização.

O utilizador já pode estabelecer ligação a instâncias no seu projeto que tenham o Início de sessão no SO ativado.

Faça a gestão da API de Início de sessão do SO

Ao nível da organização, pode restringir o acesso à API OS Login definindo os controlos de administrador do Google Workspace. Para configurar os controlos de administrador do Google Workspace ou ver as opções de configuração, consulte o artigo Controle quem usa o Google Cloud na sua organização. Como administrador do Google Workspace, também pode ativar ou desativar determinadas funcionalidades da API OS Login. Isto inclui as seguintes opções:

  • Escolha se quer incluir o sufixo do domínio nos nomes de utilizadores gerados pela API OS Login. Por exemplo, no domínio example.com, o utilizador user@example.com tem o nome de utilizador user se a definição para incluir o sufixo do domínio não estiver selecionada.
  • Decida se os membros da sua organização podem gerir chaves SSH através da API OS Login.
  • Restrinja ou permita o acesso de VMs a utilizadores fora da sua organização.

Para mais informações sobre como ativar ou desativar as definições da API OS Login, consulte o artigo Escolha as definições para a Google Cloud Platform.

Audite eventos de início de sessão no SO

Enquanto administrador do Google Workspace, pode usar o SDK de administração do Google Workspace para auditar as ações realizadas com a API OS Login. Ao rever estes eventos, pode acompanhar quando um utilizador adiciona, elimina ou atualiza uma chave SSH, ou elimina informações da conta POSIX.

Pode obter eventos de atividade de auditoria da API OS Login, a partir do SDK de administrador do Google Workspace, chamando Activities.list() com applicationName=gcp. Para mais informações, consulte os Google Cloud eventos de atividade na documentação da API Google Workspace Admin SDK Reports.

Modifique contas de utilizador através da API Directory

O Início de sessão no SO usa as definições de utilizador do Cloud ID ou do Google Workspace quando se liga a uma instância. Se for um superadministrador do Google Workspace, pode usar a API Directory para concluir as seguintes tarefas para as suas contas de utilizador do Google Workspace ou do Cloud ID:

  • Modifique as definições de início de sessão da instância
  • Defina um utilizador como administrador
  • Modificar propriedades do utilizador, como o nome e o email da conta
  • Adicione e remova chaves SSH para um utilizador
  • Modifique as informações da conta POSIX
  • Altere o nome de utilizador ao qual os utilizadores se ligam na instância

Os exemplos seguintes mostram como modificar ou remover contas de utilizador através da API Directory. Para mais informações sobre as propriedades da conta que pode editar, consulte a referência da API Directory.

Modifique as propriedades da conta

Para modificar as informações da conta POSIX de um utilizador ou gerir as chaves SSH do utilizador, envie um pedido PUT para o método directory.users.update e especifique uma ou mais propriedades a alterar na conta de utilizador.

Se modificar as propriedades de um utilizador, tem de especificar os valores username, uid e gid atuais ou novos no pedido.posixAccounts

Se modificar as propriedades sshPublicKeys do utilizador, tem de especificar o valor key no pedido.

Segue-se um exemplo de um pedido 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 o seguinte:

  • USER_KEY: o endereço de email principal do utilizador, o endereço de email do alias ou o ID do utilizador exclusivo.
  • USERNAME: o nome de utilizador que o Compute Engine adiciona à VM para o utilizador. Este valor tem de ser único na sua organização e não pode terminar com um til ("~") nem conter um ponto (".").
  • UID: o ID do utilizador na VM para este utilizador. Esta propriedade tem de ser um valor entre 1001 e 60000 ou um valor entre 65535 e 2147483647. Para aceder a um SO otimizado para contentores, o elemento UID tem de ter um valor entre 65536 e 214748646. O UID tem de ser exclusivo na sua organização.
  • GID: o ID do grupo na VM ao qual o utilizador pertence.
  • USER_HOME_PATH: (opcional) o diretório base na VM para o utilizador. Por exemplo, /home/example_username.
  • SHELL_PATH: (Opcional) O caminho para a shell predefinida do utilizador depois de se ligar à instância. Por exemplo, /bin/bash ou /bin/sh.
  • KEY_VALUE: o valor da chave pública de SSH.
  • EXPIRATION_TIME: (opcional) a hora de validade da chave em microssegundos desde o início da época (1 segundo = 106 microssegundos).

Remova as propriedades da conta

Para limpar os dados posixAccounts e sshPublicKeys de um utilizador, envie um pedido PUT para o método directory.users.update, definindo 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 email principal do utilizador, pelo endereço de email do alias ou pelo ID do utilizador exclusivo.

Use grupos Linux com o Início de sessão do SO (descontinuado)

Os administradores da organização podem usar a API Cloud Identity Groups para configurar grupos Linux suplementares para utilizadores do Início de sessão do SO através da criação e gestão de grupos POSIX. O início de sessão no SO associa grupos POSIX a grupos Linux suplementares nas VMs da sua organização para que possa gerir as autorizações que os utilizadores têm nas suas VMs.

Faça a gestão da subscrição de utilizadores em grupos Linux

Para criar um grupo POSIX, consulte o artigo Criar e atualizar grupos POSIX.

Para adicionar utilizadores a um grupo, consulte o artigo Adicione ou convide utilizadores para um grupo.

As atualizações da subscrição entram em vigor no prazo de 10 minutos. As alterações ao grupo são refletidas em todas as VMs criadas recentemente. As atualizações de grupos POSIX podem demorar até seis horas a propagar-se a todas as VMs em execução. Os utilizadores podem ter de terminar sessão ou usar o comando newgrp para observar as alterações ao grupo.

Elimine as configurações de grupos POSIX

O suporte de grupos POSIX do Início de sessão no SO foi descontinuado. Recomendamos que elimine as configurações dos grupos POSIX de início de sessão do SO.

Tem de ser um administrador da organização para eliminar as configurações de grupos POSIX do Início de sessão do SO.

  1. Se não souber o ID do recurso da sua organização, obtenha o ID do recurso da sua organização.
  2. Indique todos os grupos POSIX na sua organização. Tenha em atenção o endereço de email de cada grupo.
  3. Para cada grupo POSIX na sua organização, faça o seguinte:
    1. Obtenha as informações do grupo. Tenha em atenção o posixGroups.gid.
    2. Elimine o grupo POSIX.
  4. Opcionalmente, verifique se todos os grupos foram eliminados listando todos os grupos POSIX na sua organização. Se todos os grupos tiverem sido eliminados com êxito, a resposta está vazia.

Limites de velocidade para grupos Linux com o Início de sessão do SO

Os grupos Linux com utilização do Início de sessão do SO usam a quota oslogin.googleapis.com/metadata_server_groups_requests. Por predefinição, o limite de quota é de 60 pedidos/minuto, por projeto para uma região específica.

Se precisar de um limite de taxa mais elevado, pode pedir um ajuste da quota na página Quotas da Google Cloud consola.

Aceder a Quotas

Use a federação de identidade da força de trabalho com o Início de sessão do SO

As organizações que usam a federação de identidade da força de trabalho podem usar o início de sessão do SO para gerir o acesso às respetivas VMs. Quando a federação de identidades da força de trabalho está ativada para uma organização, o Início de sessão do SO usa a autenticação baseada em certificados em vez da autenticação baseada em chaves para validar as identidades dos utilizadores.

Antes de começar

Limitações

  • Não pode usar a federação de identidades da força de trabalho com a autenticação de dois fatores (2FA) do início de sessão no SO.
  • A VM à qual está a estabelecer ligação tem de ter a versão 7.4 ou posterior do OpenSSH para usar a federação de identidades da força de trabalho com o início de sessão no SO.
  • Se a sua organização usar a federação de identidades da força de trabalho, não pode aceder às portas série das VMs.

Estabeleça ligação a VMs que usam o Início de sessão do SO e a federação de identidade da força de trabalho

Ligue-se a VMs que usam o Início de sessão do SO com a federação de identidades da força de trabalho através da Google Cloud consola, da CLI gcloud ou de outros clientes SSH.

Consola

Quando se liga a VMs que usam o Início de sessão do SO com a federação de identidades da força de trabalho através do SSH no navegador, o Compute Engine configura o certificado SSH em seu nome quando tenta estabelecer ligação.

Para estabelecer ligação a VMs, faça o seguinte:

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

    SSH button next to instance name.

gcloud

Quando se liga a VMs que usam o Início de sessão do SO com a federação de identidade da força de trabalho através da CLI gcloud, o Compute Engine configura o certificado SSH em seu nome quando tenta estabelecer ligação.

Estabeleça ligação a uma VM através do SSH executando o comando gcloud beta compute ssh:

    In the Google Cloud console, activate Cloud Shell.

    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.

  1. Execute o seguinte comando:

    gcloud beta compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    Substitua o seguinte:

    • 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 tiver definido propriedades predefinidas para a CLI gcloud, pode omitir as flags --project e --zone deste comando. Por exemplo:

    gcloud compute ssh VM_NAME
  2. IAP Desktop

    Quando se liga a VMs que usam o Início de sessão do SO com a federação de identidades da força de trabalho através do IAP Desktop, o Compute Engine configura o certificado SSH em seu nome quando tenta estabelecer ligação.

    Para estabelecer ligação a uma VM através do IAP Desktop, faça o seguinte:

    1. Instale o IAP Desktop na sua estação de trabalho, se ainda não o tiver feito.

    2. Abra o IAP Desktop. É apresentada a janela Adicionar projetos.

    3. Quando lhe for pedido, inicie sessão com a federação de identidade da força de trabalho.

    4. Na janela Adicionar projetos, introduza o ID do projeto ou o nome do projeto que contém as VMs às quais quer estabelecer ligação.

    5. Na janela Project Explorer, clique novamente com o botão direito do rato no nome da VM e selecione Connect para estabelecer ligação à VM.

    Cliente SSH

    Para estabelecer ligação a uma VM que usa o Início de sessão do SO com a federação de identidades da força de trabalho através de um cliente SSH, faça o seguinte:

    1. Crie uma chave SSH se ainda não tiver uma.
    2. Assine a sua chave pública de SSH através do 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 o seguinte:

      • USER: uma única identidade num pool de força de trabalho, no seguinte formato:

        principal:%2F%2Fiam.googleapis.com%2Flocations%2Fglobal%2FworkforcePools%2POOL_ID%2Fsubject%2FSUBJECT_ATTRIBUTE_VALUE
        

        Substitua o seguinte:

      • PROJECT_ID: o ID do projeto que contém a VM à qual quer estabelecer ligação.

      • LOCATION: a zona onde se encontra a VM à qual quer estabelecer ligação.

      • PUBLIC_KEY: o conteúdo do ficheiro de chave pública de SSH.

    3. Copie o certificado SSH do resultado do user.signSshPublicKey método e guarde o conteúdo num novo ficheiro.

    4. Defina autorizações no ficheiro de certificado SSH executando o seguinte comando:

      sudo chmod 600 FILE_NAME
      

      Substitua FILE_NAME pelo nome do ficheiro.

    5. Estabeleça ligação à VM através do seguinte comando:

      ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
      

      Substitua o seguinte:

      • PATH_TO_PRIVATE_KEY: o caminho para o ficheiro de chave SSH privada.
      • PATH_TO_SSH_CERTIFICATE: o caminho para o ficheiro de certificado SSH.
      • USERNAME: o valor do google.posix_usernamemapeamento de atributos do utilizador.
      • EXTERNAL_IP: o endereço IP externo da VM.

O que se segue?