VPC とサブネットへのパブリックアクセスをブロックする
VPC ブロックパブリックアクセス (BPA) は、AWS アカウント全体で VPC リソースに対するパブリックインターネットアクセスを厳然と防止できるようにする一元的なセキュリティ機能です。これにより、特定の例外や監査機能については柔軟に対応しながら、セキュリティ要件を確実に遵守できます。
VPC BPA 機能には次のモードがあります:
-
[双方向]: このリージョンのインターネットゲートウェイとエグレスのみのインターネットゲートウェイとの間のすべてのトラフィック (除外された VPC とサブネットを除く) がブロックされます。
-
[イングレスのみ]: このリージョンの VPC に対するすべてのインターネットトラフィック (除外される VPC またはサブネットを除く) がブロックされます。NAT ゲートウェイとエグレスのみのインターネットゲートウェイとの間のトラフィックのみが許可されます。なぜなら、これらのゲートウェイはアウトバウンド接続の確立のみを許可するからです。
また、ブロックしないトラフィックのために、この機能で「除外」を作成することもできます。除外は、アカウントの BPA モードから除外し、双方向またはエグレスのみのアクセスを許可する単一の VPC またはサブネットに適用できるモードです。
除外では、次のいずれかのモードを使用できます:
BPA の基礎知識
このセクションでは、VPC BPA をサポートするサービスや、VPC BPA の使用方法など、VPC BPA に関する重要な詳細について説明します。
リージョナルな可用性
VPC BPA は、GovCloud および中国リージョンを含むすべての商用 AWS リージョンで利用できます。
また、このガイドでは、Network Access Analyzer および Reachability Analyzer と VPC BPA の併用についても説明します。Network Access Analyzer と Reachability Analyzer は、すべての商用リージョンで利用できるわけではありません。Network Access Analyzer と Reachability Analyzer を利用できるリージョンについては、「Network Access Analyzer ガイド」の「Limitations」と「Reachability Analyzer ガイド」の「Considerations」を参照してください。
AWS サービスへの影響とサポート
次のリソースとサービスは VPC BPA をサポートし、これらのサービスとリソースに対するトラフィックは VPC BPA の影響を受けます。
[インターネットゲートウェイ]: すべてのインバウンドトラフィックとアウトバウンドトラフィックがブロックされます。
[エグレスのみのインターネットゲートウェイ]: すべてのアウトバウンドトラフィックがブロックされます。エグレスのみのインターネットゲートウェイは、インバウンドトラフィックを許可しません。
[NAT ゲートウェイ]: すべてのインバウンドトラフィックとアウトバウンドトラフィックがブロックされます。NAT ゲートウェイには、インターネット接続のためのインターネットゲートウェイが必要です。
[インターネット向け Network Load Balancer]: すべてのインバウンドトラフィックとアウトバウンドトラフィックがブロックされます。インターネット向け Network Load Balancer には、インターネット接続のためのインターネットゲートウェイが必要です。
[インターネット向け Application Load Balancer]: すべてのインバウンドトラフィックとアウトバウンドトラフィックがブロックされます。インターネット向け Application Load Balancer には、インターネット接続のためのインターネットゲートウェイが必要です。
-
[AWS Global Accelerator]: VPC に対するインバウンドトラフィックはブロックされます。
次のサービスやリソースについてのトラフィックなど、プライベート接続に関連するトラフィックは、VPC BPA によってブロックされず、影響も受けません。
VPC 内のリソースから EC2 DNS Resolver など、VPC で実行されている他のサービスにプライベートに送信されるトラフィックは、VPC 内のインターネットゲートウェイを通過しないため、BPA がオンになっている場合でも許可されます。これらのサービスは、DNS クエリを解決するためなど、ユーザーに代わって VPC 外のリソースに対してリクエストを実行し、VPC 内のリソースのアクティビティに関する情報を公開する可能性があります (他のセキュリティコントロールを通じて緩和されない場合)。
BPA の制限事項
VPC BPA のイングレスのみのモードは、NAT ゲートウェイとエグレスのみのインターネットゲートウェイが許可されていないローカルゾーン (LZ) ではサポートされていません。
IAM ポリシーを使用して VPA BPA に対するアクセスを制御する
VPC BPA 機能に対するアクセスを許可/拒否する IAM ポリシーの例については、「VPC とサブネットへのパブリックアクセスをブロックする」を参照してください。
アカウントのために BPA 双方向モードを有効にする
VPC BPA 双方向モードは、このリージョンのインターネットゲートウェイとエグレスのみのインターネットゲートウェイとの間のすべてのトラフィックをブロックします (除外された VPC とサブネットを除く)。除外の詳細については、「除外を作成および削除する」を参照してください。
本番アカウントで VPC BPA を有効にする前に、インターネットアクセスを必要とするワークロードを徹底的に確認することを強くお勧めします。
- AWS Management Console
-
VPC BPA の [双方向] モードがオンになりました。
- AWS CLI
-
-
VPC BPA をオンにします。
aws ec2 --region us-east-2
modify-vpc-block-public-access-options --internet-gateway-block-mode block-bidirectional
BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。
-
VPC BPA のステータスを表示します。
aws ec2 --region us-east-2
describe-vpc-block-public-access-options
VPC BPA モードをイングレスのみに変更する
VPC BPA のイングレスのみのモードは、このリージョンの VPC に対するすべてのインターネットトラフィックをブロックします (除外される VPC またはサブネットを除く)。NAT ゲートウェイとエグレスのみのインターネットゲートウェイとの間のトラフィックのみが許可されます。なぜなら、これらのゲートウェイはアウトバウンド接続の確立のみを許可するからです。
- AWS Management Console
-
-
VPC コンソールでパブリックアクセスの設定を変更し、方向を [イングレスのみ] に変更します。
-
変更を保存し、ステータスが更新されるまで待ちます。BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。
- AWS CLI
-
-
VPC BPA ブロックの方向を変更します:
aws ec2 --region us-east-2
modify-vpc-block-public-access-options --internet-gateway-block-mode block-ingress
BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。
-
VPC BPA のステータスを表示します。
aws ec2 --region us-east-2
describe-vpc-block-public-access-options
除外を作成および削除する
VPC BPA の除外は、アカウントの BPA モードから除外し、双方向またはエグレスのみのアクセスを許可する単一の VPC またはサブネットに適用できるモードです。アカウントで BPA が有効になっていない場合でも VPC とサブネットのために BPA の除外を作成して、VPC BPA がオンになっているときに除外に対するトラフィックの中断が発生しないようにできます。
最大 50 個の除外を作成できます。制限の引き上げをリクエストする方法については、「Amazon VPC クォータ」の「VPC BPA exclusions per account」を参照してください。
- AWS Management Console
-
-
[ブロックパブリックアクセス] タブの [除外] で、[除外を作成] を選択します。
-
VPC またはサブネットを選択し、ブロックの方向を選択します:
[除外を作成] を選択します。
-
[除外ステータス] が [アクティブ] に変わるまで待ちます。変更を確認するには、除外テーブルを更新する必要がある場合があります。
除外が作成されました。
- AWS CLI
-
-
除外の許可の方向を変更します:
aws ec2 --region us-east-2
create-vpc-block-public-access-exclusion --subnet-id subnet-id
--internet-gateway-exclusion-mode allow-bidirectional
-
除外ステータスが更新されるまでに時間がかかる場合があります。除外のステータスを表示するには:
aws ec2 --region us-east-2
describe-vpc-block-public-access-exclusions --exclusion-ids exclusion-id
BPA の影響を評価し、BPA をモニタリングする
このセクションには、VPC BPA をオンにする前に VPC BPA の影響を評価する方法に関する情報と、VPC BPA をオンにした後にトラフィックがブロックされるかどうかをモニタリングする方法に関する情報が含まれています。
ネットワークアクセスアナライザー で BPA の影響を評価する
このセクションでは、VPC BPA を有効にしてアクセスをブロックする前に、ネットワークアクセスアナライザー を使用して、インターネットゲートウェイを使用するアカウントのリソースを表示します。この分析を使用して、アカウントで VPC BPA をオンにし、トラフィックをブロックした場合の影響を理解します。
Network Access Analyzer は IPv6 をサポートしていないため、エグレスのみのインターネットゲートウェイのアウトバウンド IPv6 トラフィックに対する BPA の潜在的な影響を表示するために使用することはできません。
Network Access Analyzer で実行する分析には料金がかかります。詳細については、「ネットワークアクセスアナライザー ガイド」の「料金」を参照してください。
Network Access Analyzer が利用できるリージョンについては、「Network Access Analyzer ガイド」の「Limitations」を参照してください。
- AWS Management Console
-
-
https://console.aws.amazon.com/networkinsights/ で AWS Network Insights コンソールを開きます。
-
[Network Access Analyzer] を選択します。
-
[ネットワークアクセススコープを作成] を選択します。
-
[インターネットゲートウェイとの間でアクセスを識別] を選択し、[次へ] を選択します。
-
テンプレートは、アカウントのインターネットゲートウェイとの間のトラフィックを分析するように既に設定されています。これは、[ソース] と [宛先] で確認できます。
-
[Next] を選択します。
-
[ネットワークアクセススコープを作成] を選択します。
-
先ほど作成したスコープを選択し、[分析] を選択します。
-
分析が完了するまで待ちます。
-
分析の検出結果を表示します。[検出結果] の各行には、アカウントのインターネットゲートウェイとの間のネットワーク内でパケットが沿うことができるネットワークパスが表示されます。この場合、VPC BPA をオンにし、これらの検出結果に表示される VPC やサブネットのいずれも BPA の除外として設定されていない場合、それらの VPC やサブネットに対するトラフィックは制限されます。
-
各検出結果を分析して、VPC 内のリソースに対する BPA の影響を理解します。
影響分析が完了しました。
- AWS CLI
-
-
ネットワークアクセススコープを作成します:
aws ec2 create-network-insights-access-scope --region us-east-2
--match-paths "Source={ResourceStatement={ResourceTypes=["AWS::EC2::InternetGateway"]}}" "Destination={ResourceStatement={ResourceTypes=["AWS::EC2::InternetGateway"]}}"
-
スコープ分析を開始します:
aws ec2 start-network-insights-access-scope-analysis --region us-east-2
--network-insights-access-scope-id nis-id
-
分析の結果を取得します:
aws ec2 get-network-insights-access-scope-analysis-findings --region us-east-2
--network-insights-access-scope-analysis-id nisa-0aa383a1938f94cd1 --max-items 1
その結果、アカウント内のすべての VPC のインターネットゲートウェイとの間のトラフィックが表示されます。結果は「検出結果」として整理されます。"FindingId": "AnalysisFinding-1" は、これが分析の最初の結果であることを示します。複数の検出結果があり、それぞれが VPC BPA をオンにすることで影響を受けるトラフィックフローを示しています。最初の検出結果は、トラフィックがインターネットゲートウェイ ("SequenceNumber": 1) で開始され、NACL ("SequenceNumber": 2)、セキュリティグループ ("SequenceNumber": 3) の順に渡され、インスタンス ("SequenceNumber": 4) で終了したことを示しています。
-
検出結果を分析して、VPC 内のリソースに対する BPA の影響を理解します。
影響分析が完了しました。
フローログを使用して BPA の影響をモニタリングする
VPC フローログは、VPC の Elastic Network Interface との間で行き来する IP トラフィックに関する情報をキャプチャできるようにする機能です。この機能を使用して、インスタンスのネットワークインターフェイスに到達しないように VPC BPA によってブロックされたトラフィックをモニタリングできます。
フローログの使用 のステップを使用して、VPC のフローログを作成します。
フローログを作成する際には、フィールド reject-reason
を含むカスタム形式を使用してください。
フローログを表示する際に、BPA が原因で ENI に対するトラフィックが拒否された場合、フローログエントリに BPA
の reject-reason
が表示されます。
VPC フローログについての標準の制限に加えて、VPC BPA に固有の次の制限に留意してください。
CloudTrail を使用して除外の削除を追跡する
このセクションでは、AWS CloudTrail を使用して VPC BPA の除外の削除をモニタリングおよび追跡する方法について説明します。
- AWS Management Console
-
https://console.aws.amazon.com/cloudtrailv2/ の AWS CloudTrail コンソールの [リソースタイプ] > AWS::EC2::VPCBlockPublicAccessExclusion
にアクセスして、[CloudTrail イベント履歴] で、削除された除外を確認できます。
- AWS CLI
-
除外の削除に関連するイベントを表示するには、lookup-events
コマンドを使用します:
aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceType,AttributeValue=AWS::EC2::VPCBlockPublicAccessExclusion
Reachability Analyzer を使用して接続がブロックされていることを検証する
VPC Reachability Analyzer を使用して、VPC BPA の設定を含むネットワーク設定を踏まえて、特定のネットワークパスに到達できるかどうかを評価できます。
Reachability Analyzer を利用できるリージョンについては、「Reachability Analyzer ガイド」の「Considerations」を参照してください。
- AWS Management Console
-
- AWS CLI
-
-
トラフィックをブロックするインターネットゲートウェイの ID (ソース) と、トラフィックをブロックするインスタンスの ID (宛先) を使用してネットワークパスを作成します。
aws ec2 --region us-east-2
create-network-insights-path --source igw-id
--destination instance-id
--protocol TCP
-
ネットワークパスで分析を開始します:
aws ec2 --region us-east-2
start-network-insights-analysis --network-insights-path-id nip-id
-
分析の結果を取得します:
aws ec2 --region us-east-2
describe-network-insights-analyses --network-insights-analysis-ids nia-id
-
到達可能性の欠如について、VPC_BLOCK_PUBLIC_ACCESS_ENABLED
が ExplanationCode
であることを確認します。
高度な例
このセクションでは、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
- AWS Management Console
-
- AWS CLI
-
-
CloudFormation スタックを作成するには、次のコマンドを実行します:
aws cloudformation create-stack --stack-name VPC-BPA-stack --template-body file://sampletemplate.yaml --capabilities CAPABILITY_IAM --region us-east-2
出力:
{
"StackId": "arn:aws:cloudformation:us-east-2:470889052923:stack/VPC-BPA-stack/8a7a2cc0-8001-11ef-b196-06386a84b72f"
}
-
進行状況を表示し、続行する前にスタックが完了しているようにします:
aws cloudformation describe-stack-events --stack-name VPC-BPA-stack --region us-east-2
Network Access Analyzer を使用して VPC BPA の影響を表示する
このセクションでは、Network Access Analyzer を使用して、インターネットゲートウェイを使用するアカウントのリソースを表示します。この分析を使用して、アカウントで VPC BPA をオンにし、トラフィックをブロックした場合の影響を理解します。
Network Access Analyzer が利用できるリージョンについては、「Network Access Analyzer ガイド」の「Limitations」を参照してください。
- AWS Management Console
-
-
https://console.aws.amazon.com/networkinsights/ で AWS Network Insights コンソールを開きます。
-
[Network Access Analyzer] を選択します。
-
[ネットワークアクセススコープを作成] を選択します。
-
[インターネットゲートウェイとの間でアクセスを識別] を選択し、[次へ] を選択します。
-
テンプレートは、アカウントのインターネットゲートウェイとの間のトラフィックを分析するように既に設定されています。これは、[ソース] と [宛先] で確認できます。
-
[Next] を選択します。
-
[ネットワークアクセススコープを作成] を選択します。
-
先ほど作成したスコープを選択し、[分析] を選択します。
-
分析が完了するまで待ちます。
-
分析の検出結果を表示します。[検出結果] の各行には、アカウントのインターネットゲートウェイとの間のネットワーク内でパケットが沿うことができるネットワークパスが表示されます。この場合、VPC BPA をオンにし、これらの検出結果に表示される VPC やサブネットのいずれも BPA の除外として設定されていない場合、それらの VPC やサブネットに対するトラフィックは制限されます。
-
各検出結果を分析して、VPC 内のリソースに対する BPA の影響を理解します。
影響分析が完了しました。
- AWS CLI
-
-
ネットワークアクセススコープを作成します:
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
出力:
{
"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"
]
}
}
}
]
}
}
-
スコープ分析を開始します:
aws ec2 start-network-insights-access-scope-analysis --network-insights-access-scope-id nis-04cad3c4b3a1d5e3e --region us-east-2
出力:
{
"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
}
}
-
分析の結果を取得します:
aws ec2 get-network-insights-access-scope-analysis-findings --network-insights-access-scope-analysis-id nisa-0aa383a1938f94cd1 --region us-east-2
--max-items 1
出力:
{
"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=="
}
その結果、アカウント内のすべての VPC のインターネットゲートウェイとの間のトラフィックが表示されます。結果は「検出結果」として整理されます。"FindingId": "AnalysisFinding-1" は、これが分析の最初の結果であることを示します。複数の検出結果があり、それぞれが VPC BPA をオンにすることで影響を受けるトラフィックフローを示しています。最初の検出結果は、トラフィックがインターネットゲートウェイ ("SequenceNumber": 1) で開始され、NACL ("SequenceNumber": 2)、セキュリティグループ ("SequenceNumber": 3) の順に渡され、インスタンス ("SequenceNumber": 4) で終了したことを示しています。
-
検出結果を分析して、VPC 内のリソースに対する BPA の影響を理解します。
影響分析が完了しました。
シナリオ 1
このセクションでは、ベースラインを設定し、BPA を有効にする前に、すべてのインスタンスが到達可能になっているようにするため、すべてのインスタンスに接続してパブリック IP アドレスに対して ping を実行します。
VPC BPA がオンになっていない VPC の図
1.1 インスタンスに接続する
VPC BPA をオフにした状態でインスタンスに接続し、問題なく接続できるようにするには、このセクションを完了します。この例のために CloudFormation を使用して作成されたすべてのインスタンスには、「VVPC BPA Instance A」のような名前が付けられています。
- AWS Management Console
-
-
https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。
-
インスタンス A の詳細を開きます。
-
[EC2 Instance Connect] > [EC2 Instance Connect を使用して接続] オプションを使用して、インスタンス A に接続します。
-
[接続]を選択します。インスタンスに正常に接続したら、www.amazon.com に対して ping を実行して、アウトバウンドリクエストをインターネットに送信できることを検証します。
-
インスタンス A への接続に使用したのと同じ方法を使用してインスタンス B に接続し、ping を実行してアウトバウンドリクエストをインターネットに送信できるかどうかをテストします。
-
[EC2 Instance Connect] > [EC2 Instance Connect エンドポイントを使用して接続] オプションを使用して、インスタンス C に接続します。インスタンス C と D はプライベートサブネットにあり、パブリック IP アドレスを持たないため、エンドポイントオプションを使用する必要があります。
-
インスタンス C のために使用したのと同じ方法を使用してインスタンス D に接続し、ping を実行してアウトバウンドリクエストをインターネットに送信できるかどうかをテストします。
- AWS CLI
-
-
インバウンドトラフィックをチェックするために、パブリック IPv4 アドレスを使用してインスタンス A に対して Ping を実行します:
ping 18.225.8.244
出力:
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
ping は成功し、トラフィックはブロックされていません。
-
プライベート IPv4 アドレスを使用して、アウトバウンドトラフィックに接続してチェックします。
aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895
--region us-east-2
--connection-type eice
出力:
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
ping は成功し、トラフィックはブロックされていません。
-
インバウンドトラフィックをチェックするために、パブリック IPv4 アドレスを使用してインスタンス B に対して Ping を実行します:
ping 3.18.106.198
出力:
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
ping は成功し、トラフィックはブロックされていません。
-
プライベート IPv4 アドレスを使用して、アウトバウンドトラフィックに接続してチェックします。
aws ec2-instance-connect ssh --instance-id i-08552a0774b5c8f72
--region us-east-2
--connection-type eice
出力:
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
ping は成功し、トラフィックはブロックされていません。
-
インスタンス C に接続します。ping を実行するためのパブリック IP アドレスがないので、EC2 Instance Connect を使用して接続してから、インスタンスからパブリック IP に対して ping を実行してアウトバウンドトラフィックをチェックします:
aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4
--region us-east-2
出力:
A newer release of "Amazon Linux" is available.
Version 2023.5.20240916:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, # ~_ #### Amazon Linux 2023
~~ _#####\ ~~ ###|
~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~.. _/
/ /
/m/'
Last login: 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
ping は成功し、トラフィックはブロックされていません。
-
インスタンス D に接続します。ping を実行するためのパブリック IP アドレスがないので、EC2 Instance Connect を使用して接続してから、インスタンスからパブリック IP に対して ping を実行してアウトバウンドトラフィックをチェックします:
aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0
--region us-east-2
出力:
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
ping は成功し、トラフィックはブロックされていません。
シナリオ 2
このセクションでは、VPC BPA をオンにし、アカウントのインターネットゲートウェイとの間のトラフィックをブロックします。
VPC BPA の [双方向] モードがオンになっている図
2.1 VPC BPA ブロック双方向モードを有効にする
VPC BPA を有効にするには、このセクションを完了します。
- AWS Management Console
-
VPC BPA がオンになりました。
- AWS CLI
-
-
modify-vpc-block-public-access-options コマンドを使用して、VPC BPA をオンにします。
aws ec2 --region us-east-2
modify-vpc-block-public-access-options --internet-gateway-block-mode block-bidirectional
BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。
-
VPC BPA のステータスを表示します。
aws ec2 --region us-east-2
describe-vpc-block-public-access-options
2.2 インスタンスに接続する
インスタンスに接続するには、このセクションを完了します。
- AWS Management Console
-
-
シナリオ 1 で実行したように、インスタンス A とインスタンス B のパブリック IPv4 アドレスに対して Ping を実行します。トラフィックがブロックされます。
-
シナリオ 1 で実行したように、EC2 Instance Connect を使用して各インスタンスに接続し、そこから www.amazon.com に対して ping を実行します。すべてのアウトバウンドトラフィックがブロックされます。
- AWS CLI
-
-
インバウンドトラフィックをチェックするために、パブリック IPv4 アドレスを使用してインスタンス A に対して Ping を実行します:
ping 18.225.8.244
出力:
Pinging 18.225.8.244 with 32 bytes of data:
Request timed out.
ping が失敗し、トラフィックがブロックされます。
-
プライベート IPv4 アドレスを使用して、アウトバウンドトラフィックに接続してチェックします。
aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895
--region us-east-2
--connection-type eice
出力:
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.
ping が失敗し、トラフィックがブロックされます。
-
インバウンドトラフィックをチェックするために、パブリック IPv4 アドレスを使用してインスタンス B に対して Ping を実行します:
ping 3.18.106.198
出力:
Pinging 3.18.106.198 with 32 bytes of data:
Request timed out.
ping が失敗し、トラフィックがブロックされます。
-
プライベート IPv4 アドレスを使用して、アウトバウンドトラフィックに接続してチェックします。
aws ec2-instance-connect ssh --instance-id i-08552a0774b5c8f72
--region us-east-2
--connection-type eice
出力:
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.
ping が失敗し、トラフィックがブロックされます。
-
インスタンス C に接続します。ping を実行するためのパブリック IP アドレスがないので、EC2 Instance Connect を使用して接続してから、インスタンスからパブリック IP に対して ping を実行してアウトバウンドトラフィックをチェックします:
aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4
--region us-east-2
出力:
A newer release of "Amazon Linux" is available. Version 2023.5.20240916:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, # ~_ #### Amazon Linux 2023
~~ _#####\ ~~ ###|
~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~.. _/
/ /
/m/'
Last login: Tue Sep 24 15: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.
ping が失敗し、トラフィックがブロックされます。
-
インスタンス D に接続します。ping を実行するためのパブリック IP アドレスがないので、EC2 Instance Connect を使用して接続してから、インスタンスからパブリック IP に対して ping を実行してアウトバウンドトラフィックをチェックします:
aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0
--region us-east-2
出力:
A newer release of "Amazon Linux" is available. Version 2023.5.20240916:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, # ~_ #### Amazon Linux 2023
~~ _#####\ ~~ ###|
~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~.. _/
_/ _/
_/m/'
Last login: Fri Sep 27 16: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
ping が失敗し、トラフィックがブロックされます。
2.3 オプション: Reachability Analyzer を使用して接続がブロックされていることを確認する
VPC Reachability Analyzer を使用して、VPC BPA の設定を含むネットワーク設定を踏まえて、特定のネットワークパスに到達できるかどうかを把握できます。この例では、以前に試行したのと同じネットワークパスを分析し、VPC BPA が接続に失敗する理由であることを確認します。
- AWS Management Console
-
-
https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer の Network Insights コンソールに移動します。
-
[パスを作成および分析] をクリックします。
-
[ソースタイプ] で、[インターネットゲートウェイ] を選択し、[ソース] ドロップダウンから [VPC BPA インターネットゲートウェイ] のタグが付けられたインターネットゲートウェイを選択します。
-
[宛先タイプ] で、[インスタンス] を選択し、[宛先] ドロップダウンから [VPC BPA インスタンス A] のタグが付けられたインスタンスを選択します。
-
[パスを作成および分析] をクリックします。
-
分析が完了するまで待ちます。数分かかる場合があります。
-
完了すると、[到達可能性ステータス] が [到達不可] となり、[パスの詳細] に VPC_BLOCK_PUBLIC_ACCESS_ENABLED
が原因であることが示されます。
- AWS CLI
-
-
[VPC BPA インターネットゲートウェイ] のタグが付けられたインターネットゲートウェイの ID と、[VPC BPA インスタンス A] のタグが付けられたインスタンスの ID を使用してネットワークパスを作成します。
aws ec2 --region us-east-2
create-network-insights-path --source igw-id
--destination instance-id
--protocol TCP
-
ネットワークパスで分析を開始します:
aws ec2 --region us-east-2
start-network-insights-analysis --network-insights-path-id nip-id
-
分析の結果を取得します:
aws ec2 --region us-east-2
describe-network-insights-analyses --network-insights-analysis-ids nia-id
-
到達可能性の欠如について、VPC_BLOCK_PUBLIC_ACCESS_ENABLED
が ExplanationCode
であることを確認します。
シナリオ 3
このセクションでは、VPC BPA トラフィックの方向を変更し、NAT ゲートウェイまたはエグレスのみのインターネットゲートウェイを使用するトラフィックのみを許可します。
VPC BPA のイングレスのみのモードがオンになっている図
3.1 モードを「イングレスのみ」に変更する
モードを変更するには、このセクションを完了します。
- AWS Management Console
-
-
VPC コンソールでパブリックアクセスの設定を変更し、方向を [イングレスのみ] に変更します。
-
変更を保存し、ステータスが更新されるまで待ちます。BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。
- AWS CLI
-
-
VPC BPA モードを変更します:
aws ec2 --region us-east-2
modify-vpc-block-public-access-options --internet-gateway-block-mode block-ingress
BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。
-
VPC BPA のステータスを表示します。
aws ec2 --region us-east-2
describe-vpc-block-public-access-options
3.2 インスタンスに接続する
インスタンスに接続するには、このセクションを完了します。
- AWS Management Console
-
-
シナリオ 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 を実行でき、トラフィックが許可されます。
- AWS CLI
-
-
インバウンドトラフィックをチェックするために、パブリック IPv4 アドレスを使用してインスタンス A に対して Ping を実行します:
ping 18.225.8.244
出力:
Pinging 18.225.8.244 with 32 bytes of data:
Request timed out.
ping が失敗し、トラフィックがブロックされます。
-
プライベート IPv4 アドレスを使用して、アウトバウンドトラフィックに接続してチェックします。
aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895
--region us-east-2
--connection-type eice
出力:
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.
ping が失敗し、トラフィックがブロックされます。
-
インバウンドトラフィックをチェックするために、パブリック IPv4 アドレスを使用してインスタンス B に対して Ping を実行します:
ping 3.18.106.198
出力:
Pinging 3.18.106.198 with 32 bytes of data:
Request timed out.
ping が失敗し、トラフィックがブロックされます。
-
プライベート IPv4 アドレスを使用して、アウトバウンドトラフィックに接続してチェックします。
aws ec2-instance-connect ssh --instance-id i-08552a0774b5c8f72
--region us-east-2
--connection-type eice
出力:
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.
ping が失敗し、トラフィックがブロックされます。
-
インスタンス C に接続します。ping を実行するためのパブリック IP アドレスがないので、EC2 Instance Connect を使用して接続してから、インスタンスからパブリック IP に対して ping を実行してアウトバウンドトラフィックをチェックします:
aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4
--region us-east-2
A newer release of "Amazon Linux" is available. Version 2023.5.20240916:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, #_ ~\_ ####_ Amazon Linux 2023
~~ \_#####\ ~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
Last login: Tue Sep 24 15:28:09 2024 from 10.0.2.86
[ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com
PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=1 ttl=248 time=1.84 ms
64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=2 ttl=248 time=1.40 ms
ping は成功し、トラフィックはブロックされていません。
-
インスタンス D に接続します。ping を実行するためのパブリック IP アドレスがないので、EC2 Instance Connect を使用して接続してから、インスタンスからパブリック IP に対して ping を実行してアウトバウンドトラフィックをチェックします:
aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0
--region us-east-2
A newer release of "Amazon Linux" is available. Version 2023.5.20240916:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, #_ ~\_ ####_ Amazon Linux 2023
~~ \_#####\ ~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
Last login: Fri Sep 27 16:48:38 2024 from 3.16.146.5
[ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com
PING www.amazon.com(2600:9000:25f3:5800:7:49a5:5fd4:b121 (2600:9000:25f3:5800:7:49a5:5fd4:b121)) 56 data bytes
64 bytes from 2600:9000:25f3:5800:7:49a5:5fd4:b121 (2600:9000:25f3:5800:7:49a5:5fd4:b121): icmp_seq=14 ttl=58 time=1.47 ms
64 bytes from 2600:9000:25f3:5800:7:49a5:5fd4:b121 (2600:9000:25f3:5800:7:49a5:5fd4:b121): icmp_seq=16 ttl=58 time=1.59 ms
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 がオンになっているときに除外に対するトラフィックの中断が発生しないようにできます。
- AWS Management Console
-
-
[ブロックパブリックアクセス] タブの [除外] で、[除外を作成] を選択します。
-
[VPC BPA パブリックサブネット A] を選択し、許可の方向として [双方向] が選択されているようにして、[除外を作成] を選択します。
-
[除外ステータス] が [アクティブ] に変わるまで待ちます。変更を確認するには、除外テーブルを更新する必要がある場合があります。
除外が作成されました。
- AWS CLI
-
-
除外の許可の方向を変更します:
aws ec2 --region us-east-2
create-vpc-block-public-access-exclusion --subnet-id subnet-id
--internet-gateway-exclusion-mode allow-bidirectional
-
除外ステータスが更新されるまでに時間がかかる場合があります。除外のステータスを表示するには:
aws ec2 --region us-east-2
describe-vpc-block-public-access-exclusions --exclusion-ids exclusion-id
4.2 インスタンスに接続する
インスタンスに接続するには、このセクションを完了します。
- AWS Management Console
-
-
インスタンス 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 を実行できます。トラフィックは許可されます。
- AWS CLI
-
-
インバウンドトラフィックをチェックするために、パブリック IPv4 アドレスを使用してインスタンス A に対して Ping を実行します:
ping 18.225.8.244
出力:
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
ping は成功し、トラフィックはブロックされていません。
-
プライベート IPv4 アドレスを使用して、アウトバウンドトラフィックに接続してチェックします。
aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895
--region us-east-2
--connection-type eice
出力:
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
ping は成功し、トラフィックはブロックされていません。
-
インバウンドトラフィックをチェックするために、パブリック IPv4 アドレスを使用してインスタンス B に対して Ping を実行します:
ping 3.18.106.198
出力:
Pinging 3.18.106.198 with 32 bytes of data:
Request timed out.
ping が失敗し、トラフィックがブロックされます。
-
プライベート IPv4 アドレスを使用して、アウトバウンドトラフィックに接続してチェックします。
aws ec2-instance-connect ssh --instance-id i-08552a0774b5c8f72
--region us-east-2
--connection-type eice
出力:
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.
ping が失敗し、トラフィックがブロックされます。
-
インスタンス C に接続します。ping を実行するためのパブリック IP アドレスがないので、EC2 Instance Connect を使用して接続してから、インスタンスからパブリック IP に対して ping を実行してアウトバウンドトラフィックをチェックします:
aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4
--region us-east-2
出力
A newer release of "Amazon Linux" is available. Version 2023.5.20240916:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, # ~_ #### Amazon Linux 2023
~~ _#####\ ~~ ###|
~~ #/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~.. _/
_/ /
/m/'
Last login: Tue Sep 24 15:28:09 2024 from 10.0.2.86
[ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com
PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=1 ttl=248 time=1.84 ms
64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=2 ttl=248 time=1.40 ms
ping は成功し、トラフィックはブロックされていません。
-
インスタンス D に接続します。ping を実行するためのパブリック IP アドレスがないので、EC2 Instance Connect を使用して接続してから、インスタンスからパブリック IP に対して ping を実行してアウトバウンドトラフィックをチェックします:
aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0
--region us-east-2
出力
A newer release of "Amazon Linux" is available. Version 2023.5.20240916:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, #_ ~\_ ####_ Amazon Linux 2023
~~ \_#####\ ~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
Last login: Fri Sep 27 18: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
ping は成功し、トラフィックはブロックされていません。
4.3 オプション: Reachability Analyzer との接続を検証する
シナリオ 2 で Reachability Analyzer において作成したのと同じネットワークパスを使用して、新しい分析を実行し、パブリックサブネット A についての除外が作成されたことでパスが到達可能になったことを確認できるようになりました。
Reachability Analyzer を利用できるリージョンについては、「Reachability Analyzer ガイド」の「Considerations」を参照してください。
- AWS Management Console
-
-
Network Insights コンソールで前に作成したネットワークパスから、[分析を再実行] をクリックします。
-
分析が完了するまで待ちます。これには数分間かかる場合があります。
-
パスが [到達可能] になっていることを確認します。
- AWS CLI
-
-
前に作成したネットワークパス ID を使用して、新しい分析を開始します:
aws ec2 --region us-east-2
start-network-insights-analysis --network-insights-path-id nip-id
-
分析の結果を取得します:
aws ec2 --region us-east-2
describe-network-insights-analyses --network-insights-analysis-ids nia-id
-
VPC_BLOCK_PUBLIC_ACCESS_ENABLED
説明コードが存在しないことを確認します。
シナリオ 5
このセクションでは、除外における許可トラフィックの方向を変更して、VPC BPA がどのような影響を受けるのかを確認します。除外のエグレスのみのモードは、イングレスのみをブロックするモードで VPC BPA が有効になっている状態ではあまり意味がないことに留意してください。これはシナリオ 3 と同じ動作です。
VPC BPA のイングレスのみのモードがオンになっており、エグレスのみのモードがオンになっているサブネット A の除外の図:
5.1 除外の許可の方向をエグレスのみに変更する
除外の許可の方向を変更するには、このセクションを完了します。
- AWS Management Console
-
-
シナリオ 4 で作成した除外を編集し、許可の方向を [エグレスのみ] に変更します。
-
[Save changes] (変更の保存) をクリックします。
-
[除外] ステータスが [アクティブ] に変わるまで待ちます。BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。変更を確認するには、除外テーブルを更新する必要がある場合があります。
- AWS CLI
-
-
除外の許可の方向を変更します:
aws ec2 --region us-east-2
modify-vpc-block-public-access-exclusion --exclusion-id exclusion-id
--internet-gateway-exclusion-mode allow-egress
BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。
-
除外ステータスが更新されるまでに時間がかかる場合があります。除外のステータスを表示するには:
aws ec2 --region us-east-2
describe-vpc-block-public-access-exclusion
5.2 インスタンスに接続する
インスタンスに接続するには、このセクションを完了します。
- AWS Management Console
-
-
インスタンス 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 を実行できます。トラフィックは許可されます。
- AWS CLI
-
-
インバウンドトラフィックをチェックするために、パブリック IPv4 アドレスを使用してインスタンス A に対して Ping を実行します:
ping 18.225.8.244
出力:
Pinging 18.225.8.244 with 32 bytes of data:
Request timed out.
ping が失敗し、トラフィックがブロックされます。
-
プライベート IPv4 アドレスを使用して、アウトバウンドトラフィックに接続してチェックします。
aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895
--region us-east-2
--connection-type eice
出力:
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.
ping が失敗し、トラフィックがブロックされます。
-
インバウンドトラフィックをチェックするために、パブリック IPv4 アドレスを使用してインスタンス B に対して Ping を実行します:
ping 3.18.106.198
出力:
Pinging 3.18.106.198 with 32 bytes of data:
Request timed out.
ping が失敗し、トラフィックがブロックされます。
-
プライベート IPv4 アドレスを使用して、アウトバウンドトラフィックに接続してチェックします。
aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895
--region us-east-2
--connection-type eice
出力:
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.
ping が失敗し、トラフィックがブロックされます。
-
インスタンス C に接続します。ping を実行するためのパブリック IP アドレスがないので、EC2 Instance Connect を使用して接続してから、インスタンスからパブリック IP に対して ping を実行してアウトバウンドトラフィックをチェックします:
aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4
--region us-east-2
A newer release of "Amazon Linux" is available. Version 2023.5.20240916:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, #_ ~\_ ####_ Amazon Linux 2023
~~ \_#####\ ~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
Last login: Fri Sep 27 18:00:31 2024 from 3.16.146.5
[ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com
PING www.amazon.com(2600:9000:25f3:a600:7:49a5:5fd4:b121 (2600:9000:25f3:a600:7:49a5:5fd4:b121)) 56 data bytes
64 bytes from 2600:9000:25f3:a600:7:49a5:5fd4:b121 (2600:9000:25f3:a600:7:49a5:5fd4:b121): icmp_seq=1 ttl=58 time=1.51 ms
64 bytes from 2600:9000:25f3:a600:7:49a5:5fd4:b121 (2600:9000:25f3:a600:7:49a5:5fd4:b121): icmp_seq=2 ttl=58 time=1.49 ms
ping は成功し、トラフィックはブロックされていません。
-
インスタンス D に接続します。ping を実行するためのパブリック IP アドレスがないので、EC2 Instance Connect を使用して接続してから、インスタンスからパブリック IP に対して ping を実行してアウトバウンドトラフィックをチェックします:
aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0
--region us-east-2
A newer release of "Amazon Linux" is available. Version 2023.5.20240916:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, #_ ~\_ ####_ Amazon Linux 2023
~~ \_#####\ ~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
Last login: Fri Sep 27 18:13:55 2024 from 3.16.146.5
[ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com
PING www.amazon.com(2606:2cc0::374 (2606:2cc0::374)) 56 data bytes
64 bytes from 2606:2cc0::374 (2606:2cc0::374): icmp_seq=1 ttl=58 time=1.21 ms
64 bytes from 2606:2cc0::374 (2606:2cc0::374): icmp_seq=2 ttl=58 time=1.51 ms
ping は成功し、トラフィックはブロックされていません。
シナリオ 6
このセクションでは、トラフィックにどのような影響が及ぶのかを確認するために、VPC BPA のブロックの方向を変更します。このシナリオでは、双方向モードで有効になっている VPC BPA は、シナリオ 1 と同様にすべてのトラフィックをブロックします。除外が NAT ゲートウェイまたはエグレスのみのインターネットゲートウェイにアクセスできる場合を除き、トラフィックはブロックされます。
VPC BPA の [双方向] モードがオンになっており、[エグレスのみ] のモードがオンになっているサブネット A の除外の図:
6.1 VPC BPA を双方向モードに変更する
BPA のモードを変更するには、このセクションを完了します。
- AWS Management Console
-
-
[パブリックアクセスの設定を編集] を選択します:
-
ブロックの方向を [双方向] に変更し、[変更を保存] を選択します。
-
[ステータス] が [オン] に変わるまで待ちます。BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。
- AWS CLI
-
-
VPC BPA ブロックの方向を変更します:
aws ec2 --region us-east-2
modify-vpc-block-public-access-options --internet-gateway-block-mode block-bidirectional
BPA の設定が有効になり、ステータスが更新されるまでに数分かかる場合があります。
-
VPC BPA のステータスを表示します。
aws ec2 --region us-east-2
describe-vpc-block-public-access-options
6.2 インスタンスに接続する
インスタンスに接続するには、このセクションを完了します。
- AWS Management Console
-
-
インスタンス 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 を実行することはできません。トラフィックがブロックされます。
- AWS CLI
-
-
インバウンドトラフィックをチェックするために、パブリック IPv4 アドレスを使用してインスタンス A に対して Ping を実行します:
ping 18.225.8.244
出力:
Pinging 18.225.8.244 with 32 bytes of data:
Request timed out.
ping が失敗し、トラフィックがブロックされます。
-
プライベート IPv4 アドレスを使用して、アウトバウンドトラフィックに接続してチェックします。
aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895
--region us-east-2
--connection-type eice
出力:
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.
ping が失敗し、トラフィックがブロックされます。
-
インバウンドトラフィックをチェックするために、パブリック IPv4 アドレスを使用してインスタンス A に対して Ping を実行します:
ping 3.18.106.198
出力:
Pinging 3.18.106.198 with 32 bytes of data:
Request timed out.
ping が失敗し、トラフィックがブロックされます。
-
プライベート IPv4 アドレスを使用して、アウトバウンドトラフィックに接続してチェックします。
aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895
--region us-east-2
--connection-type eice
出力:
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.
ping が失敗し、トラフィックがブロックされます。
-
インスタンス C に接続します。ping を実行するためのパブリック IP アドレスがないので、EC2 Instance Connect を使用して接続してから、インスタンスからパブリック IP に対して ping を実行してアウトバウンドトラフィックをチェックします:
aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4
--region us-east-2
A newer release of "Amazon Linux" is available. Version 2023.5.20240916:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, #_ ~\_ ####_ Amazon Linux 2023
~~ \_#####\ ~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
Last login: Fri Sep 27 18:19:45 2024 from 3.16.146.5
[ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com
PING www.amazon.com(2600:9000:25f3:6200:7:49a5:5fd4:b121 (2600:9000:25f3:6200:7:49a5:5fd4:b121)) 56 data bytes
ping が失敗し、トラフィックがブロックされます。
-
インスタンス D に接続します。ping を実行するためのパブリック IP アドレスがないので、EC2 Instance Connect を使用して接続してから、インスタンスからパブリック IP に対して ping を実行してアウトバウンドトラフィックをチェックします:
aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0
--region us-east-2
A newer release of "Amazon Linux" is available. Version 2023.5.20240916:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, #_ ~\_ ####_ Amazon Linux 2023
~~ \_#####\ ~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
Last login: Fri Sep 27 18:20:58 2024 from 3.16.146.5
[ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com
PING www.amazon.com(2600:9000:25f3:b400:7:49a5:5fd4:b121 (2600:9000:25f3:b400:7:49a5:5fd4:b121)) 56 data bytes
ping が失敗し、トラフィックがブロックされます。
クリーンアップ
このセクションでは、この高度な例のために作成したすべてのリソースを削除します。アカウントで作成されたリソースについて余分な追加料金が発生しないように、リソースをクリーンアップすることが重要です。
CloudFormation リソースを削除する
AWS CloudFormation テンプレートを使用して作成したリソースを削除するには、このセクションを完了します。
- AWS Management Console
-
- AWS CLI
-
-
CloudFormation スタックを削除します。スタックを完全に削除するには、そのスタックを強制削除する必要がある場合があります。
aws cloudformation delete-stack --stack-name VPC-BPA-stack --region us-east-2
-
進行状況を表示し、スタックが削除されていることを確認します。
aws cloudformation describe-stack-events --stack-name VPC-BPA-stack --region us-east-2
AWS CloudTrail を使用して除外の削除を追跡する
AWS CloudTrail を使用して除外の削除を追跡するには、このセクションを完了します。CloudTrail エントリは、除外を削除すると表示されます。
- AWS Management Console
-
https://console.aws.amazon.com/cloudtrailv2/ で AWS CloudTrail コンソールにおいて [リソースタイプ] > AWS::EC2::VPCBlockPublicAccessExclusion を検索すると、CloudTrail Event の履歴で、削除された除外を表示できます。
- AWS CLI
-
lookup-events コマンドを使用して、除外の削除に関連するイベントを表示できます:
aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceType,AttributeValue=AWS::EC2::VPCBlockPublicAccessExclusion
高度な例が完了しました。