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(iam): incorrect input for AccountPrincipal is building successfully #30559

Open
wants to merge 16 commits into
base: main
Choose a base branch
from

Conversation

duranbe
Copy link

@duranbe duranbe commented Jun 15, 2024

Reason for this change

There is no validation and test that the AWS Account Id when creating AccountPrincipal Object. In my case I missed a digit when copy pasting an account id and the build still passed, the typo has been caught only during the code review process

Description of changes

Adding simple regex to check that AWS Id is 12 digits long & update error message

Description of how you validated changes

Existing tests are passing and added 2 of them

Checklist


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

@github-actions github-actions bot added the beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK label Jun 15, 2024
@aws-cdk-automation aws-cdk-automation requested a review from a team June 15, 2024 21:19
@github-actions github-actions bot added the p2 label Jun 15, 2024
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 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.

A comment requesting an exemption should contain the text Exemption Request. Additionally, if clarification is needed add Clarification Request to a comment.

@aws-cdk-automation aws-cdk-automation added the pr-linter/exemption-requested The contributor has requested an exemption to the PR Linter feedback. label Jun 15, 2024
@duranbe duranbe changed the title fix(iam) add 12-digits validation for AccountPrincipal fix(iam): add 12-digits validation for AccountPrincipal Jun 15, 2024
@duranbe
Copy link
Author

duranbe commented Jun 15, 2024

Logs are quite odd

[4/4] Building fresh packages...
error /codebuild/output/src3225815236/src/github.com/aws/aws-cdk/node_modules/@lerna/create/node_modules/nx, /codebuild/output/src3225815236/src/github.com/aws/aws-cdk/node_modules/@nx/devkit/node_modules/nx, /codebuild/output/src3225815236/src/github.com/aws/aws-cdk/node_modules/lerna/node_modules/nx: Command failed.
Exit code: 135
Command: node ./bin/post-install
Arguments: 
Directory: /codebuild/output/src3225815236/src/github.com/aws/aws-cdk/node_modules/@lerna/create/node_modules/nx
Output:
Bus error (core dumped)
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

Seems issue with yarn/nx

/**
*
* @param accountId AWS account ID (i.e. '123456789012')
*/
constructor(public readonly accountId: any) {
super(new StackDependentToken(stack => `arn:${stack.partition}:iam::${accountId}:root`).toString());
if (!cdk.Token.isUnresolved(accountId) && typeof accountId !== 'string') {
throw new Error('accountId should be of type string');
if (!cdk.Token.isUnresolved(accountId) && typeof accountId !== 'string' && !this.accountIdRegExp.test(accountId)) {
Copy link
Contributor

Choose a reason for hiding this comment

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

While you're at it, maybe we should check to see that all characters in the string are digits.

Copy link
Author

@duranbe duranbe Jun 24, 2024

Choose a reason for hiding this comment

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

It's covered with the regex new RegExp('^[0-9]{12}$'); as restricting only digits to 0-9 (could also be \d, but 0-9 is easier to read imo)

@TheRealAmazonKendra
Copy link
Contributor

This build failure can't possibly have anything to do with this change... I'll retrigger it.

@TheRealAmazonKendra
Copy link
Contributor

@Mergifyio update

Copy link
Contributor

mergify bot commented Jun 21, 2024

update

✅ Branch has been successfully updated

@TheRealAmazonKendra TheRealAmazonKendra added pr-linter/exempt-integ-test The PR linter will not require integ test changes and removed pr-linter/exemption-requested The contributor has requested an exemption to the PR Linter feedback. labels Jun 21, 2024
@TheRealAmazonKendra
Copy link
Contributor

For fixes, the title should describe the bug, not the solution. Could you please update it?

@aws-cdk-automation aws-cdk-automation dismissed their stale review June 21, 2024 21:20

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

@duranbe duranbe changed the title fix(iam): add 12-digits validation for AccountPrincipal fix(iam): Incorrect input for AccountPrincipal is not failing build/validation Jun 24, 2024
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 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.

A comment requesting an exemption should contain the text Exemption Request. Additionally, if clarification is needed add Clarification Request to a comment.

@duranbe
Copy link
Author

duranbe commented Jun 24, 2024

Hey Kendra, thanks for the review and restarting the build

For fixes, the title should describe the bug, not the solution. Could you please update it?

Done ! Is it better with this ?

fix(iam): incorrect input for AccountPrincipal is building successfully

@duranbe duranbe changed the title fix(iam): Incorrect input for AccountPrincipal is not failing build/validation fix(iam): incorrect input for AccountPrincipal is not failing build/validation Jun 24, 2024
@duranbe duranbe changed the title fix(iam): incorrect input for AccountPrincipal is not failing build/validation fix(iam): incorrect input for AccountPrincipal is building successfully Jun 24, 2024
@aws-cdk-automation aws-cdk-automation dismissed their stale review June 24, 2024 15:33

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

@mergify mergify bot dismissed TheRealAmazonKendra’s stale review June 24, 2024 15:34

Pull request has been modified.

@duranbe
Copy link
Author

duranbe commented Jun 29, 2024

Seems this PR is breaking lots of existing test ... I'll look into it, if it's too complex or there is actual use case where the an AWS ID is not 12 digits (which should not be the case ?) I'll close it.

@aws-cdk-automation aws-cdk-automation added the pr/needs-community-review This PR needs a review from a Trusted Community Member or Core Team Member. label Jul 1, 2024
@duranbe
Copy link
Author

duranbe commented Jul 1, 2024

Had to refactor/fix in bunch of test files but now they use proper mock AWS Accound id 🙌

@duranbe
Copy link
Author

duranbe commented Jul 9, 2024

Bump !

@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: 79ba4d1
  • Result: FAILED
  • Build Logs (available for 30 days)

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK p2 pr/needs-community-review This PR needs a review from a Trusted Community Member or Core Team Member. pr-linter/exempt-integ-test The PR linter will not require integ test changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants