繁体   English   中英

使用CDK时如何将服务的安全组设置为默认安全组

[英]How do I set the the security group of a service to the default security group when using CDK

我正在编写一个使用 Opensearch 域和 Lambda 的应用程序,并将它们都放在 VPC 的私有子网中。 当我在控制台上进行测试时,我发现每当我尝试从 lambda 访问域时都会出现超时错误。 我可以通过手动将域和 lambda 上的安全组设置为默认安全组来解决此问题。 我尝试使用以下方法在 cdk 中执行此操作: securityGroups: ec2.SecurityGroup.fromLookupById(this,'def_sec_group',serviceVPC.vpcDefaultSecurityGroup) ,但出现错误:

All arguments to look up a security group must be concrete (no Tokens)

据我所知,这是因为 CDK 还没有获得实际的 VPC,它只是创建一个令牌,直到它被部署。 相反,我尝试修改其他安全组并使用它们。 CDK 为 lambda 和 opensearch 域创建了默认安全组,因此我打算尝试修改这些以适应 VPC 的默认安全组。 我能说的唯一区别是 VPC 有一个入站规则:源设置为自身,没有 ip 类型的描述符。 我意识到我可能无论如何都无法访问那些默认安全组,因为它们将是令牌,所以我打算尝试创建新的安全组。 这仍然给我留下了作为对等点和 SecurityGroup cdk 构造函数的连接输入的问题。

设置安全组访问权限时,您需要查看在资源上使用 Connections class。

const domain = new Domain(...);
const lambda = new Function(...);
domain.connections.allowDefaultPortFrom(lambda);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM