为了允许 API Gateway 访问我在 AWS 中的私有(private)网络负载均衡器,我需要将属性对 PrivateLink 流量实现入站规则
设置为关闭
( see reference ) 。从 AWS 控制台可以很容易地做到这一点,只需转到指定负载均衡器的安全选项卡即可:
但是,在查看了 Load Balancer 和 Security Group CDK 引用资料后,我找不到从 CDK 执行此操作的方法。即使是普通的 CloudFormation 似乎也没有与此功能相关的属性( AWS::ElasticLoadBalancingV2::LoadBalancer 、 AWS::EC2::SecurityGroup )。有没有办法从 CDK 设置这个属性?我有一项严格的任务,即实现所有基础设施的自动化。
最佳答案
TL;DR 使用自定义资源通过 SetSecurityGroups
SDK 调用设置属性。
SetSecurityGroups API 具有 EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic
参数,可设置为 on
或 off
。请参阅Set up a Network Load Balancer for API Gateway private integrations在文档中。
您可以使用 Custom Resources 将此 API 调用与您的 CDK 应用程序集成。在 CloudFormation 不支持某个属性的情况下,自定义资源是一个后备选项。 CDK 和 CloudFormation 中都存在这个概念。自定义资源通常由 Lambda 支持,CloudFormation 在部署期间为您调用。 CDK 提供多种类型的自定义资源。选项可能令人眼花缭乱。
幸运的是,您可以使用AwsCustomResource ,一种专为进行 AWS SDK 调用而定制的构造。将 SetSecurityGroups
作为 action
属性传递,并将 EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic: off
作为参数
传递。
关于amazon-web-services - 在 AWS CDK 中设置 "Enforce inbound rules on PrivateLink traffic"设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77417813/