Skip to content

Conversation

alukach
Copy link
Contributor

@alukach alukach commented Jul 7, 2025

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

Due to the fact that the KeyGeneratorFunction did not handle UPDATE events, the downstream CloudFrontSigningPublicKey resource would receive an empty EncodedKey an 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.
@alukach alukach requested a review from nathanielrindlaub July 7, 2025 21:37
@nathanielrindlaub nathanielrindlaub merged commit d7c1474 into master Jul 10, 2025
3 checks passed
@nathanielrindlaub nathanielrindlaub deleted the fix/handle-updates-for-cf-publickey branch July 10, 2025 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants