Bloquear o acesso público a VPCs e sub-redes - Amazon Virtual Private Cloud

Bloquear o acesso público a VPCs e sub-redes

Bloquear o Acesso Público (BPA) da VCP é um atributo de segurança centralizado que confere a você autoridade para impedir o acesso público pela Internet aos recursos da VPC em toda a conta da AWS, garantindo conformidade com os requisitos de segurança e flexibilidade para permitir determinadas exceções e recursos de auditoria.

O atributo BPA da VPC tem os seguintes modos:

  • Bidirecional: todo o tráfego de e para gateways da Internet e gateways da Internet somente de saída nesta região (exceto VPCs e sub-redes excluídas) é bloqueado.

  • Somente de entrada: todo o tráfego de Internet para as VPCs dessa região (exceto as VPCs ou sub-redes excluídas) é bloqueado. Apenas o tráfego de e para gateways NAT e gateways da Internet somente de saída é permitido porque esses gateways só permitem o estabelecimento de conexões de saída.

É possível também pode criar "exclusões" desse atributo para tráfego que você não queira bloquear. Uma exclusão é um modo que pode ser aplicado a uma única VPC ou sub-rede que a isenta do modo de BPA da conta e permitirá acesso bidirecional ou somente de saída.

As exclusões podem ter um dos seguintes modos:

  • Bidirecional: todo o tráfego de Internet para ou das VPCs e sub-redes excluídas é permitido.

  • Somente de saída: o tráfego de Internet de saída das VPCs e sub-redes excluídas é permitido. O tráfego de Internet de entrada para as VPCs e sub-redes excluídas é bloqueado. Isso só se aplica quando o BPA está definido como bidirecional.

Conceitos básicos do BPA

Esta seção aborda detalhes importantes sobre o BPA da VPC, incluindo quais são os serviços compatíveis e como você pode trabalhar com ele.

Disponibilidade regional

O BPA da VPC está disponível em todas as regiões comerciais da AWS, inclusive GovCloud e China.

Neste guia, você também encontrará informações sobre como usar o Analisador de Acesso à Rede e o Analisador de Acessibilidade com o BPA da VPC. Observe que o Analisador de Acesso à Rede e o Analisador de Acessibilidade não estão disponíveis em todas as regiões comerciais. Para obter informações sobre a disponibilidade regional do Analisador de Acesso à Rede e do Analisador de Acessibilidade, consulte Limitations no Network Access Analyzer Guide e Considerations no Reachability Analyzer Guide.

Impacto e compatibilidade dos serviços da AWS

Os seguintes recursos e serviços são compatíveis com o BPA da VPC e o tráfego para esses serviços e recursos é afetado pelo BPA da VPC:

  • Gateway da Internet: todo o tráfego de entrada e saída é bloqueado.

  • Gateway da Internet somente de saída: todo o tráfego de saída é bloqueado. Os gateways da Internet somente de saída não permitem tráfego de entrada.

  • Gateway NAT: todo o tráfego de entrada e saída é bloqueado. Os gateways NAT exigem um gateway da Internet para conectividade com a Internet.

  • Network Load Balancer voltado para a Internet: todo o tráfego de entrada e saída é bloqueado. Os Network Load Balancers de rede voltados para a Internet exigem um gateway da Internet para conectividade com a Internet.

  • Application Load Balancer voltado para a Internet: todo o tráfego de entrada e saída é bloqueado. Os Application Load Balancers voltados para a Internet exigem um gateway da Internet para conectividade com a Internet.

  • AWS Global Accelerator: o tráfego de entrada para as VPCs é bloqueado.

Tráfego relacionado com conectividade privada, como o tráfego dos seguintes serviços e recursos, não é bloqueado nem afetado pelo BPA da VPC:

  • AWS Client VPN

  • Origens na VPC do Amazon CloudFront

  • AWS CloudWAN

  • Gateway local do AWS Outposts

  • AWS Site-to-Site VPN

  • Transit gateway

  • Acesso Verificado pela AWS

  • Gateway da operadora do AWS Wavelength

Importante

O tráfego enviado privadamente de recursos na VPC para outros serviços em execução na VPC, como o EC2 DNS Resolver, é permitido mesmo quando o BPA está ativado, pois não passa por um gateway da Internet na VPC. É possível que esses serviços façam solicitações a recursos fora da VPC em seu nome, por exemplo, para resolver uma consulta ao DNS, e podem expor informações sobre as atividades dos recursos da VPC, se isso não for mitigado por outros controles de segurança.

Limitações do BPA

O modo somente de entrada do BPA da VPC não é compatível com zonas locais (LZs) onde gateways NAT e gateways da Internet somente de saída não são permitidos.

Controlar o acesso ao BPA da VPA com uma política do IAM

Para obter exemplos de políticas do IAM que permitem/negam acesso ao atributo BPA da VPC, consulte Bloquear o acesso público a VPCs e sub-redes.

Habilitar o modo bidirecional do BPA na sua conta

O modo bidirecional do BPA da VPC bloqueia todo o tráfego de e para os gateways da Internet e os gateways da Internet somente de saída nessa região (exceto em VPCs e sub-redes excluídas). Para obter mais informações sobre exclusões, consulte Criar e excluir exclusões.

Importante

É extremamente recomendável analisar cuidadosamente as workloads que exigem acesso à Internet antes de habilitar o BPA da VPC em contas de produção.

nota
  • Para habilitar o BPA da VPC nas VPCs e sub-redes da sua conta, você deve ser o proprietário das VPCs e das sub-redes.

  • Se você estiver compartilhando sub-redes da VPC com outras contas, o modo do BPA da VPC imposto pelo proprietário da sub-rede também se aplicará ao tráfego de participantes, mas os participantes não poderão controlar as configurações do BPA da VPC que afetam a sub-rede compartilhada.

AWS Management Console
  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação esquerdo, escolha Configurações.

  3. Escolha Editar configurações de acesso público.

  4. Escolha Ativar bloquear acesso público e Bidirecional e depois escolha Salvar alterações.

  5. Aguarde até que Status mude para Ativado. Pode demorar alguns minutos para as configurações do BPA terem efeito e o status ser atualizado.

O modo bidirecional do BPA da VPC agora está ativado.

AWS CLI
  1. Ativar o BPA da VPC:

    aws ec2 --region us-east-2 modify-vpc-block-public-access-options --internet-gateway-block-mode block-bidirectional

    Pode demorar alguns minutos para as configurações do BPA terem efeito e o status ser atualizado.

  2. Visualize o status do BPA da VPC:

    aws ec2 --region us-east-2 describe-vpc-block-public-access-options

Alterar o modo do BPA da VPC para somente de entrada

O modo somente de entrada do BPA da VPC bloqueia todo o tráfego de Internet para as VPCs dessa região (exceto para VPCs ou sub-redes excluídas). Apenas o tráfego de e para gateways NAT e gateways da Internet somente de saída é permitido porque esses gateways só permitem o estabelecimento de conexões de saída.

AWS Management Console
  1. Modifique as configurações do acesso público no console da VPC e altere a direção para Somente de entrada.

  2. Salve as alterações e aguarde a atualização do status. Pode demorar alguns minutos para as configurações do BPA terem efeito e o status ser atualizado.

AWS CLI
  1. Modifique a direção do bloqueio do BPA da VPC:

    aws ec2 --region us-east-2 modify-vpc-block-public-access-options --internet-gateway-block-mode block-ingress

    Pode demorar alguns minutos para as configurações do BPA terem efeito e o status ser atualizado.

  2. Visualize o status do BPA da VPC:

    aws ec2 --region us-east-2 describe-vpc-block-public-access-options

Criar e excluir exclusões

A exclusão do BPA da VPC é um modo que pode ser aplicado a uma única VPC ou sub-rede que a isenta do modo BPA da conta e permite acesso bidirecional ou somente de saída. Você pode criar exclusões do BPA para VPCs e sub-redes mesmo quando o BPA não está habilitado na conta para garantir que não haja interrupção do tráfego para as exclusões quando o BPA da VPC estiver ativado.

Você pode criar até 50 exclusões. Para obter informações sobre solicitação de aumento de limite, consulte VPC BPA exclusions per account em Cotas da Amazon VPC.

AWS Management Console
  1. Na guia Bloquear o acesso público, em Exclusões, escolha Criar exclusões.

  2. Escolha uma VPC ou sub-rede, escolha uma direção de bloqueio:

    • Bidirecional: permite todo o tráfego de Internet de e para as VPCs e sub-redes excluídas.

    • Somente de saída: permite o tráfego de Internet de saída das VPC e sub-redes excluídas. Bloqueia o tráfego de Internet de entrada para as VPCs e sub-redes excluídas. Essa configuração se aplica quando o BPA é definido como Bidirecional.

  3. Escolha Criar exclusões.

  4. Aguarde até que o status de Exclusão mude para Ativo. Pode ser necessário atualizar a tabela de exclusão para ver a alteração.

A exclusão foi criada.

AWS CLI
  1. Modifique a direção de permissão da exclusão:

    aws ec2 --region us-east-2 create-vpc-block-public-access-exclusion --subnet-id subnet-id --internet-gateway-exclusion-mode allow-bidirectional
  2. Pode levar algum tempo para o status da exclusão ser atualizado. Para visualizar o status da exclusão:

    aws ec2 --region us-east-2 describe-vpc-block-public-access-exclusions --exclusion-ids exclusion-id

Avaliar o impacto e monitorar o BPA

Esta seção contém informações sobre como avaliar o impacto do BPA da VPC antes de ativá-lo e como monitorar se o tráfego está sendo bloqueado depois de ativá-lo.

Avaliar o impacto do BPA com o Access Analyzer de rede

Nesta seção, você usará o Access Analyzer de rede para visualizar os recursos da sua conta que usam um gateway da Internet antes de habilitar o BPA da VPC e bloquear o acesso. Use essa análise para entender o impacto de ativar o BPA da VPC em sua conta e de bloquear o tráfego.

nota
  • O Analisador de Acesso à Rede não é compatível com IPv6; portanto, você não poderá usá-lo para visualizar o impacto potencial do BPA no tráfego IPv6 de saída do gateway da Internet somente de saída.

  • As análises realizadas com o Analisador de Acesso à Rede são cobradas. Para obter mais informações, consulte Pricing no Access Analyzer de rede Guide.

  • Para obter informações sobre a disponibilidade regional do Analisador de Acesso à Rede, consulte Limitations no Network Access Analyzer Guide.

AWS Management Console
  1. Abra o console do AWS Network Insights em https://console.aws.amazon.com/networkinsights/.

  2. Escolha Analisador de Acesso à Rede.

  3. Escolha Criar escopo de acesso à rede.

  4. Escolha Identificar acesso de ou para gateways da Internet e escolha Avançar.

  5. O modelo já está configurado para analisar o tráfego de e para os gateways da Internet da sua conta. Você pode visualizar isso em Origem e Destino.

  6. Escolha Próximo.

  7. Escolha Criar escopo de acesso à rede.

  8. Escolha o escopo que você acabou de criar e escolha Analisar.

  9. Aguarde a conclusão da análise.

  10. Visualizar as descobertas da análise. Cada linha em Descobertas mostra um caminho de rede que um pacote pode percorrer em uma rede de ou para um gateway da Internet na sua conta. Nesse caso, se você ativar o BPA da VPC e nenhuma das VPCs e/ou sub-redes que aparecerem nessas descobertas estiverem configuradas como exclusões do BPA, o tráfego para essas VPCs e sub-redes será restringido.

  11. Analise cada descoberta para entender o impacto do BPA nos recursos das VPCs.

A análise de impacto foi concluída.

AWS CLI
  1. Crie um escopo de acesso à rede:

    aws ec2 create-network-insights-access-scope --region us-east-2 --match-paths "Source={ResourceStatement={ResourceTypes=["AWS::EC2::InternetGateway"]}}" "Destination={ResourceStatement={ResourceTypes=["AWS::EC2::InternetGateway"]}}"
  2. Inicie a análise do escopo:

    aws ec2 start-network-insights-access-scope-analysis --region us-east-2 --network-insights-access-scope-id nis-id
  3. Obtenha os resultados da análise:

    aws ec2 get-network-insights-access-scope-analysis-findings --region us-east-2 --network-insights-access-scope-analysis-id nisa-0aa383a1938f94cd1 --max-items 1

    Os resultados mostram o tráfego de e para os gateways da Internet em todas as VPCs da sua conta. Os resultados são organizados como "descobertas". "FindingId": "AnalysisFinding-1" indica que essa é a primeira descoberta da análise. Observe que há várias descobertas e cada uma indica um fluxo de tráfego que será afetado pela ativação do BPA da VPC. A primeira descoberta mostrará que o tráfego começou em um gateway da Internet ("SequenceNumber": 1), passou para uma NACL ("SequenceNumber": 2), para um grupo de segurança ("SequenceNumber": 3) e terminou em uma instância ("SequenceNumber": 4).

  4. Analise as descobertas para entender o impacto do BPA nos recursos das VPCs.

A análise de impacto foi concluída.

Monitorar o impacto do BPA com logs de fluxo

Os logs de fluxo da VPC são um atributo que permite capturar informações sobre o tráfego de e para as interfaces de rede elásticas da VPC. Você pode usar esse atributo para monitorar o tráfego que é impedido pelo BPA da VPC de chegar às interfaces de rede da sua instância.

Crie um log de fluxo para a VPC usando as etapas em Trabalhar com logs de fluxo.

Quando você criar o log de fluxo, certifique-se de usar um formato personalizado que inclua o campo reject-reason.

Quando visualizar os logs de fluxo, se o tráfego para uma ENI for rejeitado devido ao BPA, você verá um reject-reason de BPA na entrada do log de fluxo.

Além das limitações padrão dos logs de fluxo da VPC, observe as seguintes limitações específicas do BPA da VPC:

  • Os logs de fluxo para o BPA da VPC não incluem os registros ignorados.

  • Os logs de fluxo para o BPA da VPC não incluem bytes mesmo que você inclua o campo bytes no log de fluxo.

Rastrear a remoção de exclusões com o CloudTrail

Esta seção explica como você pode usar o AWS CloudTrail para monitorar e rastrear a remoção de exclusões do BPA da VPC.

AWS Management Console

Você pode visualizar todas as exclusões removidas no histórico de eventos do CloudTrail consultando Tipo de recurso > AWS::EC2::VPCBlockPublicAccessExclusion > no console do AWS CloudTrail em https://console.aws.amazon.com/cloudtrailv2/.

AWS CLI

Você pode usar o comando lookup-events para visualizar os eventos relacionados com remoção de exclusões:

aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceType,AttributeValue=AWS::EC2::VPCBlockPublicAccessExclusion

Verificar se a conectividade é bloqueada com o Analisador de Acessibilidade

O Analisador de Acessibilidade da VPC pode ser usado para avaliar se determinados caminhos de rede podem ou não ser acessados de acordo com sua configuração de rede, incluindo as configurações do BPA da VPC.

Para obter informações sobre a disponibilidade regional do Analisador de Acessibilidade, consulte Considerations no Reachability Analyzer Guide.

AWS Management Console
  1. Abra o console do Network Insights em https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer.

  2. Clique em Criar e analisar caminho.

  3. Em Tipo de origem, escolha Gateways da Internet e selecione o gateway da Internet do qual você deseja bloquear tráfego na lista suspensa Origem.

  4. Em Tipo de destino, escolha Instâncias e selecione a instância para a qual você deseja bloquear tráfego no menu suspenso Destino.

  5. Clique em Criar e analisar caminho.

  6. Aguarde a conclusão da análise. Pode levar alguns minutos.

  7. Após a conclusão, você verá que o Status de acessibilidade é Não acessível e que Detalhes do caminho mostra que VPC_BLOCK_PUBLIC_ACCESS_ENABLED é a causa desse problema de acessibilidade.

AWS CLI
  1. Crie um caminho de rede usando o ID do gateway da Internet do qual você deseja bloquear tráfego (origem) e o ID da instância para a qual você deseja bloquear tráfego (destino):

    aws ec2 --region us-east-2 create-network-insights-path --source igw-id --destination instance-id --protocol TCP
  2. Inicie uma análise no caminho da rede:

    aws ec2 --region us-east-2 start-network-insights-analysis --network-insights-path-id nip-id
  3. Recupere os resultados da análise:

    aws ec2 --region us-east-2 describe-network-insights-analyses --network-insights-analysis-ids nia-id
  4. Verifique se VPC_BLOCK_PUBLIC_ACCESS_ENABLED é o ExplanationCode para a falta de acessibilidade.

Exemplo avançado

Esta seção contém um exemplo avançado que ajudará a entender como o atributo Bloquear o Acesso Público da VPC funciona em diferentes cenários. Todo cenário se baseia no cenário anterior, por isso é importante concluir as etapas em ordem.

Importante

Não teste esse exemplo em uma conta de produção. É extremamente recomendável analisar cuidadosamente as workloads que exigem acesso à Internet antes de habilitar o BPA da VPC em contas de produção.

nota

Para entender completamente o atributo BPA da VPC, você precisará de alguns recursos da sua conta. Nesta seção, fornecemos um modelo do AWS CloudFormation que você pode usar para provisionar os recursos necessários para entender totalmente como esse atributo funciona. Há custos associados aos recursos que você provisiona com o modelo CloudFormation e às análises que realiza com o Analisador de Acesso à Rede e o Analisador de Acessibilidade. Se você usar o modelo desta seção, certifique-se de concluir as etapas de limpeza quando terminar com o exemplo.

Implantar modelo do CloudFormation

Para demonstrar como esse atributo funciona, você precisa de uma VPC, sub-redes, instâncias e outros recursos. Para facilitar a realização desta demonstração, fornecemos abaixo um modelo do AWS CloudFormation que você pode usar para iniciar rapidamente os recursos necessários para os cenários desta demonstração.

nota

Há custos associados aos recursos que você cria nesta seção com o modelo do CloudFormation, como o custo do gateway NAT e dos endereços IPv4 públicos. Para evitar custos excessivos, não deixe de realizar as etapas de limpeza para remover todos os recursos criados para este exemplo.

O modelo cria os seguintes recursos na sua conta:

  • Gateway da Internet somente de saída

  • Gateway da Internet

  • nat gateway

  • Duas sub-redes públicas

  • Uma sub-rede privada

  • Duas instâncias do EC2 com endereços IPv4 privados e públicos

  • Uma instância do EC2 com um endereço IPv6 e um endereço IPv4 privado

  • Uma instância do EC2 apenas com um endereço IPv4 privado

  • Grupo de segurança com tráfego de entrada SSH e ICMP permitido e TODO o tráfego de saída permitido

  • Log do fluxo da VPC

  • Um endpoint do EC2 Instance Connect na sub-rede B

Copie o modelo abaixo e salve-o em um arquivo .yaml.

AWSTemplateFormatVersion: '2010-09-09' Description: Creates a VPC with public and private subnets, NAT gateway, and EC2 instances for VPC BPA. Parameters: InstanceAMI: Description: ID of the Amazone Machine Image (AMI) to use with the instances launched by this template Type: AWS::EC2::Image::Id InstanceType: Description: EC2 Instance type to use with the instances launched by this template Type: String Default: t2.micro Resources: # VPC VPCBPA: Type: AWS::EC2::VPC Properties: CidrBlock: 10.0.0.0/16 EnableDnsHostnames: true EnableDnsSupport: true InstanceTenancy: default Tags: - Key: Name Value: VPC BPA # VPC IPv6 CIDR VPCBPAIpv6CidrBlock: Type: AWS::EC2::VPCCidrBlock Properties: VpcId: !Ref VPCBPA AmazonProvidedIpv6CidrBlock: true # EC2 Key Pair VPCBPAKeyPair: Type: AWS::EC2::KeyPair Properties: KeyName: vpc-bpa-key # Internet Gateway VPCBPAInternetGateway: Type: AWS::EC2::InternetGateway Properties: Tags: - Key: Name Value: VPC BPA Internet Gateway VPCBPAInternetGatewayAttachment: Type: AWS::EC2::VPCGatewayAttachment Properties: VpcId: !Ref VPCBPA InternetGatewayId: !Ref VPCBPAInternetGateway # Egress-Only Internet Gateway VPCBPAEgressOnlyInternetGateway: Type: AWS::EC2::EgressOnlyInternetGateway Properties: VpcId: !Ref VPCBPA # Subnets VPCBPAPublicSubnetA: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPCBPA CidrBlock: 10.0.1.0/24 MapPublicIpOnLaunch: true Tags: - Key: Name Value: VPC BPA Public Subnet A VPCBPAPublicSubnetB: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPCBPA CidrBlock: 10.0.2.0/24 MapPublicIpOnLaunch: true Tags: - Key: Name Value: VPC BPA Public Subnet B VPCBPAPrivateSubnetC: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPCBPA CidrBlock: 10.0.3.0/24 MapPublicIpOnLaunch: false Ipv6CidrBlock: !Select [0, !GetAtt VPCBPA.Ipv6CidrBlocks] AssignIpv6AddressOnCreation: true Tags: - Key: Name Value: VPC BPA Private Subnet C # NAT Gateway VPCBPANATGateway: Type: AWS::EC2::NatGateway Properties: AllocationId: !GetAtt VPCBPANATGatewayEIP.AllocationId SubnetId: !Ref VPCBPAPublicSubnetB Tags: - Key: Name Value: VPC BPA NAT Gateway VPCBPANATGatewayEIP: Type: AWS::EC2::EIP Properties: Domain: vpc Tags: - Key: Name Value: VPC BPA NAT Gateway EIP # Route Tables VPCBPAPublicRouteTable: Type: AWS::EC2::RouteTable Properties: VpcId: !Ref VPCBPA Tags: - Key: Name Value: VPC BPA Public Route Table VPCBPAPublicRoute: Type: AWS::EC2::Route DependsOn: VPCBPAInternetGatewayAttachment Properties: RouteTableId: !Ref VPCBPAPublicRouteTable DestinationCidrBlock: 0.0.0.0/0 GatewayId: !Ref VPCBPAInternetGateway VPCBPAPublicSubnetARouteTableAssoc: Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref VPCBPAPublicSubnetA RouteTableId: !Ref VPCBPAPublicRouteTable VPCBPAPublicSubnetBRouteTableAssoc: Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref VPCBPAPublicSubnetB RouteTableId: !Ref VPCBPAPublicRouteTable VPCBPAPrivateRouteTable: Type: AWS::EC2::RouteTable Properties: VpcId: !Ref VPCBPA Tags: - Key: Name Value: VPC BPA Private Route Table VPCBPAPrivateRoute: Type: AWS::EC2::Route Properties: RouteTableId: !Ref VPCBPAPrivateRouteTable DestinationCidrBlock: 0.0.0.0/0 NatGatewayId: !Ref VPCBPANATGateway VPCBPAPrivateSubnetCRoute: Type: AWS::EC2::Route Properties: RouteTableId: !Ref VPCBPAPrivateRouteTable DestinationIpv6CidrBlock: ::/0 EgressOnlyInternetGatewayId: !Ref VPCBPAEgressOnlyInternetGateway VPCBPAPrivateSubnetCRouteTableAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref VPCBPAPrivateSubnetC RouteTableId: !Ref VPCBPAPrivateRouteTable # EC2 Instances Security Group VPCBPAInstancesSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupName: VPC BPA Instances Security Group GroupDescription: Allow SSH and ICMP access SecurityGroupIngress: - IpProtocol: tcp FromPort: 22 ToPort: 22 CidrIp: 0.0.0.0/0 - IpProtocol: icmp FromPort: -1 ToPort: -1 CidrIp: 0.0.0.0/0 VpcId: !Ref VPCBPA Tags: - Key: Name Value: VPC BPA Instances Security Group # EC2 Instances VPCBPAInstanceA: Type: AWS::EC2::Instance Properties: ImageId: !Ref InstanceAMI InstanceType: t2.micro KeyName: !Ref VPCBPAKeyPair SubnetId: !Ref VPCBPAPublicSubnetA SecurityGroupIds: - !Ref VPCBPAInstancesSecurityGroup Tags: - Key: Name Value: VPC BPA Instance A VPCBPAInstanceB: Type: AWS::EC2::Instance Properties: ImageId: !Ref InstanceAMI InstanceType: !Ref InstanceType KeyName: !Ref VPCBPAKeyPair SubnetId: !Ref VPCBPAPublicSubnetB SecurityGroupIds: - !Ref VPCBPAInstancesSecurityGroup Tags: - Key: Name Value: VPC BPA Instance B VPCBPAInstanceC: Type: AWS::EC2::Instance Properties: ImageId: !Ref InstanceAMI InstanceType: !Ref InstanceType KeyName: !Ref VPCBPAKeyPair SubnetId: !Ref VPCBPAPrivateSubnetC SecurityGroupIds: - !Ref VPCBPAInstancesSecurityGroup Tags: - Key: Name Value: VPC BPA Instance C VPCBPAInstanceD: Type: AWS::EC2::Instance Properties: ImageId: !Ref InstanceAMI InstanceType: !Ref InstanceType KeyName: !Ref VPCBPAKeyPair NetworkInterfaces: - DeviceIndex: '0' GroupSet: - !Ref VPCBPAInstancesSecurityGroup SubnetId: !Ref VPCBPAPrivateSubnetC Ipv6AddressCount: 1 Tags: - Key: Name Value: VPC BPA Instance D # Flow Logs IAM Role VPCBPAFlowLogRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: vpc-flow-logs.amazonaws.com Action: 'sts:AssumeRole' Tags: - Key: Name Value: VPC BPA Flow Logs Role VPCBPAFlowLogPolicy: Type: AWS::IAM::Policy Properties: PolicyName: VPC-BPA-FlowLogsPolicy PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - 'logs:CreateLogGroup' - 'logs:CreateLogStream' - 'logs:PutLogEvents' - 'logs:DescribeLogGroups' - 'logs:DescribeLogStreams' Resource: '*' Roles: - !Ref VPCBPAFlowLogRole # Flow Logs VPCBPAFlowLog: Type: AWS::EC2::FlowLog Properties: ResourceId: !Ref VPCBPA ResourceType: VPC TrafficType: ALL LogDestinationType: cloud-watch-logs LogGroupName: /aws/vpc-flow-logs/VPC-BPA DeliverLogsPermissionArn: !GetAtt VPCBPAFlowLogRole.Arn LogFormat: '${version} ${account-id} ${interface-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action} ${log-status} ${vpc-id} ${subnet-id} ${instance-id} ${tcp-flags} ${type} ${pkt-srcaddr} ${pkt-dstaddr} ${region} ${az-id} ${sublocation-type} ${sublocation-id} ${pkt-src-aws-service} ${pkt-dst-aws-service} ${flow-direction} ${traffic-path} ${reject-reason}' Tags: - Key: Name Value: VPC BPA Flow Logs # EC2 Instance Connect Endpoint VPCBPAEC2InstanceConnectEndpoint: Type: AWS::EC2::InstanceConnectEndpoint Properties: SecurityGroupIds: - !Ref VPCBPAInstancesSecurityGroup SubnetId: !Ref VPCBPAPublicSubnetB Outputs: VPCBPAVPCId: Description: A reference to the created VPC Value: !Ref VPCBPA Export: Name: vpc-id VPCBPAPublicSubnetAId: Description: The ID of the public subnet A Value: !Ref VPCBPAPublicSubnetA VPCBPAPublicSubnetAName: Description: The name of the public subnet A Value: VPC BPA Public Subnet A VPCBPAPublicSubnetBId: Description: The ID of the public subnet B Value: !Ref VPCBPAPublicSubnetB VPCBPAPublicSubnetBName: Description: The name of the public subnet B Value: VPC BPA Public Subnet B VPCBPAPrivateSubnetCId: Description: The ID of the private subnet C Value: !Ref VPCBPAPrivateSubnetC VPCBPAPrivateSubnetCName: Description: The name of the private subnet C Value: VPC BPA Private Subnet C VPCBPAInstanceAId: Description: The ID of instance A Value: !Ref VPCBPAInstanceA VPCBPAInstanceBId: Description: The ID of instance B Value: !Ref VPCBPAInstanceB VPCBPAInstanceCId: Description: The ID of instance C Value: !Ref VPCBPAInstanceC VPCBPAInstanceDId: Description: The ID of instance D Value: !Ref VPCBPAInstanceD
AWS Management Console
  1. Abra o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation/.

  2. Escolha Criar pilha e carregue o arquivo do modelo .yaml.

  3. Siga as etapas para iniciar o modelo. Você precisará inserir um ID de imagem e um tipo de instância (como t2.micro). Será necessário também permitir que o CloudFormation crie para você um perfil do IAM para a criação do log de fluxo e permissão para fazer login no Amazon CloudWatch.

  4. Depois de iniciar a pilha, na guia Eventos, visualize o andamento e certifique-se de que pilha esteja concluída antes de continuar.

AWS CLI
  1. Execute o seguinte comando para criar a pilha do CloudFormation:

    aws cloudformation create-stack --stack-name VPC-BPA-stack --template-body file://sampletemplate.yaml --capabilities CAPABILITY_IAM --region us-east-2

    Saída:

    { "StackId": "arn:aws:cloudformation:us-east-2:470889052923:stack/VPC-BPA-stack/8a7a2cc0-8001-11ef-b196-06386a84b72f" }
  2. Visualize o andamento e certifique-se de que pilha esteja concluída antes de continuar:

    aws cloudformation describe-stack-events --stack-name VPC-BPA-stack --region us-east-2

Visualizar o impacto do BPA da VPC com o Analisador de Acesso à Rede

Nesta seção, você usará o Analisador de Acesso à Rede para visualizar os recursos da sua conta que usam um gateway da Internet. Use essa análise para entender o impacto de ativar o BPA da VPC em sua conta e de bloquear o tráfego.

Para obter informações sobre a disponibilidade regional do Analisador de Acesso à Rede, consulte Limitations no Network Access Analyzer Guide.

AWS Management Console
  1. Abra o console do AWS Network Insights em https://console.aws.amazon.com/networkinsights/.

  2. Escolha Analisador de Acesso à Rede.

  3. Escolha Criar escopo de acesso à rede.

  4. Escolha Identificar acesso de ou para gateways da Internet e escolha Avançar.

  5. O modelo já está configurado para analisar o tráfego de e para os gateways da Internet da sua conta. Você pode visualizar isso em Origem e Destino.

  6. Escolha Próximo.

  7. Escolha Criar escopo de acesso à rede.

  8. Escolha o escopo que você acabou de criar e escolha Analisar.

  9. Aguarde a conclusão da análise.

  10. Visualizar as descobertas da análise. Cada linha em Descobertas mostra um caminho de rede que um pacote pode percorrer em uma rede de ou para um gateway da Internet na sua conta. Nesse caso, se você ativar o BPA da VPC e nenhuma das VPCs e/ou sub-redes que aparecerem nessas descobertas estiverem configuradas como exclusões do BPA, o tráfego para essas VPCs e sub-redes será restringido.

  11. Analise cada descoberta para entender o impacto do BPA nos recursos das VPCs.

A análise de impacto foi concluída.

AWS CLI
  1. Crie um escopo de acesso à rede:

    aws ec2 create-network-insights-access-scope --match-paths "Source={ResourceStatement={ResourceTypes=["AWS::EC2::InternetGateway"]}}" "Destination={ResourceStatement={ResourceTypes=["AWS::EC2::InternetGateway"]}}" --region us-east-2

    Saída:

    { "NetworkInsightsAccessScope": { "NetworkInsightsAccessScopeId": "nis-04cad3c4b3a1d5e3e", "NetworkInsightsAccessScopeArn": "arn:aws:ec2:us-east-2:470889052923:network-insights-access-scope/nis-04cad3c4b3a1d5e3e", "CreatedDate": "2024-09-30T15:55:53.171000+00:00", "UpdatedDate": "2024-09-30T15:55:53.171000+00:00" }, "NetworkInsightsAccessScopeContent": { "NetworkInsightsAccessScopeId": "nis-04cad3c4b3a1d5e3e", "MatchPaths": [ { "Source": { "ResourceStatement": { "ResourceTypes": [ "AWS::EC2::InternetGateway" ] } } }, { "Destination": { "ResourceStatement": { "ResourceTypes": [ "AWS::EC2::InternetGateway" ] } } } ] } }
  2. Inicie a análise do escopo:

    aws ec2 start-network-insights-access-scope-analysis --network-insights-access-scope-id nis-04cad3c4b3a1d5e3e --region us-east-2

    Saída:

    { "NetworkInsightsAccessScopeAnalysis": { "NetworkInsightsAccessScopeAnalysisId": "nisa-0aa383a1938f94cd1", "NetworkInsightsAccessScopeAnalysisArn": "arn:aws:ec2:us-east-2:470889052923:network-insights-access-scope-analysis/nisa-0aa383a1938f94cd", "NetworkInsightsAccessScopeId": "nis-04cad3c4b3a1d5e3e", "Status": "running", "StartDate": "2024-09-30T15:56:59.109000+00:00", "AnalyzedEniCount": 0 } }
  3. Obtenha os resultados da análise:

    aws ec2 get-network-insights-access-scope-analysis-findings --network-insights-access-scope-analysis-id nisa-0aa383a1938f94cd1 --region us-east-2 --max-items 1

    Saída:

    { "AnalysisFindings": [ { "NetworkInsightsAccessScopeAnalysisId": "nisa-0aa383a1938f94cd1", "NetworkInsightsAccessScopeId": "nis-04cad3c4b3a1d5e3e", "FindingId": "AnalysisFinding-1", "FindingComponents": [ { "SequenceNumber": 1, "Component": { "Id": "igw-04a5344b4e30486f1", "Arn": "arn:aws:ec2:us-east-2:470889052923:internet-gateway/igw-04a5344b4e30486f1", "Name": "VPC BPA Internet Gateway" }, "OutboundHeader": { "DestinationAddresses": [ "10.0.1.85/32" ] }, "InboundHeader": { "DestinationAddresses": [ "10.0.1.85/32" ], "DestinationPortRanges": [ { "From": 22, "To": 22 } ], "Protocol": "6", "SourceAddresses": [ "0.0.0.0/5", "100.0.0.0/10", "96.0.0.0/6" ], "SourcePortRanges": [ { "From": 0, "To": 65535 } ] }, "Vpc": { "Id": "vpc-0762547ec48b6888d", "Arn": "arn:aws:ec2:us-east-2:470889052923:vpc/vpc-0762547ec48b6888d", "Name": "VPC BPA" } }, { "SequenceNumber": 2, "AclRule": { "Cidr": "0.0.0.0/0", "Egress": false, "Protocol": "all", "RuleAction": "allow", "RuleNumber": 100 }, "Component": { "Id": "acl-06194fc3a4a03040b", "Arn": "arn:aws:ec2:us-east-2:470889052923:network-acl/acl-06194fc3a4a03040b" } }, { "SequenceNumber": 3, "Component": { "Id": "sg-093dde06415d03924", "Arn": "arn:aws:ec2:us-east-2:470889052923:security-group/sg-093dde06415d03924", "Name": "VPC BPA Instances Security Group" }, "SecurityGroupRule": { "Cidr": "0.0.0.0/0", "Direction": "ingress", "PortRange": { "From": 22, "To": 22 }, "Protocol": "tcp" } }, { "SequenceNumber": 4, "AttachedTo": { "Id": "i-058db34f9a0997895", "Arn": "arn:aws:ec2:us-east-2:470889052923:instance/i-058db34f9a0997895", "Name": "VPC BPA Instance A" }, "Component": { "Id": "eni-0fa23f2766f03b286", "Arn": "arn:aws:ec2:us-east-2:470889052923:network-interface/eni-0fa23f2766f03b286" }, "InboundHeader": { "DestinationAddresses": [ "10.0.1.85/32" ], "DestinationPortRanges": [ { "From": 22, "To": 22 } ], "Protocol": "6", "SourceAddresses": [ "0.0.0.0/5", "100.0.0.0/10", "96.0.0.0/6" ], "SourcePortRanges": [ { "From": 0, "To": 65535 } ] }, "Subnet": { "Id": "subnet-035d235a762eeed04", "Arn": "arn:aws:ec2:us-east-2:470889052923:subnet/subnet-035d235a762eeed04", "Name": "VPC BPA Public Subnet A" }, "Vpc": { "Id": "vpc-0762547ec48b6888d", "Arn": "arn:aws:ec2:us-east-2:470889052923:vpc/vpc-0762547ec48b6888d", "Name": "VPC BPA" } } ] } ], "AnalysisStatus": "succeeded", "NetworkInsightsAccessScopeAnalysisId": "nisa-0aa383a1938f94cd1", "NextToken": "eyJOZXh0VG9rZW4iOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==" }

    Os resultados mostram o tráfego de e para os gateways da Internet em todas as VPCs da sua conta. Os resultados são organizados como "descobertas". "FindingId": "AnalysisFinding-1" indica que essa é a primeira descoberta da análise. Observe que há várias descobertas e cada uma indica um fluxo de tráfego que será afetado pela ativação do BPA da VPC. A primeira descoberta mostrará que o tráfego começou em um gateway da Internet ("SequenceNumber": 1), passou para uma NACL ("SequenceNumber": 2), para um grupo de segurança ("SequenceNumber": 3) e terminou em uma instância ("SequenceNumber": 4).

  4. Analise as descobertas para entender o impacto do BPA nos recursos das VPCs.

A análise de impacto foi concluída.

Cenário 1

Nesta seção, para definir uma linha de base e garantir, antes de habilitar o BPA, que todas as instâncias possam ser acessadas, você se conectará a todas as instâncias e emitirá um ping para um endereço IP público.

Diagrama de uma VPC sem o BPA da VPC ativado:

Diagrama mostrando uma VPC sem o BPA habilitado.

1.1 Conectar-se a instâncias

Conclua esta seção para se conectar às suas instâncias com o BPA da VPC desativado para garantir que você possa se conectar sem problemas. Todas as instâncias criadas com o CloudFormation neste exemplo têm nomes como "Instância A do BPA da VPC".

AWS Management Console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. Abra os detalhes da instância A.

  3. Conecte-se à instância A usando a opção EC2 Instance Connec > Conectar-se usando o EC2 Instance Connect.

  4. Selecione Conectar. Depois de se conectar com sucesso à instância, emita um ping para www.amazon.com para verificar se você pode enviar solicitações de saída à Internet.

  5. Use o mesmo método que usou para se conectar à instância A para se conectar à instância B e teste se pode emitir um ping para enviar solicitações de saída à Internet.

  6. Conecte-se à instância C usando a opção EC2 Instance Connect > Conectar-se usando o endpoint do EC2 Instance Connect. Você tem que usar a opção de endpoint pois as instâncias C e D estão em sub-redes privadas e não têm endereços IP públicos:

  7. Use o mesmo método que usou para se conectar à instância C para se conectar à instância D e teste se pode emitir um ping para enviar solicitações de saída à Internet.

AWS CLI
  1. Emita um ping para a instância A usando o endereço IPv4 público para verificar se há tráfego de entrada:

    ping 18.225.8.244

    Saída:

    Pinging 18.225.8.244 with 32 bytes of data: Reply from 18.225.8.244: bytes=32 time=51ms TTL=110 Reply from 18.225.8.244: bytes=32 time=61ms TTL=110

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

  2. Use o endereço IPv4 privado para se conectar e verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice

    Saída:

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~_ ####_ Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ / / /m/' Last login: Fri Sep 27 18:27:57 2024 from 3.16.146.5 [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com PING www-amazon-com.customer.fastly.net (18.65.233.187) 56(84) bytes of data. 64 bytes from 18.65.233.187 (18.65.233.187): icmp_seq=15 ttl=58 time=2.06 ms 64 bytes from 18.65.233.187 (18.65.233.187): icmp_seq=16 ttl=58 time=2.26 ms

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

  3. Emita um ping para a instância B usando o endereço IPv4 público para verificar se há tráfego de entrada:

    ping 3.18.106.198

    Saída:

    Pinging 3.18.106.198 with 32 bytes of data: Reply from 3.18.106.198: bytes=32 time=83ms TTL=110 Reply from 3.18.106.198: bytes=32 time=54ms TTL=110

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

  4. Use o endereço IPv4 privado para se conectar e verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-08552a0774b5c8f72 --region us-east-2 --connection-type eice

    Saída:

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , # ~_ #### Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~.. _/ / / /m/' Last login: Fri Sep 27 18:12:27 2024 from 3.16.146.5 [ec2-user@ip-10-0-2-98 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data. 64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=1 ttl=249 time=1.55 ms 64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=2 ttl=249 time=1.67 ms

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

  5. Conecte-se à instância C. Como não há endereço IP público para o qual emitir um ping, use o EC2 Instance Connect para se conectar e depois emita um ping da instância para um IP público para verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4 --region us-east-2

    Saída:

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , # ~_ #### Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~.. _/ / / /m/' Last login: Thu Sep 19 20:31:26 2024 from 10.0.2.86 [ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data. 64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=1 ttl=248 time=1.75 ms 64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=2 ttl=248 time=1.97 ms 64 bytes from server-3-160-24-26.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=3 ttl=248 time=1.08 ms

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

  6. Conecte-se à instância D. Como não há endereço IP público para o qual emitir um ping, use o EC2 Instance Connect para se conectar e depois emita um ping da instância para um IP público para verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0 --region us-east-2

    Saída:

    The authenticity of host '10.0.3.59 can't be established. ECDSA key fingerprint is SHA256:c4naBCqbC61/cExDyccEproNU+1HHSpMSzl2J6cOtIZA8g. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '10.0.3.59' (ECDSA) to the list of known hosts. A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , # ~_ #### Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~.. _/ _/ _/ _/m/' [ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com PING www.amazon.com(2600:9000:25f3:ee00:7:49a5:5fd4:b121 (2600:9000:25f3:ee00:7:49a5:5fd4:b121)) 56 data bytes 64 bytes from 2600:9000:25f3:ee00:7:49a5:5fd4:b121 (2600:9000:25f3:ee00:7:49a5:5fd4:b121): icmp_seq=1 ttl=58 time=1.19 ms 64 bytes from 2600:9000:25f3:ee00:7:49a5:5fd4:b121 (2600:9000:25f3:ee00:7:49a5:5fd4:b121): icmp_seq=2 ttl=58 time=1.38 ms

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

Cenário 2

Nesta seção, você ativará o BPA da VPC e bloqueará o tráfego de e para os gateways da Internet em sua conta.

Diagrama do modo bidirecional do BPA da VPC ativado:

Diagrama mostrando a VPC com o BPA bidirecional habilitado.

2.1 Habilitar o modo bidirecional de bloqueio do BPA da VPC

Conclua esta seção para habilitar o BPA da VPC.

AWS Management Console
  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação esquerdo, escolha Configurações.

  3. Escolha Editar configurações de acesso público:

  4. Escolha Ativar bloquear acesso público e Bidirecional e depois escolha Salvar alterações.

  5. Aguarde até que Status mude para Ativado. Pode demorar alguns minutos para as configurações do BPA terem efeito e o status ser atualizado.

O BPA da VPC agora está ativado.

AWS CLI
  1. Use o comando modify-vpc-block-public-access-options para ativar o BPA da VPC:

    aws ec2 --region us-east-2 modify-vpc-block-public-access-options --internet-gateway-block-mode block-bidirectional

    Pode demorar alguns minutos para as configurações do BPA terem efeito e o status ser atualizado.

  2. Visualize o status do BPA da VPC:

    aws ec2 --region us-east-2 describe-vpc-block-public-access-options

2.2 Conectar-se a instâncias

Conclua esta seção para se conectar às suas instâncias.

AWS Management Console
  1. Emita um ping para o endereço IPv4 público da instância A e da instância B, como fez no cenário 1. Observe que o tráfego está bloqueado.

  2. Conecte-se a cada instância usando o EC2 instance Connect, como fez no cenário 1 e emita um ping da instância para www.amazon.com. Observe que todo o tráfego de saída está bloqueado.

AWS CLI
  1. Emita um ping para a instância A usando o endereço IPv4 público para verificar se há tráfego de entrada:

    ping 18.225.8.244

    Saída:

    Pinging 18.225.8.244 with 32 bytes of data: Request timed out.

    Observe que o ping falha e que o tráfego está bloqueado.

  2. Use o endereço IPv4 privado para se conectar e verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice

    Saída:

    The authenticity of host '10.0.1.85' can't be established. ECDSA key fingerprint is SHA256:3zo/gSss+HAZ+7eTyWlOB/Ke04IM+hadjsoLJeRTWBk. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '10.0.1.85' (ECDSA) to the list of known hosts. A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~_ ####_ Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ / / /m/' Last login: Fri Sep 27 14:16:53 2024 from 3.16.146.5 [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.

    Observe que o ping falha e que o tráfego está bloqueado.

  3. Emita um ping para a instância B usando o endereço IPv4 público para verificar se há tráfego de entrada:

    ping 3.18.106.198

    Saída:

    Pinging 3.18.106.198 with 32 bytes of data: Request timed out.

    Observe que o ping falha e que o tráfego está bloqueado.

  4. Use o endereço IPv4 privado para se conectar e verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-08552a0774b5c8f72 --region us-east-2 --connection-type eice

    Saída:

    The authenticity of host '10.0.2.98' can't be established. ECDSA key fingerprint is SHA256:0IjXKKyVlDthcCfI0IPIJMUiItAOLYKRNLGTYURnFXo. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '10.0.2.98' (ECDSA) to the list of known hosts. A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , # ~_ #### Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~.. _/ / / /m/' Last login: Fri Sep 27 14:18:16 2024 from 3.16.146.5 [ec2-user@ip-10-0-2-98 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.

    Observe que o ping falha e que o tráfego está bloqueado.

  5. Conecte-se à instância C. Como não há endereço IP público para o qual emitir um ping, use o EC2 Instance Connect para se conectar e depois emita um ping da instância para um IP público para verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4 --region us-east-2

    Saída:

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , # ~_ #### Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~.. _/ / / /m/' Last login: Tue Sep 24 15:17:56 2024 from 10.0.2.86 [ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.

    Observe que o ping falha e que o tráfego está bloqueado.

  6. Conecte-se à instância D. Como não há endereço IP público para o qual emitir um ping, use o EC2 Instance Connect para se conectar e depois emita um ping da instância para um IP público para verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0 --region us-east-2

    Saída:

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , # ~_ #### Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~.. _/ _/ _/ _/m/' Last login: Fri Sep 27 16:42:01 2024 from 3.16.146.5 [ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com PING www.amazon.com(2600:9000:25f3:8200:7:49a5:5fd4:b121 (2600:9000:25f3:8200:7:49a5:5fd4:b121)) 56 data bytes

    Observe que o ping falha e que o tráfego está bloqueado.

2.3 Opcional: verificar se a conectividade está bloqueada com o Analisador de Acesso

O Analisador de Acessibilidade da VPC pode ser usado para entender se determinados caminhos de rede podem ou não ser acessados de acordo com sua configuração de rede, incluindo as configurações do BPA da VPC. Neste exemplo, você analisará o mesmo caminho de rede que foi tentado anteriormente para confirmar que o BPA da VPC é o motivo da falha de conectividade.

AWS Management Console
  1. Vá para o console do Network Insights em https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer.

  2. Clique em Criar e analisar caminho.

  3. Em Tipo de origem, escolha Gateways da Internet e selecione o gateway da Internet marcado como Gateway da Internet do BPA da VPC na lista suspensa Origem.

  4. Em Tipo de destino, escolha Instâncias e selecione a instância marcada com Instância A do BPA da VCP no menu suspenso Destino.

  5. Clique em Criar e analisar caminho.

  6. Aguarde a conclusão da análise. Pode levar alguns minutos.

  7. Depois da conclusão, você deverá ver que o Status de acessibilidade é Não acessível e que Detalhes do caminho mostra que VPC_BLOCK_PUBLIC_ACCESS_ENABLED é a causa.

AWS CLI
  1. Crie um caminho de rede usando o ID do gateway da Internet marcado como Gateway da Internet do BPA da VPC e o ID da instância marcada como Instância A do BPA da VPC:

    aws ec2 --region us-east-2 create-network-insights-path --source igw-id --destination instance-id --protocol TCP
  2. Inicie uma análise no caminho da rede:

    aws ec2 --region us-east-2 start-network-insights-analysis --network-insights-path-id nip-id
  3. Recupere os resultados da análise:

    aws ec2 --region us-east-2 describe-network-insights-analyses --network-insights-analysis-ids nia-id
  4. Verifique se VPC_BLOCK_PUBLIC_ACCESS_ENABLED é o ExplanationCode para a falta de acessibilidade.

Cenário 3

Nesta seção, você alterará a direção do tráfego do BPA da VPC e só permitirá tráfego que use um gateway NAT ou um gateway da Internet somente de saída.

Diagrama do modo somente de entrada do BPA da VPC ativado:

Diagrama mostrando a VPC com BPA somente de entrada habilitado.

3.1 Alterar o modo para somente de entrada

Conclua esta seção para alterar o modo.

AWS Management Console
  1. Modifique as configurações do acesso público no console da VPC e altere a direção para Somente de entrada.

  2. Salve as alterações e aguarde a atualização do status. Pode demorar alguns minutos para as configurações do BPA terem efeito e o status ser atualizado.

AWS CLI
  1. Modifique o modo do BPA da VPC:

    aws ec2 --region us-east-2 modify-vpc-block-public-access-options --internet-gateway-block-mode block-ingress

    Pode demorar alguns minutos para as configurações do BPA terem efeito e o status ser atualizado.

  2. Visualize o status do BPA da VPC:

    aws ec2 --region us-east-2 describe-vpc-block-public-access-options

3.2 Conectar-se a instâncias

Conclua esta seção para se conectar às instâncias.

AWS Management Console
  1. Emita um ping para o endereço IPv4 público da instância A e da instância B, como fez no cenário 1. Observe que o tráfego está bloqueado.

  2. Conecte-se à instância A e à instância B usando o EC2 Instance Connect, como fez no cenário 1 e emita um ping das instâncias para www.amazon.com. Observe que você não pode emitir ping da instância A ou B para um site público na Internet e que o tráfego está bloqueado.

  3. Conecte-se à instância C e à instância D usando o EC2 Instance Connect, como fez no cenário 1 e emita um ping das instâncias para www.amazon.com. Observe que você pode emitir ping da instância C ou D para um site público na Internet e que o tráfego está permitido.

AWS CLI
  1. Emita um ping para a instância A usando o endereço IPv4 público para verificar se há tráfego de entrada:

    ping 18.225.8.244

    Saída:

    Pinging 18.225.8.244 with 32 bytes of data: Request timed out.

    Observe que o ping falha e que o tráfego está bloqueado.

  2. Use o endereço IPv4 privado para se conectar e verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice

    Saída:

    The authenticity of host '10.0.1.85' can't be established. ECDSA key fingerprint is SHA256:3zo/gSss+HAZ+7eTyWlOB/Ke04IM+hadjsoLJeRTWBk. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '10.0.1.85' (ECDSA) to the list of known hosts. A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~_ ####_ Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ / / /m/' Last login: Fri Sep 27 14:16:53 2024 from 3.16.146.5 [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.

    Observe que o ping falha e que o tráfego está bloqueado.

  3. Emita um ping para a instância B usando o endereço IPv4 público para verificar se há tráfego de entrada:

    ping 3.18.106.198

    Saída:

    Pinging 3.18.106.198 with 32 bytes of data: Request timed out.

    Observe que o ping falha e que o tráfego está bloqueado.

  4. Use o endereço IPv4 privado para se conectar e verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-08552a0774b5c8f72 --region us-east-2 --connection-type eice

    Saída:

    The authenticity of host '10.0.2.98 ' can't be established. ECDSA key fingerprint is SHA256:0IjXKKyVlDthcCfI0IPIJMUiItAOLYKRNLGTYURnFXo. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '10.0.2.98' (ECDSA) to the list of known hosts. A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , # ~_ #### Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~.. _/ _/ / /m/' Last login: Fri Sep 27 14:18:16 2024 from 3.16.146.5 [ec2-user@ip-10-0-2-98 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.

    Observe que o ping falha e que o tráfego está bloqueado.

  5. Conecte-se à instância C. Como não há endereço IP público para o qual emitir um ping, use o EC2 Instance Connect para se conectar e depois emita um ping da instância para um IP público para verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4 --region us-east-2 A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' Last login: Tue Sep 24 15:28:09 2024 from 10.0.2.86 [ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data. 64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=1 ttl=248 time=1.84 ms 64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=2 ttl=248 time=1.40 ms

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

  6. Conecte-se à instância D. Como não há endereço IP público para o qual emitir um ping, use o EC2 Instance Connect para se conectar e depois emita um ping da instância para um IP público para verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0 --region us-east-2 A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' Last login: Fri Sep 27 16:48:38 2024 from 3.16.146.5 [ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com PING www.amazon.com(2600:9000:25f3:5800:7:49a5:5fd4:b121 (2600:9000:25f3:5800:7:49a5:5fd4:b121)) 56 data bytes 64 bytes from 2600:9000:25f3:5800:7:49a5:5fd4:b121 (2600:9000:25f3:5800:7:49a5:5fd4:b121): icmp_seq=14 ttl=58 time=1.47 ms 64 bytes from 2600:9000:25f3:5800:7:49a5:5fd4:b121 (2600:9000:25f3:5800:7:49a5:5fd4:b121): icmp_seq=16 ttl=58 time=1.59 ms

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

Cenário 4

Nesta seção, você criará uma exclusão e só bloqueará tráfego de e para a sub-rede que não esteja excluído do BPA da VPC. A exclusão do BPA da VPC é um modo que pode ser aplicado a uma única VPC ou sub-rede que a isenta do modo BPA da conta e permite acesso bidirecional ou somente de saída. Você pode criar exclusões do BPA para VPCs e sub-redes mesmo quando o BPA não está habilitado na conta para garantir que não haja interrupção do tráfego para as exclusões quando o BPA da VPC estiver ativado.

Neste exemplo, criaremos uma exclusão para a sub-rede A para mostrar como o tráfego para as exclusões é afetado pelo BPA da VPC.

Diagrama do modo somente de entrada do BPA da VPC ativado e da exclusão da sub-rede A com o modo bidirecional ativado:

Diagrama mostrando a VPC com BPA no modo somente de entrada com uma exclusão.

4.1 Criar uma exclusão para a sub-rede A

Conclua esta seção para criar uma exclusão. A exclusão do BPA da VPC é um modo que pode ser aplicado a uma única VPC ou sub-rede que a isenta do modo BPA da conta e permite acesso bidirecional ou somente de saída. Você pode criar exclusões do BPA para VPCs e sub-redes mesmo quando o BPA não está habilitado na conta para garantir que não haja interrupção do tráfego para as exclusões quando o BPA da VPC estiver ativado.

AWS Management Console
  1. Na guia Bloquear o acesso público, em Exclusões, escolha Criar exclusões.

  2. Escolha Sub-rede pública A do BPA da VPC, certifique-se de que a direção de permissão Bidirecional esteja selecionada e escolha Criar exclusões.

  3. Aguarde até que o status de Exclusão mude para Ativo. Pode ser necessário atualizar a tabela de exclusão para ver a alteração.

A exclusão foi criada.

AWS CLI
  1. Modifique a direção de permissão da exclusão:

    aws ec2 --region us-east-2 create-vpc-block-public-access-exclusion --subnet-id subnet-id --internet-gateway-exclusion-mode allow-bidirectional
  2. Pode levar algum tempo para o status da exclusão ser atualizado. Para visualizar o status da exclusão:

    aws ec2 --region us-east-2 describe-vpc-block-public-access-exclusions --exclusion-ids exclusion-id

4.2 Conectar-se a instâncias

Conclua esta seção para se conectar às instâncias.

AWS Management Console
  1. Emita um ping para o endereço IPv4 público da instância A. Observe que o tráfego está permitido.

  2. Emita um ping para o endereço IPv4 público da instância B. Observe que o tráfego está bloqueado.

  3. Conecte-se à instância A usando o EC2 Instance Connect, como fez no cenário 1 emita um ping para www.amazon.com. Observe que você pode emitir um ping da instância A para um site público na Internet e que o tráfego está permitido.

  4. Conecte-se à instância B usando o EC2 instance Connect, como fez no cenário 1 emita um ping para www.amazon.com. Observe que você não pode emitir um ping da instância B para um site público na Internet. O tráfego está bloqueado.

  5. Conecte-se à instância C e à instância D usando o EC2 Instance Connect, como fez no cenário 1 e emita um ping das instâncias para www.amazon.com. Observe que você pode emitir ping da instância C ou D para um site público na Internet. O tráfego está permitido.

AWS CLI
  1. Emita um ping para a instância A usando o endereço IPv4 público para verificar se há tráfego de entrada:

    ping 18.225.8.244

    Saída:

    Pinging 18.225.8.244 with 32 bytes of data: Reply from 18.225.8.244: bytes=32 time=51ms TTL=110 Reply from 18.225.8.244: bytes=32 time=61ms TTL=110

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

  2. Use o endereço IPv4 privado para se conectar e verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice

    Saída:

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~_ ####_ Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ / / /m/' Last login: Fri Sep 27 17:58:12 2024 from 3.16.146.5 [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data. 64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=1 ttl=249 time=1.03 ms 64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=2 ttl=249 time=1.72 ms

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

  3. Emita um ping para a instância B usando o endereço IPv4 público para verificar se há tráfego de entrada:

    ping 3.18.106.198

    Saída:

    Pinging 3.18.106.198 with 32 bytes of data: Request timed out.

    Observe que o ping falha e que o tráfego está bloqueado.

  4. Use o endereço IPv4 privado para se conectar e verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-08552a0774b5c8f72 --region us-east-2 --connection-type eice

    Saída:

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , # ~_ #### Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~.. _/ _/ / /m/' Last login: Fri Sep 27 18:12:03 2024 from 3.16.146.5 [ec2-user@ip-10-0-2-98 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.

    Observe que o ping falha e que o tráfego está bloqueado.

  5. Conecte-se à instância C. Como não há endereço IP público para o qual emitir um ping, use o EC2 Instance Connect para se conectar e depois emita um ping da instância para um IP público para verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4 --region us-east-2

    Saída

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , # ~_ #### Amazon Linux 2023 ~~ _#####\ ~~ ###| ~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~.. _/ _/ / /m/' Last login: Tue Sep 24 15:28:09 2024 from 10.0.2.86 [ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data. 64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=1 ttl=248 time=1.84 ms 64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=2 ttl=248 time=1.40 ms

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

  6. Conecte-se à instância D. Como não há endereço IP público para o qual emitir um ping, use o EC2 Instance Connect para se conectar e depois emita um ping da instância para um IP público para verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0 --region us-east-2

    Saída

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' Last login: Fri Sep 27 18:00:52 2024 from 3.16.146.5 [ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com PING www.amazon.com(g2600-141f-4000-059a-0000-0000-0000-3bd4.deploy.static.akamaitechnologies.com (2600:141f:4000:59a::3bd4)) 56 data bytes 64 bytes from g2600-141f-4000-059a-0000-0000-0000-3bd4.deploy.static.akamaitechnologies.com (2600:141f:4000:59a::3bd4): icmp_seq=1 ttl=48 time=15.9 ms 64 bytes from g2600-141f-4000-059a-0000-0000-0000-3bd4.deploy.static.akamaitechnologies.com (2600:141f:4000:59a::3bd4): icmp_seq=2 ttl=48 time=15.8 ms

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

4.3 Opcional: verificar a conectividade com o Analisador de Acessibilidade

Usando o mesmo caminho de rede criado no Analisador de Acessibilidade no cenário 2, você agora pode executar uma nova análise e confirmar se o caminho está acessível agora que uma exclusão foi criada para a sub-rede pública A.

Para obter informações sobre a disponibilidade regional do Analisador de Acessibilidade, consulte Considerations no Reachability Analyzer Guide.

AWS Management Console
  1. No caminho de rede que você criou anteriormente no console do Network Insights, clique em Executar novamente a análise.

  2. Aguarde a conclusão da análise. Isso pode demorar muitos minutos.

  3. Confirme se o caminho agora está Acessível.

AWS CLI
  1. Usando o ID do caminho de rede criado anteriormente, inicie uma nova análise:

    aws ec2 --region us-east-2 start-network-insights-analysis --network-insights-path-id nip-id
  2. Recupere os resultados da análise:

    aws ec2 --region us-east-2 describe-network-insights-analyses --network-insights-analysis-ids nia-id
  3. Confirme se o código de explicação VPC_BLOCK_PUBLIC_ACCESS_ENABLED não ocorre mais.

Cenário 5

Nesta seção, você alterará a direção de tráfego permitida na exclusão para ver como isso afeta o BPA da VPC. Observe que o modo somente de saída para uma exclusão não é realmente significativo com o BPA da VPC ativado no modo Bloquear somente de entrada. Esse é do mesmo comportamento do cenário 3.

Diagrama do modo somente de entrada do BPA da VPC ativado e da exclusão da sub-rede A com o modo somente de saída ativado:

Diagrama mostrando a VPC com BPA no modo somente de entrada, permitindo tráfego de saída através do gateway NAT.

5.1 Alterar a direção de permissão da exclusão para somente de saída

Conclua esta seção para alterar a direção de permissão da exclusão.

AWS Management Console
  1. Edite a exclusão que você criou no cenário 4 e altere a direção de permissão para Somente de saída.

  2. Escolha Salvar alterações.

  3. Aguarde até que o status de Exclusão mude para Ativo. Pode demorar alguns minutos para as configurações do BPA terem efeito e o status ser atualizado. Pode ser necessário atualizar a tabela de exclusão para ver a alteração.

AWS CLI
  1. Modifique a direção de permissão da exclusão:

    aws ec2 --region us-east-2 modify-vpc-block-public-access-exclusion --exclusion-id exclusion-id --internet-gateway-exclusion-mode allow-egress

    Pode demorar alguns minutos para as configurações do BPA terem efeito e o status ser atualizado.

  2. Pode levar algum tempo para o status da exclusão ser atualizado. Para visualizar o status da exclusão:

    aws ec2 --region us-east-2 describe-vpc-block-public-access-exclusion

5.2 Conectar-se a instâncias

Conclua esta seção para se conectar às instâncias.

AWS Management Console
  1. Emita um ping para o endereço IPv4 público da instância A e da instância B. Observe que o tráfego está bloqueado.

  2. Conecte-se à instância A e à instância B usando o EC2 Instance Connect, como fez no cenário 1 emita um ping para www.amazon.com. Observe que você não pode emitir um ping da instância A ou B para um site público na Internet. O tráfego está bloqueado.

  3. Conecte-se à instância C e à instância D usando o EC2 Instance Connect, como fez no cenário 1 e emita um ping das instâncias para www.amazon.com. Observe que você pode emitir ping da instância C ou D para um site público na Internet. O tráfego está permitido.

AWS CLI
  1. Emita um ping para a instância A usando o endereço IPv4 público para verificar se há tráfego de entrada:

    ping 18.225.8.244

    Saída:

    Pinging 18.225.8.244 with 32 bytes of data: Request timed out.

    Observe que o ping falha e que o tráfego está bloqueado.

  2. Use o endereço IPv4 privado para se conectar e verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice

    Saída:

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' Last login: Fri Sep 27 18:09:55 2024 from 3.16.146.5 [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.

    Observe que o ping falha e que o tráfego está bloqueado.

  3. Emita um ping para a instância B usando o endereço IPv4 público para verificar se há tráfego de entrada:

    ping 3.18.106.198

    Saída:

    Pinging 3.18.106.198 with 32 bytes of data: Request timed out.

    Observe que o ping falha e que o tráfego está bloqueado.

  4. Use o endereço IPv4 privado para se conectar e verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice

    Saída:

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' Last login: Fri Sep 27 18:09:55 2024 from 3.16.146.5 [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.

    Observe que o ping falha e que o tráfego está bloqueado.

  5. Conecte-se à instância C. Como não há endereço IP público para o qual emitir um ping, use o EC2 Instance Connect para se conectar e depois emita um ping da instância para um IP público para verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4 --region us-east-2 A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' Last login: Fri Sep 27 18:00:31 2024 from 3.16.146.5 [ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com PING www.amazon.com(2600:9000:25f3:a600:7:49a5:5fd4:b121 (2600:9000:25f3:a600:7:49a5:5fd4:b121)) 56 data bytes 64 bytes from 2600:9000:25f3:a600:7:49a5:5fd4:b121 (2600:9000:25f3:a600:7:49a5:5fd4:b121): icmp_seq=1 ttl=58 time=1.51 ms 64 bytes from 2600:9000:25f3:a600:7:49a5:5fd4:b121 (2600:9000:25f3:a600:7:49a5:5fd4:b121): icmp_seq=2 ttl=58 time=1.49 ms

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

  6. Conecte-se à instância D. Como não há endereço IP público para o qual emitir um ping, use o EC2 Instance Connect para se conectar e depois emita um ping da instância para um IP público para verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0 --region us-east-2 A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' Last login: Fri Sep 27 18:13:55 2024 from 3.16.146.5 [ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com PING www.amazon.com(2606:2cc0::374 (2606:2cc0::374)) 56 data bytes 64 bytes from 2606:2cc0::374 (2606:2cc0::374): icmp_seq=1 ttl=58 time=1.21 ms 64 bytes from 2606:2cc0::374 (2606:2cc0::374): icmp_seq=2 ttl=58 time=1.51 ms

    Observe que o ping foi bem-sucedido e o tráfego não está bloqueado.

Cenário 6

Nesta seção, você alterará a direção de bloqueio do BPA da VPC para ver como isso afeta o tráfego. Neste cenário, o BPA da VPC habilitado no modo bidirecional bloqueia todo o tráfego exatamente como no cenário 1. A menos que uma exclusão tenha acesso a um gateway NAT ou um gateway da Internet somente de saída, o tráfego estará bloqueado.

Diagrama do modo bidirecional do BPA da VPC ativado e da exclusão da sub-rede A com o modo somente de saída ativado:

Diagrama mostrando VPC com BPA no modo somente de entrada, permitindo tráfego de saída através do gateway NAT

6.1 Alterar o BPA da VPC para o modo bidirecional

Conclua esta seção para alterar o modo do BPA.

AWS Management Console
  1. Escolha Editar configurações de acesso público:

  2. Altere a direção do bloqueio para Bidirecional e escolha Salvar alterações.

  3. Aguarde até que Status mude para Ativado. Pode demorar alguns minutos para as configurações do BPA terem efeito e o status ser atualizado.

AWS CLI
  1. Modifique a direção do bloqueio do BPA da VPC:

    aws ec2 --region us-east-2 modify-vpc-block-public-access-options --internet-gateway-block-mode block-bidirectional

    Pode demorar alguns minutos para as configurações do BPA terem efeito e o status ser atualizado.

  2. Visualize o status do BPA da VPC:

    aws ec2 --region us-east-2 describe-vpc-block-public-access-options

6.2 Conectar-se a instâncias

Conclua esta seção para se conectar às instâncias.

AWS Management Console
  1. Emita um ping para o endereço IPv4 público da instância A e da instância B. Observe que o tráfego está bloqueado.

  2. Conecte-se à instância A e à instância B usando o EC2 Instance Connect, como fez no cenário 1 emita um ping para www.amazon.com. Observe que você não pode emitir um ping da instância A ou B para um site público na Internet. O tráfego está bloqueado.

  3. Conecte-se à instância C e à instância D usando o EC2 Instance Connect, como fez no cenário 1 e emita um ping das instâncias para www.amazon.com. Observe que você não pode emitir ping da instância C ou D para um site público na Internet. O tráfego está bloqueado.

AWS CLI
  1. Emita um ping para a instância A usando o endereço IPv4 público para verificar se há tráfego de entrada:

    ping 18.225.8.244

    Saída:

    Pinging 18.225.8.244 with 32 bytes of data: Request timed out.

    Observe que o ping falha e que o tráfego está bloqueado.

  2. Use o endereço IPv4 privado para se conectar e verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice

    Saída:

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' Last login: Fri Sep 27 18:17:44 2024 from 3.16.146.5 [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.

    Observe que o ping falha e que o tráfego está bloqueado.

  3. Emita um ping para a instância A usando o endereço IPv4 público para verificar se há tráfego de entrada:

    ping 3.18.106.198

    Saída:

    Pinging 3.18.106.198 with 32 bytes of data: Request timed out.

    Observe que o ping falha e que o tráfego está bloqueado.

  4. Use o endereço IPv4 privado para se conectar e verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice

    Saída:

    A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' Last login: Fri Sep 27 18:09:55 2024 from 3.16.146.5 [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.

    Observe que o ping falha e que o tráfego está bloqueado.

  5. Conecte-se à instância C. Como não há endereço IP público para o qual emitir um ping, use o EC2 Instance Connect para se conectar e depois emita um ping da instância para um IP público para verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4 --region us-east-2 A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' Last login: Fri Sep 27 18:19:45 2024 from 3.16.146.5 [ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com PING www.amazon.com(2600:9000:25f3:6200:7:49a5:5fd4:b121 (2600:9000:25f3:6200:7:49a5:5fd4:b121)) 56 data bytes

    Observe que o ping falha e que o tráfego está bloqueado.

  6. Conecte-se à instância D. Como não há endereço IP público para o qual emitir um ping, use o EC2 Instance Connect para se conectar e depois emita um ping da instância para um IP público para verificar se há tráfego de saída:

    aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0 --region us-east-2 A newer release of "Amazon Linux" is available. Version 2023.5.20240916: Run "/usr/bin/dnf check-release-update" for full release and version update info , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' Last login: Fri Sep 27 18:20:58 2024 from 3.16.146.5 [ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com PING www.amazon.com(2600:9000:25f3:b400:7:49a5:5fd4:b121 (2600:9000:25f3:b400:7:49a5:5fd4:b121)) 56 data bytes

    Observe que o ping falha e que o tráfego está bloqueado.

Limpeza

Nesta seção, você excluirá todos os recursos que criou para este exemplo avançado. É importante limpar os recursos para evitar cobranças adicionais excessivas pelos recursos criados em sua conta.

Excluir os recursos do CloudFormation

Conclua esta seção para excluir os recursos que você criou com o modelo do AWS CloudFormation.

AWS Management Console
  1. Abra o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation/.

  2. Escolha a pilha do BPA da VPC.

  3. Escolha Excluir.

  4. Depois que começar a excluir a pilha, na guia Eventos, visualize o andamento e certifique-se de que a pilha seja excluída. Talvez seja necessário forçar a exclusão da pilha para que ela seja totalmente excluída.

AWS CLI
  1. Excluir a pilha do CloudFormation. Talvez seja necessário forçar a exclusão da pilha para que ela seja totalmente excluída.

    aws cloudformation delete-stack --stack-name VPC-BPA-stack --region us-east-2
  2. Visualize o andamento e certifique-se de que a pilha seja excluída.

    aws cloudformation describe-stack-events --stack-name VPC-BPA-stack --region us-east-2

Rastrear a remoção de exclusões com o AWS CloudTrail

Conclua esta seção para rastrear a remoção de exclusões com o AWS CloudTrail. As entradas do CloudTrail aparecem quando você remove uma exclusão.

AWS Management Console

Você pode visualizar todas as exclusões removidas no histórico de eventos do CloudTrail consultando Tipo de recurso > AWS::EC2::VPCBlockPublicAccessExclusion no console do AWS CloudTrail em https://console.aws.amazon.com/cloudtrailv2/.

AWS CLI

Você pode usar o comando lookup-events para visualizar os eventos relacionados com remoção de exclusões:

aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceType,AttributeValue=AWS::EC2::VPCBlockPublicAccessExclusion

O exemplo avançado foi concluído.