amazon-web-services - 在 AWS CDK 中设置 "Enforce inbound rules on PrivateLink traffic"设置

标签 amazon-web-services aws-cloudformation aws-cdk amazon-elb aws-security-group

为了允许 API Gateway 访问我在 AWS 中的私有(private)网络负载均衡器,我需要将属性对 PrivateLink 流量实现入站规则设置为关闭 ( see reference ) 。从 AWS 控制台可以很容易地做到这一点,只需转到指定负载均衡器的安全选项卡即可: enter image description here

但是,在查看了 Load BalancerSecurity Group CDK 引用资料后,我找不到从 CDK 执行此操作的方法。即使是普通的 CloudFormation 似乎也没有与此功能相关的属性( AWS::ElasticLoadBalancingV2::LoadBalancerAWS::EC2::SecurityGroup )。有没有办法从 CDK 设置这个属性?我有一项严格的任务,即实现所有基础设施的自动化。

最佳答案

TL;DR 使用自定义资源通过 SetSecurityGroups SDK 调用设置属性。

SetSecurityGroups API 具有 EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic 参数,可设置为 onoff。请参阅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/

相关文章:

amazon-web-services - 如何使用第三方应用程序登录亚马逊 mws

amazon-web-services - 无法从我的 Linux shell 打开 ssh 隧道(EC2 公开 RDS 数据库)

amazon-web-services - CDK 将预先存在的存储桶用于 CI CD Pipeline for Artifacts

amazon-web-services - 从本地开发机器使用 AWS DynamoDB DAX

json - 转到 AWS,从 DynamoDB 项目编码到 JSON,省略空值

aws-lambda - lambda 函数内的跨堆栈引用

amazon-web-services - 导入 AWS::ApiGateway::Authorizer 无服务器框架

amazon-web-services - 用户登录时登录抛出 'Incorrect username or password' 错误

aws-cdk - 为通过 CDK 实例化的 Elastic Beanstalk 环境获取 Application Load Balancer 的句柄

amazon-ecs - 使用 AWS ECS Fargate 进行水平和垂直自动扩展