Skip to content

AuthPolicy ​

The AuthPolicy resource lets you manage AWS VpcLattice AuthPolicys for controlling access to your VPC resources based on defined rules.

Minimal Example ​

Create a basic AuthPolicy with required properties and a common optional property.

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

const basicAuthPolicy = await AWS.VpcLattice.AuthPolicy("basicAuthPolicy", {
  Policy: {
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Action: "vpclattice:Access",
        Resource: "*",
        Condition: {
          StringEquals: {
            "vpclattice:SourceVpc": "vpc-12345678"
          }
        }
      }
    ]
  },
  ResourceIdentifier: "myVpcResource",
  adopt: true // Optional: adopt existing resource
});

Advanced Configuration ​

Configure an AuthPolicy with more complex rules and multiple conditions for enhanced security.

ts
const advancedAuthPolicy = await AWS.VpcLattice.AuthPolicy("advancedAuthPolicy", {
  Policy: {
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Action: [
          "vpclattice:Access",
          "vpclattice:Invoke"
        ],
        Resource: "*",
        Condition: {
          StringEquals: {
            "vpclattice:SourceVpc": "vpc-12345678",
            "vpclattice:User": "user1234"
          },
          NumericLessThan: {
            "vpclattice:RequestCount": 100
          }
        }
      }
    ]
  },
  ResourceIdentifier: "myAdvancedVpcResource"
});

Custom Policies for Specific Use Cases ​

Create an AuthPolicy that limits access based on specific IP ranges and request methods.

ts
const ipRestrictedAuthPolicy = await AWS.VpcLattice.AuthPolicy("ipRestrictedAuthPolicy", {
  Policy: {
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Deny",
        Action: "vpclattice:Access",
        Resource: "*",
        Condition: {
          NotIpAddress: {
            "vpclattice:SourceIp": "192.168.1.0/24"
          }
        }
      },
      {
        Effect: "Allow",
        Action: "vpclattice:Access",
        Resource: "*",
        Condition: {
          StringEquals: {
            "vpclattice:RequestMethod": "GET"
          }
        }
      }
    ]
  },
  ResourceIdentifier: "myIpRestrictedVpcResource"
});