Introdução à segurança na AWS

Usando a segurança da AWS para desenvolvedores

Rahul Singh

Technical Product Manager

Pré-requisitos do curso

 

  • Noções básicas de segurança na AWS
  • Conceitos de computação em nuvem
  • Conceitos de segurança e gestão de custos na AWS

 

 

Cartão de título do curso AWS Security and Cost Management Concepts

Usando a segurança da AWS para desenvolvedores

Objetivos do curso

 

  1. Identidade: quem está chamando
  2. Autorização: o que pode acessar
  3. Segredos e criptografia: protegendo os dados
  4. Evidências: o que aconteceu depois

Quatro faixas numeradas empilhadas, uma para cada área do curso. Faixa um, Identidade, marcada Capítulo 1. Faixa dois, Autorização, marcada Capítulo 2. Faixa três, Segredos e criptografia, marcada Capítulos 2 e 3. Faixa quatro, Evidências, marcada Capítulo 3. Uma seta laranja à esquerda, rotulada este vídeo, aponta para a faixa um.

Usando a segurança da AWS para desenvolvedores

Seu código é entregue por um pipeline

Um fluxo da esquerda para a direita. Etapa 1: um quadro "Seu pipeline" com três fases: Build, Test, Deploy. Etapa 2: uma seta "git push" vinda de um quadro "Você". Etapa 3: um selo laranja abaixo do pipeline, "sua própria identidade". Uma seta segue para um quadro "AWS".

Antes, um termo

  • Um pipeline automatiza o build, teste e deploy do seu código
  • Ele roda com seu push, sem pessoa na etapa
Usando a segurança da AWS para desenvolvedores

Um deploy que falha pelo motivo errado

Ao mudar o código, de quem são as permissões verificadas?
  1. Você faz um push

Etapa um de um fluxo vertical. Um quadro rotulado Você, enviando uma alteração de código.

Usando a segurança da AWS para desenvolvedores

Um deploy que falha pelo motivo errado

Ao mudar o código, de quem são as permissões verificadas?
  1. Você faz um push

  2. Seu pipeline roda

Um fluxo vertical. Etapa um, Você, enviando uma alteração de código. Uma seta desce para a etapa dois, seu pipeline, que executa o deploy.

Usando a segurança da AWS para desenvolvedores

Um deploy que falha pelo motivo errado

Ao mudar o código, de quem são as permissões verificadas?
  1. Você faz um push

  2. Seu pipeline roda

  3. O deploy para: AccessDenied

Primeiro impulso: "Vou checar minhas próprias permissões."

Um fluxo vertical. Etapa um, Você, enviando uma alteração de código. Etapa dois, seu pipeline executa o deploy. Etapa três, a AWS avalia a solicitação e retorna AccessDenied.

Usando a segurança da AWS para desenvolvedores

O que de fato aconteceu

Etapa um de um fluxo da esquerda para a direita. Um quadro rotulado Você, cuja participação termina aqui.

  1. Você faz o push. Sua participação termina aqui
Usando a segurança da AWS para desenvolvedores

O que de fato aconteceu

Um fluxo da esquerda para a direita. Um quadro Você, com seta para um quadro Seu pipeline. Um selo "deploy-role" pendurado abaixo do pipeline.

  1. Você faz o push. Sua participação termina aqui
  2. O pipeline faz o deploy, rodando como uma role criada pelo seu time
Usando a segurança da AWS para desenvolvedores

O que de fato aconteceu

Um fluxo da esquerda para a direita de Você, para Seu pipeline, para AWS. Um selo "deploy-role" abaixo do pipeline, e uma seta tracejada "checks" volta da AWS para esse selo, não para Você.

  1. Você faz o push. Sua participação termina aqui
  2. O pipeline faz o deploy, rodando como uma role criada pelo seu time
  3. A AWS avalia essa role
Usando a segurança da AWS para desenvolvedores

Ator e principal

Ator

Quem põe o trabalho em movimento.

Aqui: você.

Ícone de pessoa representando o ator que inicia o trabalho.

Usando a segurança da AWS para desenvolvedores

Ator e principal

Ator

Quem põe o trabalho em movimento.

Aqui: você.

Principal

A identidade que a AWS avalia quando a requisição chega.

Aqui: a role do pipeline.

Ícone de pessoa representando o ator que inicia o trabalho.

Um ícone representando o principal.

Usando a segurança da AWS para desenvolvedores

Ator e principal

Ator

Quem põe o trabalho em movimento.

Aqui: você.

Principal

A identidade que a AWS avalia quando a requisição chega.

Aqui: a role do pipeline.

  • Lambda: execution role. ECS: task role. Nome muda, o principal é o mesmo
  • Exceção: uma chave de longa duração no seu terminal, então o usuário IAM é o principal

Ícone de pessoa representando o ator que inicia o trabalho.

Um ícone mostrando a AWS checando o principal em vez do ator.

Usando a segurança da AWS para desenvolvedores

Mesmo deploy, duas roles

Role A (O formato de AdministratorAccess)

  • Ler todos os buckets
  • Usar todas as chaves
  • Atualizar todas as funções

Role B

  • Ler um bucket
  • Usar uma chave
  • Atualizar uma função

Prefix: um caminho tipo pasta dentro de um bucket

Imagem mostrando uma role com acesso total a seis políticas diferentes.

Imagem mostrando uma role com acesso restrito a apenas uma política.

Usando a segurança da AWS para desenvolvedores

Raio de impacto

Role ampla

Se comprometida: alcança todos os buckets, prefixes e objetos da conta.

Role estreita

Se comprometida: alcança um prefix em um bucket. Nada além.

Anéis concêntricos ilustrando uma role ampla que alcança todas as partes da conta.

Anéis concêntricos mostrando que uma role estreita alcança apenas os anéis internos de objeto e prefix, deixando o resto intocado.

Usando a segurança da AWS para desenvolvedores

Princípio do menor privilégio, na prática

Uma role deve fazer o que o trabalho exige — e pouco além disso.

  • Gerenciada pela AWS, como AmazonS3ReadOnlyAccess: todos os buckets. Gerenciada pelo cliente: sua, até um único prefix
  • Alcance e vida útil: credenciais de curta duração em vez de chaves de longa duração
  • A AWS protege a infraestrutura
  • A amplitude das suas roles é decisão sua — e vive no seu repositório

Exemplo: uma role leitora do bucket de relatórios Duas permissões "Allow". Nada mais concedido.

  • Nada em IAM, o serviço que decide quem pode fazer o quê

Lista de permissões de uma role com três permissões excedentes riscadas em vermelho e duas necessárias mantidas em verde.

Usando a segurança da AWS para desenvolvedores

Vamos praticar!

Usando a segurança da AWS para desenvolvedores

Preparing Video For Download...