Autenticar e configurar o acesso à API em uma estação de trabalho

Neste documento, descrevemos como autenticar e configurar o acesso à API em uma estação de trabalho, incluindo como fazer login usando a interface do Workstations para autenticar a CLI gcloud e fornecer credenciais para o Application Default Credentials (ADC).

Autenticar como usuário com a Google Cloud CLI

Depois de iniciar o Cloud Workstations, é possível acessar os serviços do Google Cloud e a API usando suas contas de usuário pela CLI do gcloud.

Para autenticar a CLI gcloud e fornecer credenciais de usuário ao Application Default Credentials (ADC), escolha uma das seguintes opções:

Login do usuário com a interface das estações de trabalho

Fazer login pelo console do Google Cloud autentica automaticamente a CLI do gcloud e fornece suas credenciais de usuário para o Application Default Credentials (ADC) no ambiente da estação de trabalho.

Ativar o login na interface nos recursos da estação de trabalho

Antes de usar esse recurso, verifique se a configuração da estação de trabalho e o cluster estão configurados para aceitar o login na interface:

  1. No console do Google Cloud , acesse a seção Configurações do ambiente da configuração da estação de trabalho. Em Autenticação, marque a caixa de seleção Ativar o envio de credenciais (ou defina enable_pushing_credentials: true na API).
  2. Defina o URL de base do console no cluster como o endpoint do console do Google Cloud (por exemplo, https://console.cloud.google.com/) usando a CLI gcloud:
    gcloud beta workstations clusters update CLUSTER_NAME \
        --region=REGION \
        --console-base-url="https://console.cloud.google.com/"

Fazer login na estação de trabalho

Para fazer login e autenticar sua estação de trabalho:

  1. No editor do Code OSS para Cloud Workstations, clique em Fazer login na estação de trabalho. Uma janela de login do console do Google Cloud é aberta.
  2. No console do Google Cloud , verifique os detalhes da estação de trabalho (como o ID da estação de trabalho) e da conta e clique em Continuar.
  3. Clique em Confirmar para concluir o login.
  4. Depois que a mensagem de confirmação aparecer, feche a janela do navegador e volte para o editor. Suas credenciais agora estão disponíveis para a CLI gcloud e o Application Default Credentials (ADC) no ambiente da estação de trabalho.

Sua sessão de login expira após uma hora. Quando a sessão estiver prestes a expirar, o botão de login no editor do Code OSS para Cloud Workstations vai mostrar EMAIL (Google) - Expira em breve (em que EMAIL é seu endereço de e-mail) ou O login da estação de trabalho expira em breve. Para atualizar suas credenciais, clique no botão e siga as instruções no console do Google Cloud .

Fazer login com a CLI gcloud

Se o login na interface não estiver ativado para sua configuração ou cluster, faça login manualmente usando a CLI gcloud em um terminal dentro da estação de trabalho:

  1. Abra um terminal na estação de trabalho. A forma de abrir uma janela do terminal depende do ambiente de desenvolvimento integrado que você está usando. Por exemplo, se você estiver usando o editor de base do Cloud Workstations, abra um terminal selecionando Terminal > Novo terminal ou pressionando Control+Shift+`.
  2. Faça a autenticação com o seguinte comando:
    gcloud auth login --no-launch-browser
  3. Siga as instruções fornecidas pelo comando para autenticar no Google Cloud.
  4. Especifique o ID do projeto do Google Cloud com o seguinte comando:
    gcloud config set project PROJECT_ID
  5. Ative o Application Default Credentials para chamar os serviços do Google Cloud .
    gcloud auth application-default login
  6. Suas credenciais da CLI da gcloud agora estão salvas e disponíveis para uso na estação de trabalho em sessões futuras.

Emitir uma solicitação HTTP para uma estação de trabalho

Para emitir uma solicitação HTTP para uma estação de trabalho, você precisa de um token de acesso para uma conta que tenha o papel de Usuário do Cloud Workstations nessa estação de trabalho:

  1. Gere um token de acesso usando o método de API generateAccessToken.
  2. Adicione um cabeçalho HTTP chamado Authorization com o valor Bearer $TOKEN.

Conectar-se à estação de trabalho no navegador

Abrir o URL da estação de trabalho no navegador autentica automaticamente por meio de um redirecionamento para o servidor das estações de trabalho e recupera um token de acesso gerado pelo método de API generateAccessToken. Isso redireciona de volta para sua estação de trabalho e define um cookie de autenticação válido para a sessão atual da estação de trabalho.

Para pular esse redirecionamento, use o parâmetro de URL _workstationAccessToken:

  1. Gere um token de acesso usando o método de API generateAccessToken.
  2. Abra o URL da estação de trabalho no navegador e anexe um parâmetro de URL com o seguinte formato: _workstationAccessToken=TOKEN.

Isso define um cookie de autenticação no navegador que permite o acesso à sessão atual da estação de trabalho. Ignorar o redirecionamento pode ser útil quando o acesso ao servidor da estação de trabalho é bloqueado por políticas de rede ou ao usar iframes para exibir a estação de trabalho em outros sites.

Representar uma conta de serviço

Se as políticas de segurança da sua organização impedirem que as contas de usuário tenham as permissões necessárias, você também poderá representar uma conta de serviço. Para personificar a conta de serviço especificada na configuração da estação de trabalho, especifique o campo escopos da conta de serviço.

        gcloud workstations configs create CONFIG \
            --cluster=CLUSTER \
            --region=REGION \
            --project=PROJECT \
            --service-account=SERVICE_ACCOUNT \
            --service-account-scopes=https://www.googleapis.com/auth/cloud-platform
      
Quando especificado, os usuários de estações de trabalho com essa configuração precisam ter a permissão iam.serviceAccounts.actAs na conta de serviço. Para mais informações sobre como especificar escopos para a conta de serviço, consulte Escopos de acesso.

A seguir