Is your feature request related to a problem? Please describe.
We use Kubernetes VolumeSnapshot with the AWS EBS CSI Driver and need an opt-in way to automatically create a cross-region copy of each EBS snapshot for disaster recovery / regional redundancy. Today the driver can create a snapshot in the controller’s region, but there is no built-in option to copy that snapshot to another region as part of the snapshot workflow.
Describe the solution you'd like in detail
Add support for cross-region snapshot copy configured via VolumeSnapshotClass.parameters (same pattern as existing snapshot features).
Proposed parameters:
copySnapshotToRegion: destination AWS region (e.g. us-west-2). If unset/empty, behavior is unchanged.
- Optional:
copySnapshotEncrypted: true|false to request an encrypted destination copy.
copySnapshotDestinationKmsKeyId: destination-region KMS key ID/ARN to use when encrypting the copy.
Example:
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: csi-aws-vsc-dr
driver: ebs.csi.aws.com
deletionPolicy: Delete
parameters:
copySnapshotToRegion: "us-west-2"
Optional parameters (encrypted destination copy and KMS in the destination region):
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: csi-aws-vsc-dr-encrypted
driver: ebs.csi.aws.com
deletionPolicy: Delete
parameters:
copySnapshotToRegion: "us-west-2"
copySnapshotEncrypted: "true"
copySnapshotDestinationKmsKeyId: "arn:aws:kms:us-west-2:111122223333:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
Using a KMS key UUID instead of ARN:
parameters:
copySnapshotToRegion: "us-west-2"
copySnapshotEncrypted: "true"
copySnapshotDestinationKmsKeyId: "12345678-1234-1234-1234-123456789012"
Encrypted copy without an explicit destination key (when account/AWS defaults allow):
parameters:
copySnapshotToRegion: "ap-southeast-2"
copySnapshotEncrypted: "true"
Explicitly unencrypted destination copy (only when appropriate for your case):
parameters:
copySnapshotToRegion: "eu-west-1"
copySnapshotEncrypted: "false"
Notes:
- Replace regions, account IDs, and KMS key IDs/ARNs with your own values.
- Quote
"true" and "false" so Kubernetes passes them as strings to the CSI driver.
- The KMS key policy in the destination region must allow the IAM principal used by the EBS CSI controller.
- Encrypted cross-region copies often need an explicit destination CMK; if copy fails with only
copySnapshotEncrypted: "true", add copySnapshotDestinationKmsKeyId.
Expected behavior / acceptance criteria:
- If
copySnapshotToRegion is not set: no behavior change compared to today.
- If
copySnapshotToRegion is set:
- Driver creates the source snapshot normally.
- After the source snapshot is ready, driver triggers EC2
CopySnapshot into the requested destination region.
- If
copySnapshotToRegion equals the driver/controller region: fail with InvalidArgument.
- Copy should be idempotent on retries (avoid creating multiple destination copies for the same source snapshot).
- Document IAM requirements (at minimum
ec2:CopySnapshot; possibly tagging permissions depending on how results are recorded).
Describe alternatives you've considered
- External automation (Lambda / EventBridge / scripts) that watches for snapshots and performs cross-region copy. This adds operational complexity and is not directly tied to the CSI snapshot lifecycle and configuration.
- Maintaining separate workflows per team/namespace instead of a CSI driver-supported parameter.
Additional context
This should follow the existing model of snapshot configuration via VolumeSnapshotClass.parameters (similar to snapshot tagging, Fast Snapshot Restore, and snapshot lock).
Is your feature request related to a problem? Please describe.
We use Kubernetes
VolumeSnapshotwith the AWS EBS CSI Driver and need an opt-in way to automatically create a cross-region copy of each EBS snapshot for disaster recovery / regional redundancy. Today the driver can create a snapshot in the controller’s region, but there is no built-in option to copy that snapshot to another region as part of the snapshot workflow.Describe the solution you'd like in detail
Add support for cross-region snapshot copy configured via
VolumeSnapshotClass.parameters(same pattern as existing snapshot features).Proposed parameters:
copySnapshotToRegion: destination AWS region (e.g.us-west-2). If unset/empty, behavior is unchanged.copySnapshotEncrypted:true|falseto request an encrypted destination copy.copySnapshotDestinationKmsKeyId: destination-region KMS key ID/ARN to use when encrypting the copy.Example:
Optional parameters (encrypted destination copy and KMS in the destination region):
Using a KMS key UUID instead of ARN:
Encrypted copy without an explicit destination key (when account/AWS defaults allow):
Explicitly unencrypted destination copy (only when appropriate for your case):
Notes:
"true"and"false"so Kubernetes passes them as strings to the CSI driver.copySnapshotEncrypted: "true", addcopySnapshotDestinationKmsKeyId.Expected behavior / acceptance criteria:
copySnapshotToRegionis not set: no behavior change compared to today.copySnapshotToRegionis set:CopySnapshotinto the requested destination region.copySnapshotToRegionequals the driver/controller region: fail withInvalidArgument.ec2:CopySnapshot; possibly tagging permissions depending on how results are recorded).Describe alternatives you've considered
Additional context
This should follow the existing model of snapshot configuration via
VolumeSnapshotClass.parameters(similar to snapshot tagging, Fast Snapshot Restore, and snapshot lock).