Skip to content

BackupVault ​

The BackupVault resource allows you to manage AWS Backup BackupVaults for storing and organizing backup data securely.

Minimal Example ​

Create a basic backup vault with a name and optional tags.

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

const backupVault = await AWS.Backup.BackupVault("myBackupVault", {
  BackupVaultName: "MyBackupVault",
  BackupVaultTags: {
    Environment: "Production",
    Project: "WebsiteMigration"
  }
});

Advanced Configuration ​

Configure a backup vault with encryption and notifications.

ts
const secureBackupVault = await AWS.Backup.BackupVault("secureBackupVault", {
  BackupVaultName: "SecureBackupVault",
  EncryptionKeyArn: "arn:aws:kms:us-west-2:123456789012:key/abcd1234-a123-456a-a12b-a123b4cd56ef",
  Notifications: {
    BackupVaultEvents: ["BACKUP_JOB_FAILED", "BACKUP_JOB_COMPLETED"],
    SNSTopicArn: "arn:aws:sns:us-west-2:123456789012:MySNSTopic"
  }
});

Lock Configuration ​

Create a backup vault with lock configuration to prevent accidental deletion.

ts
const lockedBackupVault = await AWS.Backup.BackupVault("lockedBackupVault", {
  BackupVaultName: "LockedBackupVault",
  LockConfiguration: {
    MinRetentionDays: 30,
    MaxRetentionDays: 365
  }
});

Access Policy ​

Set an access policy for the backup vault to control permissions.

ts
const policyBackupVault = await AWS.Backup.BackupVault("policyBackupVault", {
  BackupVaultName: "PolicyBackupVault",
  AccessPolicy: {
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Principal: {
          AWS: "arn:aws:iam::123456789012:user/BackupUser"
        },
        Action: "backup:StartBackupJob",
        Resource: "*"
      }
    ]
  }
});