AWS

8 fev, 2016

AWS Certificate Manager – implementar aplicativos baseados em SSL/TLS na AWS

Publicidade

Sou fascinado por coisas que são simples na superfície e complexas embaixo! Por exemplo, considere o popular ícone de cadeado que é usado para informar que o tráfego de um web site é criptografado:

ssl_tls_indicator_on_amazon_site_1

Como é que o navegador sabe que ele deve exibir o cadeado verde? Bem, isso é uma história e tanto! Tudo começa com um arquivo digital conhecido como um certificado SSL/TLS. Este é um documento eletrônico que é usado para estabelecer identidade e confiança entre as duas partes. Neste caso, as duas partes são o web site e o navegador da web.

O SSL/TLS é um objeto indispensável sempre que dados sensíveis são movidos para trás e para frente. Por exemplo, sites que precisam atender aos requisitos de conformidade, como PCI-DSS, FedRAMP e HIPAA fazem uso extensivo do SSL/TLS.

Os certificados são emitidos para domínios específicos por Autoridades de Certificação, também conhecidas como CAs (Certificate Authorities). Quando você quiser obter um certificado para o seu site, a CA irá confirmar que você é responsável para o domínio. Em seguida, ele irá emitir um certificado que é válido por um determinado período de tempo e apenas para um determinado domínio (subdomínios são permitidos). Tradicionalmente, você também seria responsável por instalar o certificado em seu sistema, rastrear as datas de vencimento e obter certificados novos ao longo do tempo (tipicamente, os certificados são válidos por um período de 12 meses).

Cada certificado é assinado digitalmente; isso permite que o navegador verifique se ele foi emitido por uma CA legítima, para ser um pouco mais específico, os navegadores começam com uma pequena lista, pré-definida de certificados de raiz e a usa para verificar se os outros certificados podem ser rastreados até a raiz. Você pode acessar essas informações a partir do seu navegador:

cert_info_aws_site_1

Como você pode ver a partir do que eu esbocei acima (apesar de eu ter passado rapidamente por um monte de detalhes interessantes), provisionamento e gerenciamento de certificados SSL/TLS podem implicar em um monte de trabalho – muito dele manual e não facilmente automatizado. Em muitos casos, você também precisa pagar uma taxa anual para cada certificado.

É hora de mudar isso!

AWS Certificate Manager

AWS Certificate Manager é projetado para simplificar e automatizar muitas das tarefas tradicionalmente associadas à gestão de certificados SSL/TLS. O ACM cuida da complexidade que envolve o fornecimento, implantação e renovação de certificados digitais. Os certificados fornecidos pelo ACM são verificados pela Amazon’s certificate authority (CA) e Amazon Trust Services (ATS).

E ainda melhor: você pode fazer tudo isso sem nenhum custo extra. Os certificados SSL/TLS provisionados através do AWS Gerenciador de Certificados são grátis!

O ACM permitirá que você comece a usar o SSL em questão de minutos. Após o seu pedido por um certificado, você pode implantá-lo em seus Elastic Load Balancers e nas suas distribuições do Amazon CloudFront com apenas alguns cliques. Depois disso, o ACM pode cuidar das renovações periódicas, sem qualquer ação de sua parte.

acm_first_run_1

Provisionamento e implantação de um certificado

Vamos percorrer o processo de provisionamento e implantação de um certificado digital usando o console (APIs também estão disponíveis). Vou usar um dos meus próprios domínios (jeff-barr.com) para este exercício. Gostaria de começar por abrir o Console AWS Gerenciador de Certificados e clicando em Get started.

Então eu digito o nome de domínio do site que desejo proteger. Neste caso, eu quero garantir o domínio “nu” e todos os subdomínios de primeiro nível dentro dele:

acm_enter_domain_names_1

Então eu reviso o meu pedido e confirmo a minha intenção:

acm_review_request_1

Verifico minha caixa de entrada e encontro o e-mail ou e-mails (um por domínio) da Amazon (certificates.amazon.com), e clico em Amazon Certificate Approvals:

acm_confirm_email_2

Visito o site e clico em I Approve:

acm_click_to_approve_jeff_2

E é só o que precisa ser feito! O certificado já estará visível no console:

acm_my_certificates_2

Implementando o certificado

Depois que o certificado é emitido, eu posso implantá-lo aos meus Elastic Load Balancers e/ou distribuições do CloudFront.

acm_elb_pick_my_cert_1

Já que o ELB suporta SSL offload, a implantação de um certificado para um balanceador de carga (em vez de às instâncias EC2 por trás dele) irá reduzir a quantidade de trabalho de criptografia e descriptografia que as instâncias precisam lidar.

E para a distribuição do CloudFront:

acm_cf_pick_my_cert_1

Já disponível

O AWS Certificate Manager (ACM) já está disponível na região leste dos EUA (Norte da Virgínia), com regiões adicionais por vir. Você pode provisionar, implantar e renovar certificados sem nenhum custo.

Pretendemos adicionar suporte para outros serviços da AWS e para outros tipos de validação de domínioComo sempre, suas sugestões e feedback são mais do que bem-vindas e nos ajudará a priorizar seu trabalho.

Se você estiver usando o AWS Elastic Beanstalk, dê uma olhada em Enabling SSL/TLS (for free) via AWS Certificate Manager.

Deixe suas dúvidas e/ou comentários aqui ou escreva diretamente para o autor, Jeff Barr, em inglês.