Skip to content

Commit 4a12e1c

Browse files
committed
Python 3.14; ReadMe: October-November, 2025 AWS Backup feature announcements
1 parent 1864325 commit 4a12e1c

File tree

2 files changed

+84
-72
lines changed

2 files changed

+84
-72
lines changed

README.md

Lines changed: 82 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,41 @@
11
# Backup Events
22

3-
- Automatically:
3+
AWS Backup is the official service for backing up resources such as: RDS,
4+
Aurora and DynamoDB databases; EBS disk volumes; entire EC2 instances; EFS file
5+
systems; entire S3 buckets; and, as of November, 2025,
6+
[Elastic Kubernetes Service (EKS) clusters](https://aws.amazon.com/about-aws/whats-new/2025/11/aws-backup-supports-amazon-eks).
47

5-
- Copy AWS Backup backups to a different account ("Central Backup" if you
6-
use
7-
[Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/enable-backup.html)
8-
or follow
9-
[multi-account best practices](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/infrastructure-ou-and-accounts.html#backup-account)).
8+
Backup Events automatically:
109

11-
- Delete original backups after copying -- but _wait_ to save money with
12-
[incremental backups](https://docs.aws.amazon.com/aws-backup/latest/devguide/creating-a-backup.html#incremental-backup-works).
10+
- **Copies your backups to a separate account** ("Central Backup" if you use
11+
[Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/enable-backup.html)
12+
or follow
13+
[multi-account best practices](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/infrastructure-ou-and-accounts.html#backup-account)).
1314

14-
- Copy backups to a second region, whether for compliance, disaster
15-
recovery preparedness, or just peace-of-mind.
15+
- **Copies your backups to a second region** for compliance, disaster recovery, or
16+
just peace-of-mind.
1617

17-
- Get started quickly, or customize.
18+
- **Deletes original backups** after they've been copied -- but waits so that you
19+
can still save money with
20+
[incremental backups](https://docs.aws.amazon.com/aws-backup/latest/devguide/creating-a-backup.html#incremental-backup-works).
1821

19-
- Try the sample backup vaults, or "bring your own vaults" (BYOV).
22+
You can get started quickly, or customize Backup Events.
2023

21-
- Try the default `aws/backup` KMS key, which lets you experiment by backing
22-
up unencrypted EFS file systems -- or "bring your own key" (BYOK) to back
23-
up any
24-
[resources that AWS Backup supports](https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-feature-availability.html#features-by-resource).
24+
- Try the sample backup vaults, or "bring your own vaults" (BYOV).
2525

26-
- Create 3 CloudFormation stacks from 1 template for a minimum installation,
27-
or deploy across many accounts and regions with a StackSet.
26+
- Try the default `aws/backup` KMS key, which lets you experiment by backing
27+
up unencrypted EFS file systems -- or "bring your own key" (BYOK) to back
28+
up
29+
[any resource that AWS Backup supports](https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-feature-availability.html#features-by-resource).
30+
31+
- Use 1 CloudFormation template to create: 3 stacks for a
32+
minimum installation _or_ 1 Stack*Set* to cover many AWS accounts
33+
and regions.
34+
35+
Since October, 2025, AWS Backup has been able to
36+
[copy an RDS or Aurora database backup to a different AWS account _and_ a different region in one step](https://aws.amazon.com/about-aws/whats-new/2025/10/aws-backup-single-action-database-snapshot-copy-regions).
37+
Backup Events remains useful for RDS and Aurora backups because it makes copies
38+
in _two_ regions, in the other account.
2839

2940
Jump to:
3041
[Quick Start](#quick-start)
@@ -43,11 +54,11 @@ Jump to:
4354

4455
1. Check prerequisites.
4556

46-
If you have already used AWS Backup from the AWS Console, to make a backup
57+
If you have already used AWS Backup from the console, to make a backup
4758
in one AWS account (your "main account") and copy it to another AWS
48-
account ("your backup account"), you are ready to try the quick-start.
49-
Find your `o-` Organization ID in the lower left corner of the
50-
[AWS Organizations](https://us-east-1.console.aws.amazon.com/organizations/v2/home/accounts)
59+
account ("your backup account"), you are ready to try the quick-start. Find
60+
your `o-` Organization ID in the lower left corner of the
61+
[AWS Organizations](https://us-east-1.console.aws.amazon.com/organizations/v2/home/accounts)
5162
console page.
5263

5364
<details>
@@ -59,23 +70,23 @@ Jump to:
5970
- Every AWS account where you intend to install Backup Events is in your
6071
organization.
6172
- In the management account, under
62-
[AWS Organizations &rarr; Services &rarr; AWS Backup](https://console.aws.amazon.com/organizations/v2/home/services/AWS%20Backup),
73+
[AWS&nbsp;Organizations&rarr;Services&rarr;AWS&nbsp;Backup](https://console.aws.amazon.com/organizations/v2/home/services/AWS%20Backup),
6374
"Trusted access" is enabled.
6475
- Under
65-
[AWS Organizations &rarr; Policies](https://console.aws.amazon.com/organizations/v2/home/policies),
76+
[AWS&nbsp;Organizations&rarr;Policies](https://console.aws.amazon.com/organizations/v2/home/policies),
6677
"Service control policies" are enabled.
6778
- Under
68-
[AWS Backup &rarr; My account &rarr; Settings &rarr; Cross-account management](https://console.aws.amazon.com/backup/home#/settings),
79+
[AWS&nbsp;Backup&rarr;My&nbsp;account&rarr;Settings&rarr;Cross-account&nbsp;management](https://console.aws.amazon.com/backup/home#/settings),
6980
all options are enabled, including "Cross-account monitoring" and
7081
"Cross-account backup".
7182
- Under "Service opt-in" (scroll up), EFS (for the quick-start) and any
7283
other relevant services are enabled.
7384
- In every AWS account where you intend to install Backup Events, the
7485
[AWSBackupDefaultServiceRole](https://console.aws.amazon.com/iam/home#/roles/details/AWSBackupDefaultServiceRole)
75-
exists. If you use the AWS Console, AWS Backup creates this role the
86+
exists. If you use the AWS Console, AWS&nbsp;Backup creates this role the
7687
first time you make an on-demand backup in a given AWS account.
7788
Otherwise, see
78-
[Default service role for AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/iam-service-roles.html#default-service-roles).
89+
[Default service role for AWS&nbsp;Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/iam-service-roles.html#default-service-roles).
7990
- Permissions are sufficient and service and resource control policies
8091
(SCPs and RCPs), permissions boundaries, or session policies do not
8192
interfere with the installation or operation of Backup Events. Check
@@ -87,8 +98,7 @@ Jump to:
8798
you would like your backups to be stored.
8899

89100
- You will need to paste your backup account number several times. Open
90-
the menu at the top right corner of the AWS Console and copy the Account
91-
ID.
101+
the menu at the top right corner of the console and copy the Account ID.
92102

93103
3. Switch to your main region, that is, the region where most of your
94104
resources (housed in a different account) are.
@@ -103,10 +113,10 @@ Jump to:
103113
[right-click to save as...]. On the next page, set:
104114

105115
- Stack name - _Copy and paste from "For Reference"_
106-
- AWS Organization ID - _From quick-start Step 1_
107-
- Backup AWS account - _From quick-start Step 2_
116+
- AWS Organization ID - _From quick-start Step&nbsp;1_
117+
- Backup AWS account - _From quick-start Step&nbsp;2_
108118
- Backup region - _Specify a different region that you do not use much_
109-
- Alternate for backup region - _From quick-start Step 3_
119+
- Alternate for backup region - _From quick-start Step&nbsp;3_
110120
- Days (from creation) to keep original backups - _Note, but do not change
111121
this, for the quick-start. With incremental backups, aim to keep the
112122
previous one
@@ -116,16 +126,16 @@ Jump to:
116126
5. Stay in the same AWS account but switch to your backup region.
117127

118128
6. Create a stack from the same template. Set **exactly the same parameter
119-
values** as in quick-start Step 4.
129+
values** as in quick-start Step&nbsp;4.
120130

121131
7. Note your backup account number before leaving (you will need it to create
122132
one more stack, but it will not be available to copy), then switch to your
123133
main AWS account.
124134

125-
8. Switch to your main region (from quick-start Step 3).
135+
8. Switch to your main region (from quick-start Step&nbsp;3).
126136

127137
9. Create a stack from the same template. Set **exactly the same parameter
128-
values** as in quick-start Step 4.
138+
values** as in quick-start Step&nbsp;4.
129139

130140
10. Create a minimal
131141
[EFS file system](https://console.aws.amazon.com/efs/home#/file-systems).
@@ -140,15 +150,15 @@ Jump to:
140150
- Change "Throughput mode" to Bursting.
141151

142152
11. When your file system is ready, go to
143-
[AWS Backup &rarr; My account &rarr; Dashboard &rarr; Create on-demand backup](https://console.aws.amazon.com/backup/home#/dashboard).
153+
[AWS&nbsp;Backup&rarr;My&nbsp;account&rarr;Dashboard&rarr;Create on-demand&nbsp;backup](https://console.aws.amazon.com/backup/home#/dashboard).
144154

145155
- Change "Resource type" to EFS and select your new file system.
146-
- Change "Total retention period" to 14 days.
156+
- Change "Total retention period" to 14&nbsp;days.
147157
- Change "Backup vault" to BackupEvents-Sample **(important)**.
148158

149159
12. Watch for completion of the backup job, and then creation and completion
150160
of a copy job. At that point, the original backup should show a "Retention
151-
period" of 8 days (instead of the initial 14 days).
161+
period" of 8&nbsp;days (instead of the initial 14&nbsp;days).
152162

153163
Switch to your backup AWS account and check for copies of your backup in
154164
the main region and the backup region.
@@ -166,18 +176,18 @@ Jump to:
166176
Tips: Change "Read-only" to `true` to see more events. Select the gear
167177
icon at the right to add the "Error code" column.
168178

169-
14. Delete the EFS file system and all of its AWS Backup backups (or let the
170-
backups expire, at a small cost).
179+
14. Delete the EFS file system and all of its AWS&nbsp;Backup backups (or let
180+
the backups expire, at a small cost).
171181

172182
- You will not be able to fully delete a Backup Events CloudFormation
173183
stack as long as backups remain in the stack's sample vault. This
174184
prevents the proliferation of unmanaged vaults.
175185

176186
## Accounts and Regions
177187

178-
The region codes are examples. Choose the regions you use, noting some
179-
differences in AWS Backup
180-
[Feature availability by Region](https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-feature-availability.html#features-by-region).
188+
The region codes are examples. Choose the regions where your resources are,
189+
noting potential differences in
190+
[AWS&nbsp;Backup feature availability by Region](https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-feature-availability.html#features-by-region).
181191

182192
### Minimum Account Layout
183193

@@ -200,7 +210,7 @@ differences in AWS Backup
200210
|Database|`888866664444`|Resources|Resources||
201211
|Backup|`999977775555`|Backups from this region|Backups from this region|Copies of backups from other regions|
202212

203-
- It would also be OK to keep resources in `us-west-2`. Second copies of any
213+
- It would also be OK to have resources in `us-west-2`. Second copies of any
204214
backups from the backup region go to an alternate that you configure, such
205215
as `us-east-1`.
206216

@@ -214,7 +224,7 @@ differences in AWS Backup
214224
2. Complete the CloudFormation prerequisites for creating a _StackSet_ with
215225
[service-managed permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-enable-trusted-access.html).
216226

217-
3. Review the Backup Events prerequisites in Step 1 of the
227+
3. Review the Backup Events prerequisites in Step&nbsp;1 of the
218228
[quick-start](#quick-start).
219229

220230
- If the AWSBackupDefaultServiceRole is not present in every AWS account
@@ -235,7 +245,7 @@ differences in AWS Backup
235245
[backup_events_aws.yaml](/backup_events_aws.yaml?raw=true)
236246
[right-click to save as...].
237247

238-
- Set parameters as in Step 4 of the [quick-start](#quick-start).
248+
- Set parameters as in Step&nbsp;4 of the [quick-start](#quick-start).
239249
- IAM role name for copying backups - _Change if you defined and
240250
disseminated a custom role, above._
241251

@@ -297,15 +307,15 @@ software at your own risk. You are encouraged to evaluate the source code._
297307
- Least-privilege SQS queue policy
298308

299309
- Option to use custom vaults (with custom KMS keys) and a custom role for
300-
AWS Backup
310+
AWS&nbsp;Backup
301311

302312
### Security Steps You Can Take
303313

304314
- Prevent modification of the components, most of which are identified by
305315
`BackupEvents` in ARNs and in the automatic `aws:cloudformation:stack-name`
306316
tag.
307317

308-
- Prevent arbitrary invokation of the AWS Lambda functions. See comments in
318+
- Prevent arbitrary invocation of the AWS Lambda functions. See comments in
309319
the CloudFormation template, including an observation about the limitations
310320
of Lambda's AddPermission operation.
311321

@@ -324,21 +334,23 @@ software at your own risk. You are encouraged to evaluate the source code._
324334
- Test Backup Events in your AWS environment. Please
325335
[report bugs](https://github.com/sqlxpert/backup-events-aws/issues).
326336

327-
- You could base automated alerts on the information sources in Step 13 of the
328-
[quick-start](#quick-start), but what really counts is the presence and
329-
restorability of final backups. Automated restoration testing and a backup
330-
policy with a flexible replacement algorithm (in case the backup from the
331-
first day of the month is unavailable, substitute the one from the second
332-
day, and so on, within a reasonable limit) is a better initial investment.
333-
[AWS Backup restore testing](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing.html)
334-
looks promising!
337+
- You could base automated alerts on the information sources in Step&nbsp;13 of
338+
the
339+
[quick-start](#quick-start),
340+
but what really matters is checking that final backups are present, can be
341+
restored, and contain the data you expect. Implementing automated restoration
342+
testing and a backup policy with a flexible replacement algorithm (in case
343+
the backup from the first day of the month is unavailable, substitute the one
344+
from the second day, and so on, within reason) is a better investment of
345+
engineering effort. Consider
346+
[AWS&nbsp;Backup restore testing](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing.html)!
335347

336348
- Set lifecycles in your backup plans, and when making on-demand backups, but
337-
**specify 7 days minimum before backups are transitioned to cold storage** /
338-
the "archive tier". Allow time for cross-account and cross-region copies to
339-
complete, and for original backups to be scheduled for deletion. If the
340-
original backup or the first copy enters cold storage too soon, you pay to
341-
store it for 90 days, and possibly to retrieve it for copying.
349+
**specify 7&nbsp;days minimum before backups are transitioned to cold
350+
storage** / the "archive tier". Allow time for cross-account and cross-region
351+
copies to complete, and for original backups to be scheduled for deletion. If
352+
the original backup or the first copy enters cold storage too soon, you pay
353+
to store it for 90&nbsp;days, and possibly to retrieve it for copying.
342354

343355
- Compare backup storage costs over time to assess the success of your
344356
NewDeleteAfterDays setting (which is applied to original backups, after they
@@ -348,12 +360,12 @@ software at your own risk. You are encouraged to evaluate the source code._
348360

349361
- Be aware of other AWS charges including but not limited to: data transfer,
350362
encryption/decryption, key management, and early deletion from cold storage.
351-
AWS Backup relies on other AWS services, each with their own charges.
363+
AWS&nbsp;Backup relies on other AWS services, each with their own charges.
352364

353365
## Related
354366

355367
- ([Code](https://github.com/aws-samples/aws-blog-automate-amazon-rds-cross-account-backups))
356-
[Automate cross-account backups of RDS and Aurora databases with AWS Backup](https://aws.amazon.com/blogs/database/automate-cross-account-backups-of-amazon-rds-and-amazon-aurora-databases-with-aws-backup/)<br>
368+
[Automate cross-account backups of RDS and Aurora databases with AWS&nbsp;Backup](https://aws.amazon.com/blogs/database/automate-cross-account-backups-of-amazon-rds-and-amazon-aurora-databases-with-aws-backup/)<br>
357369
Enrique Ramirez, _AWS Database Blog_, October 14, 2021
358370

359371
- ([Code](https://github.com/aws-samples/eventbridge-cross-account-targets))
@@ -362,8 +374,8 @@ software at your own risk. You are encouraged to evaluate the source code._
362374

363375
### Going Deeper
364376

365-
- [AWS Backup and AWS CloudFormation](https://docs.aws.amazon.com/aws-backup/latest/devguide/integrate-cloudformation-with-aws-backup.html)<br>
366-
_AWS Backup Developer Guide_
377+
- [AWS&nbsp;Backup and AWS CloudFormation](https://docs.aws.amazon.com/aws-backup/latest/devguide/integrate-cloudformation-with-aws-backup.html)<br>
378+
_AWS&nbsp;Backup Developer Guide_
367379

368380
- [What's New: KMS Multi-Region Keys](https://aws.amazon.com/blogs/security/encrypt-global-data-client-side-with-aws-kms-multi-region-keys/)<br>
369381
June 16, 2021, _AWS Security Blog_, Jeremy Stieglitz, Ben Farley, and Peter Zieske
@@ -383,10 +395,10 @@ importance of the backups, Paul wrote least-privilege IAM policies for custom
383395
roles. He had already created customer-managed, multi-region, cross-account
384396
KMS keys for the new databases.
385397

386-
Later, he added a function to rewrite AWS Backup lifecycle objects, so that
387-
backups could be deleted after they had been copied. Paul does not remember
388-
what he put in that fuction, and he has moved on from the company, but he does
389-
remember wishing for a simpler, self-documenting function.
398+
Later, he added a function to rewrite AWS&nbsp;Backup lifecycle objects, so
399+
that backups could be deleted after they had been copied. Paul does not
400+
remember what he put in that function, and he has moved on from the company,
401+
but he does remember wishing for a simpler, self-documenting function.
390402

391403
So, Paul decided to write a new solution from scratch, on his own behalf. The
392404
benefits?
@@ -417,7 +429,7 @@ benefits?
417429
end, the highest minimum is applied.
418430

419431
- From resource accounts, EventBridge directly invokes a Lambda function in
420-
the backup account. Cross-account invokation, introduced in January, 2025,
432+
the backup account. Cross-account invocation, introduced in January, 2025,
421433
eliminates a custom event bus. Paul goes further than the AWS Compute blog
422434
post and sample code, restricting permissions as much as possible.
423435

backup_events_aws.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -839,7 +839,7 @@ Resources:
839839
ApplicationLogLevel: !Ref LogLevel
840840
Architectures:
841841
- arm64
842-
Runtime: python3.13
842+
Runtime: python3.14
843843
# To avoid making users build a source bundle and distribute it to a
844844
# bucket in every target region (an AWS Lambda requirement when using
845845
# S3), supply shared, multi-handler source code in-line...
@@ -1182,7 +1182,7 @@ Resources:
11821182
ApplicationLogLevel: !Ref LogLevel
11831183
Architectures:
11841184
- arm64
1185-
Runtime: python3.13
1185+
Runtime: python3.14
11861186
# To avoid making users build a source bundle and distribute it to a
11871187
# bucket in every target region (an AWS Lambda requirement when using
11881188
# S3), supply shared, multi-handler source code in-line...

0 commit comments

Comments
 (0)