Skip to content
GitHubXDiscord

BackupVault

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

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

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

Configure a backup vault with encryption and notifications.

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"
}
});

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

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

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

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: "*"
}
]
}
});