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): service principals use unnecessary exceptions (under feature flag) #22819

Merged
merged 8 commits into from
Nov 10, 2022

Conversation

rix0rrr
Copy link
Contributor

@rix0rrr rix0rrr commented Nov 7, 2022

We have a database of service principal exceptions in different regions.

This database is no longer necessary: all services now use the global service principal name for in-region references, and sometimes a standardized regional service principal name for cross-opt-in-region references.

This PR changes the following things:

new ServicePrincipal('service.amazonaws.com')
// ➡️  always resolves to 'service.amazonaws.com', regardless of region
//    or service principal

new ServicePrincipal('service.amazonaws.com', { region: 'me-south-1' })
// ➡️ resolves to 'service.me-south-1.amazonaws.com' in case of a
//   cross-region reference, or just 'service.amazonaws.com' otherwise.

Because change is scary (and because we are only 99% sure that this change has made it to all ADC regions), we put the new behavior behind a feature flag:

{
  "context": {
    "@aws-cdk/aws-iam:standardizedServicePrincipals": true
  }
}

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

…e flag)

We have a database of service principal exceptions in different regions.

This database is no longer necessary: all services now use the global
service principal name for in-region references, and sometimes a
standardized regional service principal name for cross-opt-in-region
references.

This PR changes the following things:

```ts
new ServicePrincipal('service.amazonaws.com')
// ➡️  always resolves to 'service.amazonaws.com', regardless of region
//    or service principal

new ServicePrincipal('service.amazonaws.com', { region: 'me-south-1' })
// ➡️ resolves to 'service.me-south-1.amazonaws.com' in case of a
//   cross-region reference, or just 'service.amazonaws.com' otherwise.
```

Because change is scary (and because we are only 99% sure that this
change has made it to all ADC regions), we put the new behavior behind a
feature flag:

```json
{
  "context": {
    "@aws-cdk/aws-iam:standardizedServicePrincipals": true
  }
}
```
@rix0rrr rix0rrr requested a review from a team November 7, 2022 17:23
@rix0rrr rix0rrr self-assigned this Nov 7, 2022
@gitpod-io
Copy link

gitpod-io bot commented Nov 7, 2022

@github-actions github-actions bot added the p2 label Nov 7, 2022
@aws-cdk-automation aws-cdk-automation requested a review from a team November 7, 2022 17:24
@rix0rrr
Copy link
Contributor Author

rix0rrr commented Nov 7, 2022

(This change will break many snapshots -- I'm working on it)

@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Nov 7, 2022
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.

@aws-cdk-automation aws-cdk-automation dismissed their stale review November 8, 2022 14:04

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

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.

@rix0rrr rix0rrr added the pr-linter/exempt-integ-test The PR linter will not require integ test changes label Nov 9, 2022
@aws-cdk-automation aws-cdk-automation dismissed their stale review November 9, 2022 13:57

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

Copy link
Contributor

@Naumel Naumel left a comment

Choose a reason for hiding this comment

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

vaya con dios

@mergify
Copy link
Contributor

mergify bot commented Nov 10, 2022

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
Copy link
Contributor

mergify bot commented Nov 10, 2022

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: 54c3e12
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

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

@mergify mergify bot merged commit 65d8e3d into main Nov 10, 2022
@mergify mergify bot deleted the huijbers/standardize-sps branch November 10, 2022 17:42
@mergify
Copy link
Contributor

mergify bot commented Nov 10, 2022

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

jpignata added a commit to jpignata/aws-cdk that referenced this pull request Nov 23, 2022
In aws#22819, a feature flag was added to use standardized service
principal names instead of using a database lookup. This reference
wasn't updated which causes failures in new CDK applications that try
to create AppSync resources. This change passes the fully qualified
service principal when creating a service role for a new data source.

fixes aws#23035
jpignata added a commit to jpignata/aws-cdk that referenced this pull request Nov 23, 2022
In aws#22819, a feature flag was added to use standardized service
principal names instead of using a database lookup. This reference
wasn't updated which causes failures in new CDK applications that try
to create AppSync resources. This change passes the fully qualified
service principal when creating a service role for a new data source.

fixes aws#23035
jpignata added a commit to jpignata/aws-cdk that referenced this pull request Nov 23, 2022
In aws#22819, a feature flag was added to use standardized service
principal names instead of using a database lookup. This reference
wasn't updated which causes failures in new CDK applications that try
to create AppSync resources. This change passes the fully qualified
service principal when creating a service role for a new data source.

fixes aws#23035
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution/core This is a PR that came from AWS. p2 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.

3 participants