fix: Prevent zero-ing out public keys on updates #89
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Due to the fact that the KeyGeneratorFunction did not handle UPDATE events, the downstream CloudFrontSigningPublicKey resource would receive an empty EncodedKey and thus attempt to update the resource to an invalid state. As a fix, we have update the keypair generation logic to return the stored public key on updates, ensuring that downstream resources would receive the same output on UPDATE events as they do on CREATE events. This required us to store the public key in SSM on create. Along the way, we've simplified the function payloads within the custom resource to promote a more unified format between create and update events. Additionally, we've removed unnecessary permissions.
Note
Being that we hadn't stored the PublicKey in SSM when it was initially created, I have gone in and manually created SSM Parameter
/images/cloudfront-distribution-publickey-dev