使用Lambda轮换密码时,AWS Secrets Manager端点的安全组配置
Secrets Manager VPC端点安全组配置(Lambda密钥轮换场景)
1. 核心安全组要求
Lambda密钥轮换函数访问Secrets Manager VPC端点时,端点的安全组只需满足一个核心规则:允许Lambda轮换函数所在的安全组发起HTTPS(TCP 443端口)流量进入端点。这是因为Lambda调用Secrets Manager API使用HTTPS协议,所有请求都走443端口。
2. 默认安全组是否合适?
默认安全组的规则是允许同一组内的所有资源互相访问,且允许所有出站流量。如果你的Lambda轮换函数也在这个默认安全组里,确实能正常通信,但不推荐在生产环境使用:
- 默认安全组往往会被VPC内的其他资源共用,相当于扩大了Secrets Manager端点的访问范围,不符合最小权限原则;
- 后续如果有其他资源加入默认组,可能会意外获得访问Secrets Manager的权限,增加安全风险。
测试环境临时使用没问题,但生产环境建议用自定义安全组。
3. 自定义安全组的配置规则
为了兼顾安全性和可用性,自定义安全组需配置以下规则:
- 入站规则:仅允许Lambda轮换函数的安全组发起TCP 443端口流量,源直接指定Lambda安全组的ID,不要用
0.0.0.0/0这类宽泛的范围; - 出站规则:保留默认的“允许所有出站流量”即可——因为安全组是状态型的,入站请求对应的回包会自动被允许,无需额外配置针对性的回包规则;如果要更严格,可以限制出站流量到Lambda安全组的临时端口(1024-65535),但通常没必要,反而增加维护成本。
CloudFormation模板示例片段
# 自定义Secrets Manager端点安全组 SecretsManagerEndpointSG: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Restrict access to Secrets Manager endpoint for Lambda rotation VpcId: !Ref YourVPC SecurityGroupIngress: - IpProtocol: tcp FromPort: 443 ToPort: 443 SourceSecurityGroupId: !Ref LambdaRotationSG # 替换为你的Lambda轮换函数安全组ID SecurityGroupEgress: - IpProtocol: -1 CidrIp: 0.0.0.0/0 Description: Allow outbound response traffic
内容的提问来源于stack exchange,提问作者Garret Wilson
相关产品推荐
相关产品推荐

