Skip to content

VerifiedAccessGroup ​

The VerifiedAccessGroup resource lets you manage AWS EC2 Verified Access Groups for controlling access to your EC2 instances.

Minimal Example ​

Create a basic Verified Access Group with required properties.

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

const basicVerifiedAccessGroup = await AWS.EC2.VerifiedAccessGroup("basicAccessGroup", {
  VerifiedAccessInstanceId: "vai-0123456789abcdef0",
  Description: "Basic access group for testing",
  PolicyEnabled: true,
  PolicyDocument: JSON.stringify({
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Action: "ec2:DescribeInstances",
        Resource: "*"
      }
    ]
  }),
  Tags: [
    {
      Key: "Environment",
      Value: "Development"
    }
  ]
});

Advanced Configuration ​

Configure a Verified Access Group with additional security specifications and policy documents.

ts
const advancedVerifiedAccessGroup = await AWS.EC2.VerifiedAccessGroup("advancedAccessGroup", {
  VerifiedAccessInstanceId: "vai-0123456789abcdef0",
  Description: "Advanced access group with custom policies",
  PolicyEnabled: true,
  PolicyDocument: JSON.stringify({
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Action: "ec2:StartInstances",
        Resource: "arn:aws:ec2:us-west-2:123456789012:instance/*"
      },
      {
        Effect: "Deny",
        Action: "ec2:TerminateInstances",
        Resource: "*"
      }
    ]
  }),
  SseSpecification: {
    KmsKeyId: "arn:aws:kms:us-west-2:123456789012:key/abcd-1234-abcd-1234-abcd1234",
    EncryptionEnabled: true
  },
  Tags: [
    {
      Key: "Department",
      Value: "Engineering"
    }
  ]
});

Policy Document Example ​

Illustrate how to create a Verified Access Group with a more complex IAM policy document.

ts
const complexPolicyVerifiedAccessGroup = await AWS.EC2.VerifiedAccessGroup("complexPolicyAccessGroup", {
  VerifiedAccessInstanceId: "vai-0123456789abcdef0",
  Description: "Access group with complex IAM policy",
  PolicyEnabled: true,
  PolicyDocument: JSON.stringify({
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Action: [
          "ec2:DescribeInstances",
          "ec2:StartInstances"
        ],
        Resource: "*"
      },
      {
        Effect: "Deny",
        Action: "ec2:StopInstances",
        Resource: "*",
        Condition: {
          StringEquals: {
            "aws:ResourceTag/Environment": "Production"
          }
        }
      }
    ]
  })
});

Adoption of Existing Resources ​

Use the adopt option to manage an existing Verified Access Group instead of creating a new one.

ts
const existingVerifiedAccessGroup = await AWS.EC2.VerifiedAccessGroup("existingAccessGroup", {
  VerifiedAccessInstanceId: "vai-0123456789abcdef0",
  Description: "Adopting an existing access group",
  PolicyEnabled: true,
  adopt: true
});