Gerenciar o login do sistema operacional em uma organização,Gerenciar o login do sistema operacional em uma organização


Este documento descreve como você pode usar o Login do SO para gerenciar o acesso a instâncias de VM em sua organização.

Este tópico abrange as seguintes tarefas:

Antes de começar

  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      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

Você pode configurar uma restrição de Login do SO em sua organização para garantir que todos os novos projetos e as instâncias de VM criadas nesses novos projetos tenham o Login do SO habilitado.

Quando esta 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 como false na instância ou nos metadados do projeto são rejeitadas para VMs e projetos novos e existentes.

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
  • Compositor de nuvem 1
  • Clusters públicos do Google Kubernetes Engine (GKE) que executam versões anteriores à 1.23.5
  • Clusters privados do GKE que executam versões de pool de nós anteriores à 1.20.5
  • Dataproc sem servidor
  • VMs do Windows Server e do SQL Server
  • VMs do Fedora CoreOS. Para gerenciar o acesso de instâncias a VMs criadas usando essas imagens, use o sistema de ignição Fedora CoreOS

Soluções alternativas para Cloud Data Fusion, Cloud Composer e GKE

Para usar o Login do SO em organizações que usam Cloud Data Fusion, Cloud Composer e GKE, você pode ativar a restrição de Login do SO no nível da organização e, em seguida, desativar seletivamente a restrição em projetos ou pastas dos projetos afetados.

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

Habilite a política da organização

Para ativar a política de login do SO, você pode definir a restrição de login do SO em projetos e pastas específicos usando a CLI do Google Cloud. Você também pode definir a restrição de login do SO para toda a organização usando o console do Google Cloud ou a CLI do Google Cloud.

Console

Para configurar a política da organização de Login do SO no console, conclua as etapas a seguir:

  1. No console do Google Cloud, acesse a página Políticas da organização .

    Acesse a página Políticas da organização

  2. Na lista de políticas, clique em Exigir login do SO para visualizar as restrições de login do SO.
  3. Clique em Editar para editar as restrições de login do sistema operacional existentes.
  4. Na página Editar , selecione Personalizar .
  5. Para ativar a aplicação desta restrição, selecione Ativado .
  6. Clique em Salvar para aplicar as configurações de 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 .

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

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

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

Você também pode aplicar a política de organização de Login do SO a uma pasta ou projeto com os sinalizadores --folder ou --project e o ID da pasta e o ID 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 o seguinte:

Conceda acesso à instância a usuários fora da sua organização

Por padrão, os usuários fora da sua organização não podem definir chaves SSH para instâncias da sua organização nem receber acesso às instâncias da sua organização. Em algumas situações, pode ser necessário conceder acesso à instância a usuários que façam parte de uma organização diferente ou que tenham uma conta pessoal do Google gmail.com .

A função roles/compute.osLoginExternalUser do IAM permite que Contas externas do Google interajam com outras funções de login do sistema operacional, permitindo que elas configurem informações da conta POSIX.

Para conceder roles/compute.osLoginExternalUser e outras funções de acesso de instância de Login do SO necessárias a usuários fora da sua organização, conclua as etapas a seguir:

  1. No console do Google Cloud, acesse a página IAM e administrador .

    Vá para IAM e administrador

  2. Clique no menu suspenso Selecionar um projeto . Na caixa de diálogo Selecionar um recurso que aparece, selecione sua organização fazendo o seguinte:
    1. Clique no menu suspenso da organização para visualizar todas as suas organizações.
    2. Selecione sua organização no menu suspenso.
  3. Clique em Conceder acesso para adicionar uma nova função a um usuário.
  4. No campo Novos principais , adicione o endereço de e-mail do usuário para quem você deseja configurar o acesso à instância.
  5. No menu suspenso Função , selecione a função Usuário externo de login do Compute OS .
  6. Clique em Salvar .
  7. Se ainda não tiver feito isso, conceda as outras funções de acesso da instância de Login do SO ao usuário no nível do projeto ou da organização.

O usuário agora pode se conectar a instâncias do seu projeto que tenham o Login do SO habilitado.

Gerenciar a API de login do sistema operacional

No nível da organização, você pode restringir o acesso à API OS Login definindo os controles administrativos do Google Workspace. Para configurar os controles administrativos do Google Workspace ou visualizar opções de configuração, consulte Controlar quem usa o Google Cloud na sua organização . Como administrador do Google Workspace, você também pode ativar ou desativar determinados recursos da API OS Login. Isso inclui as seguintes opções:

  • Escolha se deseja incluir o sufixo de domínio nos nomes de usuário gerados pela API de login do SO. Por exemplo, no domínio example.com , o usuário user@example.com terá o nome de usuário user se a configuração para incluir o sufixo de domínio não estiver marcada.
  • Decida se os membros da sua organização podem gerenciar chaves SSH usando a API de login do sistema operacional.
  • Restrinja ou permita o acesso à VM a usuários fora da sua organização.

Para obter mais informações sobre como ativar ou desativar as configurações da API de login do sistema operacional, consulte Escolher configurações para o Google Cloud Platform .

Auditar eventos de login do SO

Como administrador do Google Workspace, você pode usar o SDK Admin do Google Workspace para auditar ações realizadas com a API OS Login. Ao revisar esses eventos, você pode acompanhar quando um usuário adiciona, exclui ou atualiza uma chave SSH ou exclui informações da conta POSIX.

Você pode recuperar eventos de atividade de auditoria da API de login do SO, no SDK Admin do Google Workspace, chamando Activities.list() com applicationName=gcp . Para obter mais informações, consulte Google Cloud eventos de atividade na documentação da API de relatórios do SDK Admin do Google Workspace.

Modifique contas de usuário usando a API Directory

O Login do SO usa as configurações de usuário do Cloud Identity ou do Google Workspace ao se conectar a uma instância. Se você for 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:

  • Modifique as configurações de login da instância.
  • Tornar um usuário um administrador
  • Modifique as propriedades do usuário, como nome da conta e email
  • Adicionar e remover chaves SSH de um usuário
  • Modificar informações da conta POSIX
  • Altere o nome de usuário ao qual os usuários se conectam na instância.

Os exemplos a seguir mostram como modificar ou remover contas de usuário usando a API Directory. Para obter mais informações sobre as propriedades da conta que você pode editar, 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 a serem alteradas na conta do usuário.

Se você modificar as propriedades posixAccounts de um usuário, deverá especificar os valores atuais ou novos username , uid e gid na solicitação.

Se você modificar as propriedades sshPublicKeys do usuário, deverá especificar o valor key na solicitação.

A seguir está um exemplo de uma 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 o seguinte:

  • USER_KEY : o endereço de e-mail principal, endereço de e-mail alternativo ou ID de usuário exclusivo do usuário.
  • USERNAME : o nome de usuário que o Compute Engine adiciona à VM para o usuário. Esse valor deve ser exclusivo em sua organização e não deve terminar com um til ("~") nem conter um ponto final (".").
  • UID : o ID do usuário na VM deste usuário. Esta propriedade deve ter um valor entre 1001 e 60000 ou um valor entre 65535 e 2147483647 . Para acessar um sistema operacional otimizado para contêiner, o UID deve ter um valor entre 65536 e 214748646 . O UID deve ser exclusivo em sua organização.
  • GID : o ID do grupo na VM ao qual 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 após ele se conectar à instância. Por exemplo, /bin/bash ou /bin/sh .
  • KEY_VALUE : o valor da chave SSH pública.
  • EXPIRATION_TIME : (opcional) o tempo de expiração da chave em microssegundos desde a época (1 segundo = 10 6 microssegundos).

Remover 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 , 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 e-mail principal, endereço de e-mail alternativo ou ID de usuário exclusivo do usuário.

Use grupos Linux com login do sistema operacional (obsoleto)

Os administradores da organização podem usar a API Cloud Identity Groups para configurar grupos Linux complementares para usuários de 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 suas VMs.

Gerenciar a associação de usuários em grupos Linux

Para criar um grupo POSIX, consulte Criando e atualizando grupos POSIX .

Para adicionar usuários a um grupo, consulte Adicionar ou convidar usuários para um grupo .

As atualizações de assinatura entram em vigor em 10 minutos. As alterações do 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 podem ter que sair ou usar o comando newgrp para observar as alterações do grupo.

Excluir configurações de grupos POSIX

O suporte ao grupo POSIX de login do sistema operacional está obsoleto. Recomendamos que você exclua as configurações de grupos POSIX do Login do SO.

Você deve ser um administrador da organização para excluir configurações de grupo POSIX de login do sistema operacional.

  1. Se você não souber o ID do recurso da sua organização, obtenha o ID do recurso da sua organização .
  2. Liste todos os grupos POSIX em sua organização. Anote o endereço de e-mail de cada grupo.
  3. Para cada grupo POSIX na sua organização, faça o seguinte:
    1. Recuperar as informações do grupo . Observe o posixGroups.gid .
    2. Exclua o grupo POSIX .
  4. Opcionalmente, verifique se todos os grupos foram excluídos listando todos os grupos POSIX na sua organização. Se todos os grupos foram excluídos com sucesso, a resposta estará vazia.

Limites de taxa para grupos Linux com login do sistema operacional

Grupos Linux com login do sistema operacional 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 região específica.

Se precisar de um limite de taxa mais alto, você poderá solicitar cota adicional na página Cotas no console do Google Cloud.

Ir para cotas

Use a federação de identidade da força de trabalho com o Login do SO

As organizações que usam a federação de identidade da força de trabalho podem usar o Login do SO para gerenciar o acesso às suas VMs. Quando a federação de identidade da força de trabalho está habilitada para uma organização, o Login do SO usa autenticação baseada em certificado em vez de autenticação baseada em chave para verificar as identidades dos usuários.

Antes de começar

Limitações

  • A VM à qual você está se conectando deve ter o OpenSSH versão 7.4 ou posterior para usar a federação de identidade da força de trabalho com o login do sistema operacional.
  • Se sua organização usar a federação de identidade da força de trabalho, você não poderá acessar as portas seriais da VM.
  • Os certificados SSH são suportados apenas para VMs nas seguintes regiões:
    • asia-east1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west4
    • northamerica-northeast1
    • southamerica-west1
    • us-central1
    • us-central2
    • us-east1
    • us-east4
    • us-east5
    • us-east7
    • us-south1
    • us-west1
    • us-west4
    • us-west8

Conecte-se a VMs que usam login do sistema operacional e federação de identidade da força de trabalho

Conecte-se a VMs que usam o Login do SO com federação de identidade da força de trabalho usando o console do Google Cloud, a CLI gcloud ou outros clientes SSH.

Console

Quando você se conecta a VMs que usam o Login do SO com federação de identidade da força de trabalho usando SSH-in-browser , o Compute Engine configura o certificado SSH em seu nome quando você tenta se conectar.

Para se conectar às 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 você se conecta a VMs que usam o Login do SO com federação de identidade da força de trabalho usando a 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 :

  1. 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.

  2. 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 você definiu propriedades padrão para a CLI do Google Cloud, poderá omitir as sinalizações --project e --zone deste comando. Por exemplo:

    gcloud compute ssh VM_NAME

Área de trabalho IAP

Quando você se conecta a VMs que usam o Login do SO com federação de identidade da força de trabalho usando o IAP Desktop , 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:

  1. Instale o IAP Desktop em sua estação de trabalho, caso ainda não o tenha feito.

  2. Abra o IAP Desktop. A janela Adicionar projetos é aberta.

  3. Quando solicitado, faça login na federação de identidade da força de trabalho .

  4. Na janela Adicionar projetos , insira o ID do projeto ou o nome do projeto que contém as VMs às quais você deseja se conectar.

  5. Na janela Project Explorer , clique com o botão direito no nome da VM novamente e selecione Conectar para conectar-se à VM.

Cliente SSH

Para se conectar a uma VM que usa o Login do SO com federação de identidade da força de trabalho usando um cliente SSH, faça o seguinte:

  1. Crie uma chave SSH se ainda não tiver uma.
  2. 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 o seguinte:

    • USER : uma identidade única em um 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 você deseja se conectar.

    • LOCATION : a zona onde está localizada a VM à qual você deseja se conectar.

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

  3. Copie o certificado SSH da saída do método user.signSshPublicKey e salve o conteúdo em um novo arquivo.

  4. Defina permissões no arquivo de certificado SSH executando o seguinte comando:

    sudo chmod 600 FILE_NAME
    

    Substitua FILE_NAME pelo nome do arquivo.

  5. Conecte-se à VM usando o 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 seu arquivo de chave SSH privado.
    • PATH_TO_SSH_CERTIFICATE : o caminho para o seu arquivo de certificado SSH.
    • USERNAME : o valor do mapeamento de atributos google.posix_username do usuário.
    • EXTERNAL_IP : o endereço IP externo da VM.

O que vem a seguir

,

Este documento descreve como você pode usar o Login do SO para gerenciar o acesso a instâncias de VM em sua organização.

Este tópico abrange as seguintes tarefas:

Antes de começar

  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      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

Você pode configurar uma restrição de Login do SO em sua organização para garantir que todos os novos projetos e as instâncias de VM criadas nesses novos projetos tenham o Login do SO habilitado.

Quando esta 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 como false na instância ou nos metadados do projeto são rejeitadas para VMs e projetos novos e existentes.

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
  • Compositor de nuvem 1
  • Clusters públicos do Google Kubernetes Engine (GKE) que executam versões anteriores à 1.23.5
  • Clusters privados do GKE que executam versões de pool de nós anteriores à 1.20.5
  • Dataproc sem servidor
  • VMs do Windows Server e do SQL Server
  • VMs do Fedora CoreOS. Para gerenciar o acesso de instâncias a VMs criadas usando essas imagens, use o sistema de ignição Fedora CoreOS

Soluções alternativas para Cloud Data Fusion, Cloud Composer e GKE

Para usar o Login do SO em organizações que usam Cloud Data Fusion, Cloud Composer e GKE, você pode ativar a restrição de Login do SO no nível da organização e, em seguida, desativar seletivamente a restrição em projetos ou pastas dos projetos afetados.

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

Habilite a política da organização

Para ativar a política de login do SO, você pode definir a restrição de login do SO em projetos e pastas específicos usando a CLI do Google Cloud. Você também pode definir a restrição de login do SO para toda a organização usando o console do Google Cloud ou a CLI do Google Cloud.

Console

Para configurar a política da organização de Login do SO no console, conclua as etapas a seguir:

  1. No console do Google Cloud, acesse a página Políticas da organização .

    Acesse a página Políticas da organização

  2. Na lista de políticas, clique em Exigir login do SO para visualizar as restrições de login do SO.
  3. Clique em Editar para editar as restrições de login do sistema operacional existentes.
  4. Na página Editar , selecione Personalizar .
  5. Para ativar a aplicação desta restrição, selecione Ativado .
  6. Clique em Salvar para aplicar as configurações de 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 .

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

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

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

Você também pode aplicar a política de organização de Login do SO a uma pasta ou projeto com os sinalizadores --folder ou --project e o ID da pasta e o ID 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 o seguinte:

Conceda acesso à instância a usuários fora da sua organização

Por padrão, os usuários fora da sua organização não podem definir chaves SSH para instâncias da sua organização nem receber acesso às instâncias da sua organização. Em algumas situações, pode ser necessário conceder acesso à instância a usuários que façam parte de uma organização diferente ou que tenham uma conta pessoal do Google gmail.com .

A função roles/compute.osLoginExternalUser do IAM permite que Contas externas do Google interajam com outras funções de login do sistema operacional, permitindo que elas configurem informações da conta POSIX.

Para conceder roles/compute.osLoginExternalUser e outras funções de acesso de instância de Login do SO necessárias a usuários fora da sua organização, conclua as etapas a seguir:

  1. No console do Google Cloud, acesse a página IAM e administrador .

    Vá para IAM e administrador

  2. Clique no menu suspenso Selecionar um projeto . Na caixa de diálogo Selecionar um recurso que aparece, selecione sua organização fazendo o seguinte:
    1. Clique no menu suspenso da organização para visualizar todas as suas organizações.
    2. Selecione sua organização no menu suspenso.
  3. Clique em Conceder acesso para adicionar uma nova função a um usuário.
  4. No campo Novos principais , adicione o endereço de e-mail do usuário para quem você deseja configurar o acesso à instância.
  5. No menu suspenso Função , selecione a função Usuário externo de login do Compute OS .
  6. Clique em Salvar .
  7. Se ainda não tiver feito isso, conceda as outras funções de acesso da instância de Login do SO ao usuário no nível do projeto ou da organização.

O usuário agora pode se conectar a instâncias do seu projeto que tenham o Login do SO habilitado.

Gerenciar a API de login do sistema operacional

No nível da organização, você pode restringir o acesso à API OS Login definindo os controles administrativos do Google Workspace. Para configurar os controles administrativos do Google Workspace ou visualizar opções de configuração, consulte Controlar quem usa o Google Cloud na sua organização . Como administrador do Google Workspace, você também pode ativar ou desativar determinados recursos da API OS Login. Isso inclui as seguintes opções:

  • Escolha se deseja incluir o sufixo de domínio nos nomes de usuário gerados pela API de login do SO. Por exemplo, no domínio example.com , o usuário user@example.com terá o nome de usuário user se a configuração para incluir o sufixo de domínio não estiver marcada.
  • Decida se os membros da sua organização podem gerenciar chaves SSH usando a API de login do sistema operacional.
  • Restrinja ou permita o acesso à VM a usuários fora da sua organização.

Para obter mais informações sobre como ativar ou desativar as configurações da API de login do sistema operacional, consulte Escolher configurações para o Google Cloud Platform .

Auditar eventos de login do SO

Como administrador do Google Workspace, você pode usar o SDK Admin do Google Workspace para auditar ações realizadas com a API OS Login. Ao revisar esses eventos, você pode acompanhar quando um usuário adiciona, exclui ou atualiza uma chave SSH ou exclui informações da conta POSIX.

Você pode recuperar eventos de atividade de auditoria da API de login do SO, no SDK Admin do Google Workspace, chamando Activities.list() com applicationName=gcp . Para obter mais informações, consulte Google Cloud eventos de atividade na documentação da API de relatórios do SDK Admin do Google Workspace.

Modifique contas de usuário usando a API Directory

O Login do SO usa as configurações de usuário do Cloud Identity ou do Google Workspace ao se conectar a uma instância. Se você for 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:

  • Modifique as configurações de login da instância.
  • Tornar um usuário um administrador
  • Modifique as propriedades do usuário, como nome da conta e email
  • Adicionar e remover chaves SSH de um usuário
  • Modificar informações da conta POSIX
  • Altere o nome de usuário ao qual os usuários se conectam na instância.

Os exemplos a seguir mostram como modificar ou remover contas de usuário usando a API Directory. Para obter mais informações sobre as propriedades da conta que você pode editar, 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 a serem alteradas na conta do usuário.

Se você modificar as propriedades posixAccounts de um usuário, deverá especificar os valores atuais ou novos username , uid e gid na solicitação.

Se você modificar as propriedades sshPublicKeys do usuário, deverá especificar o valor key na solicitação.

A seguir está um exemplo de uma 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 o seguinte:

  • USER_KEY : o endereço de e-mail principal, endereço de e-mail alternativo ou ID de usuário exclusivo do usuário.
  • USERNAME : o nome de usuário que o Compute Engine adiciona à VM para o usuário. Esse valor deve ser exclusivo em sua organização e não deve terminar com um til ("~") nem conter um ponto final (".").
  • UID : o ID do usuário na VM deste usuário. Esta propriedade deve ter um valor entre 1001 e 60000 ou um valor entre 65535 e 2147483647 . Para acessar um sistema operacional otimizado para contêiner, o UID deve ter um valor entre 65536 e 214748646 . O UID deve ser exclusivo em sua organização.
  • GID : o ID do grupo na VM ao qual 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 após ele se conectar à instância. Por exemplo, /bin/bash ou /bin/sh .
  • KEY_VALUE : o valor da chave SSH pública.
  • EXPIRATION_TIME : (opcional) o tempo de expiração da chave em microssegundos desde a época (1 segundo = 10 6 microssegundos).

Remover 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 , 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 e-mail principal, endereço de e-mail alternativo ou ID de usuário exclusivo do usuário.

Use grupos Linux com login do sistema operacional (obsoleto)

Os administradores da organização podem usar a API Cloud Identity Groups para configurar grupos Linux complementares para usuários de 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 suas VMs.

Gerenciar a associação de usuários em grupos Linux

Para criar um grupo POSIX, consulte Criando e atualizando grupos POSIX .

Para adicionar usuários a um grupo, consulte Adicionar ou convidar usuários para um grupo .

As atualizações de assinatura entram em vigor em 10 minutos. As alterações do 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 podem ter que sair ou usar o comando newgrp para observar as alterações do grupo.

Excluir configurações de grupos POSIX

O suporte ao grupo POSIX de login do sistema operacional está obsoleto. Recomendamos que você exclua as configurações de grupos POSIX do Login do SO.

Você deve ser um administrador da organização para excluir configurações de grupo POSIX de login do sistema operacional.

  1. Se você não souber o ID do recurso da sua organização, obtenha o ID do recurso da sua organização .
  2. Liste todos os grupos POSIX em sua organização. Anote o endereço de e-mail de cada grupo.
  3. Para cada grupo POSIX na sua organização, faça o seguinte:
    1. Recuperar as informações do grupo . Observe o posixGroups.gid .
    2. Exclua o grupo POSIX .
  4. Opcionalmente, verifique se todos os grupos foram excluídos listando todos os grupos POSIX na sua organização. Se todos os grupos foram excluídos com sucesso, a resposta estará vazia.

Limites de taxa para grupos Linux com login do sistema operacional

Grupos Linux com login do sistema operacional 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 região específica.

Se precisar de um limite de taxa mais alto, você poderá solicitar cota adicional na página Cotas no console do Google Cloud.

Ir para cotas

Use a federação de identidade da força de trabalho com o Login do SO

As organizações que usam a federação de identidade da força de trabalho podem usar o Login do SO para gerenciar o acesso às suas VMs. Quando a federação de identidade da força de trabalho está habilitada para uma organização, o Login do SO usa autenticação baseada em certificado em vez de autenticação baseada em chave para verificar as identidades dos usuários.

Antes de começar

Limitações

  • A VM à qual você está se conectando deve ter o OpenSSH versão 7.4 ou posterior para usar a federação de identidade da força de trabalho com o login do sistema operacional.
  • Se sua organização usar a federação de identidade da força de trabalho, você não poderá acessar as portas seriais da VM.
  • Os certificados SSH são suportados apenas para VMs nas seguintes regiões:
    • asia-east1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west4
    • northamerica-northeast1
    • southamerica-west1
    • us-central1
    • us-central2
    • us-east1
    • us-east4
    • us-east5
    • us-east7
    • us-south1
    • us-west1
    • us-west4
    • us-west8

Conecte-se a VMs que usam login do sistema operacional e federação de identidade da força de trabalho

Conecte-se a VMs que usam o Login do SO com federação de identidade da força de trabalho usando o console do Google Cloud, a CLI gcloud ou outros clientes SSH.

Console

Quando você se conecta a VMs que usam o Login do SO com federação de identidade da força de trabalho usando SSH-in-browser , o Compute Engine configura o certificado SSH em seu nome quando você tenta se conectar.

Para se conectar às 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 você se conecta a VMs que usam o Login do SO com federação de identidade da força de trabalho usando a 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 :

  1. 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.

  2. 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 você definiu propriedades padrão para a CLI do Google Cloud, poderá omitir as sinalizações --project e --zone deste comando. Por exemplo:

    gcloud compute ssh VM_NAME

Desktop IAP

Quando você se conecta às VMs que usam o login do sistema operacional com a Federação de Identidade da Força de Trabalho usando o IAP Desktop , o Compute Engine configura o certificado SSH em seu nome quando você tentar se conectar.

Para conectar -se a uma VM usando a área de trabalho do IAP, faça o seguinte:

  1. Instale a área de trabalho do IAP em sua estação de trabalho, se você ainda não o fez.

  2. Abra a área de trabalho da IAP. A janela Add Projects é aberta.

  3. Quando solicitado, faça login com a Federação de Identidade da Força de Trabalho .

  4. Na janela Add Projects , insira o ID do projeto ou o nome do projeto que contém as VMs às quais você deseja conectar.

  5. Na janela do Project Explorer , clique com o botão direito do mouse no nome da VM novamente e selecione Connect para conectar-se à VM.

Cliente ssh

Para se conectar a uma VM que usa o login do sistema operacional com a Federação de Identidade da Força de Trabalho usando um cliente SSH, faça o seguinte:

  1. Crie uma chave SSH se você ainda não tiver uma.
  2. 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 o seguinte:

    • USER : uma única identidade em um 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 do projeto que contém a VM a que você deseja conectar.

    • LOCATION : A zona onde a VM a que você deseja se conectar está localizada.

    • PUBLIC_KEY : o conteúdo do seu arquivo de chave público ssh.

  3. Copie o certificado SSH da saída do Método user.signSshPublicKey e salve o conteúdo em um novo arquivo.

  4. Defina permissões no arquivo de certificado SSH, executando o seguinte comando:

    sudo chmod 600 FILE_NAME
    

    Substitua FILE_NAME pelo nome do arquivo.

  5. Conecte -se à VM usando o 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 seu arquivo de chave SSH privado.
    • PATH_TO_SSH_CERTIFICATE : o caminho para o seu arquivo de certificado SSH.
    • USERNAME : o valor do mapeamento do atributo google.posix_username do usuário.
    • EXTERNAL_IP : o endereço IP externo da VM.

O que vem a seguir