Como profissional da nuvem, talvez você já conheça a arquitetura do Identity and Access Management (IAM) da AWS e tenha experiência em seguir algumas das práticas recomendadas para ela. Em relação ao IAM, algumas das preocupações gerais são as seguintes:
- Quais as melhores formas de gerenciar o acesso a recursos?
- Como conceder aos usuários acesso apenas às ferramentas que eles realmente precisam?
Na AWS, sua organização usa uma combinação de usuários e papéis do IAM com políticas anexadas para controlar o acesso às diferentes contas desse serviço que foram configuradas, tanto de forma programática (pelo AWS CloudShell e pela AWS CLI) quanto com a interface gráfica da Web (Console de gerenciamento da AWS).
Quando você começou a usar a AWS, recebeu um usuário raiz para a conta. Mas, como ele tem acesso a todos os seus recursos e configurações, não é uma boa opção para atividades do dia a dia. Então, você criou grupos de usuários do IAM com diferentes políticas anexadas que determinavam os níveis de permissões e os tipos de credenciais deles:
- Usuário e senha para acessar o Console de gerenciamento
- Par de chaves para acesso programático
Agora, para complementar a configuração de segurança da conta, sua organização está usando papéis do IAM para fornecer credenciais temporárias e um conjunto de permissões diferente aos usuários, conforme preciso. Além disso, os usuários federados têm acesso temporário aos seus serviços da AWS e estão autorizados a fornecer acesso a pessoas que trabalham com esses serviços, sem exigir credenciais de contas da AWS.

A seguir, vamos ver como implementar o controle do Identity and Access Management no Google Cloud.
Visão geral
Neste laboratório, você aprenderá a usar o papel de usuário da conta de serviço e a atribuir papéis.
Objetivos
Neste laboratório, você aprenderá a fazer o seguinte:
- Usar o IAM para implementar o controle de acesso.
- Restringir o acesso a recursos específicos.
- Usar o papel de usuário da conta de serviço.
Configuração do laboratório
Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período sem custo financeiro.
-
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.
Observação: para acessar uma lista de produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo ou digite o nome do serviço ou produto no campo Pesquisar.
Tarefa 1. Configurar dois usuários
Faça login no console do Cloud como o primeiro usuário
- Neste laboratório, disponibilizamos dois nomes de usuário na caixa de diálogo Detalhes da conexão. Como de costume, faça login no console do Cloud em uma janela anônima com o Nome de usuário 1 incluído no Qwiklabs. A senha é a mesma para os dois nomes de usuário.
Faça login no console do Cloud como o segundo usuário
- Abra outra guia na janela anônima.
- Acesse console.cloud.google.com.
- Clique no ícone do usuário no canto superior direito da tela e depois em Adicionar conta.
- Faça login no console do Cloud com o Nome de usuário 2 incluído no Qwiklabs.
Observação: se você sair da conta do Nome de usuário 1 em algum momento durante o laboratório, a conta do Nome de usuário 2 será excluída pelo Qwiklabs. Então, mantenha a conta do Nome de usuário 1 conectada enquanto você precisar do Nome de usuário 2.
Tarefa 2. Explorar o console do IAM
Você precisa estar na guia do console do Cloud com o Nome de usuário 1.
Acesse o console do IAM e conheça os papéis
- No Menu de navegação (
), clique em IAM e admin > IAM.
- Clique em Permitir acesso e confira os papéis no menu suspenso.
Para visualizar os papéis associados a cada recurso, navegue até o menu Papéis.
- Clique em CANCELAR.
- Mude para a guia com o Nome de usuário 2 no console do Cloud.
- No Menu de navegação (
), clique em IAM e admin > IAM. Na lista, procure as linhas com o Nome de usuário 1 e o Nome de usuário 2 que estão na caixa de diálogo Detalhes da conexão do Qwiklabs.
Observação: o Nome de usuário 2 tem acesso ao projeto, mas não tem o papel de proprietário. Por isso, ele não pode editar nenhum dos papéis. Passe o cursor sobre o ícone de lápis do Nome de usuário 2
para confirmar isso.
- Volte para a guia com o Nome de usuário 1 do console do Cloud.
- No console do IAM, clique no ícone de lápis do Nome de usuário 2. O Nome de usuário 2 tem o papel Leitor. Não altere o papel do projeto.
- Clique em CANCELAR.
Tarefa 3. Preparar um recurso para teste de acesso
Crie um bucket e faça upload de um arquivo qualquer
-
Mude para a guia com o Nome de usuário 1 do console do Cloud se ainda não tiver feito isso.
-
No Menu de navegação (
), clique em Cloud Storage > Buckets.
-
Clique em Criar bucket.
-
Especifique os seguintes valores e não mexa nas configurações restantes:
Propriedade |
Valor (digite o valor ou selecione a opção conforme especificado) |
Nome |
Digite um nome globalmente exclusivo |
Tipo de local |
Multirregional |
Observação: anote o nome do bucket, porque ele será usado em uma etapa posterior como [YOUR_BUCKET_NAME]
- Clique em CRIAR.
Observação: se o prompt O acesso público será bloqueado aparecer para você e a opção Aplicar a prevenção do acesso público neste bucket estiver marcada, clique em Confirmar.
- Selecione ENVIAR ARQUIVOS.
- Faça upload de qualquer arquivo na sua máquina local.
- Depois disso, clique nos três pontos à direita na linha do arquivo e selecione Renomear.
- Renomeie o arquivo como sample.txt e clique em RENOMEAR.
Selecione Verificar meu progresso para ver o objetivo.
Crie um bucket e faça upload de uma amostra de arquivo
Confirme o acesso como visualizador do projeto
-
Mude para a guia com o Nome de usuário 2 no console do Cloud.
-
No console, acesse Menu de navegação > Cloud Storage > Buckets.
-
Verifique se o bucket está visível para o Nome de usuário 2.
Tarefa 4. Remover o acesso ao projeto
Remova o papel de visualizador do projeto do Nome de usuário 2
- Mude para a guia com o Nome de usuário 1 no console do Cloud.
- No Menu de navegação (
), clique em IAM e admin > IAM.
- Selecione o Nome de usuário 2 e clique em Remover acesso.
Observações: confira se você está removendo o acesso do Nome de usuário 2, e não de outro usuário. Se você remover acidentalmente o acesso do Nome de usuário 1, precisará reiniciar este laboratório.
- Para concluir, clique em CONFIRMAR.
Note que o usuário foi excluído da lista e, portanto, não tem mais acesso ao projeto.
Selecione Verificar meu progresso para ver o objetivo.
Remova o acesso ao projeto
Verifique se o Nome de usuário 2 teve o acesso removido
-
Mude para a guia com o Nome de usuário 2 no console do Cloud.
-
No Menu de navegação (
), clique em Visão geral do Cloud > Painel.
-
No Menu de navegação (
), clique em Cloud Storage > Buckets.
Um erro vai aparecer. Se isso não ocorrer, atualize a página. O Nome de usuário 2 ainda tem uma conta do Google Cloud, mas não tem acesso ao projeto.
Tarefa 5. Incluir acesso de armazenamento
Adicione permissões de armazenamento
- Copie o valor do Nome de usuário 2 da caixa de diálogo Detalhes da conexão do Qwiklabs.
- Mude para a guia com o Nome de usuário 1 no console do Cloud.
- No Menu de navegação (
), clique em IAM e admin > IAM.
- Clique em Permitir acesso para adicionar um usuário.
- Em Novos principais, cole o valor do Nome de usuário 2 que você copiou da caixa de diálogo Detalhes da conexão do Qwiklabs.
- Em Selecionar papel, selecione Cloud Storage > Leitor de objetos do Storage.
- Clique em SALVAR.
Selecione Verificar meu progresso para ver o objetivo.
Adicione permissões de armazenamento
Verifique se o Nome de usuário 2 tem acesso ao armazenamento
- Mude para a guia com o Nome de usuário 2 no console do Cloud.
Observação: o Nome de usuário 2 não tem o papel Leitor do projeto. Por isso, ele não pode ver o projeto nem os recursos associados no console. No entanto, o usuário tem acesso específico ao Cloud Storage.
- Para iniciar o Cloud Shell, clique em Ativar Cloud Shell (
). Se for solicitado, clique em Continuar.
- Para visualizar o conteúdo do bucket criado anteriormente, execute o seguinte comando, substituindo
[YOUR_BUCKET_NAME]
pelo nome exclusivo do bucket do Cloud Storage que você criou:
gcloud storage ls gs://[YOUR_BUCKET_NAME]
Como você pode ver, o Nome de usuário 2 tem acesso limitado ao Cloud Storage.
- Feche a guia do Nome de usuário 2 do Console do Cloud.
Você usará a guia do Nome de usuário 1 no restante do laboratório.
- Mude para a guia com o Nome de usuário 1 no console do Cloud.
Tarefa 6. Configurar o usuário da conta de serviço
Nesta parte do laboratório, você atribuirá permissões restritas a contas de serviço e aprenderá a usar o papel de usuário da conta de serviço.
Crie uma conta de serviço
- No Menu de navegação (
), clique em IAM e admin > Contas de serviço.
- Clique em + CRIAR CONTA DE SERVIÇO.
- Especifique o Nome da conta de serviço como read-bucket-objects.
- Clique em CRIAR E CONTINUAR.
- Em Selecionar papel, selecione Cloud Storage > Leitor de objetos do Storage.
- Clique em CONTINUAR.
- Selecione CONCLUÍDO.
Adicione o usuário à conta de serviço
- Selecione a conta de serviço read-bucket-objects.
- Clique nos três pontos à direita do nome da conta de serviço. Depois selecione Gerenciar permissões.
Observação: você concederá a alguém o papel de usuário da conta de serviço. Assim, se essa pessoa tiver acesso a uma VM, poderá usar a conta de serviço nela. Você pode fazer isso para um usuário, um grupo ou um domínio específico. Neste treinamento, você concederá o papel de usuário da conta de serviço a todos os funcionários da Altostrat.com, uma empresa fictícia usada para demonstração.
- Clique no botão CONCEDER ACESSO. Especifique o seguinte e não mude as outras configurações:
Propriedade |
Valor (digite o valor ou selecione a opção conforme especificado) |
Novos principais |
altostrat.com |
Papel |
Contas de serviço > Usuário da conta de serviço |
- Clique em SALVAR.
Conceda acesso ao Compute Engine
Agora você concederá o papel de administrador do Compute Engine a toda a organização Altostrat.
- No Menu de navegação (
), clique em IAM e admin > IAM.
- Clique em Permitir acesso.
- Especifique o seguinte e não mude as outras configurações:
Propriedade |
Valor (digite o valor ou selecione a opção conforme especificado) |
Novos principais |
altostrat.com |
Selecionar papel |
Compute Engine > Administrador da instância do Compute (v1) |
- Clique em SALVAR.
Observação: esta etapa também é válida para atribuir papéis a um usuário específico.
Esta ação fornece ao usuário acesso limitado em uma instância de VM. Assim, ele poderá se conectar via SSH a uma VM e realizar algumas tarefas de administração.
Crie uma VM com o usuário da conta de serviço
- No Menu de navegação (
), clique em Compute Engine > Instâncias de VM.
- Clique em CRIAR INSTÂNCIA.
- Especifique o seguinte e não mude as outras configurações:
Propriedade |
Valor (digite o valor ou selecione a opção conforme especificado) |
Nome |
demoiam |
Região |
|
Zona |
|
Série |
E2 |
Tipo de máquina |
e2-micro (2 vCPUs, memória de 1 GB) |
Disco de inicialização |
Debian GNU/Linux 11 (bullseye) |
Conta de serviço |
read-bucket-objects |
Escopos de acesso |
Definir acesso para cada API |
Armazenamento |
Leitura e gravação |
- Clique em Criar.
Selecione Verificar meu progresso para ver o objetivo.
Configure o usuário da conta de serviço e crie uma VM
Tarefa 7. Conhecer o papel de usuário da conta de serviço
Agora você pode fazer com que o usuário teste o acesso conectando-se via SSH à VM e realizando as próximas ações. Como proprietário do projeto, você já tem o papel de usuário da conta de serviço. Assim, usando apenas o SSH para acessar a VM no Console do Cloud, você pode simular a experiência do usuário.
Você vai realizar as mesmas ações e ver os mesmos resultados que o usuário-alvo.
Use o usuário da conta de serviço
- Em demoiam, clique em SSH para iniciar um terminal e conectar.
- Execute este comando:
gcloud compute instances list
Resultado (exemplo de saída):
ERROR: (gcloud.compute.instances.list) Some requests did not succeed:
- Required 'compute.zones.list' permission for 'projects/qwiklabs-gcp'
O que aconteceu? Por quê?
- Copie o arquivo sample.txt do bucket criado anteriormente. O ponto-final faz parte do comando abaixo. Ele significa "copiar para este local":
gcloud storage cp gs://[YOUR_BUCKET_NAME]/sample.txt .
Resultado (exemplo de saída):
Copying gs://train-test-iam/sample.txt...
/ [1 files][ 28.0 B/ 28.0 B]
Operation completed over 1 objects/28.0 B.
- Para renomear o arquivo copiado, execute o seguinte comando:
mv sample.txt sample2.txt
- Para copiar o arquivo renomeado de volta para o bucket, execute o seguinte comando:
gcloud storage cp sample2.txt gs://[YOUR_BUCKET_NAME]
Resultado (exemplo de saída):
AccessDeniedException: 403 Caller does not have storage.objects.create access to bucket train-test-iam.
Observação: o que aconteceu?
Por ter se conectado à instância via SSH, você tem basicamente as mesmas permissões que a conta de serviço.
A conta de serviço em que a instância foi iniciada tinha o papel de leitor de armazenamento, que permite fazer o download de objetos dos buckets do GCS no projeto.
Para listar as instâncias em um projeto, você precisa conceder a permissão compute.instance.list. Como a conta de serviço não tinha essa permissão, não foi possível listar as instâncias em execução no projeto.
Como a conta de serviço tinha permissão para fazer o download de objetos, foi possível realizar essa ação com um objeto do bucket. A conta não tinha permissão para gravar objetos, então você recebeu a mensagem 403 access denied.
- No Menu de navegação (
), clique em IAM e admin > IAM.
- Navegue pela lista para encontrar as linhas com read-bucket-objects e clique no ícone de lápis. read-bucket-objects atualmente tem o papel Leitor de objetos do Storage. Altere o Papel para Cloud Storage > Criador de objetos do Storage.
- Clique em Salvar.
- Volte para a janela SSH de demoiam.
- Para copiar o arquivo renomeado de volta para o bucket, execute o seguinte comando:
gcloud storage cp sample2.txt gs://[YOUR_BUCKET_NAME]
Desta vez, o comando terá êxito porque a conta de serviço tem as permissões corretas.
Tarefa 8. Analisar
Neste laboratório, você aprendeu a conceder e revogar papéis do IAM, primeiro para o Nome de usuário 2 e depois para um usuário da conta de serviço. Você alocou as credenciais do usuário da conta de serviço e as integrou em uma VM para criar Bastion Hosts autorizados para fins específicos.
Resumo
No que diz respeito à segurança, o Google Cloud e a AWS têm diversas semelhanças — a começar pela ferramenta principal de controle de acesso, o Identity and Access Management (IAM).
Tanto na AWS quanto no Google Cloud, o IAM é um serviço da Web que ajuda a controlar o acesso a diferentes serviços e recursos com segurança. Use essa ferramenta para gerenciar a autenticação (quem tem acesso) e a autorização (o que cada usuário pode fazer). Também é possível criar e gerenciar diferentes principais, como:
- Usuários
- Papéis
- Políticas
Ao usar o IAM, é importante conhecer todo o escopo das permissões que você atribui.
Na AWS, você usa uma hierarquia de recursos que pode incluir:
- Uma organização raiz
- Unidades organizacionais que podem ser aninhadas
- Contas
- Recursos
No Google Cloud, a hierarquia será parecida com esta:
- Organização
- Pastas que podem ser aninhadas
- Projetos
- Recursos
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.