fix(race condition): Apply bucket policies to avoid race condition #224
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.
Purpose
This changeset changes how bucket policies are applied to avoid an existing race condtiion.
Linked Issues to Close
None
Approach
In cloudformation, we build the bucket and the policy as separate logical items.
This means there's a brief window in time where the bucket does not have an explicitly set policy.
CMS has an active remediation appliance that often will apply a policy to the bucket before ours is applied.
While our policy covers the CMS policy and is secure, cloudformation cannot update a policy for a bucket that already has a policy.
This approach uses a custom resource. It uses teh aws sdk v3 to put the policy on the bucket. It doesn't matter if a policy already exists or not.
Assorted Notes/Considerations/Learning
This is not ideal; we should revert this when our accounts are opted out of active remediation.