• Public
  • Public/Protected
  • All

Class CopySnapshotCommand

Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy a snapshot within the same Region, from one Region to another, or from a Region to an Outpost. You can't copy a snapshot from an Outpost to a Region, from one Outpost to another, or within the same Outpost.

You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs).

When copying snapshots to a Region, copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted, unless you enable encryption for the snapshot copy operation. By default, encrypted snapshot copies use the default Key Management Service (KMS) KMS key; however, you can specify a different KMS key. To copy an encrypted snapshot that has been shared from another account, you must have permissions for the KMS key used to encrypt the snapshot.

Snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region, or a different key that you specify in the request using KmsKeyId. Outposts do not support unencrypted snapshots. For more information, Amazon EBS local snapshots on Outposts in the Amazon Elastic Compute Cloud User Guide.

Snapshots created by copying another snapshot have an arbitrary volume ID that should not be used for any purpose.

For more information, see Copy an Amazon EBS snapshot in the Amazon Elastic Compute Cloud User Guide.


Use a bare-bones client and the command you need to make an API call.

import { EC2Client, CopySnapshotCommand } from "@aws-sdk/client-ec2"; // ES Modules import
// const { EC2Client, CopySnapshotCommand } = require("@aws-sdk/client-ec2"); // CommonJS import
const client = new EC2Client(config);
const command = new CopySnapshotCommand(input);
const response = await client.send(command);

CopySnapshotCommandInput for command's input shape.


CopySnapshotCommandOutput for command's response shape.


config for EC2Client's config shape.







Readonly input

input: CopySnapshotCommandInput

Readonly middlewareStack

middlewareStack: IMiddlewareStack<CopySnapshotCommandInput, CopySnapshotCommandOutput>


Static getEndpointParameterInstructions