AWS CDK踩过的坑(1)

首先推荐一个AWS CDK比较好用的一个文档,东西比较全,参考价值也比较高

Construct Hub

Security Group

使用cdk创建Security Group,class选择 “CfnSecurityGroup”、“CfnSecurityGroupIngress”、“CfnSecurityGroupEgress”。如果Inbound Outbound规则需要依赖其他SG的话,使用“getAttrGroupId” method来获取Security Group ID。 

创建Security Group:

在创建Security Group的时候可以定义Inbound和Outbound Rules,如果不需要依赖于其他的SG,可以在这一步直接定义,所使用的是IngressProperty和EgressProperty这两个class,与下文中单独创建Ingress和Egress使用的class不同。

    @Bean
    @ConditionalOnBean(value = VpcConfig.class)
    public CfnSecurityGroup defaultSG(final ApplicationStack stack, final IVpc defaultVpc){
        return CfnSecurityGroup.Builder.create(stack,"default-security-group")
                .vpcId(defaultVpc.getVpcId())
                .groupName("default-security-group")
                .groupDescription("a security group for demo")
                .build();
    }

创建Security Group Rules:

这里要注意,如果Inbound Outbound规则存在循环依赖其他的Security Groups,必须要加“addDependsOn” method,以保证所有的Rules一定在创建Security Groups后创建。

    @Bean
    @ConditionalOnBean(value = {AuroraProps.class, SecurityGroupConfig.class})
    public CfnSecurityGroup setSGRules(final AuroraProps props, final ApplicationStack stack, CfnSecurityGroup databaseSG, final CfnSecurityGroup proxySG){
        CfnSecurityGroupIngress defaultRule = CfnSecurityGroupIngress.Builder
                .create(stack,"databaseSG-inbound-proxySG")
                .groupId(databaseSG.getAttrGroupId())
                .ipProtocol("tcp")
                .fromPort(props.getPort())
                .toPort(props.getPort())
                .sourceSecurityGroupId(proxySG.getAttrGroupId())
                .build();
        defaultRule.addDependsOn(databaseSG);
        defaultRule.addDependsOn(proxySG);
        return databaseSG;
    }

转换Security Group格式:

在其他地方调用Security Group的时候通常不支持CfnSecurityGroup的class,只支持ISecurityGroup、SecurityGroup这两种格式。

    ISecurityGroup databaseSecurityGroup = SecurityGroup
            .fromSecurityGroupId(stack,"trans-database-security-group", databaseSG.getAttrGroupId());
// databaseSG 字段类型为 CfnSecurityGroup

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值