Commit d6f4634
authored
fix(bootstrap): grant missing Update* actions for DNS-firewall association + log delivery (#595)
* fix(bootstrap): grant route53resolver:UpdateFirewallRuleGroupAssociation to exec role
Live-caught deploying the ECS substrate to dev (--context compute_type=ecs): the
CFN execution role got AccessDenied on route53resolver:UpdateFirewallRuleGroup-
Association, failing DnsFirewall/RuleGroupAssociation and rolling back the stack.
The bootstrap policy already grants Associate/Disassociate/Get/List on the
firewall rule-group association but not Update. That action is only exercised
when CFN does an in-place UPDATE of the existing association (e.g. coming out of
a rollback, or any change that rewrites the resource) — a fresh create or a
no-op update never hits it, which is why it went unnoticed until now. Classic
least-privilege bootstrap drift (same class as #402/#404/#407/#409), NOT an ECS-
or branch-specific issue: main lacks the action too; deploying the ECS path just
exercised the update path that surfaces it.
Not added: the non-fatal s3:Get*/TagResource read-sweep denials CFN's S3 handler
emits — those are tolerated (no S3 resource failed), and granting describe-handler
breadth for unused bucket features would bury real gaps (the #406 lesson).
Regenerated bootstrap artifacts + updated the DEPLOYMENT_ROLES.md golden and its
Starlight mirror. Full cdk suite green (125 suites / 2289 tests).
(cherry picked from commit f69f01a)
* fix(bootstrap): grant logs:UpdateDeliveryConfiguration to exec role
Live-caught deploying to dev: the CFN execution role got AccessDenied on
logs:UpdateDeliveryConfiguration updating RuntimeApplicationLogsDelivery
(AWS::Logs::Delivery), which failed the stack update AND its rollback → the stack
landed in UPDATE_ROLLBACK_FAILED.
The observability bootstrap policy grants CreateDelivery + the LogDelivery family
(Create/Get/Update/DeleteLogDelivery) + Put/Get/Delete DeliverySource/Destination,
but not UpdateDeliveryConfiguration. That action is only exercised when CFN does an
IN-PLACE update of an existing AWS::Logs::Delivery resource — a fresh create never
hits it, so it went unnoticed until a stack that already had the delivery resource
was updated. Same least-privilege bootstrap-drift class as #402/#404/#407/#409 and
the route53resolver:UpdateFirewallRuleGroupAssociation fix on this branch.
NOT an ECS- or branch-specific gap: verified logs:UpdateDeliveryConfiguration is
absent on main and linear-vercel too, and this branch does not touch the delivery
resource or observability.ts — the ECS deploy-verify merely exercised the update
path that surfaces the latent hole.
Regenerated bootstrap artifacts + updated the DEPLOYMENT_ROLES.md golden and its
Starlight mirror. Full cdk suite green (125 suites / 2289 tests).
(cherry picked from commit 1697c38)1 parent 3af6cc3 commit d6f4634
7 files changed
Lines changed: 10 additions & 0 deletions
File tree
- cdk
- bootstrap
- policies
- src/bootstrap/policies
- docs
- design
- src/content/docs/architecture
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
930 | 930 | | |
931 | 931 | | |
932 | 932 | | |
| 933 | + | |
933 | 934 | | |
934 | 935 | | |
935 | 936 | | |
| |||
1191 | 1192 | | |
1192 | 1193 | | |
1193 | 1194 | | |
| 1195 | + | |
1194 | 1196 | | |
1195 | 1197 | | |
1196 | 1198 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
| 156 | + | |
156 | 157 | | |
157 | 158 | | |
158 | 159 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| 47 | + | |
47 | 48 | | |
48 | 49 | | |
49 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
190 | 190 | | |
191 | 191 | | |
192 | 192 | | |
| 193 | + | |
193 | 194 | | |
194 | 195 | | |
195 | 196 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| 82 | + | |
82 | 83 | | |
83 | 84 | | |
84 | 85 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
238 | 238 | | |
239 | 239 | | |
240 | 240 | | |
| 241 | + | |
241 | 242 | | |
242 | 243 | | |
243 | 244 | | |
| |||
557 | 558 | | |
558 | 559 | | |
559 | 560 | | |
| 561 | + | |
560 | 562 | | |
561 | 563 | | |
562 | 564 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
242 | 242 | | |
243 | 243 | | |
244 | 244 | | |
| 245 | + | |
245 | 246 | | |
246 | 247 | | |
247 | 248 | | |
| |||
561 | 562 | | |
562 | 563 | | |
563 | 564 | | |
| 565 | + | |
564 | 566 | | |
565 | 567 | | |
566 | 568 | | |
| |||
0 commit comments