

# Exemplo avançado
<a name="security-vpc-bpa-example"></a>

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 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.

**Topics**
+ [Implantar modelo do CloudFormation (opcional)](#security-vpc-bpa-example-deploy-cfn)
+ [Visualizar o impacto do BPA da VPC com o Analisador de Acesso à Rede](#vpc-bpa-naa)
+ [Cenário 1: estabelecer conexão com instâncias quando o BPA da VPC não está ativado](#vpc-bpa-scenario-1-connect-scen1)
+ [Cenário 2: ativar o BPA da VPC no modo bidirecional](#vpc-bpa-scenario-1-connect-scen2)
+ [Cenário 3: alterar o modo do BPA da VPC para Somente entrada](#vpc-bpa-scenario-3)
+ [Cenário 4: criar uma exclusão](#vpc-bpa-scenario-4)
+ [Cenário 5: modificar o modo de exclusão](#vpc-bpa-scenario-5)
+ [Cenário 6: modificar o modo do BPA da VPC](#vpc-bpa-scenario-6)
+ [Limpeza](#vpc-bpa-scenario-cleanup)

## Implantar modelo do CloudFormation (opcional)
<a name="security-vpc-bpa-example-deploy-cfn"></a>

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 CloudFormation que você pode usar para iniciar rapidamente os recursos necessários para os cenários desta demonstração. Esta etapa é opcional e talvez você queira apenas visualizar os diagramas nos Cenários desta seçã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.
Esse modelo do CloudFormation cria os recursos subjacentes necessários para o BPA da VPC, mas não habilita o recurso de BPA da VPC em si. Os recursos implantados aqui têm como objetivo ajudar você a entender e testar a funcionalidade do BPA da VPC depois que você optar por habilitá-la separadamente.

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
```

------
#### [ Console de gerenciamento da AWS ]

1. Abra o console do CloudFormation em [https://console.aws.amazon.com/cloudformation/](https://console.aws.amazon.com/cloudformation/).

1. Escolha **Criar pilha** e carregue o arquivo do modelo .yaml.

1. Siga as etapas para iniciar o modelo. Você precisará inserir um [ID de imagem](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) e um [tipo de instância](https://aws.amazon.com/ec2/instance-types/) (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 CloudWatch.

1. 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
   ```

   Resultado:

   ```
   {
       "StackId": "arn:aws:cloudformation:us-east-2:470889052923:stack/VPC-BPA-stack/8a7a2cc0-8001-11ef-b196-06386a84b72f"
   }
   ```

1. 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
<a name="vpc-bpa-naa"></a>

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](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/how-network-access-analyzer-works.html#analyzer-limitations) no *Network Access Analyzer Guide*.

------
#### [ Console de gerenciamento da AWS ]

1. Abra o console do AWS Network Insights em [https://console.aws.amazon.com/networkinsights/](https://console.aws.amazon.com/networkinsights/).

1. Escolha **Analisador de Acesso à Rede**.

1. Escolha **Criar escopo de acesso à rede**.

1. Escolha **Avaliar o impacto do Bloqueio de Acesso Público da VPC** e clique em **Próximo**.

1. 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**.

1. Escolha **Próximo**.

1. Escolha **Criar escopo de acesso à rede**.

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

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

1. 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 da VPC, o tráfego para essas VPCs e sub-redes será restringido.

1. Analise cada descoberta para entender o impacto do BPA da VPC 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
   ```

   Resultado:

   ```
   {
     "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"
               ]
             }
           }
         }
       ]
     }
   }
   ```

1. 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
   ```

   Resultado:

   ```
   {
     "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
     }
   }
   ```

1. 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
   ```

   Resultado:

   ```
   {
     "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).

1. Analise as descobertas para entender o impacto do BPA da VPC nos recursos das VPCs.

A análise de impacto foi concluída.

------

## Cenário 1: estabelecer conexão com instâncias quando o BPA da VPC não está ativado
<a name="vpc-bpa-scenario-1-connect-scen1"></a>

Nesta seção, as instâncias do EC2 nas sub-redes públicas A e B são acessíveis pela Internet por meio do gateway da Internet, o qual permite tráfego de entrada e saída. As instâncias C e D na sub-rede privada podem iniciar o tráfego de saída por meio do gateway NAT ou do gateway da Internet somente de saída, mas não são diretamente acessíveis via Internet. Essa configuração fornece acesso à Internet a alguns recursos ao mesmo tempo que protege outros. O objetivo dessa configuração é definir uma linha de base e garantir, antes de habilitar o BPA da VPC, 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 da VPC habilitado.\]](http://docs.aws.amazon.com/pt_br/vpc/latest/userguide/images/vpc-bpa-1.png)


### 1.1 Conectar-se a instâncias
<a name="vpc-bpa-scenario-1-connect-scen1-sub"></a>

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".

------
#### [ Console de gerenciamento da AWS ]

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Abra os detalhes da instância A.

1. Para se conectar à instância A, use a opção **EC2 Instance Connect** > **Estabelecer conexão usando o endpoint do EC2 Instance Connect**.

1. 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.

1. Use o mesmo método que você utilizou para estabelecer conexão com a instância A para acessar as instâncias B, C e D. De cada uma delas, execute um ping em www.amazon.com para confirmar se é possível enviar solicitações de saída para a 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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 --connection-type eice
   ```

   Resultado:

   ```
   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.

1. 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 --connection-type eice
   ```

   Resultado:

   ```
   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: ativar o BPA da VPC no modo bidirecional
<a name="vpc-bpa-scenario-1-connect-scen2"></a>

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 que mostra o modo bidirecional do BPA da VPC ativado:

![\[Diagrama que mostra a VPC com o modo bidirecional do BPA da VPC habilitado.\]](http://docs.aws.amazon.com/pt_br/vpc/latest/userguide/images/vpc-bpa-2.png)


### 2.1 Habilitar o modo bidirecional do BPA da VPC
<a name="vpc-bpa-scenario-1-connect-scen2-sub1"></a>

Conclua esta seção para habilitar o BPA da VPC. 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).

------
#### [ Console de gerenciamento da AWS ]

1. Abra o console da Amazon VPC, em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

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

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

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

1. Aguarde até que **Status** mude para **Ativado**. Talvez demore alguns minutos para as configurações do BPA da VPC 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
   ```

   Talvez demore alguns minutos para as configurações do BPA da VPC terem efeito e o status ser atualizado.

1. 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
<a name="vpc-bpa-scenario-1-connect-scen2-sub2"></a>

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

------
#### [ Console de gerenciamento da AWS ]

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.

1. Para se conectar à instância A, use a opção **EC2 Instance Connect** > **Estabelecer conexão usando o endpoint do EC2 Instance Connect**, como você fez no Cenário 1. Certifique-se de usar a opção de endpoint.

1. Selecione **Conectar**. Após se conectar com êxito à instância, execute um ping para www.amazon.com. Observe que todo o tráfego de saída está bloqueado.

1. Use o mesmo método que você utilizou para estabelecer conexão com a instância A para acessar as instâncias B, C e D para testar o envio de solicitações de saída para a Internet. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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 --connection-type eice
   ```

   Resultado:

   ```
   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.

1. 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 --connection-type eice
   ```

   Resultado:

   ```
   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
<a name="vpc-bpa-scenario-1-connect-scen2-sub3"></a>

O [Analisador de Acessibilidade da VPC](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 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.

------
#### [ Console de gerenciamento da AWS ]

1. Vá para o console do Network Insights em [https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer](https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer).

1. Clique em **Criar e analisar caminho**.

1. 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**.

1. 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**.

1. Clique em **Criar e analisar caminho**.

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

1. Depois da conclusão, você verá que o **Status de acessibilidade** é **Não acessível** e que **Detalhes do caminho** mostram 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
   ```

1. Inicie uma análise no caminho da rede:

   ```
   aws ec2 --region us-east-2 start-network-insights-analysis --network-insights-path-id nip-id
   ```

1. Recupere os resultados da análise:

   ```
   aws ec2 --region us-east-2 describe-network-insights-analyses --network-insights-analysis-ids nia-id
   ```

1. Verifique se `VPC_BLOCK_PUBLIC_ACCESS_ENABLED` é o `ExplanationCode` para a falta de acessibilidade.

------

Observe que também é possível [Monitorar o impacto do BPA da VPC com logs de fluxo](security-vpc-bpa-assess-impact-main.md#security-vpc-bpa-fl).

## Cenário 3: alterar o modo do BPA da VPC para Somente entrada
<a name="vpc-bpa-scenario-3"></a>

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. As instâncias A e B do EC2 nas sub-redes públicas não poderão ser acessadas pela Internet porque o BPA bloqueia o tráfego de entrada via gateway da Internet. As instâncias C e D na sub-rede privada continuarão sendo capazes de iniciar o tráfego de saída por meio do gateway NAT e do gateway da Internet somente de saída e, portanto, ainda poderão acessar a Internet.

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

![\[Diagrama mostrando a VPC com o BPA da VPC somente de entrada habilitado.\]](http://docs.aws.amazon.com/pt_br/vpc/latest/userguide/images/vpc-bpa-3.png)


### 3.1 Alterar o modo para somente de entrada
<a name="vpc-bpa-scenario-1-connect-scen3-sub1"></a>

Conclua esta seção para alterar o modo.

------
#### [ Console de gerenciamento da AWS ]

1. Abra o console da Amazon VPC, em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

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

1. Na guia **Bloquear acesso público**, escolha **Editar configurações de acesso público**.

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

1. Salve as alterações e aguarde a atualização do status. Talvez demore alguns minutos para as configurações do BPA da VPC 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
   ```

   Talvez demore alguns minutos para as configurações do BPA da VPC terem efeito e o status ser atualizado.

1. 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
<a name="vpc-bpa-scenario-1-connect-scen3-sub2"></a>

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

------
#### [ Console de gerenciamento da AWS ]

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.

1. 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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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 --connection-type eice
   ```

   Resultado:

   ```
   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.

1. 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 --connection-type eice
   ```

   Resultado:

   ```
   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: criar uma exclusão
<a name="vpc-bpa-scenario-4"></a>

Nesta seção, você criará uma exclusão. O BPA da VPC então bloqueará apenas o tráfego nas sub-redes *sem* 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 de BPA da VPC da conta e permite acesso bidirecional ou somente de saída. É possível criar exclusões do BPA da VPC para VPCs e sub-redes mesmo quando o BPA da VPC 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 o BPA da V`C no modo somente de entrada com uma exclusão.\]](http://docs.aws.amazon.com/pt_br/vpc/latest/userguide/images/vpc-bpa-4.png)


### 4.1 Criar uma exclusão para a sub-rede A
<a name="vpc-bpa-scenario-1-connect-scen4-sub1"></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 de BPA da VPC da conta e permite acesso bidirecional ou somente de saída. É possível criar exclusões do BPA da VPC para VPCs e sub-redes mesmo quando o BPA da VPC 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.

------
#### [ Console de gerenciamento da AWS ]

1. Abra o console da Amazon VPC, em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

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

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

1. **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**.

1. 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
   ```

1. 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
<a name="vpc-bpa-scenario-1-connect-scen4-sub2"></a>

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

------
#### [ Console de gerenciamento da AWS ]

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

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

1. 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.

1. 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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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 --connection-type eice
   ```

   Output

   ```
   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.

1. 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 --connection-type eice
   ```

   Output

   ```
   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
<a name="vpc-bpa-scenario-1-connect-scen4-sub3"></a>

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](https://docs.aws.amazon.com/vpc/latest/reachability/how-reachability-analyzer-works.html#considerations) no *Reachability Analyzer Guide*.

------
#### [ Console de gerenciamento da AWS ]

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

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

1. 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
   ```

1. Recupere os resultados da análise:

   ```
   aws ec2 --region us-east-2 describe-network-insights-analyses --network-insights-analysis-ids nia-id
   ```

1. Confirme se o código de explicação `VPC_BLOCK_PUBLIC_ACCESS_ENABLED` não ocorre mais.

------

## Cenário 5: modificar o modo de exclusão
<a name="vpc-bpa-scenario-5"></a>

Nesta seção, você alterará a direção de tráfego permitida na exclusão para ver como isso afeta o BPA da VPC. 

**nota**  
Neste cenário, você alterará o modo de exclusão para Somente saída. Observe que, ao fazer isso, a exclusão Somente saída na sub-rede A não permite tráfego de saída, o que é contraintuitivo, pois você esperaria que ela permitisse tráfego de saída. No entanto, como o BPA no nível da conta é somente de entrada, as exclusões somente de saída são ignoradas e o roteamento da sub-rede A para um gateway da Internet é restrito pelo BPA da VPC, bloqueando o tráfego de saída. Para habilitar o tráfego de saída na sub-rede A, seria necessário mudar o BPA da VPC para o modo bidirecional.

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 que mostra a VPC com BPA da VPC no modo somente de entrada, permitindo tráfego de saída através do gateway NAT.\]](http://docs.aws.amazon.com/pt_br/vpc/latest/userguide/images/vpc-bpa-5.png)


### 5.1 Alterar a direção de permissão da exclusão para somente de saída
<a name="vpc-bpa-scenario-1-connect-scen5-sub1"></a>

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

------
#### [ Console de gerenciamento da AWS ]

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**.

1. Escolha **Salvar alterações**.

1. Aguarde até que o status de **Exclusão** mude para **Ativo**. Talvez demore alguns minutos para as configurações do BPA da VPC 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
   ```

   Talvez demore alguns minutos para as configurações do BPA da VPC terem efeito e o status ser atualizado.

1. 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
<a name="vpc-bpa-scenario-1-connect-scen5-sub2"></a>

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

------
#### [ Console de gerenciamento da AWS ]

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.

1. 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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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 --connection-type eice      
   ```

   Resultado:

   ```
   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.

1. 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 --connection-type eice
   ```

   Resultado:

   ```
   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: modificar o modo do BPA da VPC
<a name="vpc-bpa-scenario-6"></a>

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 que mostra a VPC com BPA da VPC no modo somente de entrada, permitindo tráfego de saída através do gateway NAT\]](http://docs.aws.amazon.com/pt_br/vpc/latest/userguide/images/vpc-bpa-6.png)


### 6.1 Alterar o BPA da VPC para o modo bidirecional
<a name="vpc-bpa-scenario-1-connect-scen6-sub1"></a>

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

------
#### [ Console de gerenciamento da AWS ]

1. Abra o console da Amazon VPC, em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

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

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

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

1. Aguarde até que **Status** mude para **Ativado**. Talvez demore alguns minutos para as configurações do BPA da VPC 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
   ```

   Talvez demore alguns minutos para as configurações do BPA da VPC terem efeito e o status ser atualizado.

1. 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
<a name="vpc-bpa-scenario-1-connect-scen6-sub2"></a>

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

------
#### [ Console de gerenciamento da AWS ]

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.

1. 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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

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 3.18.106.198
   ```

   Resultado:

   ```
   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.

1. 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
   ```

   Resultado:

   ```
   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.

1. 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 --connection-type eice                                   
   ```

   Resultado:

   ```
   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.

1. 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 --connection-type eice                                  
   ```

   Resultado:

   ```
   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
<a name="vpc-bpa-scenario-cleanup"></a>

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
<a name="vpc-bpa-scenario-1-connect-cleanup-sub1"></a>

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

------
#### [ Console de gerenciamento da AWS ]

1. Abra o console do CloudFormation em [https://console.aws.amazon.com/cloudformation/](https://console.aws.amazon.com/cloudformation/).

1. Escolha a pilha do BPA da VPC.

1. Escolha **Excluir**.

1. 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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) 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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) para que ela seja totalmente excluída.

   ```
   aws cloudformation delete-stack --stack-name VPC-BPA-stack --region us-east-2
   ```

1. 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 usando o CloudTrail
<a name="vpc-bpa-scenario-1-connect-cleanup-sub2"></a>

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

------
#### [ Console de gerenciamento da AWS ]

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/](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.