このセクションでは、VPC ブロックパブリックアクセス機能がさまざまなシナリオでどのように機能するかを理解するのに役立つ高度な例を示します。各シナリオはその前のシナリオに依拠するため、ステップを順番に完了することが重要です。
重要
本番アカウントでは、この例を実行しないでください。本番アカウントで VPC BPA を有効にする前に、インターネットアクセスを必要とするワークロードを徹底的に確認することを強くお勧めします。
注記
VPC BPA の機能を完全に理解するには、アカウントに特定のリソースが必要です。このセクションでは、この機能の仕組みを完全に理解するために必要なリソースをプロビジョニングするために使用できる AWS CloudFormation テンプレートを提供します。CloudFormation テンプレートを使用してプロビジョニングするリソースと、Network Access Analyzer と Reachability Analyzer を使用して実行する分析にはコストがかかります。このセクションのテンプレートを使用する場合は、この例を完了したら、クリーンアップのステップを完了してください。
内容
CloudFormation テンプレートをデプロイする
この機能の仕組みのデモには、VPC、サブネット、インスタンス、および他のリソースが必要です。このデモをより簡単に完了できるように、このデモのシナリオのために必要なリソースを迅速にスピンアップするために使用できる AWS CloudFormation テンプレートを以下で提供しています。
注記
NAT ゲートウェイやパブリック IPv4 アドレスのコストなど、CloudFormation テンプレートを使用してこのセクションで作成するリソースに関連するコストがかかります。余分なコストがかからないよう、クリーンアップのステップを完了して、この例のために作成されたすべてのリソースを削除してください。
このテンプレートによって以下のリソースがアカウントに作成されます。
-
Egress-only インターネットゲートウェイ
-
インターネットゲートウェイ
-
NAT ゲートウェイ
-
2 つのパブリックサブネット
-
1 つのプライベートサブネット
-
パブリックおよびプライベート IPv4 アドレスを持つ 2 つの EC2 インスタンス
-
IPv6 アドレスとプライベート IPv4 アドレスを持つ 1 つの EC2 インスタンス
-
プライベート IPv4 アドレスのみを持つ 1 つの EC2 インスタンス
-
SSH および ICMP インバウンドトラフィックが許可され、すべてのアウトバウンドトラフィックが許可されているセキュリティグループ
-
VPC フローログ
-
サブネット B の 1 つの EC2 Instance Connect エンドポイント
以下のテンプレートをコピーし、.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
-
https://console.aws.amazon.com/cloudformation/
で AWS CloudFormation コンソールを開きます。 -
[スタックを作成] を選択し、.yaml テンプレートファイルをアップロードします。
-
テンプレートを起動するステップを実行します。[イメージ ID] と [インスタンスタイプ]
(t2.micro など) を入力する必要があります。また、フローログの作成と Amazon CloudWatch へのログ記録の許可のために、CloudFormation が IAM ロールを作成することを許可する必要があります。 -
スタックを起動したら、[イベント] タブで進行状況を表示し、続行する前にスタックが完了していることを確認します。
Network Access Analyzer を使用して VPC BPA の影響を表示する
このセクションでは、Network Access Analyzer を使用して、インターネットゲートウェイを使用するアカウントのリソースを表示します。この分析を使用して、アカウントで VPC BPA をオンにし、トラフィックをブロックした場合の影響を理解します。
Network Access Analyzer が利用できるリージョンについては、「Network Access Analyzer ガイド」の「Limitations」を参照してください。
-
https://console.aws.amazon.com/networkinsights/
で AWS Network Insights コンソールを開きます。 -
[Network Access Analyzer] を選択します。
-
[ネットワークアクセススコープを作成] を選択します。
-
[Assess impact of VPC Block Public Access] を選択し、[次へ]を選択します。
-
テンプレートは、アカウントのインターネットゲートウェイとの間のトラフィックを分析するように既に設定されています。これは、[ソース] と [宛先] で確認できます。
-
[Next] を選択します。
-
[ネットワークアクセススコープを作成] を選択します。
-
先ほど作成したスコープを選択し、[分析] を選択します。
-
分析が完了するまで待ちます。
-
分析の検出結果を表示します。[検出結果] の各行には、アカウントのインターネットゲートウェイとの間のネットワーク内でパケットが沿うことができるネットワークパスが表示されます。この場合、VPC BPA をオンにし、これらの検出結果に表示される VPC やサブネットのいずれも BPA の除外として設定されていない場合、それらの VPC やサブネットに対するトラフィックは制限されます。
-
各検出結果を分析して、VPC 内のリソースに対する BPA の影響を理解します。
影響分析が完了しました。
シナリオ 1 - BPA が有効になっていないインスタンスに接続する
このセクションでは、ベースラインを設定し、BPA を有効にする前に、すべてのインスタンスが到達可能になっているようにするため、すべてのインスタンスに接続してパブリック IP アドレスに対して ping を実行します。
VPC BPA がオンになっていない VPC の図

1.1 インスタンスに接続する
VPC BPA をオフにした状態でインスタンスに接続し、問題なく接続できるようにするには、このセクションを完了します。この例のために CloudFormation を使用して作成されたすべてのインスタンスには、「VVPC BPA Instance A」のような名前が付けられています。
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
インスタンス A の詳細を開きます。
-
[EC2 Instance Connect] > [EC2 Instance Connect エンドポイントを使用して接続] オプションを使用して、インスタンス A に接続します。
-
[接続]を選択してください。インスタンスに正常に接続したら、www.amazon.com に対して ping を実行して、アウトバウンドリクエストをインターネットに送信できることを検証します。
-
インスタンス A への接続に使用したのと同じ方法を使用してインスタンス B、C、D に接続します。各インスタンスから www.amazon.com に対し ping を実行してアウトバウンドリクエストをインターネットに送信できるかどうかを確認します。
シナリオ 2 - BPA を有効にする
このセクションでは、VPC BPA をオンにし、アカウントのインターネットゲートウェイとの間のトラフィックをブロックします。
VPC BPA の [双方向] モードがオンになっている図

2.1 VPC BPA ブロック双方向モードを有効にする
VPC BPA を有効にするには、このセクションを完了します。
-
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
左のナビゲーションペインで、[設定] を選択します。
-
[パブリックアクセスの設定を編集] を選択します。
-
[ブロックパブリックアクセスをオンにする] と [双方向] を選択し、[変更を保存] を選択します。
-
[ステータス] が [オン] に変わるまで待ちます。BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。
VPC BPA がオンになりました。
2.2 インスタンスに接続する
インスタンスに接続するには、このセクションを完了します。
-
シナリオ 1 で実行したように、インスタンス A とインスタンス B のパブリック IPv4 アドレスに対して Ping を実行します。トラフィックがブロックされます。
-
シナリオ 1 で行ったように、[EC2 Instance Connect] > [EC2 Instance Connect Endpoint] オプションを使用して、インスタンス A に接続します。エンドポイントオプションを使用していることを確認してください。
-
[接続]を選択してください。インスタンスに正常に接続したら、www.amazon.com に ping を実行します。すべてのアウトバウンドトラフィックがブロックされます。
-
インスタンス A への接続に使用したのと同じ方法を使用してインスタンス B、C、D に接続し、インターネットにアウトバウンドリクエストを送信できるかテストします。すべてのアウトバウンドトラフィックがブロックされます。
2.3 オプション: Reachability Analyzer を使用して接続がブロックされていることを確認する
VPC Reachability Analyzer を使用して、VPC BPA の設定を含むネットワーク設定を踏まえて、特定のネットワークパスに到達できるかどうかを把握できます。この例では、以前に試行したのと同じネットワークパスを分析し、VPC BPA が接続に失敗する理由であることを確認します。
-
https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer
の Network Insights コンソールに移動します。 -
[パスを作成および分析] をクリックします。
-
[ソースタイプ] で、[インターネットゲートウェイ] を選択し、[ソース] ドロップダウンから [VPC BPA インターネットゲートウェイ] のタグが付けられたインターネットゲートウェイを選択します。
-
[宛先タイプ] で、[インスタンス] を選択し、[宛先] ドロップダウンから [VPC BPA インスタンス A] のタグが付けられたインスタンスを選択します。
-
[パスを作成および分析] をクリックします。
-
分析が完了するまで待ちます。数分かかる場合があります。
-
完了すると、[到達可能性ステータス] が [到達不可] となり、[パスの詳細] に
VPC_BLOCK_PUBLIC_ACCESS_ENABLED
が原因であることが示されます。
シナリオ 3 - BPA モードを変更する
このセクションでは、VPC BPA トラフィックの方向を変更し、NAT ゲートウェイまたはエグレスのみのインターネットゲートウェイを使用するトラフィックのみを許可します。
VPC BPA のイングレスのみのモードがオンになっている図

3.1 モードを「イングレスのみ」に変更する
モードを変更するには、このセクションを完了します。
-
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
左のナビゲーションペインで、[設定] を選択します。
-
[パブリックアクセスをブロックする] タブで、[パブリックアクセス設定を編集する] を選択します。
-
VPC コンソールでパブリックアクセスの設定を変更し、方向を [イングレスのみ] に変更します。
-
変更を保存し、ステータスが更新されるまで待ちます。BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。
3.2 インスタンスに接続する
インスタンスに接続するには、このセクションを完了します。
-
シナリオ 1 で実行したように、インスタンス A とインスタンス B のパブリック IPv4 アドレスに対して Ping を実行します。トラフィックがブロックされます。
-
シナリオ 1 で実行したように、EC2 Instance Connect を使用してインスタンス A とインスタンス B に接続し、そこから www.amazon.com に対して ping を実行します。インスタンス A または B からインターネット上のパブリックサイトに対して ping を実行することはできず、トラフィックがブロックされます。
-
シナリオ 1 で実行したように、EC2 Instance Connect を使用してインスタンス C とインスタンス D に接続し、そこから www.amazon.com に対して ping を実行します。インスタンス C または D からインターネット上のパブリックサイトに対して ping を実行でき、トラフィックが許可されます。
シナリオ 4 - 除外を作成する
このセクションでは、除外を作成し、VPC BPA から除外されていないサブネットとの間のトラフィックのみをブロックします。VPC BPA の除外は、アカウントの BPA モードから除外し、双方向またはエグレスのみのアクセスを許可する単一の VPC またはサブネットに適用できるモードです。アカウントで BPA が有効になっていない場合でも VPC とサブネットのために BPA の除外を作成して、VPC BPA がオンになっているときに除外に対するトラフィックの中断が発生しないようにできます。
この例では、サブネット A の除外を作成して、除外に対するトラフィックが VPC BPA によってどのように影響を受けるかを示します。
VPC BPA のイングレスのみのモードがオンになっており、[双方向] モードがオンになっているサブネット A の除外の図:

4.1 サブネット A の除外を作成する
除外を作成するには、このセクションを完了します。VPC BPA の除外は、アカウントの BPA モードから除外し、双方向またはエグレスのみのアクセスを許可する単一の VPC またはサブネットに適用できるモードです。アカウントで BPA が有効になっていない場合でも VPC とサブネットのために BPA の除外を作成して、VPC BPA がオンになっているときに除外に対するトラフィックの中断が発生しないようにできます。
-
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
左のナビゲーションペインで、[設定] を選択します。
-
[ブロックパブリックアクセス] タブの [除外] で、[除外を作成] を選択します。
-
[VPC BPA パブリックサブネット A] を選択し、許可の方向として [双方向] が選択されているようにして、[除外を作成] を選択します。
-
[除外ステータス] が [アクティブ] に変わるまで待ちます。変更を確認するには、除外テーブルを更新する必要がある場合があります。
除外が作成されました。
4.2 インスタンスに接続する
インスタンスに接続するには、このセクションを完了します。
-
インスタンス A のパブリック IPv4 アドレスに対して Ping を実行します。トラフィックが許可されます。
-
インスタンス B のパブリック IPv4 アドレスに対して Ping を実行します。トラフィックがブロックされます。
-
シナリオ 1 で実行したように、EC2 Instance Connect を使用してインスタンス A に接続し、www.amazon.com に対して ping を実行します。インスタンス A からインターネット上のパブリックサイトに対して ping を実行できます。トラフィックは許可されます。
-
シナリオ 1 で実行したように、EC2 Instance Connect を使用してインスタンス B に接続し、そこから www.amazon.com に対して ping を実行します。インスタンス B からインターネット上のパブリックサイトに対して ping を実行することはできません。トラフィックがブロックされます。
-
シナリオ 1 で実行したように、EC2 Instance Connect を使用してインスタンス C とインスタンス D に接続し、そこから www.amazon.com に対して ping を実行します。インスタンス C または D からインターネット上のパブリックサイトに対して ping を実行できます。トラフィックは許可されます。
4.3 オプション: Reachability Analyzer との接続を検証する
シナリオ 2 で Reachability Analyzer において作成したのと同じネットワークパスを使用して、新しい分析を実行し、パブリックサブネット A についての除外が作成されたことでパスが到達可能になったことを確認できるようになりました。
Reachability Analyzer を利用できるリージョンについては、「Reachability Analyzer ガイド」の「Considerations」を参照してください。
-
Network Insights コンソールで前に作成したネットワークパスから、[分析を再実行] をクリックします。
-
分析が完了するまで待ちます。これには数分間かかる場合があります。
-
パスが [到達可能] になっていることを確認します。
シナリオ 5 - 除外モードを変更する
このセクションでは、除外における許可トラフィックの方向を変更して、VPC BPA がどのような影響を受けるのかを確認します。除外のエグレスのみのモードは、イングレスのみをブロックするモードで VPC BPA が有効になっている状態ではあまり意味がないことに留意してください。これはシナリオ 3 と同じ動作です。
VPC BPA のイングレスのみのモードがオンになっており、エグレスのみのモードがオンになっているサブネット A の除外の図:

5.1 除外の許可の方向をエグレスのみに変更する
除外の許可の方向を変更するには、このセクションを完了します。
-
シナリオ 4 で作成した除外を編集し、許可の方向を [エグレスのみ] に変更します。
-
[Save changes] (変更の保存) をクリックします。
-
[除外] ステータスが [アクティブ] に変わるまで待ちます。BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。変更を確認するには、除外テーブルを更新する必要がある場合があります。
5.2 インスタンスに接続する
インスタンスに接続するには、このセクションを完了します。
-
インスタンス A およびインスタンス B のパブリック IPv4 アドレスに対して Ping を実行します。トラフィックがブロックされます。
-
シナリオ 1 で実行したように、EC2 Instance Connect を使用してインスタンス A およびインスタンス B に接続し、www.amazon.com に対して ping を実行します。インスタンス A またはインスタンス B からインターネット上のパブリックサイトに対して ping を実行することはできません。トラフィックがブロックされます。
-
シナリオ 1 で実行したように、EC2 Instance Connect を使用してインスタンス C とインスタンス D に接続し、そこから www.amazon.com に対して ping を実行します。インスタンス C または D からインターネット上のパブリックサイトに対して ping を実行できます。トラフィックは許可されます。
シナリオ 6 - BPA モードを変更する
このセクションでは、トラフィックにどのような影響が及ぶのかを確認するために、VPC BPA のブロックの方向を変更します。このシナリオでは、双方向モードで有効になっている VPC BPA は、シナリオ 1 と同様にすべてのトラフィックをブロックします。除外が NAT ゲートウェイまたはエグレスのみのインターネットゲートウェイにアクセスできる場合を除き、トラフィックはブロックされます。
VPC BPA の [双方向] モードがオンになっており、[エグレスのみ] のモードがオンになっているサブネット A の除外の図:

6.1 VPC BPA を双方向モードに変更する
BPA のモードを変更するには、このセクションを完了します。
-
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
左のナビゲーションペインで、[設定] を選択します。
-
[パブリックアクセスの設定を編集] を選択します。
-
ブロックの方向を [双方向] に変更し、[変更を保存] を選択します。
-
[ステータス] が [オン] に変わるまで待ちます。BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。
6.2 インスタンスに接続する
インスタンスに接続するには、このセクションを完了します。
-
インスタンス A およびインスタンス B のパブリック IPv4 アドレスに対して Ping を実行します。トラフィックがブロックされます。
-
シナリオ 1 で実行したように、EC2 Instance Connect を使用してインスタンス A およびインスタンス B に接続し、www.amazon.com に対して ping を実行します。インスタンス A またはインスタンス B からインターネット上のパブリックサイトに対して ping を実行することはできません。トラフィックがブロックされます。
-
シナリオ 1 で実行したように、EC2 Instance Connect を使用してインスタンス C とインスタンス D に接続し、そこから www.amazon.com に対して ping を実行します。インスタンス C またはインスタンス D からインターネット上のパブリックサイトに対して ping を実行することはできません。トラフィックがブロックされます。
クリーンアップ
このセクションでは、この高度な例のために作成したすべてのリソースを削除します。アカウントで作成されたリソースについて余分な追加料金が発生しないように、リソースをクリーンアップすることが重要です。
CloudFormation リソースを削除する
AWS CloudFormation テンプレートを使用して作成したリソースを削除するには、このセクションを完了します。
-
https://console.aws.amazon.com/cloudformation/
で AWS CloudFormation コンソールを開きます。 -
VPC BPA スタックを選択します。
-
[削除] を選択します。
-
スタックの削除を開始したら、[イベント] タブで進行状況を表示し、スタックが削除されていることを確認します。スタックを完全に削除するには、そのスタックを強制削除する必要がある場合があります。
AWS CloudTrail を使用して除外の削除を追跡する
AWS CloudTrail を使用して除外の削除を追跡するには、このセクションを完了します。CloudTrail エントリは、除外を削除すると表示されます。
https://console.aws.amazon.com/cloudtrailv2/
高度な例が完了しました。