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

feat: Add better support for managing access to imported KMS Keys and Secrets Manager Secrets #28360

Closed

Conversation

pergardebrink
Copy link

@pergardebrink pergardebrink commented Dec 14, 2023

This change introduces the possibility to grant access to secrets and kms keys cross accounts. It also adds support for kms aliases to be used with kms:ResourceAliases condition when the key is not available.

Changes introduced:

  • kms.Alias.fromAliasArn method to import based on alias ARN
  • kms.Alias.fromAliasAttributes now extended to support aliasArn, or to use account and region in combination with aliasName to do cross-account import
  • added aliasArn property to kms.IAlias interface which was missing and was previously only implemented in non-imported Alias construct
  • Make the kms.ViaServicePrincipal add to principal policy when wrapping an identity-based principal

This is my first contribution to CDK and I've read the contribution and design documents, but I am quite sure there's things I'm missing here and probably need some guidance on what tests I might need to add.

Closes #28284 and #23545


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 effort/medium Medium work item – several days of effort feature-request A feature should be added or improved. p2 beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK labels Dec 14, 2023
@aws-cdk-automation aws-cdk-automation requested a review from a team December 14, 2023 00:37
@pergardebrink pergardebrink force-pushed the pergardebrink/kms-alias-secrets branch from 43be0f9 to 041bd32 Compare December 14, 2023 00:38
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.

@pergardebrink pergardebrink changed the title KMS Key, Alias and Secret Manager improvements for imported resources feat: Add better support for managing access to imported KMS Keys and Secrets Manager Secrets Dec 14, 2023
@pergardebrink pergardebrink force-pushed the pergardebrink/kms-alias-secrets branch 4 times, most recently from aadaafc to 574276f Compare December 18, 2023 01:43
This will add a new properties to the AliasAttributes, making it possible to import by aliasArn or cross account alias by aliasName with account and region.

A new static method called fromAliasArn is a shortcut to fromAliasAttribute with aliasArn specified.

Granting access to the alias will create a kms:ResourceAliases condition to the principal if no target key is available.

The IAlias interface was missing the aliasArn property
This was most likely a mistake after someone used code from the Bucket construct
When the base principal is an identity principal, we want to add the policy there with the kms:ViaService condition applied.
@pergardebrink pergardebrink force-pushed the pergardebrink/kms-alias-secrets branch from 574276f to 0458a02 Compare December 18, 2023 01:47
@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

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

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

@aws-cdk-automation
Copy link
Collaborator

This PR has been in the CHANGES REQUESTED state for 3 weeks, and looks abandoned. To keep this PR from being closed, please continue work on it. If not, it will automatically be closed in a week.

@aws-cdk-automation
Copy link
Collaborator

This PR has been deemed to be abandoned, and will be automatically closed. Please create a new PR for these changes if you think this decision has been made in error.

@aws-cdk-automation aws-cdk-automation added the closed-for-staleness This issue was automatically closed because it hadn't received any attention in a while. label Jan 12, 2024
@aws-cdk-automation
Copy link
Collaborator

The pull request linter fails with the following errors:

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

PRs must pass status checks before we can provide a meaningful review.

If you would like to request an exemption from the status checks or clarification on feedback, please leave a comment on this PR containing Exemption Request and/or Clarification Request.

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 closed-for-staleness This issue was automatically closed because it hadn't received any attention in a while. effort/medium Medium work item – several days of effort feature-request A feature should be added or improved. p2
Projects
None yet
Development

Successfully merging this pull request may close these issues.

aws_secretsmanager: Make cross-account secret sharing easier with KMS Key alias
2 participants