Skip to content

NetworkAcl ​

The NetworkAcl resource allows you to manage AWS EC2 Network Acls for controlling inbound and outbound traffic to and from your subnets.

Minimal Example ​

Create a basic NetworkAcl in a specified VPC with a tag.

ts
import AWS from "alchemy/aws/control";

const basicNetworkAcl = await AWS.EC2.NetworkAcl("basicNetworkAcl", {
  VpcId: "vpc-123abc45",
  Tags: [{ Key: "Name", Value: "BasicNetworkAcl" }]
});

Advanced Configuration ​

Configure a NetworkAcl with additional tags and adopt existing resources.

ts
const advancedNetworkAcl = await AWS.EC2.NetworkAcl("advancedNetworkAcl", {
  VpcId: "vpc-678def90",
  Tags: [
    { Key: "Environment", Value: "Production" },
    { Key: "Department", Value: "IT" }
  ],
  adopt: true
});

Example with Security Rules ​

Create a NetworkAcl that includes specific traffic rules for inbound and outbound access.

ts
const secureNetworkAcl = await AWS.EC2.NetworkAcl("secureNetworkAcl", {
  VpcId: "vpc-abc123de",
  Tags: [{ Key: "Name", Value: "SecureNetworkAcl" }],
  Rules: [
    {
      RuleAction: "allow",
      RuleNumber: 100,
      Protocol: "tcp",
      PortRange: { From: 22, To: 22 },
      CidrBlock: "0.0.0.0/0",
      Egress: false
    },
    {
      RuleAction: "allow",
      RuleNumber: 101,
      Protocol: "tcp",
      PortRange: { From: 80, To: 80 },
      CidrBlock: "0.0.0.0/0",
      Egress: true
    },
    {
      RuleAction: "deny",
      RuleNumber: 102,
      Protocol: "-1",
      CidrBlock: "0.0.0.0/0",
      Egress: false
    }
  ]
});

Adoption of Existing NetworkAcl ​

Adopt an existing NetworkAcl with the option to manage it through Alchemy.

ts
const adoptExistingNetworkAcl = await AWS.EC2.NetworkAcl("adoptNetworkAcl", {
  VpcId: "vpc-existing-01",
  adopt: true
});