Skip to content

fix(cdk): grant lambda Put/DeleteProvisionedConcurrencyConfig (#409)#410

Open
isadeks wants to merge 2 commits into
mainfrom
fix/409-lambda-provisioned-concurrency
Open

fix(cdk): grant lambda Put/DeleteProvisionedConcurrencyConfig (#409)#410
isadeks wants to merge 2 commits into
mainfrom
fix/409-lambda-provisioned-concurrency

Conversation

@isadeks

@isadeks isadeks commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Summary

A fresh mise //cdk:bootstrap + mise //cdk:deploy of current main rolls back when CloudFormation configures provisioned concurrency on the Slack-events function's live alias:

cdk-hnb659fds-cfn-exec-role is not authorized to perform lambda:PutProvisionedConcurrencyConfig

Root cause: SlackIntegrationSlackEventsFnAliaslive is an AWS::Lambda::Alias carrying a ProvisionedConcurrencyConfig property (confirmed via synth). Configuring it needs lambda:PutProvisionedConcurrencyConfig (and Delete on removal). The Lambda statement in cdk/src/bootstrap/policies/application.ts granted only lambda:GetProvisionedConcurrencyConfig. The resource ARN (function:backgroundagent-dev-*) is already covered — only the actions were missing.

Same drift class as #402/#403, #404/#405, #407/#408.

Changes

  • Add lambda:PutProvisionedConcurrencyConfig and lambda:DeleteProvisionedConcurrencyConfig next to the existing Get verb in the Lambda statement.
  • Regenerate bootstrap artifacts (application.json, bootstrap-template.yaml).
  • Update DEPLOYMENT_ROLES.md golden (+ Starlight mirror) for golden-baseline parity.
  • Add a regression guard in policies.test.ts.

Testing

  • mise //cdk:eslint — clean
  • mise //cdk:test — 2195 tests pass, incl. golden-baseline parity and the new guard
  • Verified the actions are present in source, application.json, bootstrap-template.yaml, DEPLOYMENT_ROLES.md, and the mirror

Fixes #409

The Slack-events function pins provisioned concurrency on its `live` alias
(AWS::Lambda::Alias with ProvisionedConcurrencyConfig), so CloudFormation
issues lambda:PutProvisionedConcurrencyConfig at create. The Lambda statement
in the bootstrap policy granted only lambda:GetProvisionedConcurrencyConfig,
so a fresh `mise //cdk:bootstrap` + deploy of current main rolls back with:

  cdk-hnb659fds-cfn-exec-role is not authorized to perform
  lambda:PutProvisionedConcurrencyConfig

Add Put/DeleteProvisionedConcurrencyConfig next to the existing Get verb
(resource ARN function:backgroundagent-dev-* is already covered), regenerate
bootstrap artifacts, update the DEPLOYMENT_ROLES.md golden (+ mirror), and add
a regression guard.

Fourth instance of bootstrap allow-list drift (after #403, #405, #408).

Fixes #409
@isadeks isadeks requested review from a team as code owners June 23, 2026 01:09
krokoko
krokoko previously approved these changes Jun 23, 2026
@krokoko krokoko added this pull request to the merge queue Jun 23, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Jun 23, 2026
@krokoko krokoko self-requested a review June 23, 2026 02:46
@krokoko krokoko enabled auto-merge June 23, 2026 02:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(cdk): bootstrap policy missing lambda:Put/DeleteProvisionedConcurrencyConfig → deploy rolls back

2 participants