Skip to content
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(custom-resources): incorrect IAM prefix generated for CloudWatch actions #33078

Merged
merged 6 commits into from
Jan 28, 2025

Conversation

samson-keung
Copy link
Contributor

@samson-keung samson-keung commented Jan 22, 2025

Issue # (if applicable)

Closes #32968.

Reason for this change

The mapping to look up the IAM prefix from a given service has a incorrect entry for Cloudwatch. It says Cloudwatch uses monitoring as the prefix but it is actually cloudwatch instead.

I cannot find any service that uses monitoring as prefix so I think it is safe to assume that nothing relies on the monitoring value. Therefore, there is no feature flag used in this PR.

Description of changes

Updated the IAM prefix mapping.

Describe any new or updated permissions being added

Updated the mapping to use correct IAM prefix.

Description of how you validated changes

Updated unit tests to use AwsCustomResource with a Cloudwatch call.

Added integ test to use AwsCustomResource with a Cloudwatch call to tag an alarm and verify the tag is indeed added successfully.

Checklist


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

@aws-cdk-automation aws-cdk-automation requested a review from a team January 22, 2025 22:45
@github-actions github-actions bot added the p2 label Jan 22, 2025
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Jan 22, 2025
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation left a 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 fails with the following errors:

❌ Fixes must contain a change to an integration test file and the resulting snapshot.

If you believe this pull request should receive an exemption, please comment and provide a justification. A comment requesting an exemption should contain the text Exemption Request. Additionally, if clarification is needed, add Clarification Request to a comment.

Copy link

codecov bot commented Jan 22, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 80.78%. Comparing base (ab9dd0a) to head (49d8f41).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #33078   +/-   ##
=======================================
  Coverage   80.78%   80.78%           
=======================================
  Files         232      232           
  Lines       14111    14111           
  Branches     2453     2453           
=======================================
  Hits        11400    11400           
  Misses       2431     2431           
  Partials      280      280           
Flag Coverage Δ
suite.unit 80.78% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
packages/aws-cdk 79.51% <ø> (ø)
packages/aws-cdk-lib/core 82.17% <ø> (ø)

@aws-cdk-automation aws-cdk-automation dismissed their stale review January 23, 2025 17:56

✅ Updated pull request passes all PRLinter validations. Dismissing previous PRLinter review.

@github-actions github-actions bot added bug This issue is a bug. effort/small Small work item – less than a day of effort p1 and removed p2 labels Jan 23, 2025
@samson-keung samson-keung marked this pull request as ready for review January 23, 2025 21:21
@aws-cdk-automation aws-cdk-automation added the pr/needs-maintainer-review This PR needs a review from a Core Team Member label Jan 23, 2025
@GavinZZ
Copy link
Contributor

GavinZZ commented Jan 24, 2025

I want to understand this more. Have you tested on existing stack that uses AwsCustomResource with the monitoring iam prefix stack? Is this deployable or would it fail to deploy with monitoring as part of the iam statement?

@samson-keung
Copy link
Contributor Author

Is this deployable or would it fail to deploy with monitoring as part of the iam statement?

It is deployable. I don't think IAM blocks users from using wrong permission. This is observable from the IAM console as well. I was able to create a policy with the monitoring:* action but the console does warn me that monitoring is a unrecognized service.
Screenshot 2025-01-24 at 12 10 42 PM

Copy link
Contributor

@GavinZZ GavinZZ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good, just one minor comment.

Comment on lines 28 to +35
onDelete: {
service: 'CloudWatchLogs',
action: 'deleteRetentionPolicy',
service: 'CloudWatch',
action: 'tagResource',
parameters: {
logGroupName: '/aws/lambda/loggroup',
ResourceARN: 'dummy',
Tags: [{ Key: 'Name', Value: 'prod' }],
},
physicalResourceId: PhysicalResourceId.of('add_tag'),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add a new test instead of modifying this one so that we can continue testing cloudwatch-logs?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did this because the onCreate is already testing service: 'CloudWatchLogs' (on line 19 above). So my thinking is, rather than testing the same thing via onDelete, I can change the onDelete to test service: 'CloudWatch'.

@GavinZZ
Copy link
Contributor

GavinZZ commented Jan 27, 2025

@samson-keung this PR is 3 times the GetFunction custom resource PR.. This worries me a bit.

@samson-keung
Copy link
Contributor Author

@samson-keung this PR is 3 times the GetFunction custom resource PR.. This worries me a bit.

That one was 700 files. This is way smaller. I had some trouble making the big one. This one was good, no trouble.

@GavinZZ
Copy link
Contributor

GavinZZ commented Jan 28, 2025

@samson-keung this PR is 3 times the GetFunction custom resource PR.. This worries me a bit.

That one was 700 files. This is way smaller. I had some trouble making the big one. This one was good, no trouble.

OK cool, I was looking at the lines changed and this one is much bigger.

Copy link
Contributor

mergify bot commented Jan 28, 2025

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-cdk-automation aws-cdk-automation removed the pr/needs-maintainer-review This PR needs a review from a Core Team Member label Jan 28, 2025
Copy link
Contributor

mergify bot commented Jan 28, 2025

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).

Copy link
Contributor

mergify bot commented Jan 28, 2025

This pull request has been removed from the queue for the following reason: checks failed.

The merge conditions cannot be satisfied due to failing checks:

You should look at the reason for the failure and decide if the pull request needs to be fixed or if you want to requeue it.

If you want to requeue this pull request, you need to post a comment with the text: @mergifyio requeue

Copy link
Contributor

mergify bot commented Jan 28, 2025

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-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: 49d8f41
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

Copy link
Contributor

mergify bot commented Jan 28, 2025

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).

@mergify mergify bot merged commit c76f668 into aws:main Jan 28, 2025
19 of 20 checks passed
Copy link

Comments on closed issues and PRs are hard for our team to see.
If you need help, please open a new issue that references this one.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 28, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug This issue is a bug. contribution/core This is a PR that came from AWS. effort/small Small work item – less than a day of effort p1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

(custom_resources): incorrect IAM prefix generated for CloudWatch actions
3 participants