Erweitertes Beispiel - Amazon Virtual Private Cloud

Erweitertes Beispiel

Dieser Abschnitt enthält ein erweitertes Beispiel, das Ihnen hilft zu verstehen, wie das Feature VPC Block Public Access in verschiedenen Szenarien funktioniert. Jedes Szenario baut auf dem vorherigen Szenario auf, daher ist es wichtig, dass Sie die Schritte in der richtigen Reihenfolge ausführen.

Wichtig

Gehen Sie dieses Beispiel nicht in einem Produktionskonto durch. Wir empfehlen Ihnen dringend, die Workloads, die Internetzugang benötigen, gründlich zu überprüfen, bevor Sie VPC BPA in Ihren Produktionskonten aktivieren.

Anmerkung

Sie benötigen bestimmte Ressourcen in Ihrem Konto, um das VPC-BPA-Feature vollständig zu verstehen. In diesem Abschnitt stellen wir Ihnen eine Vorlage für CloudFormation zur Verfügung, mit der Sie die benötigten Ressourcen bereitstellen können, um die Funktionsweise dieses Features vollständig zu verstehen. Mit den Ressourcen, die Sie mit der CloudFormation-Vorlage bereitstellen, und den Analysen, die Sie mit Network Access Analyzer und Reachability Analyzer durchführen, sind Kosten verbunden. Wenn Sie die Vorlage in diesem Abschnitt verwenden, stellen Sie sicher, dass Sie die Bereinigungsschritte abschließen, wenn Sie mit diesem Beispiel fertig sind.

Bereitstellen der CloudFormation-Vorlage (optional)

Sie benötigen eine VPC, Subnetze, Instances und andere Ressourcen, um zu demonstrieren, wie dieses Feature funktioniert. Um die Durchführung dieser Demonstration zu erleichtern, haben wir unten eine CloudFormation-Vorlage bereitgestellt, mit der Sie schnell die für die Szenarien in dieser Demo erforderlichen Ressourcen einrichten können. Dieser Schritt ist optional und möglicherweise möchten Sie sich nur die Diagramme in den Szenarien in diesem Abschnitt ansehen.

Anmerkung
  • Mit den Ressourcen, die Sie in diesem Abschnitt mit der CloudFormation-Vorlage erstellen, sind Kosten verbunden, wie z. B. die Kosten für das NAT-Gateway und die öffentlichen IPv4-Adressen. Um übermäßige Kosten zu vermeiden, stellen Sie sicher, dass Sie die Bereinigungsschritte durchführen, um alle für dieses Beispiel erstellten Ressourcen zu entfernen.

  • Diese CloudFormation-Vorlage erstellt die zugrunde liegenden Ressourcen, die für VPC BPA benötigt werden, aktiviert jedoch nicht die VPC-BPA-Funktion selbst. Die hier bereitgestellten Ressourcen sollen Ihnen dabei helfen, die VPC-BPA-Funktion zu verstehen und zu testen, sobald Sie diese separat aktivieren möchten.

Die Vorlage erstellt die folgenden Ressourcen in Ihrem Konto:

  • Internet-Gateway nur für ausgehenden Verkehr

  • Internet-Gateway

  • NAT-Gateway

  • Zwei öffentliche Subnetze

  • Ein privates Subnetz

  • Zwei EC2-Instances mit öffentlichen und privaten IPv4-Adressen

  • Eine EC2-Instance mit einer IPv6-Adresse und einer privaten IPv4-Adresse

  • Eine EC2-Instance nur mit einer privaten IPv4-Adresse

  • Sicherheitsgruppe, die eingehenden SSH- und ICMP-Datenverkehr zulässt und den gesamten ausgehenden Datenverkehr erlaubt

  • VPC-Flow-Protokoll

  • Ein EC2-Instance-Verbindungsendpunkt in Subnetz B

Kopieren Sie die nachstehende Vorlage und speichern Sie sie in einer YAML-Datei.

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-Managementkonsole
  1. Öffnen Sie die CloudFormation-Konsole unter https://console.aws.amazon.com/cloudformation/.

  2. Wählen Sie Stack erstellen aus und laden Sie die YAML-Vorlagendatei hoch.

  3. Führen Sie die Schritte durch, um die Vorlage zu starten. Sie müssen eine Image-ID und einen Instance-Typ (wie t2.micro) eingeben. Außerdem müssen Sie CloudFormation erlauben, eine IAM-Rolle für Sie zu erstellen, um die Erstellung des Flow-Protokolls und die Berechtigung zur Anmeldung bei CloudWatch zu ermöglichen.

  4. Sobald Sie den Stack gestartet haben, zeigen Sie auf der Registerkarte Ereignisse den Fortschritt an und stellen Sie sicher, dass der Stack abgeschlossen ist, bevor Sie fortfahren.

AWS CLI
  1. Führen Sie den folgenden Befehl aus, um den CloudFormation-Stack zu erstellen:

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

    Ausgabe:

    { "StackId": "arn:aws:cloudformation:us-east-2:470889052923:stack/VPC-BPA-stack/8a7a2cc0-8001-11ef-b196-06386a84b72f" }
  2. Zeigen Sie den Fortschritt an und stellen Sie sicher, dass der Stack abgeschlossen ist, bevor Sie fortfahren:

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

Anzeigen der Auswirkungen von VPC BPA mit Network Access Analyzer

In diesem Abschnitt verwenden Sie Network Access Analyzer, um die Ressourcen in Ihrem Konto anzuzeigen, die das Internet-Gateway nutzen. Verwenden Sie diese Analyse, um die Auswirkungen des Aktivierens von VPC BPA in Ihrem Konto und des Blockierens von Datenverkehr zu verstehen.

Informationen über die regionale Verfügbarkeit von Network Access Analyzer finden Sie unter Einschränkungen im Handbuch für Network Access Analyzer.

AWS-Managementkonsole
  1. Öffnen Sie die Network-Insights-Konsole von AWS unter https://console.aws.amazon.com/networkinsights/.

  2. Wählen Sie Network Access Analyzer aus.

  3. Klicken Sie auf Netzwerkzugriffsbereich erstellen.

  4. Wählen Sie Auswirkungen von VPC Block Public Access bewerten und dann Weiter aus.

  5. Die Vorlage ist bereits so konfiguriert, dass sie den Datenverkehr zu und von den Internet-Gateways in Ihrem Konto analysiert. Sie können dies unter Quelle und Ziel einsehen.

  6. Wählen Sie Weiter aus.

  7. Klicken Sie auf Netzwerkzugriffsbereich erstellen.

  8. Wählen Sie den gerade erstellten Bereich aus und klicken Sie auf Analysieren.

  9. Warten Sie, bis die Analyse abgeschlossen ist.

  10. Zeigen Sie die Ergebnisse der Analyse an. Jede Zeile unter Erkenntnise zeigt einen Netzwerkpfad, den ein Paket in einem Netzwerk zu oder von einem Internet-Gateway in Ihrem Konto nehmen kann. Wenn Sie in diesem Fall VPC BPA aktivieren und keine der VPCs und/oder Subnetze, die in diesen Erkenntnissen erscheinen, als VPC-BPA-Ausschlüsse konfiguriert sind, wird der Datenverkehr zu diesen VPCs und Subnetzen eingeschränkt.

  11. Analysieren Sie jede Erkenntnis, um die Auswirkungen von VPC BPA auf die Ressourcen in Ihren VPCs zu verstehen.

Die Analyse der Auswirkungen ist abgeschlossen.

AWS CLI
  1. Erstellen Sie einen Netzwerkzugriffsbereich:

    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

    Ausgabe:

    { "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. Starten Sie die Analyse des Bereichs:

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

    Ausgabe:

    { "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. Rufen Sie die Ergebnisse der Analyse ab:

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

    Ausgabe:

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

    Die Ergebnisse zeigen den Datenverkehr zu und von den Internet-Gateways in allen VPCs Ihres Kontos. Die Ergebnisse sind als „Erkenntnisse“ organisiert. „FindingId“: „AnalysisFinding-1“ gibt an, dass dies die erste Erkenntnis der Analyse ist. Beachten Sie, dass es mehrere Erkenntnisse gibt, die jeweils auf einen Datenverkehrsfluss hinweisen, der durch die Aktivierung von VPC BPA beeinträchtigt wird. Die erste Erkenntnis zeigt, dass der Datenverkehr an einem Internet-Gateway („SequenceNumber“: 1) begann, an eine NACL („SequenceNumber“: 2) zu einer Sicherheitsgruppe („SequenceNumber“: 3) weitergeleitet wurde und an einer Instance („SequenceNumber“: 4) endete.

  4. Analysieren Sie die Erkenntnisse, um die Auswirkungen von VPC BPA auf die Ressourcen in Ihren VPCs zu verstehen.

Die Analyse der Auswirkungen ist abgeschlossen.

Szenario 1: Herstellen einer Verbindung zu Instances ohne aktiviertes VPC BPA

In diesem Abschnitt sind EC2-Instances in den öffentlichen Subnetzen A und B vom Internet aus über das Internet-Gateway erreichbar, das sowohl ein- als auch ausgehenden Datenverkehr ermöglicht. Die Instances C und D im privaten Subnetz können ausgehenden Datenverkehr über das NAT-Gateway oder das Internet-Gateway nur für ausgehenden Datenverkehr initiieren, sind jedoch nicht direkt vom Internet aus erreichbar. Diese Einrichtung bietet Internetzugriff auf einige Ressourcen und schützt gleichzeitig andere. Als Zweck dieses Abschnitts stellen Sie eine Verbindung zu allen Instances her und pingen eine öffentliche IP-Adresse an, um eine Baseline festzulegen und sicherzustellen, dass alle Instances erreicht werden können, bevor Sie VPC BPA aktivieren.

Diagramm einer VPC ohne aktiviertes VPC BPA:

Diagramm, das eine VPC ohne aktiviertes VPC BPA zeigt.

1.1 Herstellen einer Verbindung zu Instances

Führen Sie diesen Abschnitt aus, um eine Verbindung zu Ihren Instances mit deaktiviertem VPC BPA herzustellen, um sicherzustellen, dass Sie problemlos eine Verbindung herstellen können. Alle Instances, die mit CloudFormation für dieses Beispiel erstellt wurden, haben Namen wie „VPC BPA Instance A“.

AWS-Managementkonsole
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Öffnen Sie die Details zu Instance A.

  3. Stellen Sie mithilfe der Option EC2 Instance Connect > Verbinden mit EC2-Instance-Connect-Endpunkt eine Verbindung zu Instance A her.

  4. Wählen Sie Connect aus. Sobald Sie erfolgreich eine Verbindung mit der Instance hergestellt haben, pingen Sie www.amazon.com an, um zu überprüfen, ob Sie ausgehende Anfragen an das Internet senden können.

  5. Verwenden Sie die gleiche Methode, die Sie für die Verbindung zu Instance A verwendet haben, um eine Verbindung zu den Instances B, C und D herzustellen. Pingen Sie von jeder Instance aus www.amazon.com an, um zu überprüfen, ob Sie ausgehende Anfragen an das Internet senden können.

AWS CLI
  1. Pingen Sie Instance A mit der öffentlichen IPv4-Adresse an, um den eingehenden Datenverkehr zu überprüfen:

    ping 18.225.8.244

    Ausgabe:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

  2. Verwenden Sie die private IPv4-Adresse, um eine Verbindung herzustellen und den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

  3. Pingen Sie Instance B mit der öffentlichen IPv4-Adresse an, um den eingehenden Datenverkehr zu überprüfen:

    ping 3.18.106.198

    Ausgabe:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

  4. Verwenden Sie die private IPv4-Adresse, um eine Verbindung herzustellen und den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

  5. Stellen Sie eine Verbindung zu Instance C her. Da es keine öffentliche IP-Adresse zum Anpingen gibt, verwenden Sie EC2 Instance Connect, um eine Verbindung herzustellen, und pingen Sie dann eine öffentliche IP von der Instance an, um den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

  6. Stellen Sie eine Verbindung zu Instance D her. Da es keine öffentliche IP-Adresse zum Anpingen gibt, verwenden Sie EC2 Instance Connect, um eine Verbindung herzustellen, und pingen Sie dann eine öffentliche IP von der Instance an, um den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

Szenario 2: Aktivieren von VPC BPA im bidirektionalen Modus

In diesem Abschnitt aktivieren Sie VPC BPA und blockieren den Datenverkehr zu und von den Internet-Gateways in Ihrem Konto.

Diagramm mit Darstellung des aktivierten bidirektionalen Modus von VPC BPA:

Das Diagramm zeigt VPC mit aktiviertem bidirektionalem VPC BPA.

2.1 Aktivieren des bidirektionalen VPC-BPA-Modus

Führen Sie diesen Abschnitt aus, um VPC BPA zu aktivieren. Der bidirektionale Modus von VPC BPA blockiert den gesamten Datenverkehr zu und von Internet-Gateways und Internet-Gateways nur für ausgehenden Verkehr in dieser Region (mit Ausnahme der ausgeschlossenen VPCs und Subnetze).

AWS-Managementkonsole
  1. Öffnen Sie die Amazon-VPC-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Wählen Sie im linken Navigationsbereich die Option Einstellungen aus.

  3. Wählen Sie Einstellungen für den öffentlichen Zugriff bearbeiten aus.

  4. Wählen Sie Blockieren des öffentlichen Zugriffs aktivieren und Bidirektional und anschließend Änderungen speichern aus.

  5. Warten Sie, bis sich der Status zu Ein ändert. Es kann einige Minuten dauern, bis die VPC-BPA-Einstellungen wirksam werden und der Status aktualisiert wird.

VPC BPA ist jetzt aktiviert.

AWS CLI
  1. Verwenden Sie den Befehl „modify-vpc-block-public-access-options“, um VPC BPA zu aktivieren:

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

    Es kann einige Minuten dauern, bis die VPC-BPA-Einstellungen wirksam werden und der Status aktualisiert wird.

  2. Zeigen Sie den Status von VPC BPA an:

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

2.2 Herstellen einer Verbindung zu Instances

Führen Sie diesen Abschnitt aus, um eine Verbindung mit Ihren Instances herzustellen.

AWS-Managementkonsole
  1. Pingen Sie die öffentliche IPv4-Adresse von Instance A und Instance B an, wie Sie dies in Szenario 1 getan haben. Beachten Sie, dass der Datenverkehr blockiert ist.

  2. Stellen Sie mit der Option EC2 Instance Connect > Verbinden mit EC2-Instance-Connect-Endpunkt eine Verbindung zu Instance A wie in Szenario 1 her. Stellen Sie sicher, dass Sie die Endpunkt-Option verwenden.

  3. Wählen Sie Connect aus. Sobald Sie erfolgreich eine Verbindung zur Instance hergestellt haben, pingen Sie www.amazon.com an. Beachten Sie, dass der gesamte ausgehende Datenverkehr blockiert ist.

  4. Verwenden Sie die gleiche Methode, die Sie für die Verbindung zu Instance A verwendet haben, um eine Verbindung zu den Instances B, C und D herzustellen und ausgehende Anfragen an das Internet zu testen. Beachten Sie, dass der gesamte ausgehende Datenverkehr blockiert ist.

AWS CLI
  1. Pingen Sie Instance A mit der öffentlichen IPv4-Adresse an, um den eingehenden Datenverkehr zu überprüfen:

    ping 18.225.8.244

    Ausgabe:

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

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  2. Verwenden Sie die private IPv4-Adresse, um eine Verbindung herzustellen und den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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.

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  3. Pingen Sie Instance B mit der öffentlichen IPv4-Adresse an, um den eingehenden Datenverkehr zu überprüfen:

    ping 3.18.106.198

    Ausgabe:

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

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  4. Verwenden Sie die private IPv4-Adresse, um eine Verbindung herzustellen und den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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.

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  5. Stellen Sie eine Verbindung zu Instance C her. Da es keine öffentliche IP-Adresse zum Anpingen gibt, verwenden Sie EC2 Instance Connect, um eine Verbindung herzustellen, und pingen Sie dann eine öffentliche IP von der Instance an, um den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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.

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  6. Stellen Sie eine Verbindung zu Instance D her. Da es keine öffentliche IP-Adresse zum Anpingen gibt, verwenden Sie EC2 Instance Connect, um eine Verbindung herzustellen, und pingen Sie dann eine öffentliche IP von der Instance an, um den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

2.3 Optional: Überprüfen mit Reachability Analyzer, ob die Konnektivität blockiert ist

VPC Reachability Analyzer kann verwendet werden, um zu verstehen, ob bestimmte Netzwerkpfade angesichts Ihrer Netzwerkkonfiguration, einschließlich der Einstellungen für VPC BPA, erreicht werden können oder nicht. In diesem Beispiel analysieren Sie denselben Netzwerkpfad, der zuvor versucht wurde, um zu bestätigen, dass VPC BPA der Grund für die fehlende Konnektivität ist.

AWS-Managementkonsole
  1. Rufen Sie die Network-Insights-Konsole unter https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer auf.

  2. Klicken Sie auf Pfad erstellen und analysieren.

  3. Wählen Sie als Quelltyp die Option Internet-Gateways aus und wählen Sie dann aus dem Dropdown-Menü Quelle das Internet-Gateway mit der Bezeichnung VPC-BPA-Internet-Gateway aus.

  4. Wählen Sie als Zieltyp die Option Instances aus und wählen Sie aus dem Dropdown-Menü Ziel die Instance mit der Bezeichnung VPC-BPA-Instance A aus.

  5. Klicken Sie auf Pfad erstellen und analysieren.

  6. Warten Sie, bis die Analyse abgeschlossen ist. Dies kann einige Minuten dauern.

  7. Sobald dies abgeschlossen ist, sollten Sie sehen, dass der Erreichbarkeitsstatus Nicht erreichbar lautet und dass die Pfaddetails zeigen, dass VPC_BLOCK_PUBLIC_ACCESS_ENABLED die Ursache ist.

AWS CLI
  1. Erstellen Sie einen Netzwerkpfad unter Verwendung der ID des Internet-Gateways mit der Bezeichnung VPC-BPA-Internet-Gateway und der ID der Instance mit der Bezeichnung VPC-BPA-Instance A:

    aws ec2 --region us-east-2 create-network-insights-path --source igw-id --destination instance-id --protocol TCP
  2. Starten Sie eine Analyse des Netzwerkpfads:

    aws ec2 --region us-east-2 start-network-insights-analysis --network-insights-path-id nip-id
  3. Rufen Sie die Ergebnisse der Analyse ab:

    aws ec2 --region us-east-2 describe-network-insights-analyses --network-insights-analysis-ids nia-id
  4. Prüfen Sie, ob VPC_BLOCK_PUBLIC_ACCESS_ENABLED das ExplanationCode für die fehlende Erreichbarkeit ist.

Beachten Sie, dass Sie auch das können: Überwachen der VPC-BPA-Auswirkungen mit Flow-Protokollen

Szenario 3: Ändern des VPC BPA auf nur eingehenden Datenverkehrsmodus

In diesem Abschnitt ändern Sie die Richtung des VPC-BPA-Datenverkehrs und lassen nur den Datenverkehr zu, der ein NAT-Gateway oder ein Internet-Gateway nur für ausgehenden Verkehr verwendet. Die EC2-Instances A und B in den öffentlichen Subnetzen sind vom Internet aus nicht erreichbar, da BPA den eingehenden Verkehr über das Internet Gateway blockiert. Die Instanzen C und D im privaten Subnetz können weiterhin ausgehenden Datenverkehr über das NAT-Gateway und das Internet-Gateway nur für ausgehenden Datenverkehr initiieren und erreichen daher weiterhin das Internet.

Diagramm des aktivierten Modus nur für eingehenden Datenverkehr von VPC BPA:

Das Diagramm zeigt VPC mit aktiviertem Modus nur für eingehenden Datenverkehr von VPC BPA.

3.1 Ändern des Modus auf nur eingehenden Datenverkehr

Schließen Sie diesen Abschnitt ab, um den Modus zu ändern.

AWS-Managementkonsole
  1. Öffnen Sie die Amazon-VPC-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Wählen Sie im linken Navigationsbereich die Option Einstellungen aus.

  3. Wählen Sie auf der Registerkarte Öffentlichen Zugriff blockieren die Option Einstellungen für öffentlichen Zugriff bearbeiten aus.

  4. Ändern Sie die Einstellungen für den öffentlichen Zugriff in der VPC-Konsole und ändern Sie die Richtung auf Nur eingehender Datenverkehr.

  5. Speichern Sie die Änderungen und warten Sie, bis der Status aktualisiert wird. Es kann einige Minuten dauern, bis die VPC-BPA-Einstellungen wirksam werden und der Status aktualisiert wird.

AWS CLI
  1. Ändern Sie den VPC-BPA-Modus:

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

    Es kann einige Minuten dauern, bis die VPC-BPA-Einstellungen wirksam werden und der Status aktualisiert wird.

  2. Zeigen Sie den Status von VPC BPA an:

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

3.2 Herstellen einer Verbindung zu Instances

Führen Sie diesen Abschnitt aus, um eine Verbindung zu den Instances herzustellen.

AWS-Managementkonsole
  1. Pingen Sie die öffentliche IPv4-Adresse von Instance A und Instance B an, wie Sie dies in Szenario 1 getan haben. Beachten Sie, dass der Datenverkehr blockiert ist.

  2. Stellen Sie mithilfe von EC2 Instance Connect wie in Szenario 1 eine Verbindung zu Instance A und B her und pingen Sie von dort aus www.amazon.com an. Beachten Sie, dass Sie von Instance A oder B aus keine öffentliche Website im Internet anpingen können und der Datenverkehr blockiert ist.

  3. Stellen Sie mithilfe von EC2 Instance Connect wie in Szenario 1 eine Verbindung zu Instance C und D her und pingen Sie von dort aus www.amazon.com an. Beachten Sie, dass Sie von Instance C oder D aus eine öffentliche Website im Internet anpingen können und der Datenverkehr erlaubt ist.

AWS CLI
  1. Pingen Sie Instance A mit der öffentlichen IPv4-Adresse an, um den eingehenden Datenverkehr zu überprüfen:

    ping 18.225.8.244

    Ausgabe:

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

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  2. Verwenden Sie die private IPv4-Adresse, um eine Verbindung herzustellen und den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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.

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  3. Pingen Sie Instance B mit der öffentlichen IPv4-Adresse an, um den eingehenden Datenverkehr zu überprüfen:

    ping 3.18.106.198

    Ausgabe:

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

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  4. Verwenden Sie die private IPv4-Adresse, um eine Verbindung herzustellen und den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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.

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  5. Stellen Sie eine Verbindung zu Instance C her. Da es keine öffentliche IP-Adresse zum Anpingen gibt, verwenden Sie EC2 Instance Connect, um eine Verbindung herzustellen, und pingen Sie dann eine öffentliche IP von der Instance an, um den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

  6. Stellen Sie eine Verbindung zu Instance D her. Da es keine öffentliche IP-Adresse zum Anpingen gibt, verwenden Sie EC2 Instance Connect, um eine Verbindung herzustellen, und pingen Sie dann eine öffentliche IP von der Instance an, um den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

Szenario 4: Erstellen eines Ausschlusses

In diesem Abschnitt erstellen Sie einen Ausschluss. VPC BPA blockiert dann nur den Datenverkehr in den Subnetzen ohne Ausschluss. Ein VPC-BPA-Ausschluss ist ein Modus, der auf eine einzelne VPC oder ein Subnetz angewendet werden kann, der es vom VPC-BPA-Modus des Kontos ausnimmt und bidirektionalen oder nur ausgehenden Zugriff erlaubt. Sie können VPC-BPA-Ausschlüsse für VPCs und Subnetze erstellen, auch wenn VPC BPA für das Konto nicht aktiviert ist, um sicherzustellen, dass der Datenverkehr nicht unterbrochen wird, wenn VPC BPA aktiviert ist.

In diesem Beispiel erstellen wir einen Ausschluss für Subnetz A, um zu zeigen, wie sich VPC BPA auf den Datenverkehr zu Ausschlüssen auswirkt.

Diagramm des aktivierten Modus nur für eingehenden Datenverkehr von VPC BPA und des Ausschlusses von Subnetz A mit aktiviertem bidirektionalen Modus:

Das Diagramm zeigt VPC mit VPC BPA im Modus nur für eingehenden Datenverkehr mit einem Ausschluss.

4.1 Erstellen eines Ausschlusses für Subnetz A

Führen Sie diesen Abschnitt aus, um eine Ausnahme zu erstellen. Ein VPC-BPA-Ausschluss ist ein Modus, der auf eine einzelne VPC oder ein Subnetz angewendet werden kann, der es vom VPC-BPA-Modus des Kontos ausnimmt und bidirektionalen oder nur ausgehenden Zugriff erlaubt. Sie können VPC-BPA-Ausschlüsse für VPCs und Subnetze erstellen, auch wenn VPC BPA für das Konto nicht aktiviert ist, um sicherzustellen, dass der Datenverkehr nicht unterbrochen wird, wenn VPC BPA aktiviert ist.

AWS-Managementkonsole
  1. Öffnen Sie die Amazon-VPC-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Wählen Sie im linken Navigationsbereich die Option Einstellungen aus.

  3. Wählen Sie auf der Registerkarte Öffentlichen Zugriff blockieren unter Ausschlüsse die Option Ausschlüsse erstellen aus.

  4. Wählen Sie VPC BPA Public Subnet A aus, stellen Sie sicher, dass die Zulässigkeitsrichtung Bidirektional ausgewählt ist, und wählen Sie dann Ausschlüsse erstellen aus.

  5. Warten Sie, bis sich der Status Ausschluss auf Aktiv ändert. Möglicherweise müssen Sie die Ausschlusstabelle aktualisieren, damit die Änderung angezeigt wird.

Der Ausschluss wurde erstellt.

AWS CLI
  1. Ändern Sie die Richtung der Ausschlusserlaubnis:

    aws ec2 --region us-east-2 create-vpc-block-public-access-exclusion --subnet-id subnet-id --internet-gateway-exclusion-mode allow-bidirectional
  2. Es kann einige Zeit dauern, bis der Ausschlussstatus aktualisiert wird. So zeigen Sie den Status des Ausschlusses an:

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

4.2 Herstellen einer Verbindung zu Instances

Führen Sie diesen Abschnitt aus, um eine Verbindung zu den Instances herzustellen.

AWS-Managementkonsole
  1. Pingen Sie die öffentliche IPv4-Adresse von Instance A an. Beachten Sie, dass der Datenverkehr erlaubt ist.

  2. Pingen Sie die öffentliche IPv4-Adresse von Instance B an. Beachten Sie, dass der Datenverkehr blockiert wird.

  3. Stellen Sie mithilfe von EC2 Instance Connect wie in Szenario 1 eine Verbindung zu Instance A her und pingen Sie www.amazon.com an. Beachten Sie, dass Sie von Instance A aus eine öffentliche Website im Internet anpingen können, da der Datenverkehr erlaubt ist.

  4. Stellen Sie mithilfe von EC2 Instance Connect wie in Szenario 1 eine Verbindung zu Instance B her und pingen Sie von dort aus www.amazon.com an. Beachten Sie, dass Sie von Instance B aus keine öffentliche Website im Internet anpingen können, da der Datenverkehr blockiert ist.

  5. Stellen Sie mithilfe von EC2 Instance Connect wie in Szenario 1 eine Verbindung zu Instance C und D her und pingen Sie von dort aus www.amazon.com an. Beachten Sie, dass Sie von Instance C oder D aus eine öffentliche Website im Internet anpingen können, da der Datenverkehr erlaubt ist.

AWS CLI
  1. Pingen Sie Instance A mit der öffentlichen IPv4-Adresse an, um den eingehenden Datenverkehr zu überprüfen:

    ping 18.225.8.244

    Ausgabe:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

  2. Verwenden Sie die private IPv4-Adresse, um eine Verbindung herzustellen und den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

  3. Pingen Sie Instance B mit der öffentlichen IPv4-Adresse an, um den eingehenden Datenverkehr zu überprüfen:

    ping 3.18.106.198

    Ausgabe:

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

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  4. Verwenden Sie die private IPv4-Adresse, um eine Verbindung herzustellen und den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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.

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  5. Stellen Sie eine Verbindung zu Instance C her. Da es keine öffentliche IP-Adresse zum Anpingen gibt, verwenden Sie EC2 Instance Connect, um eine Verbindung herzustellen, und pingen Sie dann eine öffentliche IP von der Instance an, um den ausgehenden Datenverkehr zu überprüfen:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

  6. Stellen Sie eine Verbindung zu Instance D her. Da es keine öffentliche IP-Adresse zum Anpingen gibt, verwenden Sie EC2 Instance Connect, um eine Verbindung herzustellen, und pingen Sie dann eine öffentliche IP von der Instance an, um den ausgehenden Datenverkehr zu überprüfen:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

4.3 Optional: Überprüfen der Konnektivität mit Reachability Analyzer

Unter Verwendung desselben Netzwerkpfads, der in Reachability Analyzer in Szenario 2 erstellt wurde, können Sie nun eine neue Analyse durchführen und bestätigen, dass der Pfad erreichbar ist, nachdem ein Ausschluss für das öffentliche Subnetz A erstellt wurde.

Informationen zur regionalen Verfügbarkeit von Reachability Analyzer finden Sie unter Überlegungen im Leitfaden Reachability Analyzer.

AWS-Managementkonsole
  1. Klicken Sie im Netzwerkpfad, den Sie zuvor in der Network-Insights-Konsole erstellt haben, auf Analyse erneut ausführen.

  2. Warten Sie, bis die Analyse abgeschlossen ist. Dieser Vorgang kann einige Minuten dauern.

  3. Bestätigen Sie, dass der Pfad nun erreichbar ist.

AWS CLI
  1. Starten Sie eine neue Analyse unter Verwendung der zuvor erstellten Netzwerkpfad-ID:

    aws ec2 --region us-east-2 start-network-insights-analysis --network-insights-path-id nip-id
  2. Rufen Sie die Ergebnisse der Analyse ab:

    aws ec2 --region us-east-2 describe-network-insights-analyses --network-insights-analysis-ids nia-id
  3. Stellen Sie sicher, dass der Erklärungscode VPC_BLOCK_PUBLIC_ACCESS_ENABLED nicht mehr vorhanden ist.

Szenario 5: Ändern des Ausschlussmodus

In diesem Abschnitt ändern Sie die Richtung des zulässigen Datenverkehrs für den Ausschluss, um zu sehen, wie sich dies auf VPC BPA auswirkt.

Anmerkung

In diesem Szenario ändern Sie den Ausschlussmodus auf „Nur ausgehend“. Beachten Sie, dass in diesem Fall die Ausnahmeregelung „Nur ausgehend“ in Subnetz A keinen ausgehenden Datenverkehr zulässt. Das ist widersprüchlich, da Sie erwarten würden, dass damit ausgehender Datenverkehr zugelassen wird. Da BPA auf Kontoebene jedoch nur für eingehenden Datenverkehr gilt, werden nur ausgehende Ausschlüsse ignoriert, und das Routing von Subnetz A zu einem Internet-Gateway wird durch VPC BPA eingeschränkt, was ausgehenden Datenverkehr blockiert. Um ausgehenden Datenverkehr in Subnetz A zu aktivieren, müssten Sie VPC BPA in den bidirektionalen Modus schalten.

Diagramm des aktivierten Modus nur für eingehenden Datenverkehr von VPC BPA und des Ausschlusses von Subnetz A mit aktiviertem Modus nur für ausgehenden Verkehr:

Das Diagramm zeigt VPC mit VPC BPA im Modus nur für eingehenden Datenverkehr, der ausgehenden Datenverkehr über das NAT-Gateway zulässt.

5.1 Änderung der Richtung der Ausschlusserlaubnis in nur ausgehenden Datenverkehr

Schließen Sie diesen Abschnitt ab, um die Richtung der Ausschlusserlaubnis zu ändern.

AWS-Managementkonsole
  1. Bearbeiten Sie den Ausschluss, den Sie in Szenario 4 erstellt haben, und ändern Sie die Zulässigkeitsrichtung in Nur für ausgehenden Datenverkehr.

  2. Wählen Sie Änderungen speichern aus.

  3. Warten Sie, bis sich der Status Ausschluss auf Aktiv ändert. Es kann einige Minuten dauern, bis die VPC-BPA-Einstellungen wirksam werden und der Status aktualisiert wird. Möglicherweise müssen Sie die Ausschlusstabelle aktualisieren, damit die Änderung angezeigt wird.

AWS CLI
  1. Ändern Sie die Richtung der Ausschlusserlaubnis:

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

    Es kann einige Minuten dauern, bis die VPC-BPA-Einstellungen wirksam werden und der Status aktualisiert wird.

  2. Es kann einige Zeit dauern, bis der Ausschlussstatus aktualisiert wird. So zeigen Sie den Status des Ausschlusses an:

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

5.2 Herstellen einer Verbindung zu Instances

Führen Sie diesen Abschnitt aus, um eine Verbindung zu den Instances herzustellen.

AWS-Managementkonsole
  1. Pingen Sie die öffentliche IPv4-Adresse von Instance A und B an. Beachten Sie, dass der Datenverkehr blockiert wird.

  2. Stellen Sie mithilfe von EC2 Instance Connect wie in Szenario 1 eine Verbindung zu Instance A und B her und pingen Sie www.amazon.com an. Beachten Sie, dass Sie von Instance A oder B aus keine öffentliche Website im Internet anpingen können, da der Datenverkehr blockiert ist.

  3. Stellen Sie mithilfe von EC2 Instance Connect wie in Szenario 1 eine Verbindung zu Instance C und D her und pingen Sie von dort aus www.amazon.com an. Beachten Sie, dass Sie von Instance C oder D aus eine öffentliche Website im Internet anpingen können, da der Datenverkehr erlaubt ist.

AWS CLI
  1. Pingen Sie Instance A mit der öffentlichen IPv4-Adresse an, um den eingehenden Datenverkehr zu überprüfen:

    ping 18.225.8.244

    Ausgabe:

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

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  2. Verwenden Sie die private IPv4-Adresse, um eine Verbindung herzustellen und den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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.

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  3. Pingen Sie Instance B mit der öffentlichen IPv4-Adresse an, um den eingehenden Datenverkehr zu überprüfen:

    ping 3.18.106.198

    Ausgabe:

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

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  4. Verwenden Sie die private IPv4-Adresse, um eine Verbindung herzustellen und den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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.

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  5. Stellen Sie eine Verbindung zu Instance C her. Da es keine öffentliche IP-Adresse zum Anpingen gibt, verwenden Sie EC2 Instance Connect, um eine Verbindung herzustellen, und pingen Sie dann eine öffentliche IP von der Instance an, um den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

  6. Stellen Sie eine Verbindung zu Instance D her. Da es keine öffentliche IP-Adresse zum Anpingen gibt, verwenden Sie EC2 Instance Connect, um eine Verbindung herzustellen, und pingen Sie dann eine öffentliche IP von der Instance an, um den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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

    Beachten Sie, dass der Ping erfolgreich ist und der Datenverkehr nicht blockiert wird.

Szenario 6: Ändern des VPC-BPA-Modus

In diesem Abschnitt ändern Sie die Blockierrichtung von VPC BPA, um zu sehen, wie sich dies auf den Datenverkehr auswirkt. In diesem Szenario blockiert VPC BPA, das im bidirektionalen Modus aktiviert ist, den gesamten Datenverkehr wie in Szenario 1. Sofern ein Ausschluss keinen Zugang zu einem NAT-Gateway oder einem Internet-Gateway nur für ausgehenden Verkehr hat, wird der Verkehr blockiert.

Diagramm des aktivierten bidirektionalen Modus von VPC BPA und des Ausschlusses von Subnetz A mit aktiviertem Modus nur für ausgehenden Verkehr:

Das Diagramm zeigt VPC mit VPC BPA im Modus nur für eingehenden Datenverkehr, der ausgehenden Datenverkehr über das NAT-Gateway zulässt

6.1 Ändern von VPC BPA in den bidirektionalen Modus

Schließen Sie diesen Abschnitt ab, um den VPC-BPA-Modus zu ändern.

AWS-Managementkonsole
  1. Öffnen Sie die Amazon-VPC-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Wählen Sie im linken Navigationsbereich die Option Einstellungen aus.

  3. Wählen Sie Einstellungen für den öffentlichen Zugriff bearbeiten aus.

  4. Ändern Sie die Blockierrichtung auf Bidirektional und wählen Sie dann Änderungen speichern aus.

  5. Warten Sie, bis sich der Status zu Ein ändert. Es kann einige Minuten dauern, bis die VPC-BPA-Einstellungen wirksam werden und der Status aktualisiert wird.

AWS CLI
  1. Ändern Sie die Blockierrichtung von VPC BPA:

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

    Es kann einige Minuten dauern, bis die VPC-BPA-Einstellungen wirksam werden und der Status aktualisiert wird.

  2. Zeigen Sie den Status von VPC BPA an:

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

6.2 Herstellen einer Verbindung zu Instances

Führen Sie diesen Abschnitt aus, um eine Verbindung zu den Instances herzustellen.

AWS-Managementkonsole
  1. Pingen Sie die öffentliche IPv4-Adresse von Instance A und B an. Beachten Sie, dass der Datenverkehr blockiert wird.

  2. Stellen Sie mithilfe von EC2 Instance Connect wie in Szenario 1 eine Verbindung zu Instance A und B her und pingen Sie www.amazon.com an. Beachten Sie, dass Sie von Instance A oder B aus keine öffentliche Website im Internet anpingen können, da der Datenverkehr blockiert ist.

  3. Stellen Sie mithilfe von EC2 Instance Connect wie in Szenario 1 eine Verbindung zu Instance C und D her und pingen Sie von dort aus www.amazon.com an. Beachten Sie, dass Sie von Instance C oder D aus keine öffentliche Website im Internet anpingen können, da der Datenverkehr blockiert ist.

AWS CLI
  1. Pingen Sie Instance A mit der öffentlichen IPv4-Adresse an, um den eingehenden Datenverkehr zu überprüfen:

    ping 18.225.8.244

    Ausgabe:

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

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  2. Verwenden Sie die private IPv4-Adresse, um eine Verbindung herzustellen und den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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.

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  3. Pingen Sie Instance A mit der öffentlichen IPv4-Adresse an, um den eingehenden Datenverkehr zu überprüfen:

    ping 3.18.106.198

    Ausgabe:

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

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  4. Verwenden Sie die private IPv4-Adresse, um eine Verbindung herzustellen und den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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.

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  5. Stellen Sie eine Verbindung zu Instance C her. Da es keine öffentliche IP-Adresse zum Anpingen gibt, verwenden Sie EC2 Instance Connect, um eine Verbindung herzustellen, und pingen Sie dann eine öffentliche IP von der Instance an, um den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

  6. Stellen Sie eine Verbindung zu Instance D her. Da es keine öffentliche IP-Adresse zum Anpingen gibt, verwenden Sie EC2 Instance Connect, um eine Verbindung herzustellen, und pingen Sie dann eine öffentliche IP von der Instance an, um den ausgehenden Datenverkehr zu überprüfen:

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

    Ausgabe:

    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

    Beachten Sie, dass der Ping fehlschlägt und der Datenverkehr blockiert wird.

Bereinigen

In diesem Abschnitt löschen Sie alle Ressourcen, die Sie für dieses erweiterte Beispiel erstellt haben. Es ist wichtig, die Ressourcen zu bereinigen, um übermäßige zusätzliche Gebühren für in Ihrem Konto erstellte Ressourcen zu vermeiden.

Löschen der CloudFormation-Ressourcen

Schließen Sie diesen Abschnitt ab, um die Ressourcen zu löschen, die Sie mit der Vorlage für CloudFormation erstellt haben.

AWS-Managementkonsole
  1. Öffnen Sie die CloudFormation-Konsole unter https://console.aws.amazon.com/cloudformation/.

  2. Wählen Sie den VPC-BPA-Stack aus.

  3. Wählen Sie Löschen aus.

  4. Sobald Sie mit dem Löschen des Stacks begonnen haben, können Sie auf der Registerkarte Ereignisse den Fortschritt verfolgen und sicherstellen, dass der Stack gelöscht wird. Möglicherweise müssen Sie das Löschen des Stacks erzwingen, damit er vollständig gelöscht wird.

AWS CLI
  1. Löschen Sie den CloudFormation-Stack. Möglicherweise müssen Sie das Löschen des Stacks erzwingen, damit er vollständig gelöscht wird.

    aws cloudformation delete-stack --stack-name VPC-BPA-stack --region us-east-2
  2. Zeigen Sie den Fortschritt an und stellen Sie sicher, dass der Stack gelöscht wurde.

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

Nachverfolgen des Löschens von Ausschlüssen mithilfe von CloudTrail

Führen Sie diesen Abschnitt aus, um die Löschung eines Ausschlusses mithilfe von AWS CloudTrail nachzuverfolgen. CloudTrail-Einträge werden angezeigt, wenn Sie einen Ausschluss löschen.

AWS-Managementkonsole

Sie können alle gelöschten Ausschlüsse im CloudTrail-Ereignisverlauf anzeigen, indem Sie in der CloudTrail-Konsole von AWS unter https://console.aws.amazon.com/cloudtrailv2/ nach Ressourcentyp > AWS::EC2::VPCBlockPublicAccessExclusion suchen.

AWS CLI

Mit dem Befehl „lookup-events“ können Sie die Ereignisse im Zusammenhang mit dem Löschen von Ausschlüssen anzeigen:

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

Das erweiterte Beispiel ist abgeschlossen.