An unexpected security group rule

0

Hi,

An inbound HTTPS(443) TCP rule is added to my SG when I add a VPC Interface Endpoint using the ec2.Vpc L1 construct method addInterfaceEndpoint. If I use CfnVPCEndpoint (commented out below) instead. all is good.

import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import { aws_ec2 as ec2 } from 'aws-cdk-lib';

export class ScratchStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const vpc = new ec2.Vpc(this, 'vpc', {
    });

    const vpcEndpointSg = new ec2.SecurityGroup(this, 'vpc-endpoint-sg', {
      vpc: vpc,
      allowAllOutbound: true
    });

    vpc.addInterfaceEndpoint('vpc-endpoint', {
      service: ec2.InterfaceVpcEndpointAwsService.IOT_CORE,
      privateDnsEnabled: false,
      securityGroups: [vpcEndpointSg]
    });

    // new ec2.CfnVPCEndpoint(this, 'cfn-vpc-endpoint', {
    //   serviceName: `com.amazonaws.${process.env.CDK_DEFAULT_REGION}.iot.data`,
    //   vpcId: `${vpc.vpcId}`,
    //   vpcEndpointType: 'Interface',
    //   securityGroupIds: [vpcEndpointSg.securityGroupId]
    // });

  }
}

Thoughts/help welcome.

Thanks, Gary

1 Respuesta
1
Respuesta aceptada

Compared to cloudformation CDK is opinionated and includes settings to shortcut creating a resource. In your example a IOT vpc endpoint must allow 443 inbound for it to be at all useful so this rule is automatically added by default. You can override this be setting the parameter "open" to false (it is default true). See in docs

AWS
EXPERTO
Peter_G
respondido hace un año
  • Thanks Peter, I didn't spot the 'open' prop! (And I think using the InterfaceVpcEndpoint construct is more appropriate in my context than the Vpc construct method). In my real code, I have other SG rules, so it's useful without 443 i/b :-)

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas