arrow_back

Como configurar, usar e auditar escopos e contas de serviços da VM

Acesse mais de 700 laboratórios e cursos

Como configurar, usar e auditar escopos e contas de serviços da VM

Laboratório 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

Informações gerais

As contas de serviço são um tipo especial de Conta do Google que concede permissões a máquinas virtuais, não a usuários finais. Elas são usadas principalmente para garantir conexões seguras e gerenciadas com APIs e serviços do Google Cloud. Conceder acesso a conexões confiáveis e rejeitar as mal-intencionadas é um recurso de segurança obrigatório para qualquer projeto do Google Cloud.

Objetivos

Neste laboratório, você vai aprender a:

  • Criar e gerenciar contas de serviço
  • Criar uma máquina virtual e associá-la a uma conta de serviço
  • Usar bibliotecas de cliente para acessar o BigQuery a partir de uma conta de serviço
  • Executar uma consulta em um conjunto de dados público do BigQuery usando uma instância do Compute Engine

Configuração e requisitos

Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período e sem custos financeiros.

  1. Faça login no Qwiklabs em uma janela anônima.

  2. Confira o tempo de acesso do laboratório (por exemplo, 1:15:00) e finalize todas as atividades nesse prazo.
    Não é possível pausar o laboratório. Você pode reiniciar o desafio, mas vai precisar refazer todas as etapas.

  3. Quando tudo estiver pronto, clique em Começar o laboratório.

  4. Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.

  5. Clique em Abrir Console do Google.

  6. Clique em Usar outra conta, depois copie e cole as credenciais deste laboratório nos locais indicados.
    Se você usar outras credenciais, vai receber mensagens de erro ou cobranças.

  7. Aceite os termos e pule a página de recursos de recuperação.

Ative o Google Cloud Shell

O Google Cloud Shell é uma máquina virtual com ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud.

O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. No console do Cloud, clique no botão "Abrir o Cloud Shell" na barra de ferramentas superior direita.

    Ícone do Cloud Shell em destaque

  2. Clique em Continuar.

O provisionamento e a conexão do ambiente podem demorar um pouco. Quando você estiver conectado, já estará autenticado, e o projeto estará definido com seu PROJECT_ID. Exemplo:

ID do projeto em destaque no terminal do Cloud Shell

A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  • Para listar o nome da conta ativa, use este comando:
gcloud auth list

Saída:

Credentialed accounts: - @.com (active)

Exemplo de saída:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Para listar o ID do projeto, use este comando:
gcloud config list project

Saída:

[core] project =

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: a documentação completa da gcloud está disponível no guia com informações gerais sobre a gcloud CLI .

O que são contas de serviço?

Uma conta de serviço é uma Conta do Google especial que pertence ao aplicativo ou a uma máquina virtual (VM), e não a um usuário final específico. O aplicativo usa a conta de serviço para chamar a API de um serviço do Google. Assim, os usuários não são diretamente envolvidos.

Por exemplo, uma VM do Compute Engine pode ser executada como uma conta de serviço, e essa conta pode receber permissões para acessar os recursos de que precisa. Assim, essa conta é a identidade do serviço, e as permissões dela controlam quais recursos podem ser acessados por ele.

Uma conta de serviço é identificada pelo endereço de e-mail dela, que é exclusivo.

Tipos de contas de serviço

Contas de serviço gerenciadas pelo usuário

Se você criar um novo projeto do Cloud usando o console do Cloud e a API Compute Engine estiver ativada para esse projeto, uma conta de serviço do Compute Engine será criada para você por padrão. Ela pode ser identificada pelo e-mail: PROJECT_NUMBER-compute@developer.gserviceaccount.com.

Por padrão, uma conta de serviço do App Engine é criada quando o projeto contém um aplicativo dele. Ela pode ser identificada pelo e-mail: PROJECT_ID@appspot.gserviceaccount.com.

Contas de serviço gerenciadas pelo Google

Além daquelas gerenciadas por usuários, pode haver mais algumas contas de serviço na política do IAM do projeto ou no console do Cloud. Elas são criadas pelo Google e pertencem a ele. Essas contas representam diferentes serviços do Google. Cada uma delas recebe automaticamente os papéis do IAM para acessar o projeto do Google Cloud.

Contas de serviço de API do Google

Uma conta de serviço de API do Google, por exemplo, é gerenciada. Ela pode ser identificada pelo e-mail: PROJECT_NUMBER@cloudservices.gserviceaccount.com.

Essa conta de serviço foi projetada especificamente para executar processos internos do Google em nome do usuário e não está listada na seção Contas de serviço do console do Cloud. Por padrão, a conta recebe automaticamente o papel de editor de projeto no projeto e está listada na seção IAM do console do Cloud.

Essa conta de serviço só é excluída quando o projeto é eliminado. Os serviços do Google dependem do acesso ao projeto. Por isso, não remova nem altere o papel da conta.

Tarefa 1. Criar e gerenciar contas de serviço

Nesta tarefa, você cria e gerencia contas de serviço.

Por padrão, é possível criar até 100 contas de serviço gerenciadas pelo usuário em um projeto. Use o console do Cloud para solicitar um aumento da cota se ela não atender às suas necessidades.

Observação: as contas de serviço padrão descritas nesta página não são contabilizadas na cota.

Como criar uma conta de serviço

Criar uma conta de serviço é semelhante a adicionar um membro ao projeto. A diferença é que essa conta pertence aos aplicativos, e não a um usuário final específico.

  • Para criar uma conta de serviço, execute este comando no Cloud Shell:
gcloud iam service-accounts create my-sa-123 --display-name "my service account"

A resposta a esse comando é a conta de serviço, como no exemplo a seguir.

Resposta:

Created service account [my-sa-123]

Como atribuir papéis a contas de serviço

Ao conceder papéis do IAM, é possível tratar uma conta de serviço como recurso ou identidade.

O aplicativo usa essas contas como identidade para autenticação nos serviços do Google Cloud. Por exemplo, se uma máquina virtual (VM) do Google Compute Engine estiver sendo executada como uma conta de serviço, atribua o papel de editor a essa conta (a identidade) em um projeto (o recurso).

Ao mesmo tempo, controle também quem pode iniciar a VM. Para isso, conceda a um usuário (a identidade) o papel serviceAccountUser na conta de serviço (o recurso).

Atribua papéis a uma conta de serviço para recursos específicos

Atribua papéis a uma conta de serviço para que ela tenha permissão para concluir ações específicas nos recursos no projeto do Google Cloud. Por exemplo, atribua o papel storage.admin a uma conta de serviço para que ela tenha controle sobre objetos e buckets no Cloud Storage.

  • Execute este comando no Cloud Shell para conceder papéis à conta de serviço que você acabou de criar:
gcloud projects add-iam-policy-binding $DEVSHELL_PROJECT_ID \ --member serviceAccount:my-sa-123@$DEVSHELL_PROJECT_ID.iam.gserviceaccount.com --role roles/editor

A resposta terá uma lista dos papéis atuais da conta de serviço:

Resposta:

bindings: - members: - user:email1@gmail.com role: roles/owner - members: - serviceAccount:our-project-123@appspot.gserviceaccount.com - serviceAccount:123456789012-compute@developer.gserviceaccount.com - serviceAccount:my-sa-123@my-project-123.iam.gserviceaccount.com - user:email3@gmail.com role: roles/editor - members: - user:email2@gmail.com role: roles/viewer etag: BwUm38GGAQk= version: 1

Selecione Verificar meu progresso para conferir o objetivo. Como criar e gerenciar contas de serviço

Noções básicas sobre papéis

Quando uma identidade chama uma API do Google Cloud, o Cloud Identity and Access Management (Cloud IAM) exige que a identidade tenha as permissões apropriadas para usar o recurso. É possível conceder permissões ao atribuir papéis a um usuário, grupo ou conta de serviço.

Tipos de papéis

Há três tipos de papéis no Cloud IAM:

  • Papéis básicos: incluem os de Proprietário, Editor e Leitor que existiam antes da introdução do Cloud IAM.
  • Papéis predefinidos: fornecem acesso granular a um serviço específico e são gerenciados pelo Google Cloud.
  • Papéis personalizados: oferecem acesso granular de acordo com uma lista de permissões especificada pelo usuário.

Para mais detalhes, consulte a documentação de referência sobre papéis do IAM.

Tarefa 2. Usar bibliotecas de cliente para acessar o BigQuery em uma conta de serviço

Nesta tarefa, você vai consultar os conjuntos de dados públicos do BigQuery em uma instância usando uma conta de serviço com os papéis necessários.

Criar uma conta de serviço

Primeiro, crie uma nova conta de serviço usando o console do Cloud.

  1. No menu de navegação do console do Cloud, clique em IAM e administrador > Contas de serviço.
  2. Clique em Criar conta de serviço.
  3. Especifique o nome da conta de serviço como bigquery-qwiklab.

Criar caixa de diálogo de configuração da conta de serviço

  1. Clique em Criar e continuar.
  2. Especifique o Papel como BigQuery > Leitor de dados do BigQuery.
  3. Clique em Adicionar outro papel.
  4. Especifique o outro Papel como BigQuery > Usuário do BigQuery.

Criar permissão de acesso ao papel opcional da conta de serviço

  1. Clique em Continuar.

O console do Cloud ficará semelhante a este:

Conceder aos usuários acesso a etapa 3 de service_account

  1. Clique em Concluído.

Criar uma instância de VM

  1. No menu de navegação do console do Cloud, clique em Compute Engine > Instâncias de VM e depois em Criar instância.
  2. Crie sua VM com as seguintes informações:

Configuração

Valor

Nome

bigquery-instance

Região

us-central1(Iowa)

Zona

us-central1-a

Série

E2

Tipo de máquina

e2-standard-2 (2 vCPUs)

Disco de inicialização

Debian GNU/Linux 11 (bulleye)

Conta de serviço

bigquery-qwiklab

Escopos de acesso

Permitir o acesso completo a todas as APIs do Cloud

Observação: se a conta de serviço bigquery-qwiklab não aparecer na lista suspensa, tente digitar o nome na seção Filtro.

Em seguida, você terá as opções que foram adicionadas quando selecionou um disco de inicialização com suporte para VMs protegidas.

  1. Na parte de baixo da página, clique no link Rede, discos, segurança, gerenciamento, locatário único.

  2. Clique na guia Segurança. Na parte de cima da guia, as opções de VM protegida são exibidas. Se você não tivesse selecionado um disco de inicialização com recursos de VM protegida, essas opções não teriam aparecido. Algumas dessas opções são selecionadas por padrão.

  3. Clique na caixa de seleção Ativar a inicialização segura.

A caixa de diálogo de segurança liga a inicialização segura ativada

O Compute Engine não ativa essa opção por padrão, porque drivers não assinados e outros softwares de baixo nível podem não ser compatíveis. Mesmo assim, se possível, o Google recomenda ativar a Inicialização segura.

  1. Clique em Criar.

Coloque o código de exemplo em uma instância do Compute Engine

  1. No console do Cloud, acesse Compute Engine > Instâncias de VM.
  2. Use SSH em bigquery-instance clicando no botão SSH. Clique em Conectar.
  3. Na janela SSH, instale as dependências necessárias executando os seguintes comandos:
sudo apt-get update -y sudo apt-get install -y git python3-pip sudo pip3 install six==1.13.0 sudo pip3 install --upgrade pip sudo pip3 install --upgrade google-cloud-bigquery sudo pip3 install pandas
  1. Com o comando echo, crie query.py. Você vai usar esse arquivo, escrito em Python, para executar a consulta.
echo " from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='YOUR_SERVICE_ACCOUNT') query = ''' SELECT year, COUNT(1) as num_babies FROM publicdata.samples.natality WHERE year > 2000 GROUP BY year ''' client = bigquery.Client( project='YOUR_PROJECT_ID', credentials=credentials) print(client.query(query).to_dataframe()) " > query.py
  1. Adicione o ID do projeto a query.py:
sed -i -e "s/YOUR_PROJECT_ID/$(gcloud config get-value project)/g" query.py
  1. Execute o seguinte para descobrir se o comando sed alterou o ID do projeto no arquivo:
cat query.py

Exemplo de resposta (a sua será diferente):

from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='YOUR_SERVICE_ACCOUNT') query = ''' SELECT year, COUNT(1) as num_babies FROM publicdata.samples.natality WHERE year > 2000 GROUP BY year ''' client = bigquery.Client( project='qwiklabs-gcp-186de687ef87f911', credentials=credentials) print(client.query(query).to_dataframe())
  1. Adicione o e-mail da conta de serviço a query.py:
sed -i -e "s/YOUR_SERVICE_ACCOUNT/bigquery-qwiklab@$(gcloud config get-value project).iam.gserviceaccount.com/g" query.py
  1. Execute o seguinte para descobrir se o comando sed alterou o e-mail da conta de serviço no arquivo:
cat query.py

Exemplo de resposta (a sua será diferente):

from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='bigquery-qwiklab@qwiklabs-gcp-186de687ef87f911.iam.gserviceaccount.com') query = ''' SELECT year, COUNT(1) as num_babies FROM publicdata.samples.natality WHERE year > 2000 GROUP BY year ''' client = bigquery.Client( project='qwiklabs-gcp-186de687ef87f911', credentials=credentials) print(client.query(query).to_dataframe())

O aplicativo passará a usar as permissões associadas a essa conta de serviço.

  1. Instale a biblioteca pyarrow usando este comando:
sudo pip3 install pyarrow==16.1.0
  1. Instale a biblioteca db-dtypes usando este comando:
sudo pip3 install db-dtypes
  1. Execute query.py usando este comando:
python3 query.py

Uma resposta semelhante a esta vai retornar.

Resposta:

year num_babies 0 2008 4255156 1 2002 4027376 2 2005 4145619 3 2006 4273225 4 2001 4031531 5 2007 4324008 6 2003 4096092 7 2004 4118907 Observação: talvez os valores das linhas não sejam associados aos anos da resposta acima. O importante é que os números de bebês por ano sejam os mesmos.

Você fez uma solicitação para um conjunto de dados público do BigQuery com uma conta de serviço bigquery-qwiklab.

Selecione Verificar meu progresso para conferir o objetivo. Use bibliotecas de cliente para acessar o BigQuery em uma conta de serviço

Parabéns!

Neste laboratório, você aprendeu a:

  • Criar e gerenciar contas de serviço
  • Criar uma máquina virtual e associá-la a uma conta de serviço
  • Usar bibliotecas de cliente para acessar o BigQuery a partir de uma conta de serviço
  • Executar uma consulta em um conjunto de dados público do BigQuery usando uma instância do Compute Engine

Finalize o laboratório

Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.

Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.

O número de estrelas indica o seguinte:

  • 1 estrela = muito insatisfeito
  • 2 estrelas = insatisfeito
  • 3 estrelas = neutro
  • 4 estrelas = satisfeito
  • 5 estrelas = muito satisfeito

Feche a caixa de diálogo se não quiser enviar feedback.

Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.

Copyright 2020 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.