Amazon-Ec2

如何驗證 AWS VPC (S3) 終端節點是否有效?

  • August 12, 2021

我使用 CloudFormation 向我的 VPC 添加了一個 VPC 終端節點,並允許使用 s3。路由在 AWS 控制台中可見,但在 EC2 實例的本地路由表中不可見:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.29.4.129    0.0.0.0         UG    0      0        0 eth0
169.254.169.254 0.0.0.0         255.255.255.255 UH    0      0        0 eth0
172.29.4.128    0.0.0.0         255.255.255.128 U     0      0        0 eth0

如何驗證 VPC 中的 EC2 實例實際使用 S3 的 VPC 終端節點,而不是可用的網際網路連接?

我找到了一種驗證 VPC 終端節點使用情況的方法。

  1. 登錄 VPC 中的 AWS EC2 實例
  2. 配置 aws cli 客戶端
  3. 執行aws ec2 describe-prefix-lists;對於Windows PowerShellGet-EC2PrefixList

結果應在屬性中包含 VPC 終端節點前綴列表 ID PrefixListId

如需進一步驗證,您可以將以下策略應用於 S3 儲存桶:

{
 "Version": "2008-10-17",
 "Statement": [
   {
     "Effect": "Deny",
     "Principal": "*",
     "Action": [
       "s3:ListBucket"
     ],
     "Resource": [
       "arn:aws:s3:::mybucket"
     ],
     "Condition": {
       "StringNotEquals": {
         "aws:sourceVpc": [
           "vpc-121212"
         ]
       }
     }
   }
 ]
}

使用您的 vpc ID 而不是 vpc-121212。然後,您應該只能從給定的 VPC 訪問 S3 儲存桶

我想直接的方法是實際探測這些路線。

您可以跟踪路由到 s3 並查看 NAT 網關的內部 IP 是否在輸出中的任何位置(例如第一跳)。

首先,在控制台中檢查 NAT 網關內部 IP 。

帶有端點集的範例輸出 - 未顯示網關 IP。這是你想看到的。

$ traceroute -n -T -p 443 s3.amazonaws.com                                
traceroute to s3.amazonaws.com (52.216.204.93), 30 hops max, 60 byte packets
1  * * *
2  * * *
3  * * *
4  * * *
5  * * *
6  * * *
7  52.216.204.93  0.662 ms  0.668 ms  0.637 ms

不同目的地的範例輸出,通過 NAT(見第一跳)

$ traceroute -n -T -p 443 serverfault.com
traceroute to serverfault.com (151.101.129.69), 30 hops max, 60 byte packets
1  172.20.10.188  0.206 ms  0.147 ms  0.145 ms
2  * * *
3  * * *
4  * * *
5  * * *
6  * * *
7  100.65.13.49  0.956 ms 100.65.13.113  1.253 ms *
8  52.93.28.209  1.083 ms 52.93.28.231  1.213 ms 52.93.28.235  1.151 ms
9  100.100.4.38  1.770 ms 100.100.4.46  2.089 ms 100.100.4.36  1.723 ms
10  103.244.50.242  1.136 ms 100.100.4.44  1.702 ms  2.738 ms
11  151.101.129.69  1.013 ms 103.244.50.244  1.745 ms 151.101.129.69  1.142 ms

引用自:https://serverfault.com/questions/822979