Homeβ€Ί Blogβ€Ί AWS Architecture Series #87 β€” The backup AWS cannot read, and you cannot restore without them…
AWS Architecture AWS Architecture Series

AWS Architecture Series #87 β€” The backup AWS cannot read, and you cannot restore without them

CloudHSM's backup design holds two properties at once that sound contradictory and are not. The backup is confidential from AWS, because AWS cannot decrypt it. And it is useless without AWS, because it can only be restored onto AWS-owned HSMs from the same manufacturer. Both are documented, and together they define exactly what your recovery options are.

Verified against current vendor documentation on 19 October 2026. Pricing, limits and API behaviour were checked against the official docs on that date. Cloud services change fast — if you are reading this much later, treat the specifics as a starting point and re-check the linked sources.

Business Challenge

CloudHSM is where you put keys when "AWS can technically access this" is not an acceptable answer. The backup documentation makes the strong claim that justifies choosing it: “backups cannot be decrypted by AWS because AWS doesn't have access to key used to decrypt the backups.”

Four pages later, in the same section, is the constraint that comes with it: “AWS CloudHSM can restore backups onto only AWS-owned HSMs made by the same manufacturer.”

Neither of those is marketing and neither contradicts the other. Read together they tell you something precise about where you stand, and it is worth knowing before the day you need a restore rather than during it.

1A backup moved to another Region stops having a retention policy, and becomes yours to delete by hand

The policy attaches to the wrong noun for the thing you are about to do. “AWS CloudHSM purges backups based on the backup retention policy you set when you create a cluster. Backup retention policy applies to clusters.”

And then:

“If you move a backup to a different region, that backup is no longer associated with a cluster and has no backup retention policy. You must manually delete any backups not associated with a cluster.”

Copying a backup to a second Region is the obvious resilience move — it is why the operation exists. The side effect is that the copy leaves the lifecycle entirely. It will not be purged at 90 days or 379 days or ever; it does not appear in a retention report; and because “AWS CloudTrail reports backups marked for deletion” and nothing is ever marking this one, it will not show up there either.

A CloudHSM backup contains, in AWS's words, “all users, keys, and configuration from the original HSM”. An indefinitely retained copy of that in a Region nobody is looking at is a governance problem rather than a billing one.

Fix

Treat a cross-Region backup copy as a resource you own outright, with its own ticket and its own review date. If your key material has a retention requirement, that requirement does not travel with the copy — you have to re-implement it. Enumerate backups with no cluster association periodically; that set is exactly the set nothing is managing.

2The property that makes the backup safe is the property that binds it to AWS hardware

The encryption chain is documented in enough detail to see why both facts hold. The data is encrypted inside the HSM with an ephemeral key: “The EBK is an AES 256-bit encryption key generated inside the HSM when AWS CloudHSM makes a backup”, and “The data never leaves the HSM in plaintext form.”

That ephemeral key is itself encrypted by a persistent one, and the persistent one is derived rather than stored — from two inputs:

“A manufacturer key backup key (MKBK), permanently embedded in the HSM hardware by the hardware manufacturer.”

“An AWS key backup key (AKBK), securely installed in the HSM when it's initially configured by AWS CloudHSM.”

So the decryption key exists only where both of those inputs exist, which is inside an HSM of that manufacture that AWS has configured. That is simultaneously why AWS cannot read your backup — the key is not something AWS holds — and why no one else can restore it either.

The practical reading: this is not a backup in the sense of a file you could take elsewhere. It is a backup in the sense of a restore ticket valid at one vendor.

Fix

Do not write a disaster recovery plan whose fallback is "restore the HSM backup somewhere else". There is no somewhere else. If your requirement is genuine independence from AWS, the artifact that provides it is an exported key under your own wrapping, not a cluster backup — and that is a different design with different exposure, to be decided deliberately rather than discovered.

3A restore overwrites everything, and the backup carries the old access controls with it

Two sentences that belong on the same page as your restore runbook.

“Because each backup contains all users, keys, and configuration from the original HSM, the restored HSM contains the same protections and access controls as the original.”

“The restored data overwrites all other data that might have been on the HSM prior to restoration.”

The first means a restore is a rollback of your user and quorum configuration, not just of key material. If you removed a crypto officer last month and restore a backup from two months ago, that officer is back, with whatever permissions they had.

The second means there is no merge. Restoring into a cluster that has been in use since the backup was taken does not combine the two sets of keys; it replaces one with the other.

Fix

Make the user and quorum configuration part of what you track alongside each backup, because restoring reinstates it. And before any restore into a live cluster, establish what has been created since the backup's timestamp — that is the set you are about to lose, and the service will not warn you about it.

Architecture

An HSM that encrypts its own backups, a derived key that exists only inside AWS-configured hardware of one manufacture, and a retention policy attached to clusters rather than to backups.

Diagram: how an AWS CloudHSM cluster backup is encrypted, where it is stored, what is required to restore it, and what the retention policy does and does not cover. AWS CloudHSM makes periodic backups of the users, keys and policies in the cluster, described as secure, durable and updated on a predictable schedule, and stores them in a service-controlled Amazon S3 bucket in the same region as the cluster, with a 99.999999999 percent durability level, the same as any object stored in Amazon S3. The encryption chain is documented in detail. When CloudHSM makes a backup from the HSM, the HSM encrypts all of its data before sending it to CloudHSM, and the data never leaves the HSM in plaintext form. The HSM uses a unique ephemeral encryption key called the ephemeral backup key or EBK, an AES 256-bit key generated inside the HSM at backup time, and wraps the data with a FIPS-approved AES key wrapping method. The encrypted data includes an encrypted copy of the EBK, which is itself encrypted using a persistent backup key or PBK, also an AES 256-bit key. The PBK is derived rather than stored, using a FIPS-approved key derivation function in counter mode, and its inputs include a manufacturer key backup key permanently embedded in the HSM hardware by the hardware manufacturer, and an AWS key backup key securely installed in the HSM when it is initially configured by CloudHSM. Two consequences follow and they are the central point of the post. First, backups cannot be decrypted by AWS because AWS does not have access to the key used to decrypt the backups, which is the property that justifies choosing CloudHSM when AWS technical access is not acceptable. Second, CloudHSM can restore backups onto only AWS-owned HSMs made by the same manufacturer, because the derivation inputs exist only inside such hardware. So the backup is confidential from AWS and simultaneously unusable without AWS, which means it is not a file that can be taken elsewhere but a restore ticket valid at one vendor, and a disaster recovery plan must not treat restoring the HSM backup somewhere else as a fallback. A backup consists of only encrypted data, and before the service stores it in S3 the service encrypts the backup again using AWS Key Management Service. On restore semantics, because each backup contains all users, keys and configuration from the original HSM, the restored HSM contains the same protections and access controls as the original, so a restore rolls back user and quorum configuration as well as key material and can reinstate a removed crypto officer. The restored data overwrites all other data that might have been on the HSM prior to restoration, so there is no merge and anything created since the backup timestamp is lost. On lifecycle, CloudHSM purges backups based on the backup retention policy set when a cluster is created, and that policy applies to clusters rather than to backups. The consequence worth acting on is that if a backup is moved to a different region it is no longer associated with a cluster and has no backup retention policy, and the customer must manually delete any backups not associated with a cluster. The cross-Region copy made for resilience therefore leaves the lifecycle entirely: it is never purged, has no expiration, and since CloudTrail reports backups marked for deletion and nothing marks this one, it does not appear there either, while still containing all users, keys and configuration from the original HSM. The retention period can be set to any number between 7 and 379 days. Clusters created before November 18, 2020 have a retention policy of 90 days plus the age of the cluster, with AWS's own example being a cluster created on November 18, 2019 receiving one year plus 90 days, that is 455 days. CloudHSM does not delete a cluster's last backup, which is a deliberate floor. Managed backup retention can be opted out of altogether by contacting AWS Support. To prevent a race condition, the retention policy for a cluster should be changed before restoring a backup that the service deleted. Deletion is reversible for a bounded window: after a backup is deleted the service holds it for seven days during which it can be restored, after which it can no longer be restored, and a deleted backup moves to the PENDING_DELETE state and can be restored for up to 7 days after deletion is requested. Finally, before a cluster can be deleted all HSMs must be removed from it. The recommended actions are to treat every cross-Region backup copy as a resource owned outright with its own review date because its retention requirement does not travel with it, to enumerate backups with no cluster association since that set is exactly what nothing is managing, to avoid any recovery plan that assumes a backup can be restored outside AWS, to track the user and quorum configuration alongside each backup because a restore reinstates it, and to establish what has been created since a backup's timestamp before restoring into a live cluster because that is the set about to be overwritten.
Opaque to AWS, and restorable only by AWS. Both from the same key derivation.

The key chain, and why it has exactly this consequence

KeyWhat it isWhere it comes from
EBK — ephemeral backup key “AES 256-bit”, encrypts the HSM's data “generated inside the HSM when AWS CloudHSM makes a backup”
PBK — persistent backup key “also an AES 256-bit encryption key”, encrypts the EBK Derived, from the two inputs below
MKBK — manufacturer key backup key A derivation input “permanently embedded in the HSM hardware by the hardware manufacturer”
AKBK — AWS key backup key A derivation input “securely installed in the HSM when it's initially configured by AWS CloudHSM”

Read bottom-up and the two headline facts stop being surprising. The PBK is not stored anywhere; it is derived, and both of its documented inputs live inside the HSM — one embedded by the manufacturer, one installed by AWS. AWS states the two consequences directly rather than leaving them to be worked out: “backups cannot be decrypted by AWS”, and restores go “onto only AWS-owned HSMs made by the same manufacturer”. The derivation is the reason both sentences can be true at once.

And then it is encrypted again

“A backup consists of only encrypted data. Before the service stores a backup in Amazon S3, the service encrypts the backup again using AWS Key Management Service (AWS KMS).”

The outer layer is the one AWS can manage; the inner layer is the one it cannot. Worth knowing which is which, because the outer layer is the one that shows up in your KMS key policies and CloudTrail, and it is not the layer protecting your key material.

Where backups live, and how durable that is

“AWS CloudHSM stores backups in a service-controlled Amazon Simple Storage Service (Amazon S3) bucket in the same region as your cluster”, with “a 99.999999999% durability level, the same as any object stored in Amazon S3”.

Service-controlled is the word to notice. The bucket is not in your account, so there is no bucket policy of yours on it, no object lock you can apply, and no lifecycle rule you can write. The only lifecycle control available is the retention policy, which is why its scoping matters so much.

The lifecycle numbers, in one table

ControlValueNotes
Retention period, settable range7 to 379 daysSet when you create a cluster; changeable later
Clusters created before 18 Nov 2020“90 days plus the age of the cluster”AWS's example: a Nov 2019 cluster gets 365 + 90 = 455 days
Last backupNever purged“AWS CloudHSM does not delete a cluster's last backup”
After you delete a backup7 days to restore itState becomes PENDING_DELETE; after seven days “you can no longer restore the backup”
Cross-Region copyNo policy at all“You must manually delete”
Opting out of managed retentionPossible“by contacting AWS Support”
One ordering warning, stated by AWS and easy to trip over

“To prevent a race condition, you should change the backup retention policy for the cluster before you restore a backup deleted by the service.”

Restoring a service-purged backup into a cluster whose policy still says to purge it is a loop you can lose. Change the policy first, then restore — the documentation says so, and the reason is that both actions are racing the same deadline.

Deleting a cluster is a two-step operation

“Before you can delete a cluster, you must remove all HSMs from the cluster.”

Which is a reasonable guard, and it means "delete the cluster" is not a single call that could be made by accident or by an over-broad automation. It also means the last backup survives the cluster, because nothing purges it.

Why This Architecture Holds Up

Deriving the backup key rather than storing it is the whole product

The alternative designs are both worse. A backup key stored by AWS means AWS can decrypt your keys, which defeats the reason CloudHSM exists. A backup key held only by you means a lost key is lost key material with no recovery, and AWS would be operating a service whose main failure mode it cannot help with.

Deriving it from a manufacturer-embedded value plus an AWS-installed value gives a third thing: the key exists reliably, in hardware, and in no one's hands. The cost is the restore constraint, and AWS states the constraint plainly instead of letting you discover it.

Not deleting the last backup is the right floor

“AWS CloudHSM does not delete a cluster's last backup.” A retention policy that could take you to zero backups is a retention policy that can destroy key material on a schedule nobody reviewed. Refusing the final deletion means the worst case of a misconfigured policy is a stale cluster rather than an unrecoverable one.

The seven-day window after an explicit delete is the same instinct applied to the manual path, and the PENDING_DELETE state makes it queryable rather than implicit — you can list exactly what is in the grace period.

The gap is the noun the policy attaches to

Everything above is careful. The retention design has a floor, a grace period, a queryable state, and a CloudTrail record. All of it keys off the cluster association — and the one operation you perform specifically to survive losing a Region is the operation that severs that association.

So the most carefully protected copy and the least governed copy are produced by the same resilience decision. Nothing is broken; the lifecycle simply has no noun to hang on once the backup is standalone, and AWS says so rather than pretending otherwise.

Stating the restore constraint in the security section is the honest placement

“AWS CloudHSM can restore backups onto only AWS-owned HSMs made by the same manufacturer” appears in the page explaining backup encryption, next to the derivation that causes it — not buried in a limitations list. That is the difference between a documented consequence and a surprise: the reader who understands the key chain already expects the sentence by the time they reach it.

Key Architecture Decisions

Decision Choice Reasoning
Cross-Region backup copies Own them explicitly, with a review date They have “no backup retention policy” and you “must manually delete” them.
DR plan fallback Never "restore the backup elsewhere" Restorable “onto only AWS-owned HSMs made by the same manufacturer”.
Genuine vendor independence Exported keys under your own wrapping, decided deliberately A cluster backup cannot provide it, by construction.
Retention period Set it from your key-material requirement Range is 7 to 379 days; the default for old clusters is age-dependent.
Before restoring into a live cluster Inventory what was created since the backup The restore “overwrites all other data” — there is no merge.
User and quorum changes Track them against backup timestamps A restored HSM has “the same protections and access controls as the original”.
Restoring a service-purged backup Change the policy first AWS names the race condition explicitly.
Deleting a cluster Expect two steps “you must remove all HSMs from the cluster” first.
Expecting bucket-level controls Do not plan on them The bucket is “service-controlled”; retention policy is the only lever.
Opting out of managed retention Only with a replacement process It is available “by contacting AWS Support”, and removes the floor's usefulness.

The audit worth running

List every backup with no cluster association. That set has no retention policy, no expiry and no deletion record, and each member contains “all users, keys, and configuration from the original HSM”. If the list is longer than your team expects, each extra entry is a copy of your key material that somebody made for a good reason and nothing has governed since.

Then read your DR document for the phrase "restore the backup". If it does not say "into a CloudHSM cluster in an AWS Region", it is assuming a capability that does not exist.

Closing Thought

The two sentences this post is built on look like a contradiction and are a single design decision seen from two sides. The backup key is derived inside hardware from a manufacturer value and an AWS value, so it is in nobody's custody — which is exactly why AWS cannot read your backup, and exactly why nothing outside AWS can restore it. You cannot have the first property without the second. The documentation is clear about both and puts them on the same page.

What is genuinely easy to miss is the retention scoping, because it runs the other way from intuition: the copy you make to protect yourself is the copy the service stops protecting. Every other part of the lifecycle has a safeguard — a floor on the last backup, a seven-day grace period, a queryable pending state, a CloudTrail record — and all of them are expressed in terms of a cluster the standalone copy no longer belongs to.

#86 was about two operations whose names suggest the same reach and do not have it. This is about one operation whose purpose is resilience and whose side effect is leaving the lifecycle. In both cases the documentation says so; it just says so somewhere other than where you were reading.

Next in this series

Security & Identity — AWS Payment Cryptography: why importing the same key twice leaves you with two key ARNs on separate lifecycles, how TR-31 modes of use constrain what a key is permitted to do from the moment it is created, and what an alias buys that a key ARN cannot.

Comments

How was your experience?
Your feedback helps improve this site.
PoorExcellent