feat(iam): Wave 3 PR2 add reference/price_cache/* to executor role grant#197
Merged
Merged
Conversation
ROADMAP P1 "predictor/ S3 namespace rationalization Wave 3" — companion to the producer write-both shipped in alpha-engine-data PR #270. Adds `reference/price_cache/*` to the existing ReadWritePredictorData statement on alpha-engine-executor-role's alpha-engine-s3-access inline policy so any code path reaching this scoped grant during the write-both soak can read the new prefix without an AccessDenied. Mirrors the shape of Wave 1 PR #120 (executor IAM cleanup) but additive, not subtractive — Wave 4 cutover (after >=1 week clean soak) will be the inverse PR that drops both `predictor/price_cache/*` and `predictor/price_cache_slim/*` (also dead post-Wave-4 slim deletion arc) in one consolidated cleanup. ## Why only this one IAM file Confirmed via cross-repo grep — only the alpha-engine executor role has a scoped grant on `predictor/price_cache/*`. All other repos that read this prefix (alpha-engine-predictor, alpha-engine-research, the alpha-engine-data spot instance role) use full-bucket grants (`alpha-engine-research/*`) so they need no change. The executor role itself has not READ price_cache directly since the 2026-04-17 ArcticDB migration (PR alpha-engine #60), so this grant is vestigial — but until PR4 retires both legacy prefixes end-to-end, the additive scope keeps the namespace presence codified. ## Post-merge deploy step bash infrastructure/iam/apply.sh --role alpha-engine-executor-role \ --policy alpha-engine-s3-access (Mirrors Wave 1 #120's operator step. apply.sh runs `aws iam put-role-policy` to push the updated inline policy live; no code redeploy required.) Composes with: alpha-engine-data PR #270 (Wave 3 PR1 producer write-both), Wave 1 #120 (template), and the in-flight Wave 4 slim-deletion IAM cleanup that this will roll into at cutover. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ROADMAP P1 "
predictor/S3 namespace rationalization Wave 3" — companion to the producer write-both shipped in alpha-engine-data PR #270. Addsreference/price_cache/*to the existingReadWritePredictorDatastatement on the executor role'salpha-engine-s3-accessinline policy.What this does
Single ARN addition — keeps the namespace presence codified on the executor role during the write-both soak so any code path still reaching this scoped grant (vestigial or future) can hit both prefixes without
AccessDenied."arn:aws:s3:::alpha-engine-research/predictor/weights/*", "arn:aws:s3:::alpha-engine-research/predictor/predictions/*", "arn:aws:s3:::alpha-engine-research/predictor/price_cache/*", "arn:aws:s3:::alpha-engine-research/predictor/price_cache_slim/*", - "arn:aws:s3:::alpha-engine-research/predictor/metrics/*" + "arn:aws:s3:::alpha-engine-research/predictor/metrics/*", + "arn:aws:s3:::alpha-engine-research/reference/price_cache/*"Why this is the only IAM file touched
Cross-repo grep confirmed only the
alpha-engineexecutor role has a scoped grant onpredictor/price_cache/*. Predictor + research roles use full-bucket grants (arn:aws:s3:::alpha-engine-research/*) so they don't need editing. The executor role itself hasn't readprice_cachedirectly since the 2026-04-17 ArcticDB migration (alpha-engine #60), so this grant is vestigial — but until PR4 retires both legacy prefixes end-to-end, the additive scope keeps the namespace codified.The
IAM Drift CheckCI job fails on the first push because it compares codified vs live AWS. This PR makes codified ≠ live untilapply.shruns against AWS — same pattern Wave 1 #120 used. Run before merging:Then re-run the failed
IAM Drift Checkjob from the Actions UI (or push a no-op commit). Drift will resolve, CI will pass, merge.Wave 3 sequencing
aws s3 rm)🤖 Generated with Claude Code