
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create an instance with name as lab-1 in Project 1
/ 10
Update the default zone
/ 10
Create a configuration for Username 2 and name it as user2
/ 10
Restricting Username 2 to roles/viewer in Project 2
/ 10
Create a new role with permissions for the devops team
/ 10
Check binding to roles/iam.serviceAccountUser
/ 5
Bound Username 2 to devops role
/ 5
Create an instance with name as lab-2 in Project 1
/ 5
Check the created service account
/ 5
Check the binding for the service account to roles/iam.serviceAccountUser
/ 10
Check the binding for the service account to roles/compute.instanceAdmin
/ 10
Check lab-3 has the service account attached
/ 10
O laboratório se concentra em três áreas comuns para entender sobre o IAM e o gcloud:
Neste laboratório, você vai usar a ferramenta gcloud
CLI para configurar os recursos de comando do Cloud Identity and Access Management (IAM).
Confira abaixo as atividades que você vai fazer neste laboratório:
gcloud
;Vamos começar com duas contas de usuário e dois projetos:
user1
é o "proprietário" dos dois projetos;user2
é o "visualizador" apenas do primeiro projeto.Temos também uma máquina virtual (VM) Linux em operação.
O Google Cloud oferece o Cloud Identity and Access Management (IAM), que permite gerenciar o controle de acesso ao definir quem (identidade) tem qual acesso (papel) a qual recurso.
No IAM, a permissão para acessar um recurso não é concedida direto ao usuário final. Em vez disso, as permissões são agrupadas em papéis, que são concedidos a membros autenticados. Antes, o IAM muitas vezes se referia aos principais como membros. Algumas APIs ainda usam esse termo.
No Cloud IAM, você concede acesso aos principais, que se dividem em:
Saiba mais sobre os tipos de identidade no guia "Conceitos relacionados à identidade".
Neste laboratório, vamos usar as contas do Google, contas de serviço e grupos de domínio do Cloud Identity.
Um papel é um conjunto de permissões. Não é possível atribuir diretamente uma permissão ao usuário. Em vez disso, atribua um papel. Quando você faz isso, concede ao usuário todas as permissões contidas no papel.
Saiba mais sobre os papéis no guia sobre papéis.
O gcloud CLI faz parte do SDK Cloud. É preciso fazer o download e instalar o SDK no sistema e inicializá-lo antes de usar a ferramenta de linha de comando gcloud. Você pode usar essa ferramenta para realizar várias tarefas de plataforma comuns pela linha de comando ou em scripts e outras automações.
Saiba mais sobre o gcloud no guia "Visão geral do gcloud CLI".
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:
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:
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.
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
Você também encontra o Nome de usuário no painel Detalhes do laboratório.
Clique em Seguinte.
Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.
Você também encontra a Senha no painel Detalhes do laboratório.
Clique em Seguinte.
Acesse as próximas páginas:
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
No laboratório já tem uma instância do Compute Engine chamada centos-clean, que simula um ambiente sem o gcloud
instalado. Para se conectar à instância, use o console do Google Cloud.
Abra a lista de instâncias do Compute em menu de navegação > Compute Engine > Instâncias de VM.
Na lista com a instância do Compute chamada centos-clean, clique em SSH.
gcloud
está instalado verificando a versão. Na sessão SSH, execute o seguinte:Depois de verificar que a ferramenta de linha de comando gcloud
está instalada, crie uma instância do Compute para fazer algumas alterações.
Pressione ENTER assim que aparecer a mensagem Quer continuar (S/N)?
Vá até o link que aparece em uma nova guia.
Clique no nome de usuário ativo (
Assim que aparecer a mensagem Insira o código de verificação a seguir no gcloud CLI da máquina em que quer fazer login, clique no botão "Copiar", volte à sessão SSH e cole o código onde aparece a mensagem Inserir código de autorização:.
Na sessão SSH, defina a região e a zona:
Se estiver tudo certo, o comando cria uma instância.
Mas qual o tamanho? E onde ela está? Qual a imagem usada?
O serviço usa vários padrões; alguns são controlados na configuração do gcloud
. A localização da instância, por exemplo, é controlada pela configuração de zona.
Como você pode conferir, há a seção compute
, a seção core
e uma configuração ativa
. É possível alterar qualquer uma dessas opções; neste laboratório, porém, vamos alterar apenas a zona. Confira a zona em que a VM foi criada.
Identifique uma das outras zonas na mesma região que você. Por exemplo, se a zona atual for us-west2-a
, selecione us-west2-b
.
Mude a zona atual por outra na mesma região. Na sessão SSH, execute o seguinte, substituindo ZONE
pela zona selecionada:
Como você pode conferir, a zona declarada reflete a alteração feita.
É possível alterar outras configurações usando o comando gcloud config set
. Essas alterações são permanentes; elas são gravadas no diretório principal.
A configuração padrão é armazenada em ~/.config/gcloud/configurations/config_default.
Para usar outra zona que não a padrão ao criar uma instância, use --zone switch. Por exemplo, gcloud compute instances create lab-1 --zone us-central1-f
Como é mostrado, a configuração está armazenada como texto e é possível fazer backup dela ou copiá-la.
Você acaba de configurar uma conta. Quando é preciso trabalhar com várias equipes ou acessar contas diferentes, você pode gerenciar isso com o gcloud config
.
Na próxima tarefa, vamos ver como criar uma segunda configuração e alternar entre as duas.
Neste laboratório, você pode fazer login em uma segunda conta do Google, que tem acesso somente leitura (visualizador) ao primeiro projeto. Crie uma nova configuração para esse usuário.
gcloud
para essa segunda conta. Na sessão SSH, execute o seguinte:Selecione a opção 2, Criar nova configuração.
nome da configuração: insira user2.
Fazer login com nova conta: selecione a opção 3; o login é feito com o outro nome de usuário.
Pressione ENTER assim que aparecer a mensagem Quer continuar (S/N)?
Vá até o link que aparece em uma nova guia.
Clique em Usar outra conta
Copie a segunda conta de usuário (
Copie a mesma senha do início do laboratório e cole no comando insira sua senha.
Clique em Entendi.
Clique em Permitir.
Você aceita que o SDK Cloud tem o mesmo acesso que sua conta do Google.
Assim que aparecer a mensagem Insira o código de verificação a seguir no gcloud CLI da máquina em que quer fazer login, clique no botão "Copiar", volte à sessão SSH e cole o código onde aparece a mensagem Inserir código de autorização:.
Em Selecione qual projeto na nuvem usar:, encontre o projeto atual (
A inicialização é concluída e é possível visualizar a zona e a região configuradas para você.
A nova conta tem acesso somente leitura ao projeto, então é possível testar se você está usando ela ao tentar visualizar e criar alguns recursos.
A segunda conta de usuário tem acesso de leitura, então é possível visualizar as instâncias centos-clean
e lab-1
.
Como a segunda conta de usuário tem acesso somente leitura, não é possível criar uma instância, então o comando apresenta erro, o que leva um tempo para acontecer.
Você voltou a usar as credenciais da conta original. Depois de aprender sobre os papéis e permissões, pode alternar entre as contas.
Você recebeu duas contas de usuário para este projeto: o primeiro usuário tem total controle dos dois projetos e pode ser considerado como o administrador; o segundo usuário tem acesso somente leitura aos dois projetos. Digamos que ele seja um usuário devops e essa identidade represente um usuário típico do nível devops.
Continuando, use o gcloud
para configurar o acesso a um dos projetos para o usuário devops criando um papel personalizado que permita criar buckets e instâncias.
Isso retorna a lista de papéis. Ao adicionar grep "name:"
ao comando, isso diminui a quantidade de dados retornados a somente os nomes dos papéis.
Analise um deles para conferir as permissões atribuídas a ele. Para visualizar as permissões, use gcloud iam roles describe
. Tente analisar o papel simples roles/compute.instanceAdmin.
compute.instanceAdmin
. Na sessão SSH, execute o seguinte:Como você pode conferir, roles/compute.instanceAdmin tem várias permissões, mas estas são as necessárias para depois:
Para conferir a lista completa de papéis e permissões atribuídos, consulte o guia de referência "Permissões do IAM".
Agora que já sabe que os papéis têm permissões, como você atribui um papel (e, portanto, todas as permissões associadas) a uma conta de usuário?
Há duas maneiras de vincular um papel:
Continuando, vincule o papel básico de "visualizador" ao segundo usuário no segundo projeto.
gcloud
de volta para o segundo usuário (user2). Na sessão SSH, execute o seguinte:Agora você está de volta ao user2
.
PROJECTID2
no segundo projeto. Na sessão SSH, execute o seguinte:bashrc
, então tenha cuidadoAparece o seguinte aviso: AVISO: parece que você não tem acesso ao projeto [ID do segundo projeto] ou ele não existe.
Isso indica que o usuário 2 não tem acesso ao projeto PROJECTID2, o que você vai corrigir na próxima seção.
jq
:Feito isso, defina o valor de USERID2
ao segundo nome de usuário e vincule o papel de "visualizador" ao segundo usuário no segundo projeto.
Depois de executar o comando, o texto fica parecido com o seguinte (talvez você precise rolar para cima):
Neste momento, não aparece nenhuma mensagem de erro.
Agora não há nenhuma instância neste projeto.
O comando apresenta erro porque user2 só tem acesso de leitor ao projeto.
Você voltou a usar as credenciais da conta original.
Continuando, crie um novo papel com todas as permissões que a equipe de devops precisa.
devops
que tem as permissões para criar uma instância. Na sessão SSH, execute o seguinte:O comando cria um papel personalizado no projeto, chamado devops
, com as permissões para criar e gerenciar instâncias.
O nome completo do papel é listado, observe que o papel está no projeto; portanto, o padrão do caminho é projects/PROJETO/roles/NOMEDOPAPEL
.
Você já criou o papel e agora precisa vincular o usuário e o papel ao projeto. Use gcloud projects add-iam-policy-binding
para fazer isso. Para facilitar na hora de executar o comando, primeiro configure algumas variáveis de ambiente: o ID do projeto e a conta de usuário.
iam.serviceAccountUser
ao segundo usuário no segundo projeto. Na sessão SSH, execute o seguinte:É preciso ter permissão para criar uma instância com a conta de serviço vinculada. O papel iam.serviceAccountUser
tem essas permissões, então use-o.
devops
ao segundo usuário no segundo projeto. A conta do segundo usuário está do lado esquerdo da página. Defina USERID como a segunda conta de usuário.Na sessão SSH, execute o seguinte:
Depois de executar o comando, o texto fica parecido com o seguinte (talvez você precise rolar para cima):
Agora você está de volta ao user2.
Agora o user2 já pode criar instâncias.
Depois dessas últimas alterações, o ambiente fica parecido com o seguinte:
Você aprendeu a autenticar e usar o gcloud
para acessar os serviços do Google Cloud com papéis. Agora vamos analisar uma abordagem comum.
Você tem um aplicativo que usa as interfaces de programação do aplicativo (APIs) para ler e gravar nos buckets do Cloud Storage. Você não quer ter que autenticar toda vez que abrir um novo servidor, isso é desgastante e nada tem a ver com a ideia da nuvem. Portanto, você decide usar contas de serviço.
A conta de serviço é uma conta especial do Google que pertence ao aplicativo ou a uma máquina virtual (VM) e não a um usuário final. 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 envolvidos de forma direta.
Saiba mais sobre as contas de serviço no guia "Contas de serviço".
Agora que você criou uma conta de serviço, use-a com uma instância do Compute e teste se ela concede o acesso necessário.
user2
não tem os direitos para configurar contas de serviço. Na sessão SSH, execute o seguinte:PROJECTID2
na configuração. Na sessão SSH, execute o seguinte:Verifique se você está especificando o projeto certo.
SA
. Na sessão SSH, execute o seguinte:O comando define a variável local SA para o endereço de e-mail da conta de serviço. Prático, não é mesmo?
iam.serviceAccountUser
. Na sessão SSH, execute o seguinte:Esse papel permite que a conta de serviço atribua uma conta de serviço a uma instância do Compute.
compute.instanceAdmin
. Na sessão SSH, execute o seguinte:Esse papel permite à conta de serviço gerenciar as instâncias do Compute.
Escopos de acesso são o método legado de especificação das permissões da instância. Os escopos de acesso não são um mecanismo de segurança. Em vez disso, eles definem os escopos do OAuth padrão usados nas solicitações da ferramenta gcloud
ou das bibliotecas de cliente. Eles não têm efeito ao fazer solicitações não autenticadas por meio do OAuth, como gRPC ou APIs SignBlob.
É preciso definir os escopos de acesso ao configurar uma instância para execução como uma conta de serviço.
Uma prática recomendada é definir o escopo de acesso completo cloud-platform na instância e, em seguida, limitar com segurança o acesso à API da conta de serviço com papéis do IAM.
Os escopos de acesso são aplicados por instância. Você os define ao criar uma instância, e eles existem apenas enquanto durar a instância.
Os escopos de acesso não vão ter efeito se você não tiver ativado a API relacionada no projeto a que a conta de serviço pertence. Por exemplo, conceder um escopo de acesso ao Cloud Storage em uma instância de máquina virtual permite que a instância chame a API Cloud Storage apenas se você a ativou no projeto.
gcloud compute ssh
. Na sessão SSH, execute o seguinte:Quando aparecer a mensagem, pressione ENTER para continuar.
Pressione ENTER duas vezes para pular a etapa de criar uma senha.
gcloud
. Na sessão SSH, execute o seguinte:A configuração passa a incluir a conta de serviço
Pressione ENTER para aceitar a zona padrão da VM.
Como a conta de serviço tem permissões, é possível conferir as instâncias listadas.
Usando a ferramenta do SDK Cloud, o gcloud
, você:
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 10 de abril de 2024
Laboratório testado em 10 de abril de 2024
Copyright 2025 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
One lab at a time
Confirm to end all existing labs and start this one