-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(s3): buckets with SSE-KMS silently fail to receive logs #23385
Conversation
AWS S3 Server Access Logging does not support logging to buckets that use SSE-KMS, only to buckets without default encryption or to buckets that use SSE-S3. At least in some cases, this misconfiguration can be caught within the CDK (when logging to the same bucket or when the target bucket is using a KMS CMK). This will still fail to catch scenarios where the target bucket is using SSE-KMS using a KMS-managed key because the `encryptionKey` property is not set on the Bucket in that scenario. This may be a breaking change for some users; what is currently a mostly silent misconfiguration will become an error when synthesizing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pull request linter has failed. See the aws-cdk-automation comment below for failure reasons. If you believe this pull request should receive an exemption, please comment and provide a justification.
I don't know of any situations where there's currently an integration test for expected failures; I am happy to write one if there's an example to follow |
✅ Updated pull request passes all PRLinter validations. Dissmissing previous PRLinter review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the fix!
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
AWS S3 Server Access Logging does not support logging to buckets that use SSE-KMS, only to buckets without default encryption or to buckets that use SSE-S3. At least in some cases, this misconfiguration can be caught within the CDK (when logging to the same bucket or when the target bucket is using a KMS CMK). This will still fail to catch scenarios where the target bucket is using SSE-KMS using a KMS-managed key because the `encryptionKey` property is not set on the Bucket in that scenario. This may be a breaking change for some users; what is currently a mostly silent misconfiguration will become an error when synthesizing. ---- ### All Submissions: * [X] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) ### Adding new Construct Runtime Dependencies: * [ ] This PR adds new construct runtime dependencies following the process described [here](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md/#adding-construct-runtime-dependencies) ### New Features * [ ] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/main/INTEGRATION_TESTS.md)? * [ ] Did you use `yarn integ` to deploy the infrastructure and generate the snapshot (i.e. `yarn integ` without `--dry-run`)? *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
AWS S3 Server Access Logging does not support logging to buckets that use SSE-KMS, only to buckets without default encryption or to buckets that use SSE-S3. At least in some cases, this misconfiguration can be caught within the CDK (when logging to the same bucket or when the target bucket is using a KMS CMK). This will still fail to catch scenarios where the target bucket is using SSE-KMS using a KMS-managed key because the `encryptionKey` property is not set on the Bucket in that scenario. This may be a breaking change for some users; what is currently a mostly silent misconfiguration will become an error when synthesizing. ---- ### All Submissions: * [X] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) ### Adding new Construct Runtime Dependencies: * [ ] This PR adds new construct runtime dependencies following the process described [here](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md/#adding-construct-runtime-dependencies) ### New Features * [ ] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/main/INTEGRATION_TESTS.md)? * [ ] Did you use `yarn integ` to deploy the infrastructure and generate the snapshot (i.e. `yarn integ` without `--dry-run`)? *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…uckets (#25350) The previous changes(#23514 & #23385) about failing early when certain encryption type being used is not correct. In fact, KMS encryption works fine for server access logging target buckets with proper permission being setup. So this change is removing the condition failing for the SSE-KMS with customized encryption key case. However, it is not possible to know which encryption type for the server access logging bucket, so the only checking can be applied after this change merged is failing when logging to self case using BucketEncryption.KMS_MANAGED. After this fix, the only condition would be failed pre-checking is __Log to self and using KMS_MANAGED encryption type__ This change only fix the checking condition, so this change won't affect snapshot at all. Hence, Exemption Request. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
AWS S3 Server Access Logging does not support logging to buckets that
use SSE-KMS, only to buckets without default encryption or to buckets
that use SSE-S3. At least in some cases, this misconfiguration can be
caught within the CDK (when logging to the same bucket or when the
target bucket is using a KMS CMK).
This will still fail to catch scenarios where the target bucket is using
SSE-KMS using a KMS-managed key because the
encryptionKey
property isnot set on the Bucket in that scenario.
This may be a breaking change for some users; what is currently a mostly
silent misconfiguration will become an error when synthesizing.
All Submissions:
Adding new Construct Runtime Dependencies:
New Features
yarn integ
to deploy the infrastructure and generate the snapshot (i.e.yarn integ
without--dry-run
)?By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license