# SecurityGroupProps

Extends: SecurityGroupProps
Used as props by: SecurityGroup

- Source: [`aws-ec2/lib/security-group.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-ec2/lib/security-group.ts#L248)
- Type last changed: v2.45.0 · 6 Oct 2022

## Example

```ts
const vpc = ec2.Vpc.fromLookup(this, 'ExistingVPC', { vpcId: 'vpc-12345678' });
const bucket = new s3.Bucket(this, 'MyBucket');

const securityGroup = new ec2.SecurityGroup(this, 'CustomSG', {
    vpc: vpc,
    description: 'Allow HTTPS outbound access',
    allowAllOutbound: false,
});

securityGroup.addEgressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(443), 'Allow HTTPS traffic');

new s3deploy.BucketDeployment(this, 'DeployWithSecurityGroup', {
    destinationBucket: bucket,
    vpc: vpc,
    securityGroups: [securityGroup],
    sources: [s3deploy.Source.asset('./website')],
});
```

## Properties

- `allowAllIpv6Outbound`: boolean = false — Whether to allow all outbound ipv6 traffic by default.

  If this is set to true, there will only be a single egress rule which allows all
  outbound ipv6 traffic. If this is set to false, no outbound traffic will be allowed by
  default and all egress ipv6 traffic must be explicitly authorized.

  To allow all ipv4 traffic use allowAllOutbound

- `allowAllOutbound`: boolean = true — Whether to allow all outbound traffic by default.

  If this is set to true, there will only be a single egress rule which allows all
  outbound traffic. If this is set to false, no outbound traffic will be allowed by
  default and all egress traffic must be explicitly authorized.

  To allow all ipv6 traffic use allowAllIpv6Outbound

- `description`: string — A description of the security group.

  **Default:** The default name will be the construct's CDK path.

- `disableInlineRules`: boolean = false — Whether to disable inline ingress and egress rule optimization.

  If this is set to true, ingress and egress rules will not be declared under the
  SecurityGroup in cloudformation, but will be separate elements.

  Inlining rules is an optimization for producing smaller stack templates. Sometimes
  this is not desirable, for example when security group access is managed via tags.

  The default value can be overridden globally by setting the context variable
  '@aws-cdk/aws-ec2.securityGroupDisableInlineRules'.

- `securityGroupName`: string — The name of the security group.

  **Default:** If you don't specify a GroupName, AWS CloudFormation generates a unique physical ID and uses that ID for the group name.

  For valid values, see the GroupName
  parameter of the CreateSecurityGroup action in the Amazon EC2 API
  Reference.

  It is not recommended to use an explicit group name.

- `vpc`: [IVpc](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html) (required) — The VPC in which to create the security group.
