use*_*381 4 amazon-web-services aws-cloudformation typescript aws-cdk
我正在尝试使用打字稿将以下 CloudFormation 资源迁移到 CDK:
ALBSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: !Ref VPCId
GroupDescription: !Sub "${Application}-${Environment}-alb-sg"
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 443
ToPort: 443
CidrIp: !Ref SecurityGroupIngressCidr
Run Code Online (Sandbox Code Playgroud)
我尝试过这个(我不知道如何创建必要的属性):
const albSecurityGroup = new SecurityGroup(this, "ALBSecurityGroup", {
vpc: Vpc.fromLookup(this, id, {
vpcId: props.vpcId.stringValue
}),
description: appEnv + "-alb-sg"
})
Run Code Online (Sandbox Code Playgroud)
并使用这样的 Cfn 构造函数(我不知道如何将 CfnSecurityGroup 与 CfnSecurityGroupIngress 加入):
const x = new CfnSecurityGroupIngress(this, id, {
ipProtocol: "tcp",
fromPort: 443,
toPort: 443,
cidrIp: props.securityGroupIngressCidr
});
const albSecurityGroupCfn = new CfnSecurityGroup(this, id, {
vpcId: props.vpcId.stringValue,
groupDescription: appEnv + "-alb-sg"
});
Run Code Online (Sandbox Code Playgroud)
我感谢您的帮助。
dma*_*tro 10
通过使用,您的答案看起来更清晰CfnSecurityGroup,但只是为了完整性并展示使用高阶构造实现相同目标所需的方法SecurityGroup如下:
import { SecurityGroup, Peer, Port, Vpc } from '@aws-cdk/aws-ec2';
....
const vpc = Vpc.fromLookup(this, id, {
vpcId: props.vpcId.stringValue
});
const albSecurityGroup = new SecurityGroup(this, 'MyALBSG', {
vpc,
description: appEnv + "-alb-sg",
allowAllOutbound: true
});
albSecurityGroup.addIngressRule(
Peer.ipv4(props.securityGroupIngressCidr),
Port.tcp(443),
"Allow HTTPS traffic from CIDR IPs"
);
....
Run Code Online (Sandbox Code Playgroud)
我强烈建议您仔细阅读您计划在 CDK 中使用的任何服务模块的概述部分。这是aws-ec2展示如何SecurityGroup编写的
您不妨loadBalancer.connections.allowFrom()直接使用,而不是显式为您的 ALB 创建安全组。假设您的 ALB 构造名为loadBalancer,这将类似于:
loadBalancer.connections.allowFrom(
Peer.ipv4(props.securityGroupIngressCidr),
Port.tcp(443),
'Allow inbound HTTPS from CIDR IPs'
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2754 次 |
| 最近记录: |