aws / aws-cdk

The AWS Cloud Development Kit is a framework for defining cloud infrastructure in code
https://aws.amazon.com/cdk
Apache License 2.0
11.36k stars 3.77k forks source link

aws-backup: Add L2 support for Backup Frameworks and Reports #22434

Open PeterBaker0 opened 1 year ago

PeterBaker0 commented 1 year ago

Describe the feature

Cloudformation includes support for AWS Backup Frameworks and Reports, see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html.

This feature request is for basic L2 constructs to support engineering and deploying backup frameworks and reports.

Use Case

Our team is making pretty extensive use of AWS Backup, for which the L2 constructs have been very helpful. It would be good to extend the coverage to these new features which make backup compliance reporting much easier.

There would be good opportunity for helpful abstractions e.g. Framework Controls/parameters, S3 bucket destinations and various helper functions.

Proposed Solution

I have not engineered an L2 construct before, however I think the cloudformation structure would be reasonable for the constructs e.g. Framework contains FrameworkControls, which are combinations of a value/name - where the name is an enum (which Cloudformation does a poor job of documenting). This appears to be the most complete list of control names https://docs.aws.amazon.com/aws-backup/latest/devguide/creating-frameworks-api.html.

The Reports construct seems like it would be quite simple, see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html. Could provide some nice abstractions for delivery into S3 buckets, the ReportDeliveryChannel appears to be defined here https://docs.aws.amazon.com/aws-backup/latest/devguide/create-report-plan-api.html.

Other Information

I think this might be a good first feature - if I have time I might have a crack at implementing this. But very happy for someone else to PR it.

Should not include any breaking changes.

Acknowledgements

CDK version used

2.45.0

Environment details (OS name and version, etc.)

Ubuntu 20.04

kaizencc commented 1 year ago

Hi @PeterBaker0! We are requiring new L2s to go through our RFC process so that we can talk through the design prior to spending any significant time on implementation. See our contributing guide for more info.