用 VPC Endpoint 让 Amazon Bedrock API 调用全走内网:完整配置与踩坑记录
背景
在 EC2 上运行 AI Agent 调用 Amazon Bedrock 时,默认流量路径是:EC2 → NAT Gateway → 公网 → Bedrock Endpoint。流量经过公共互联网,在合规审计和安全性上都不理想。
通过配置 VPC Endpoint(PrivateLink),可以让所有 Bedrock API 调用走 VPC 内网,完全不经过公网。
Amazon Bedrock 支持的 Endpoint
| Endpoint 后缀 | 用途 |
|---|---|
bedrock |
控制面 API |
bedrock-runtime |
InvokeModel 等运行时调用 |
bedrock-mantle |
推理相关 |
bedrock-agent |
Agents 构建 |
bedrock-agent-runtime |
Agents 运行时 |
日常 AI Agent 使用主要需要 bedrock-runtime。
配置步骤
1. 创建 Interface Endpoint
aws ec2 create-vpc-endpoint \
--vpc-id vpc-xxxxxxxx \
--service-name com.amazonaws.us-west-2.bedrock-runtime \
--vpc-endpoint-type Interface \
--subnet-ids subnet-aaaa subnet-bbbb \
--security-group-ids sg-xxxxxxxx \
--private-dns-enabled
--private-dns-enabled 开启后,bedrock-runtime.region.amazonaws.com 自动解析到 VPC 内网地址。应用代码无需改动。
2. 安全组
为 VPC Endpoint 配置安全组,入站允许 VPC CIDR 的 TCP 443:
aws ec2 authorize-security-group-ingress \
--group-id sg-vpce-xxxxx \
--protocol tcp \
--port 443 \
--cidr 10.0.0.0/16
3. Endpoint Policy(推荐)
{
"Version": "2012-10-17",
"Statement": [
{
"Principal": { "AWS": "arn:aws:iam::123456789012:role/openclaw-role" },
"Effect": "Allow",
"Action": ["bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream"],
"Resource": "arn:aws:bedrock:us-west-2::foundation-model/*"
}
]
}
4. 验证
nslookup bedrock-runtime.us-west-2.amazonaws.com
# 返回 10.x.x.x 内网 IP 表示流量已走 VPC Endpoint
推荐的网络架构
VPC
├── 公有子网:NAT Gateway(Agent 需要访问外部网站时用)
├── 私有子网:EC2 + VPC Endpoint ENI
└── 安全组:EC2 SG(SSH 限 IP) + VPCE SG(443 限 VPC CIDR)
EC2 放私有子网无公网 IP,SSH 通过 EC2 Instance Connect Endpoint 或 Systems Manager 连接。
额外建议的 Endpoint
- S3 Gateway Endpoint(免费)
- CloudWatch Logs(推日志)
- Secrets Manager(密钥管理)
- STS(IAM Role 认证)
踩坑
- VPC 的
enableDnsSupport和enableDnsHostnames必须开启 - 安全组入站 443 未开放会导致超时(报错像 DNS 问题)
- 多 AZ 场景建议每个 AZ 都配 Endpoint,避免跨 AZ 延迟
成本
Interface Endpoint 约 $0.01/小时/AZ(~$7/月)。相比 NAT Gateway 的 $0.045/GB 数据处理费,在高流量场景下更经济。S3 Gateway Endpoint 完全免费。
在亚马逊云科技 EC2(us-west-2)上验证。

浙公网安备 33010602011771号