arrow_back

Contas de serviço e papéis: noções básicas

Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos

Contas de serviço e papéis: noções básicas

Laboratório 1 hora 15 minutos universal_currency_alt 1 crédito show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos

GSP199

Laboratórios autoguiados do Google Cloud

Visão geral

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. Neste laboratório, você terá experiências práticas com os detalhes das contas de serviço.

Conteúdo

Neste curso, 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

Pré-requisitos

É recomendável ter alguma experiência com o Cloud IAM, mas não é necessário que você já saiba como as contas de serviço funcionam. Para ter uma prática mais avançada nesse assunto, confira estes laboratórios:

Configuração e requisitos

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: 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.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:

    • O botão Abrir console do Google Cloud
    • O tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações, se forem necessárias
  2. Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.

    O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.

    {{{user_0.username | "Nome de usuário"}}}

    Você também encontra o Nome de usuário no painel Detalhes do laboratório.

  4. Clique em Seguinte.

  5. Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.

    {{{user_0.password | "Senha"}}}

    Você também encontra a Senha no painel Detalhes do laboratório.

  6. Clique em Seguinte.

    Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  7. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.

Observação: clique em Menu de navegação no canto superior esquerdo para acessar uma lista de produtos e serviços do Google Cloud. Ícone do menu de navegação

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias 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. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

  2. A saída será parecida com esta:

Saída:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = <project_ID>

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: para conferir a documentação completa da gcloud, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.

Defina a região do seu projeto

Execute o seguinte comando para definir a região do seu projeto:

gcloud config set compute/region {{{project_0.default_region | Region}}}

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 que ela 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 Google Cloud, e se 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 é identificável pelo e-mail:

NÚMERO_DO_PROJETO-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 é identificável pelo e-mail:

ID_DO_PROJETO@appspot.gserviceaccount.com

Contas de serviço gerenciadas pelo Google

Além das contas de serviço gerenciadas pelo usuário, talvez você encontre algumas outras contas de serviço na política IAM do seu projeto ou no console. Elas são criadas pelo Google e pertencem a ele. Essas contas representam diferentes serviços do Google e cada uma delas recebe automaticamente os papéis do IAM para acessar o projeto do Google Cloud.

Conta de serviço das APIs do Google

Um exemplo de conta de serviço gerenciada pelo Google é a conta de serviço de API do Google, identificável pelo e-mail:

NÚMERO_DO_PROJETO@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. Por padrão, a conta recebe automaticamente o papel de editor do projeto e fica listada na seção IAM do console. Essa conta de serviço só é excluída quando o projeto é eliminado.

Observação: os serviços do Google dependem do acesso ao projeto. Por isso, não remova nem altere o papel da conta.

Noções básicas sobre papéis do IAM

Quando uma identidade chama uma API do Google Cloud, o Google Cloud Identity and Access Management exige que ela tenha as permissões corretas 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 primários: incluem os papéis "Proprietário", "Editor" e "Leitor" que já 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.

Saiba mais sobre os papéis no Guia de noções básicas sobre papéis.

Tarefa 1: criar e gerenciar contas de serviço

Quando você cria um novo projeto do Cloud, o Google Cloud cria automaticamente uma conta de serviço do Compute Engine e outra do App Engine no projeto. É possível criar até 98 contas de serviço para o projeto e controlar o acesso aos seus recursos.

Crie 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 saída desse comando é a conta de serviço, que parece com o seguinte:

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 Cloud Platform. 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 saída mostra uma lista dos papéis atuais da conta de serviço:

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

Clique em Verificar meu progresso para conferir o objetivo. Criar e gerenciar contas de serviço

Tarefa 2: usar bibliotecas de cliente para acessar o BigQuery usando uma conta de serviço

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

Crie uma conta de serviço

Primeiro, crie uma nova conta de serviço pelo console.

  1. Acesse o Menu de navegação > IAM e administrador, selecione Contas de serviço e clique em + Criar conta de serviço.

  2. Preencha os detalhes necessários com o seguinte:

  • Nome da conta de serviço: bigquery-qwiklab
  1. Clique em Criar e continuar e depois acrescente estes papéis:

    • BigQuery > Leitor de dados do BigQuery

    • BigQuery> BigQuery

Seu console será semelhante a este:

Página com a guia Criar conta de serviço

  1. Clique em Continuar e depois em Concluído.

Crie uma instância de VM

  1. No console, acesse Compute Engine > Instâncias de VM e clique em Criar instância.

  2. Crie sua VM com estas informações:

Configuração Valor
Nome bigquery-instance
Região
Zona
Série E2
Tipo de máquina e2-medium
Disco de inicialização Debian GNU/Linux 11 (bullseye) x86/64
Conta de serviço bigquery-qwiklab
Escopos de acesso Definir o acesso para cada API
BigQuery Ativado
Observação: se a conta de serviço bigquery-qwiklab não aparecer na lista suspensa, informe o nome na seção "Filtro".
  1. Clique em Criar.

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

  1. No console, acesse Compute Engine > Instâncias de VM.
  2. Use SSH em bigquery-instance clicando no botão SSH.
Observação: ao se conectar ao SSH, é possível clicar em Conectar sem o Identity-Aware Proxy.

Na janela SSH, instale as dependências necessárias executando estes comandos:

sudo apt-get update sudo apt-get install -y git python3-pip pip3 install --upgrade pip pip3 install google-cloud-bigquery pip3 install pyarrow pip3 install pandas pip3 install db-dtypes

Agora crie o arquivo Python que servirá de exemplo:

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='{{{project_0.project_id | Your Project ID}}}', credentials=credentials) print(client.query(query).to_dataframe()) " > query.py

Adicione o ID do projeto a query.py:

sed -i -e "s/{{{project_0.project_id | Your Project ID}}}/$(gcloud config get-value project)/g" query.py

Execute o seguinte para descobrir se o comando sed alterou o ID do projeto no arquivo:

cat query.py

Exemplo de resposta (talvez a sua seja 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={{{ project_0.project_id }}}, credentials=credentials) print(client.query(query).to_dataframe())

Adicione o e-mail da conta de serviço a query.py:

sed -i -e "s/SUA_CONTA_DE_SERVIÇO/bigquery-qwiklab@$(gcloud config get-value project).iam.gserviceaccount.com/g" query.py

Execute o código abaixo para conferir se o comando sed alterou o e-mail da conta de serviço no arquivo:

cat query.py

Exemplo de resposta (talvez a sua seja diferente):

from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='bigquery-qwiklab@{{{ project_0.project_id }}}.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={{{ project_0.project_id }}}, credentials=credentials) print(client.query(query).to_dataframe())

O aplicativo agora está usando as permissões associadas a essa conta de serviço. Execute a consulta com o seguinte comando do Python:

python3 query.py

A consulta deve retornar a seguinte resposta (seus números podem ser diferentes):

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

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

Clique em Verificar meu progresso para conferir o objetivo. Acessar o BigQuery usando uma conta de serviço

Parabéns!

Neste laboratório, você aprendeu a usar contas de serviço.

Próximas etapas / Saiba mais

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 17 de julho de 2024

Laboratório testado em 17 de julho de 2024

Copyright 2024 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.

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