SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
Segurança e Automação Amazon Web Services
Lições das trincheiras.
Bruno Pereira Bruno Almeida
Quem Somos
CEO da Rivendel
CTO do Hotel Urbano
Desenvolvedor/Arquiteto com 12 anos de experiência
5 anos com Amazon Web Services
Mais de 70 clientes Amazon atendidos
Bruno Pereira
Quem Somos
Sócio da Rivendel e Arquiteto AWS
8 anos de experiência como DevOps
4 anos com Amazon Web Services
Mais de 50 clientes Amazon atendidos
Bruno Almeida
Quem Somos
Completando 1 ano em Maio
40+ clientes atendidos, cerca de 20 recorrentes
Parceira AWS e Mulesoft
Time atualmente com 10 pessoas
Motivação
Será mesmo que um Datacenter físico é mais seguro
que um ambiente automatizado em Cloud??
Motivação
A sua infraestrutura fica em um data center com qualquer uma
das certificações abaixo?
- HIPAA
- SOC 1/SSAE 16/ISAE 3402 (formerly SAS70) – (Focados em bilhetagem, medição e
transparência de custos financeiros)
- SOC 2 (Relatórios de segurança feito por auditoria externa)
- SOC 3 (Relatórios de segurança feito pela “AICPA”)
- PCI DSS Level 1 (Nível de segurança PCI para o meio físico)
- ISO 27001 (Certificação de boas práticas de segurança da informação)
- FedRAMP(SM) (Certificação compatível com o governo americano)
- DIACAP and FISMA
- ITAR
- FIPS 140-2
- CSA
- MPAA
- DoD 5220.22-M
(Politica de destruição de hardware)
Modelo de responsabilidade compartilhada
Modelo de responsabilidade compartilhada
Se enxerguei mais longe
foi porque me apoiei nos
ombros de gigantes.
Modelo de responsabilidade compartilhada
Se enxerguei mais longe
foi porque me apoiei nos
ombros de gigantes.
Vamos nos apoiar na
Amazon e construir uma
solução campeã??
Grupos de segurança
Exemplo
básico
Grupos de segurança
Mecanismo útil para aplicar regras comuns de firewall em
múltiplos servidores de uma só vez, facilitando gestão
Importante criar grupos por camada de aplicação
Interessante liberar acesso para grupos
Tudo bloqueado por padrão, aberto só o que for liberado
explicitamente
Grupos de segurança – Exemplo ruim
Grupos de segurança – Melhorando
Grupos de segurança padrão definem as
regras de ENTRADA aos servidores. Eles
não tratam das regras de SAÍDA.
Segurança Web
Balanceamento: nginx, Apache, HAProxy ou ELB?
Preciso necessariamente de alguma coisa na frente do
servidor de aplicação?
Web Application Firewall (WAF)
Servidores HTTP diretamente
Gestão dos certificados
Ataques DDoS
Como se proteger?
Servidores HTTP com balanceamento
ELB + Autoscaling
Health-check de todas as
instâncias
Dá pra melhorar?
Servidores HTTP com balanceamento e WAF
Camada WAF adicional ao ELB
Proteção contra OWASP
Detectar a passagem de conteúdo
não autorizado como número de
cartão de crédito;
Gerar alerta forense
Proteção contra força bruta
Pode ser feito por software ou por
hardware especifico. Pode ser
instalado e configurado
manualmente ou contratado um
serviço especifico de WAF em
SaaS.
Heartbleed
Ocorreu uma falha possibilitando descriptograr o
conteúdo da requisição HTTPS.
Solução: atualizar o OpenSSL de sua instância
Na AWS, houve uma atualização automática no ELB
No seu Datacenter quanto tempo levou a correção?
Acesso de rede
Falamos muito de segurança WEB, mas e o meu acesso
à rede / instâncias (servidores) na AWS como fica?
Posso liberar o acesso SSH, RDP, FTP e MySQL aos
meus servidores publicamente e consigo acessá-los.
Mas isso é seguro?
NÃO!!!
Caso você deixe alguma dessas portas visivéis a
internet, você pode sofrer um ataque força bruta.
Com o seu endereço IP em mãos, pode-se executar um
comando nmap pra ver quais portas estão abertas e
então executar algum software de quebra de senha.
Como resolver? VPN/VPC to the rescue
VPN/VPC na Amazon
Precisamos de uma rede dentro da Amazon, ou seja uma
Virtual Private Cloud (VPC)
Passamos a ter regras de saída dos grupos de segurança,
em vez de só regras de entrada
Podemos configurar ACLs de rede
Temos a Amazon como extensão da nossa infraestrutura em
vez de tê-la como nuvem pública
VPC é totalmente gratuito
Porque ter Regras de Outbound?
Sua instância pode sofrer algum
ataque que a transforme em um
zumbi que faz chamadas a outros
servidores.
Esse tipo de ataque pode acontecer
caso não tenhamos regras de
entrada HTTP/HTTPS e SSH
adequadas, abrindo a entrada por
SSH ou SQL injection
ACLs de VPC
Onde se enquadra?
Em casos onde preciso aplicar
alguma regra para toda uma sub-
rede.
O conceito não é diferente do que já
é aplicável nos firewalls de mercado.
O objetivo é que você crie com ACLs
toda regra de entrada ou saída
válida aquela sub-rede ou grupo de
sub-redes.
Como se conectar de forma segura à VPC?
Posso ter uma VPN entre a minha rede e a AWS?
Sim, você pode usar a própria solução de
VPN AWS, basta ficarmos cientes de que a
solução padrão se conecta apenas a
grandes equipamentos de mercado.
Não tenho um equipamento de grande porte,
como faço essa configuração?
Podemos usar soluções linux como
OpenSwan ou OpenVPN.
Posso ter uma VPN do meu computador para
a AWS?
Sim, basta criar um servidor de VPN na AWS
usando PPTP ou OpenVPN.
O que fazer na sequência?
Você já parou pra pensar como controlar os acessos para
caso alguém da equipe saia da empresa ou projeto?
Será que é uma boa prática criar uma chave privada na AWS
e passar ela a todos os desenvolvedores?
Mesmo que você tenha uma chave para Homologação e uma
outra para produção, isto é suficiente?
Como controlar da melhor forma?
Como organizar e controlar as chaves privadas de acesso?
Devo criar usuários linux para cada usuário?
Sim, mas não acessíveis por senha
Então como?
Usuários devem possuir uma chave privada, pois o protocolo
SSH v2 já tem um bom nível de criptografia
Porém, é melhor ainda que cada integrante tenha sua chave
inserida no arquivo ssh de autorização de chaves
Hardening no SO
Quais acessos cada integrante da equipe realmente precisa
ter?
Permissão no SO limitada ao estritamente necessário
Quais pacotes manter instalados no SO?
Manter o mínimo de portas e serviços abertos
Protegendo ao máximo as chaves de acesso
Se é crítico ao extremo, contrate um Penetration Test!
Identity and Access Management (IAM)
Criando perfis e grupos para delegar autenticação e autorização
Controle de acesso por serviço, por servidor, grupo de
servidores, chegando a granularidade de 1 único recurso
Níveis diferentes de acesso em Dev, QA e PROD
Por que controlar os acessos?
Devemos ter usuários genéricos ou segregar usuários por
aplicação?
Automação
Entendendo até onde posso ir com as APIs
Como posso inicializar uma nova instância na AWS sem
intervenção manual?
ec2-run-instances [ID da AMI] -K [Chave Privada] -n 1 -g [Grupo
de Segurança]
Automatizando a subida de uma nova instância
Como eu poderia automatizar a ação de inicializar um servidor?
Nome: Script-teste.sh
Conteúdo:
#!/bin/bash
AWS_ACCESS_KEY= [ACCESS KEY]
AWS_SECRET_KEY= [SECRET ACCESS KEY]
ec2-run-instances [ID da AMI] -K [Chave Privada] -n 1 -g [Grupo de Segurança] && echo “OK”
Automatizando a criação de uma AMI
Como eu poderia automatizar a ação de montar um servidor
modelo?
Nome: Script-teste.sh
Conteúdo:
#!/bin/bash
AWS_ACCESS_KEY= [ACCESS KEY]
AWS_SECRET_KEY= [SECRET ACCESS KEY]
ec2-create-image [ID do Servidor Ligado que será o modelo] -n "Servidor WEB Modelo"
1o processo de deploy automático com Auto Scaling
Nome: Script-teste.sh
Conteúdo:
#!/bin/bash
AWS_ACCESS_KEY= [ACCESS KEY]
AWS_SECRET_KEY= [SECRET ACCESS KEY]
ec2-create-image [ID do Servidor Ligado que será o modelo] -n "Servidor WEB Modelo"
as-create-launch-config ….
as-update-auto-scaling-group ...
AWS API + shell script for the win?
Não! Podemos fazer melhor que isso! :)
O ideal é usar um serviço especializado para configurar
servidores. Na AWS o serviço é o OpsWorks, que permite
escrever uma receita Chef, subir para um repositório git e ele
então configura um servidor para nós.
Vou configurar um serviço que irá configurar os
servidores pra mim?
Isso mesmo!
Usando Chef nós escreveremos uma receita em Ruby
(também aceita comandos shell), e vamos nesta receita
indicar o que queremos que ele efetivamente faça na
configuração.
Como começo a criar receitas?
Instale o chef em seu computador.
Crie um repositório git e ligue ele ao seu computador
dentro da pasta do projeto, execute o comando: knife cookbook create
[NOME DA RECEITA QUE DESEJA CRIAR]. Este comando irá criar toda
a estrutura de pastas da receita.
Vá até a pasta da receita que criou, e então na pasta recipe edite o
arquivo default. Insira por exemplo o conteúdo:
package "nginx" do
action :install
end
service "nginx" do
action [ :enable, :start ]
end
Pronto, salve o arquivo. Com este conteúdo em sua receita, você irá
instalar e habilitar em auto-inicialização o nginx.
Qual benefício de usar o OpsWorks e não um chef-
server?
Usando a API da AWS no OpsWorks conseguimos por exemplo pegar o
nome da Stack onde a receita está sendo executada. Isso fará com que
eu determine por exemplo qual arquivo de configuração de banco de
dados vou usar na receita.
case node[:opsworks][:stack][:name]
when "Producao"
#FAÇA ALGO
end
when "Homologacao"
#FAÇA ALGO
end
E o deploy da minha aplicação?
Podemos pelo Opsworks definir a aplicação que faremos
o deploy e qual o branch do controle de versão que será
aplicado.
Pensando em um ambiente com 1 deploy por semana,
isso não fará diferença. Pensando em Deploy Contínuo
com vários deploys por dia, isso fará muita diferença.
Você quer Deploy Contínuo, não é mesmo? :)
Que ferramenta eu uso em cada situação?
Na execução repetitiva de uma ação, como por exemplo
configurar nginx + php-fpm ou HipHop, o ideal é usarmos
o OpsWorks, pois ele irá aplicar aquela mesma receita
configurada uma única vez nas novas instâncias.
Em cenários pontuais e bem específicos como
configuração de um cluster de VPN OpenSwan ou
qualquer outra ocasião pontual que não se repete, o shell
script ainda será muito útil.
Perguntas??
contato@rivendel.com.br
http://rivendel.com.br
http://blog.rivendel.com.br
http://suporteamazon.com.br
Obrigado!!!

Weitere ähnliche Inhalte

Was ist angesagt?

DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaAmazon Web Services LATAM
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaAmazon Web Services LATAM
 
Rodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemRodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemAmazon Web Services LATAM
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 
Webinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter VirtualWebinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter VirtualAmazon Web Services LATAM
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerNewton Angelini
 
Gerenciamento de custos na cloud
Gerenciamento de custos na cloudGerenciamento de custos na cloud
Gerenciamento de custos na cloudMarcelo Anton
 
Apresentação na PHP Conference Brasil 2012
Apresentação na PHP Conference Brasil 2012Apresentação na PHP Conference Brasil 2012
Apresentação na PHP Conference Brasil 2012Ariovaldo Carmona
 
Windows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralWindows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralFabio Hara
 
Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS Amazon Web Services LATAM
 

Was ist angesagt? (20)

DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínua
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Rodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemRodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvem
 
Segurança de ponta a ponta na AWS
Segurança de ponta a ponta na AWSSegurança de ponta a ponta na AWS
Segurança de ponta a ponta na AWS
 
Primeiros Passos na AWS
Primeiros Passos na AWSPrimeiros Passos na AWS
Primeiros Passos na AWS
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 
4 passos para a Transformação Digital
4 passos para a Transformação Digital4 passos para a Transformação Digital
4 passos para a Transformação Digital
 
Escalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com BeanstalkEscalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com Beanstalk
 
Escalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com BeanstalkEscalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com Beanstalk
 
Webinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter VirtualWebinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter Virtual
 
JavaEE
JavaEEJavaEE
JavaEE
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Road to serverless
Road to serverlessRoad to serverless
Road to serverless
 
Criando e conectando seu datacenter virtual
Criando e conectando seu datacenter virtualCriando e conectando seu datacenter virtual
Criando e conectando seu datacenter virtual
 
Gerenciamento de custos na cloud
Gerenciamento de custos na cloudGerenciamento de custos na cloud
Gerenciamento de custos na cloud
 
Apresentação na PHP Conference Brasil 2012
Apresentação na PHP Conference Brasil 2012Apresentação na PHP Conference Brasil 2012
Apresentação na PHP Conference Brasil 2012
 
Jboss eap 6
Jboss eap 6Jboss eap 6
Jboss eap 6
 
Criando e conectando seu datacenter virtual
Criando e conectando seu datacenter virtualCriando e conectando seu datacenter virtual
Criando e conectando seu datacenter virtual
 
Windows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralWindows Azure Pack - Visão Geral
Windows Azure Pack - Visão Geral
 
Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS
 

Andere mochten auch

YQL: Select * from internet - Campus Party 2010
YQL: Select * from internet - Campus Party 2010YQL: Select * from internet - Campus Party 2010
YQL: Select * from internet - Campus Party 2010Pedro Valente
 
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...Bruno Luiz Pereira da Silva
 
Oito dicas sobre Docker
Oito dicas sobre DockerOito dicas sobre Docker
Oito dicas sobre DockerMundo Docker
 
Quizizz Presentation
Quizizz PresentationQuizizz Presentation
Quizizz PresentationQuizizz
 
Kahoot.it Game Pin
Kahoot.it Game PinKahoot.it Game Pin
Kahoot.it Game PinMansoor Khan
 

Andere mochten auch (6)

YQL: Select * from internet - Campus Party 2010
YQL: Select * from internet - Campus Party 2010YQL: Select * from internet - Campus Party 2010
YQL: Select * from internet - Campus Party 2010
 
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...
 
Oito dicas sobre Docker
Oito dicas sobre DockerOito dicas sobre Docker
Oito dicas sobre Docker
 
Kahoot how to
Kahoot how toKahoot how to
Kahoot how to
 
Quizizz Presentation
Quizizz PresentationQuizizz Presentation
Quizizz Presentation
 
Kahoot.it Game Pin
Kahoot.it Game PinKahoot.it Game Pin
Kahoot.it Game Pin
 

Ähnlich wie Segurança e automação na AWS

AWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdf
AWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdfAWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdf
AWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdfAmazon Web Services LATAM
 
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...Dan El Pierre Rezende
 
Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasAmazon Web Services LATAM
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaAmazon Web Services LATAM
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlabJackson F. de A. Mafra
 
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...Amazon Web Services LATAM
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAmazon Web Services LATAM
 
Solucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioSolucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioPatrick Monteiro
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
TDC2018SP | Trilha Serverless - Resolvendo problemas do dia a dia com Slack e...
TDC2018SP | Trilha Serverless - Resolvendo problemas do dia a dia com Slack e...TDC2018SP | Trilha Serverless - Resolvendo problemas do dia a dia com Slack e...
TDC2018SP | Trilha Serverless - Resolvendo problemas do dia a dia com Slack e...tdc-globalcode
 
Resolvendo problemas do dia a dia com slack e serverless.
Resolvendo problemas do dia  a dia com slack e serverless.Resolvendo problemas do dia  a dia com slack e serverless.
Resolvendo problemas do dia a dia com slack e serverless.Aline Oliveira Dias
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSAmazon Web Services LATAM
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAmazon Web Services LATAM
 
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...WordCamp Floripa
 

Ähnlich wie Segurança e automação na AWS (20)

AWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdf
AWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdfAWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdf
AWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdf
 
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
 
Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5
 
Dev Ops at Paguemenos
Dev Ops at PaguemenosDev Ops at Paguemenos
Dev Ops at Paguemenos
 
Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernas
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
 
Entrega ebook-gratis
Entrega ebook-gratisEntrega ebook-gratis
Entrega ebook-gratis
 
Solucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioSolucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.io
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
TDC2018SP | Trilha Serverless - Resolvendo problemas do dia a dia com Slack e...
TDC2018SP | Trilha Serverless - Resolvendo problemas do dia a dia com Slack e...TDC2018SP | Trilha Serverless - Resolvendo problemas do dia a dia com Slack e...
TDC2018SP | Trilha Serverless - Resolvendo problemas do dia a dia com Slack e...
 
Resolvendo problemas do dia a dia com slack e serverless.
Resolvendo problemas do dia  a dia com slack e serverless.Resolvendo problemas do dia  a dia com slack e serverless.
Resolvendo problemas do dia a dia com slack e serverless.
 
Integrando infraestruturas híbridas
Integrando infraestruturas híbridas Integrando infraestruturas híbridas
Integrando infraestruturas híbridas
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWS
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
 

Segurança e automação na AWS

  • 1. Segurança e Automação Amazon Web Services Lições das trincheiras. Bruno Pereira Bruno Almeida
  • 2. Quem Somos CEO da Rivendel CTO do Hotel Urbano Desenvolvedor/Arquiteto com 12 anos de experiência 5 anos com Amazon Web Services Mais de 70 clientes Amazon atendidos Bruno Pereira
  • 3. Quem Somos Sócio da Rivendel e Arquiteto AWS 8 anos de experiência como DevOps 4 anos com Amazon Web Services Mais de 50 clientes Amazon atendidos Bruno Almeida
  • 4. Quem Somos Completando 1 ano em Maio 40+ clientes atendidos, cerca de 20 recorrentes Parceira AWS e Mulesoft Time atualmente com 10 pessoas
  • 5. Motivação Será mesmo que um Datacenter físico é mais seguro que um ambiente automatizado em Cloud??
  • 6. Motivação A sua infraestrutura fica em um data center com qualquer uma das certificações abaixo? - HIPAA - SOC 1/SSAE 16/ISAE 3402 (formerly SAS70) – (Focados em bilhetagem, medição e transparência de custos financeiros) - SOC 2 (Relatórios de segurança feito por auditoria externa) - SOC 3 (Relatórios de segurança feito pela “AICPA”) - PCI DSS Level 1 (Nível de segurança PCI para o meio físico) - ISO 27001 (Certificação de boas práticas de segurança da informação) - FedRAMP(SM) (Certificação compatível com o governo americano) - DIACAP and FISMA - ITAR - FIPS 140-2 - CSA - MPAA - DoD 5220.22-M (Politica de destruição de hardware)
  • 8. Modelo de responsabilidade compartilhada Se enxerguei mais longe foi porque me apoiei nos ombros de gigantes.
  • 9. Modelo de responsabilidade compartilhada Se enxerguei mais longe foi porque me apoiei nos ombros de gigantes. Vamos nos apoiar na Amazon e construir uma solução campeã??
  • 11. Grupos de segurança Mecanismo útil para aplicar regras comuns de firewall em múltiplos servidores de uma só vez, facilitando gestão Importante criar grupos por camada de aplicação Interessante liberar acesso para grupos Tudo bloqueado por padrão, aberto só o que for liberado explicitamente
  • 12. Grupos de segurança – Exemplo ruim
  • 13. Grupos de segurança – Melhorando Grupos de segurança padrão definem as regras de ENTRADA aos servidores. Eles não tratam das regras de SAÍDA.
  • 14. Segurança Web Balanceamento: nginx, Apache, HAProxy ou ELB? Preciso necessariamente de alguma coisa na frente do servidor de aplicação? Web Application Firewall (WAF)
  • 15. Servidores HTTP diretamente Gestão dos certificados Ataques DDoS Como se proteger?
  • 16. Servidores HTTP com balanceamento ELB + Autoscaling Health-check de todas as instâncias Dá pra melhorar?
  • 17. Servidores HTTP com balanceamento e WAF Camada WAF adicional ao ELB Proteção contra OWASP Detectar a passagem de conteúdo não autorizado como número de cartão de crédito; Gerar alerta forense Proteção contra força bruta Pode ser feito por software ou por hardware especifico. Pode ser instalado e configurado manualmente ou contratado um serviço especifico de WAF em SaaS.
  • 18. Heartbleed Ocorreu uma falha possibilitando descriptograr o conteúdo da requisição HTTPS. Solução: atualizar o OpenSSL de sua instância Na AWS, houve uma atualização automática no ELB No seu Datacenter quanto tempo levou a correção?
  • 19. Acesso de rede Falamos muito de segurança WEB, mas e o meu acesso à rede / instâncias (servidores) na AWS como fica? Posso liberar o acesso SSH, RDP, FTP e MySQL aos meus servidores publicamente e consigo acessá-los. Mas isso é seguro?
  • 20. NÃO!!! Caso você deixe alguma dessas portas visivéis a internet, você pode sofrer um ataque força bruta. Com o seu endereço IP em mãos, pode-se executar um comando nmap pra ver quais portas estão abertas e então executar algum software de quebra de senha. Como resolver? VPN/VPC to the rescue
  • 21. VPN/VPC na Amazon Precisamos de uma rede dentro da Amazon, ou seja uma Virtual Private Cloud (VPC) Passamos a ter regras de saída dos grupos de segurança, em vez de só regras de entrada Podemos configurar ACLs de rede Temos a Amazon como extensão da nossa infraestrutura em vez de tê-la como nuvem pública VPC é totalmente gratuito
  • 22. Porque ter Regras de Outbound? Sua instância pode sofrer algum ataque que a transforme em um zumbi que faz chamadas a outros servidores. Esse tipo de ataque pode acontecer caso não tenhamos regras de entrada HTTP/HTTPS e SSH adequadas, abrindo a entrada por SSH ou SQL injection
  • 23. ACLs de VPC Onde se enquadra? Em casos onde preciso aplicar alguma regra para toda uma sub- rede. O conceito não é diferente do que já é aplicável nos firewalls de mercado. O objetivo é que você crie com ACLs toda regra de entrada ou saída válida aquela sub-rede ou grupo de sub-redes.
  • 24. Como se conectar de forma segura à VPC? Posso ter uma VPN entre a minha rede e a AWS? Sim, você pode usar a própria solução de VPN AWS, basta ficarmos cientes de que a solução padrão se conecta apenas a grandes equipamentos de mercado. Não tenho um equipamento de grande porte, como faço essa configuração? Podemos usar soluções linux como OpenSwan ou OpenVPN. Posso ter uma VPN do meu computador para a AWS? Sim, basta criar um servidor de VPN na AWS usando PPTP ou OpenVPN.
  • 25. O que fazer na sequência? Você já parou pra pensar como controlar os acessos para caso alguém da equipe saia da empresa ou projeto? Será que é uma boa prática criar uma chave privada na AWS e passar ela a todos os desenvolvedores? Mesmo que você tenha uma chave para Homologação e uma outra para produção, isto é suficiente?
  • 26. Como controlar da melhor forma? Como organizar e controlar as chaves privadas de acesso? Devo criar usuários linux para cada usuário? Sim, mas não acessíveis por senha Então como? Usuários devem possuir uma chave privada, pois o protocolo SSH v2 já tem um bom nível de criptografia Porém, é melhor ainda que cada integrante tenha sua chave inserida no arquivo ssh de autorização de chaves
  • 27. Hardening no SO Quais acessos cada integrante da equipe realmente precisa ter? Permissão no SO limitada ao estritamente necessário Quais pacotes manter instalados no SO? Manter o mínimo de portas e serviços abertos Protegendo ao máximo as chaves de acesso Se é crítico ao extremo, contrate um Penetration Test!
  • 28. Identity and Access Management (IAM) Criando perfis e grupos para delegar autenticação e autorização Controle de acesso por serviço, por servidor, grupo de servidores, chegando a granularidade de 1 único recurso Níveis diferentes de acesso em Dev, QA e PROD Por que controlar os acessos? Devemos ter usuários genéricos ou segregar usuários por aplicação?
  • 30. Entendendo até onde posso ir com as APIs Como posso inicializar uma nova instância na AWS sem intervenção manual? ec2-run-instances [ID da AMI] -K [Chave Privada] -n 1 -g [Grupo de Segurança]
  • 31. Automatizando a subida de uma nova instância Como eu poderia automatizar a ação de inicializar um servidor? Nome: Script-teste.sh Conteúdo: #!/bin/bash AWS_ACCESS_KEY= [ACCESS KEY] AWS_SECRET_KEY= [SECRET ACCESS KEY] ec2-run-instances [ID da AMI] -K [Chave Privada] -n 1 -g [Grupo de Segurança] && echo “OK”
  • 32. Automatizando a criação de uma AMI Como eu poderia automatizar a ação de montar um servidor modelo? Nome: Script-teste.sh Conteúdo: #!/bin/bash AWS_ACCESS_KEY= [ACCESS KEY] AWS_SECRET_KEY= [SECRET ACCESS KEY] ec2-create-image [ID do Servidor Ligado que será o modelo] -n "Servidor WEB Modelo"
  • 33. 1o processo de deploy automático com Auto Scaling Nome: Script-teste.sh Conteúdo: #!/bin/bash AWS_ACCESS_KEY= [ACCESS KEY] AWS_SECRET_KEY= [SECRET ACCESS KEY] ec2-create-image [ID do Servidor Ligado que será o modelo] -n "Servidor WEB Modelo" as-create-launch-config …. as-update-auto-scaling-group ...
  • 34. AWS API + shell script for the win? Não! Podemos fazer melhor que isso! :) O ideal é usar um serviço especializado para configurar servidores. Na AWS o serviço é o OpsWorks, que permite escrever uma receita Chef, subir para um repositório git e ele então configura um servidor para nós.
  • 35. Vou configurar um serviço que irá configurar os servidores pra mim? Isso mesmo! Usando Chef nós escreveremos uma receita em Ruby (também aceita comandos shell), e vamos nesta receita indicar o que queremos que ele efetivamente faça na configuração.
  • 36. Como começo a criar receitas? Instale o chef em seu computador. Crie um repositório git e ligue ele ao seu computador dentro da pasta do projeto, execute o comando: knife cookbook create [NOME DA RECEITA QUE DESEJA CRIAR]. Este comando irá criar toda a estrutura de pastas da receita. Vá até a pasta da receita que criou, e então na pasta recipe edite o arquivo default. Insira por exemplo o conteúdo: package "nginx" do action :install end service "nginx" do action [ :enable, :start ] end Pronto, salve o arquivo. Com este conteúdo em sua receita, você irá instalar e habilitar em auto-inicialização o nginx.
  • 37. Qual benefício de usar o OpsWorks e não um chef- server? Usando a API da AWS no OpsWorks conseguimos por exemplo pegar o nome da Stack onde a receita está sendo executada. Isso fará com que eu determine por exemplo qual arquivo de configuração de banco de dados vou usar na receita. case node[:opsworks][:stack][:name] when "Producao" #FAÇA ALGO end when "Homologacao" #FAÇA ALGO end
  • 38. E o deploy da minha aplicação? Podemos pelo Opsworks definir a aplicação que faremos o deploy e qual o branch do controle de versão que será aplicado. Pensando em um ambiente com 1 deploy por semana, isso não fará diferença. Pensando em Deploy Contínuo com vários deploys por dia, isso fará muita diferença. Você quer Deploy Contínuo, não é mesmo? :)
  • 39. Que ferramenta eu uso em cada situação? Na execução repetitiva de uma ação, como por exemplo configurar nginx + php-fpm ou HipHop, o ideal é usarmos o OpsWorks, pois ele irá aplicar aquela mesma receita configurada uma única vez nas novas instâncias. Em cenários pontuais e bem específicos como configuração de um cluster de VPN OpenSwan ou qualquer outra ocasião pontual que não se repete, o shell script ainda será muito útil.