路由表(在私有子网中)不会通过添加 VPCE 作为 aws secrets manager 的目的地而改变。也尝试使用新的 SG(不使用默认 SG)。任何想法 ?
2 回答
根据评论。
Secrets Manager (SM) 使用VPC 接口端点。与S3 和 DynamoDB的VPC 网关终端节点相比,这是新一代终端节点。新一代不会修改路由表 (RT)。相反,网关端点确实会修改创建这些端点时指定的 RT。
为了与接口终端节点无缝协作,VPC 必须拥有enableDnsHostnames
并enableDnsSupport
启用以及终端节点的私有 DNS 。此外,通常需要调整端点的安全组以允许在端口 443 上进行连接。
最近我删除了所有最初允许我的私有子网连接到 Internet 的 NAT 网关(包括 Secrets Manager)。我假设 NAT 网关是一个安全漏洞、昂贵的基础设施,私有实例不需要联系 AWS Secrets Manager。我错了。我的 ECS 任务失败,并指出无法访问 Secrets Manager 资源。
调试
我建议使用AWS VPC 可达性分析器来调试这些网络问题,它帮助了我。
- 在私有子网中启动 EC2 实例
- 将您的私有子网安全组分配给 EC2 实例
- 为您的私有子网创建 VPC 终端节点
- 使用 VPC 可达性分析器“创建和分析路径”
- 源类型:实例
- 选择您启动的新 EC2 实例
- 目标类型:VPC 终端节点
- 选择您创建的 VPC 终端节点
- 目的端口
- 为 HTTPS 设置为 443
- 协议
- 设置为 TCP
- 源类型:实例
- 更改您的基础架构,并重新运行分析器以测试访问,直到成功。
这将使您能够验证您在私有子网中启动的 EC2 实例是否可以联系 VPC 端点(例如 Secrets Manager)。
清单
既然您有了快速验证可达性的方法,那么您可能需要采取以下步骤来确保您的私有子网可以联系 AWS 服务,例如 Secrets Manager。请查阅 AWS 文档,因为我可能有过时的信息。
- 确保AWS::EC2::VPC
- EnableDnsSupport:真
- EnableDnsHostnames:真
- 创建AWS::EC2::VPCEndpoint(不是免费的,请参阅定价)
- PrivateDnsEnabled:真
- 服务名称:
- 将此用作模板
com.amazonaws.${AWS::Region}.secretsmanager
并为 AWS 区域使用适当的值
- 将此用作模板
- 安全组 ID:
- 附加到 VPC 终端节点的安全组必须允许来自 VPC 私有子网的端口 443 上的传入连接
- 这将 VPC 终端节点与一个安全组相关联,该安全组用于允许从私有子网到 AWS API 的传入流量
- 子网 ID:
- 私有子网
- VpcEndpointType:接口
- VpcId:放置 VPC 端点的 VPC