Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

263
Vistas
AWS CDK - Creación de un grupo de seguridad Mecanografiado

Estoy tratando de migrar el siguiente recurso de CloudFormation a CDK usando mecanografiado:

 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

He intentado con esto (no sé cómo crear las propiedades necesarias):

 const albSecurityGroup = new SecurityGroup(this, "ALBSecurityGroup", { vpc: Vpc.fromLookup(this, id, { vpcId: props.vpcId.stringValue }), description: appEnv + "-alb-sg" })

Y usando un constructor de Cfn como este (no sé cómo unirme a CfnSecurityGroup con 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" });

Aprecio tu ayuda.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Su respuesta parece más clara al usar CfnSecurityGroup , pero solo para completar y para mostrar el enfoque que se puede tomar para lograr lo mismo usando una construcción de orden superior SecurityGroup sería la siguiente:

 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" ); ....

Sugeriría encarecidamente que revise la sección de descripción general de cualquier módulo de servicio que planee usar en CDK. Aquí está el de aws-ec2 que muestra cómo se puede escribir SecurityGroup .

También podría usar loadBalancer.connections.allowFrom() directamente en lugar de crear explícitamente un grupo de seguridad para su ALB. Suponiendo que su construcción ALB se llame loadBalancer , se vería así:

 loadBalancer.connections.allowFrom( Peer.ipv4(props.securityGroupIngressCidr), Port.tcp(443), 'Allow inbound HTTPS from CIDR IPs' );
over 4 years ago · Santiago Trujillo Denunciar

0

Hoy me di cuenta de que era una solución fácil.

 const albSecurityGroupCfn = new CfnSecurityGroup(this, id, { vpcId: props.vpcId.stringValue, groupDescription: appEnv + "-alb-sg", securityGroupIngress: [ new CfnSecurityGroupIngress(this, id, { ipProtocol: "tcp", fromPort: 443, toPort: 443, cidrIp: props.securityGroupIngressCidr }) ] });

¡Gracias!

ACTUALIZACIÓN : (dmahapatro)

Con el enfoque anterior, recibiría un error de tiempo de compilación que muestra que necesita un tipo apropiado. Aquí hay un ajuste menor a la solución anterior:

 const albSecurityGroupCfn = new CfnSecurityGroup(this, id, { vpcId: props.vpcId.stringValue, groupDescription: appEnv + "-alb-sg", securityGroupIngress: [{ ipProtocol: "tcp", fromPort: 443, toPort: 443, cidrIp: props.securityGroupIngressCidr }] });

securityGroupIngress espera los siguientes tipos:

 Type: Array<CfnSecurityGroup.IngressProperty | cdk.IResolvable> | cdk.IResolvable

Cuando proporciona una matriz de CfnSecurityGroupIngress , no se resuelve en ninguno de esos tipos. Una mejor manera de manejarlo es usar una matriz de objetos que coaccionarán a Array<CfnSecurityGroup.IngressProperty> de forma predeterminada. La última respuesta muestra que no necesita crear una instancia de CfnSecurityGroupIngress para securityGroupIngress .

En una nota al margen, si VS Code se usa como IDE para CDK, detecta esos errores de tiempo de compilación de antemano.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda