Checkpoints
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
Como configurar as permissões do IAM com o gcloud
- GSP647
- Visão geral
- O que é IAM?
- O que é o gcloud?
- Configuração e requisitos
- Tarefa 1: configurar o ambiente do gcloud
- Tarefa 2: criar e alternar entre várias configurações do IAM
- Tarefa 3: identificar e atribuir as permissões corretas do IAM;
- Tarefa 4: testar se o user2 tem acesso
- Tarefa 5: usar uma conta de serviço
- Tarefa 6: usar a conta de serviço com uma instância do Compute
- Tarefa 7: testar a conta de serviço
- Parabéns!
GSP647
Visão geral
O laboratório se concentra em três áreas comuns para entender sobre o IAM e o gcloud:
- a configuração do ambiente do gcloud;
- o uso de várias configurações do gcloud;
- o uso das contas de serviço.
Neste laboratório, você vai usar a ferramenta gcloud
CLI para configurar os recursos de comando do Cloud Identity and Access Management (IAM).
Conteúdo
Confira abaixo as atividades que você vai fazer neste laboratório:
- Analisar o IAM e usar o cliente do
gcloud
; - Criar e alternar entre várias configurações do IAM;
- Identificar e atribuir as permissões corretas do IAM;
- Criar e usar uma conta de serviço.
Como iniciar o ambiente
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 que é IAM?
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.
Identidades
No Cloud IAM, você concede acesso aos principais, que se dividem em:
- Conta do Google
- Conta de serviço
- Grupo do Google
- Conta do Google Workspace
- Domínio do Cloud Identity
- Todos os usuários autenticados
- Todos os usuários
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.
Papéis
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 que é o gcloud?
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".
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).
- Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Como iniciar seu laboratório e fazer login no console do Google Cloud
-
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
-
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. -
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.
-
Clique em Seguinte.
-
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.
-
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. -
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.
Tarefa 1: configurar o ambiente do gcloud
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.
- Como primeiro teste, confirme se o
gcloud
está instalado verificando a versão. Na sessão SSH, execute o seguinte:
Criar uma nova instância e atualizar a zona padrão
Depois de verificar que a ferramenta de linha de comando gcloud
está instalada, crie uma instância do Compute para fazer algumas alterações.
- Primeiro, autentique no gcloud. Na sessão SSH, execute o seguinte:
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 (
) e, em seguida, em Permitir. -
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:
- Na sessão SSH, execute o seguinte:
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.
- Verifique a configuração atual do gcloud. Na sessão SSH, execute o seguinte:
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.
- Agora liste todas as zonas disponíveis para uso executando o seguinte na sessão SSH:
-
Identifique uma das outras zonas na mesma região que você. Por exemplo, se a zona atual for
us-west2-a
, selecioneus-west2-b
. -
Mude a zona atual por outra na mesma região. Na sessão SSH, execute o seguinte, substituindo
ZONE
pela zona selecionada:
- Verifique se a alteração da zona foi feita. Na sessão SSH, execute o seguinte:
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
- Verifique se a zona foi gravada no arquivo de configuração. Na sessão SSH, execute o seguinte:
Como é mostrado, a configuração está armazenada como texto e é possível fazer backup dela ou copiá-la.
Tarefa 2: criar e alternar entre várias configurações do IAM
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.
Criar uma nova configuração do IAM
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.
- Comece uma nova configuração do
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 (
) e cole no comando e-mail ou telefone. -
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 (
) e insira o número correspondente.
A inicialização é concluída e é possível visualizar a zona e a região configuradas para você.
Testar a nova conta
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.
- Verifique se é possível visualizar as informações do primeiro projeto. Na sessão SSH, execute o seguinte:
A segunda conta de usuário tem acesso de leitura, então é possível visualizar as instâncias centos-clean
e lab-1
.
- Verifique se não é possível criar uma instância no primeiro projeto, já que você tem o papel de visualizador básico. Na sessão SSH, execute o seguinte:
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.
- Volte para a configuração do primeiro usuário (padrão). Na sessão SSH, execute o seguinte:
Você voltou a usar as credenciais da conta original. Depois de aprender sobre os papéis e permissões, pode alternar entre as contas.
Tarefa 3: identificar e atribuir as permissões corretas do IAM;
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.
Analisar os papéis e as permissões
- Para conferir todos os papéis, execute o seguinte na sessão SSH:
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.
- Analise o papel predefinido
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:
- compute.instances.create
- compute.instances.delete
- compute.instances.start
- compute.instances.stop
- compute.instances.update
- compute.disks.create
- compute.subnetworks.use
- compute.subnetworks.useExternalIp
- compute.instances.setMetadata
- compute.instances.setServiceAccount
Para conferir a lista completa de papéis e permissões atribuídos, consulte o guia de referência "Permissões do IAM".
Conceder, ao segundo usuário, acesso ao segundo projeto
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:
- Ao usuário e a uma organização
- A um usuário e a um projeto
Continuando, vincule o papel básico de "visualizador" ao segundo usuário no segundo projeto.
Teste se esse usuário não tem acesso a esse projeto.
- Mude a configuração do
gcloud
de volta para o segundo usuário (user2). Na sessão SSH, execute o seguinte:
Agora você está de volta ao user2
.
- Defina
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.
- Assim que aparecer a mensagem Quer continuar (S/N)?, digite "N" e pressione ENTER.
Isso indica que o usuário 2 não tem acesso ao projeto PROJECTID2, o que você vai corrigir na próxima seção.
Atribua o papel de "visualizador" ao segundo usuário no segundo projeto
- Volte à configuração padrão do gcloud, que tem permissão para conceder acesso ao segundo usuário. Na sessão SSH, execute o seguinte:
- Instale
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.
- 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):
Tarefa 4: testar se o user2 tem acesso
- Mude a configuração do gcloud para user2. Na sessão SSH, execute o seguinte:
- Altere a configuração de user2 no segundo projeto. Na sessão SSH, execute o seguinte:
Neste momento, não aparece nenhuma mensagem de erro.
- Verifique se você tem acesso de leitor. Na sessão SSH, execute o seguinte:
Agora não há nenhuma instância neste projeto.
- Tente criar uma instância no segundo projeto como segundo usuário. Na sessão SSH, execute o seguinte:
O comando apresenta erro porque user2 só tem acesso de leitor ao projeto.
- Mude a configuração do gcloud para padrão. Na sessão SSH, execute o seguinte:
Você voltou a usar as credenciais da conta original.
Criar um novo papel com permissões
Continuando, crie um novo papel com todas as permissões que a equipe de devops precisa.
- Crie um papel personalizado chamado
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
.
Vincular o papel da segunda conta aos dois projetos
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.
- Vincule o papel
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.
- Vincule o papel personalizado
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):
Teste as novas permissões atribuídas.
- Mude a configuração do gcloud para user2. Na sessão SSH, execute o seguinte:
Agora você está de volta ao user2.
- Tente criar uma instância chamada lab-2. Na sessão SSH, execute o seguinte:
Agora o user2 já pode criar instâncias.
- Verifique se a instância existe. Na sessão SSH, execute o seguinte:
Seu ambiente
Depois dessas últimas alterações, o ambiente fica parecido com o seguinte:
Tarefa 5: usar uma conta de serviço
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.
Crie uma conta de serviço
- Mude a configuração do gcloud para padrão;
user2
não tem os direitos para configurar contas de serviço. Na sessão SSH, execute o seguinte:
- Defina o projeto como
PROJECTID2
na configuração. Na sessão SSH, execute o seguinte:
Verifique se você está especificando o projeto certo.
- Crie a conta de serviço. Na sessão SSH, execute o seguinte:
- Confira o endereço de e-mail da conta de serviço. Na sessão SSH, execute o seguinte:
- Insira o e-mail em uma variável local chamada
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?
- Conceda à conta de serviço o papel de
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.
Tarefa 6: usar a conta de serviço com uma instância do Compute
- Atribua à conta de serviço o papel de
compute.instanceAdmin
. Na sessão SSH, execute o seguinte:
Esse papel permite à conta de serviço gerenciar as instâncias do Compute.
- Crie uma instância com a conta de serviço do devops vinculada. Também é preciso especificar o escopo de acesso que define quais chamadas de API a instância pode fazer. Na sessão SSH, execute o seguinte:
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.
Tarefa 7: testar a conta de serviço
- Conecte-se à instância que acabou de criar usando
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.
- A imagem padrão já vem com a configuração do
gcloud
. Na sessão SSH, execute o seguinte:
A configuração passa a incluir a conta de serviço
- Criar uma instância. Isso testa se você tem as permissões necessárias pela conta de serviço:
Pressione ENTER para aceitar a zona padrão da VM.
- Verifique se os papéis vinculados estão funcionando. Na sessão SSH, execute o seguinte:
Como a conta de serviço tem permissões, é possível conferir as instâncias listadas.
O ambiente vai ficar assim:
Parabéns!
Usando a ferramenta do SDK Cloud, o gcloud
, você:
- instalou e configurou o cliente gcloud;
- criou e alternou entre diversas configurações do IAM;
- identificou e atribuiu as permissões corretas do IAM;
- criou e usou uma conta de serviço.
Próximas etapas / Saiba mais
- Documentação do Cloud Identity and Access Management
- Confira estes laboratórios:
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 10 de abril de 2024
Laboratório testado em 10 de abril 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.