Como gerenciar o Login do SO em uma organização

Se você usa o Login do SO para gerenciar o acesso às instâncias, é possível definir as configurações no nível de organização para sua conta do Cloud Identity. Por exemplo, controle quem pode usar diretamente a API OS Login, ative o Login do SO em todas as instâncias de VM de uma organização e conceda acesso a usuários externos.

Neste tópico, abordamos as seguintes tarefas:

Antes de começar

Como ativar o Login do SO usando uma política da organização

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 é definido como true nos metadados do projeto para todos os novos projetos.
  • As solicitações de atualização para definir enable-oslogin como false nos metadados da instância ou do projeto são rejeitadas.

Limitações

  • Essa restrição não é aplicável retroativamente. O login do SO não é ativado automaticamente em instâncias e projetos criados antes da aplicação da restrição.
  • As instâncias em execução no Google Kubernetes Engine não são compatíveis com o Login do SO. A ativação da restrição de Login do SO impede que os clusters do Google Kubernetes Engine criem novas instâncias em projetos a que a restrição se aplica.

    Para contornar esse problema, é possível ativar essa restrição no nível da organização e, em seguida, desativar seletivamente a restrição em projetos com clusters do Google Kubernetes Engine. Também é possível ativar o Login do SO no nível do projeto ou da pasta. Para mais informações sobre o gerenciamento de políticas da organização, consulte Como criar e gerenciar 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 ferramenta de linha de comando gcloud. 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 ferramenta de linha de comando gcloud.

Console

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

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

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

  2. Na lista de políticas, clique em Requer Login do SO para ver as restrições desse recurso.
  3. Clique em Editar para editar suas restrições de Login do SO atuais.
  4. Na página Editar, selecione Personalizar.
  5. Para ativar a aplicação dessa restrição, selecione Ativado.
  6. 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.

  1. Encontre o ID da sua organização

    gcloud organizations list
  2. 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 o seguinte:

Como conceder acesso à instância para usuários de fora da 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:

  1. No Console do Google Cloud, acesse a página de seleção do projeto e da organização.

    Acessar a página de seleção do projeto e da organização

  2. No menu suspenso Organização, selecione sua organização.
    1. Clique em Tudo para ver todas as organizações.
    2. Clique no nome da organização.
  3. Clique em Adicionar para acrescentar um novo papel a um usuário.
  4. Especifique o nome de usuário para quem você quer configurar o acesso à instância.
  5. Clique em Selecionar um papel para especificar os papéis que você quer conceder aos usuários.
  6. Na lista de papéis do Compute Engine, selecione Usuário externo do login do SO do Compute.
  7. Clique em Adicionar para confirmar a concessão do papel selecionado ao usuário.
  8. 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.

Como gerenciar a API Login do SO

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

  • Escolher se quer incluir o sufixo de domínio nos nomes de usuário gerados pela API Login do SO. Por exemplo, no domínio example.com, o usuá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.
  • 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.

Como fazer a auditoria de eventos do 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.

Como modificar 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 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

Para mais informações sobre as propriedades da conta que podem ser editadas, consulte a referência da API Directory (em inglês).

Por exemplo, crie uma solicitação PUT para o método directory.users.update e especifique uma ou mais propriedades a serem alteradas na conta de usuário:

PUT https://compute.googleapis.com/admin/directory/v1/users/user-id-key

{
 "posixAccounts": [
   {
    "username": "user-name",
    "uid": "uid",
    "gid": "gid",
    "homeDirectory": "user-home-path",
    "shell": "shell-path"
   }
  ],
}

Substitua o seguinte:

  • user-id-key: um ID imutável para o usuário.
  • user-name: o nome de usuário que o Compute Engine adiciona à instância para o usuário. Esse valor precisa ser exclusivo na sua organização. O user-name não pode terminar com um til ("~") ou conter um ponto ("."). Isso pode causar problemas durante a execução de comandos sudo na VM.
  • uid: ID do usuário na instância dele. Essa propriedade precisa ser um valor entre 1001 e 60000 ou entre 65535 e 2147483647. Para acessar um Container-Optimized OS, o UID precisa ter um valor entre 65536 e 214748646. O UID precisa ser exclusivo na sua organização;
  • gid: ID do grupo na instância a que o usuário pertence.
  • user-home-path: o diretório inicial da instância do usuário. Por exemplo, /home/example_username.
  • shell-path: o caminho para o shell padrão do usuário depois que ele se conecta à instância. Por exemplo, /bin/bash ou /bin/sh.

A seguir