将入站规则添加到安全组 aws cdk

iam*_*rot 0 amazon-web-services amazon-vpc typescript aws-security-group aws-cdk

我正在使用AWS Opensearch (Elasticsearch 6.8)AWS lambda。当收到事件时,lambda 会将记录插入到 Elasticsearch 中。下面是elasticsearch的定义方式:

this.loggingES = new opensearch.Domain(this, 'LogsES', {
    version: opensearch.EngineVersion.ELASTICSEARCH_6_8,
    domainName: "app-logs-es",
    vpc: this.loggingVPC,
    zoneAwareness: {
        availabilityZoneCount: 3,
    },
    enforceHttps: true,
    nodeToNodeEncryption: true,
    encryptionAtRest: {
        enabled: true
    },
    capacity: {
        masterNodes: 3,
        dataNodes: 3,
    }
});
Run Code Online (Sandbox Code Playgroud)

现在发生的情况是,在同一个 VPC 下创建了两个安全组,一个用于 ES,另一个用于 lambda。lambda 无法连接到 Elasticsearch,因为 elasticsearch 安全组没有允许来自 lambda 安全组的流量的入站规则设置。

有没有办法,我可以:

  • 定义一个只有一个安全组且VPC内所有组件都可以互相访问的VPC?
  • 或者在 CDK 本身中,我可以在 Elasticsearch SG 中设置入站规则以允许来自 lambda SG 的流量。

gsh*_*hka 5

是的,CDK 通过ConnectionsDomain 公开了. 下面是一个 Python 示例:

my_domain.connections.allow_default_port_from(my_lambda)
Run Code Online (Sandbox Code Playgroud)

就是这样。您不必考虑安全组,它们已被抽象化。