Quero restringir o acesso direto a um Application Load Balancer e permitir o acesso somente por meio do Amazon CloudFront.
Breve descrição
Para restringir o tráfego direto para um Application Load Balancer e permitir o acesso somente por meio do CloudFront, use as regras de receptor do Application Load Balancer. Se você tiver uma lista de controle de acesso da web (ACL da web) do AWS WAF, é possível usar as regras de ACL da web. Para restringir ainda mais o acesso ao seu Application Load Balancer, configure seu grupo de segurança para restringir o acesso à sua origem. Para fazer isso, use a lista de prefixos gerenciados pela AWS. É uma prática recomendada usar uma dessas soluções e também configurar seu grupo de segurança.
Resolução
Regras de receptor do Application Load Balancer
Para usar as regras de receptor do Application Load Balancer para restringir tráfego, consulte Restringir o acesso aos Application Load Balancers.
AWS WAF
Observação: as cobranças do AWS WAF são baseadas nos seguintes fatores:
- Quantidade de ACLs da web que você cria
- Quantidade de regras que você adiciona para cada ACL da web
- Quantidade de solicitações da web que você recebe
Para obter mais informações, consulte preços do AWS WAF.
Para usar as regras personalizadas de ACL da web do AWS WAF para restringir o tráfego, configure o CloudFront para adicionar um cabeçalho HTTP personalizado. Em seguida, crie uma regra na ACL da web do AWS WAF associada ao Application Load Balancer. Use essa regra para bloquear solicitações que não contenham o valor secreto do cabeçalho HTTP personalizado.
Configure o CloudFront para adicionar um cabeçalho HTTP personalizado
Conclua as etapas a seguir:
- Abra o console do CloudFront.
- No painel de navegação, selecione Distribuições e selecione seu ID de distribuição.
- Selecione a guia Origens.
- Selecione seu Application Load Balancer e clique em Editar.
Observação: se o Application Load Balancer não for uma origem, atualize sua distribuição e defina o Application Load Balancer como origem.
- Em Adicionar cabeçalho personalizado, insira o Nome do cabeçalho e o Valor.
Importante: O Nome do cabeçalho e o Valor atuam como credenciais seguras, como nome de usuário e senha. Anote os valores para uso posterior neste procedimento.
- Selecione Salvar alterações.
Crie uma regra na sua ACL da web para bloquear solicitações sem o cabeçalho
Conclua as etapas a seguir:
- Abra o console do AWS WAF.
- No painel de navegação, selecione Recursos e pacotes de proteção.
- Selecione Criar pacote de proteção.
- Em Conte-nos sobre sua aplicação, em Categoria de aplicação, selecione uma ou mais categorias de aplicações.
- Em Fonte de tráfego, selecione o tipo de tráfego com o qual a aplicação interage, como API, Web ou API e Web.
- Em Recursos para proteger, selecione Adicionar recursos.
- Em Global, selecione Adicionar recursos do CloudFront ou do Amplify.
- Selecione sua distribuição na lista.
- Em Selecionar pacote de proteção, selecione Criar seu próprio pacote com todas as proteções que o AWS WAF oferece.
- No painel direito, selecione Regra personalizada e clique em Próximo.
Selecione Regra personalizada novamente e clique em Próximo.
- Defina a Ação da regra como BLOQUEAR.
- Insira o Nome da regra.
- Em Se for uma solicitação, expanda a lista suspensa e escolha não corresponde à declaração (NOT).
- Em Inspecionar, selecione Cabeçalho único.
- Em Declaração, conclua as seguintes etapas:
Em nome do campo Cabeçalho, insira o nome do Cabeçalho que você criou no CloudFront.
Em Tipo de correspondência, escolha Corresponde exatamente à string.
Para String correspondente, insira o Valor que você criou no CloudFront.
(Opcional) Em Transformação de texto, selecione Nenhuma.
- Selecione Criar regra.
- (Opcional) Para definir a prioridade de várias regras, selecione Editar ordem das regras no painel direito e defina essa regra com a prioridade mais alta.
- Selecione Salvar ordem das regras.
- Em Nome e descrição, insira um nome para seu pacote de proteção.
- Clique em Criar pacote de proteção.
Configure grupos de segurança
Para restringir ainda mais o tráfego para um Application Load Balancer, use uma lista de prefixos gerenciados pela AWS em grupos de segurança no Application Load Balancer.
Para atualizar um grupo de segurança existente, consulte Atualizar os grupos de segurança associados. Para associar seu Application Load Balancer a um grupo de segurança, conclua as seguintes etapas:
- Abra o console do Amazon Elastic Compute Cloud (Amazon EC2).
- No painel de navegação, em Balanceamento de carga, selecione Balanceadores de carga.
- Selecione seu Application Load Balancer e selecione Segurança.
- Selecione o grupo de segurança que você deseja associar ao seu Application Load Balancer.
- Para modificar as regras de entrada, selecione Editar regras de entrada e, em seguida, atualize as configurações para seu caso de uso.
Observação: Se você tiver uma regra que permita 0.0.0.0/0, deverá adicionar uma nova regra antes de excluir a regra existente.
- Para permitir protocolos específicos, selecione o protocolo e clique em Personalizado.
- Em Tipo de origem, clique em CloudFront e selecione seus prefixos na lista de prefixos gerenciados pela AWS.
- Selecione Salvar.
Observação: É uma prática recomendada permitir portas que somente seu Application Load Balancer usa.
A lista de prefixos gerenciados do CloudFront só pode ser adicionada uma vez para cada grupo de segurança nas configurações padrão devido ao peso da lista de prefixos. Para adicionar outra regra com o CloudFront como o Tipo de origem no mesmo grupo de segurança, solicite um aumento de cota. Ou use dois grupos de segurança que façam referência à lista de prefixos gerenciados do CloudFront.
Informações relacionadas
Limitar acesso às suas origens usando a lista de prefixos gerenciados pela AWS para Amazon CloudFront
Como posso impedir que usuários em determinados locais acessem o conteúdo da web servido pela minha distribuição do CloudFront?