【发布时间】:2020-12-18 13:30:44
【问题描述】:
我的 Lambda 函数需要使用来自 AWS Secret Manager 的凭证连接到 RDS。以下是我做过的事情:
- 创建了 Lambda 函数并与 VPC(例如 VPC 1)关联并创建了一个单独的安全组 (Lambda-SG)。
- RDS 也在同一个 VPC 中,可通过 Lambda 函数访问
- 为 Secret Manager Service 创建了 VPC Endpoint,以便 Lambda 函数可以连接到它。
- Lambda 函数无法连接到 AWS Secret Manager 并超时。
任何解决方案都会有所帮助。如果我删除了 VPC,那么它是可以访问的,但我需要 VPC 来连接到 RDS 实例。无法使用 NAT 网关,因为云环境策略不允许任何 Internet 连接。
【问题讨论】:
-
需要更多详细信息,您能否展示如何在 Lambda 中创建 SSM 客户端?您确定 SSM 端点和 Lambda 的 SG 都具有相应的出口和入口规则吗?
-
我正在尝试连接到 Secrets Manager 而不是 SSM。
-
AwsClientBuilder.EndpointConfiguration config = new AwsClientBuilder.EndpointConfiguration(endpoint, region); AWSSecretsManagerClientBuilder clientBuilder = AWSSecretsManagerClientBuilder.standard(); clientBuilder.setEndpointConfiguration(config); AWSSecretsManager 客户端 = clientBuilder.build(); GetSecretValueRequest getSecretValueRequest = new GetSecretValueRequest() .withSecretId(secretName).withVersionStage("AWSCURRENT");
-
当我说 SSM 时,我指的是服务“简单系统管理器”的扩展首字母缩写词。这些细节会更好地格式化/更好地作为您问题的一部分提供,而不是作为评论。客户端/端点配置看起来不错,您是否也检查了双方的安全组规则?
-
您的端点 sg 是否允许 https 端口的入站流量?
标签: aws-lambda