feat(coderd_ai_provider): add Bedrock role_arn for STS assume-role#372
Merged
Conversation
This was referenced Jun 26, 2026
Member
Author
f39b9dd to
6e87fa3
Compare
6e87fa3 to
6d0f35e
Compare
86ac6f2 to
877f8dc
Compare
6d0f35e to
10d7ae1
Compare
f04afaa to
be8cc11
Compare
ee92aa7 to
f01d658
Compare
2fc431f to
85ed7f9
Compare
f01d658 to
3ed74ae
Compare
85ed7f9 to
3681e2e
Compare
3ed74ae to
382af33
Compare
evgeniy-scherbina
approved these changes
Jun 30, 2026
Member
Author
Merge activity
|
382af33 to
837564e
Compare
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.

Background
A customer running AWS Bedrock needs runtime IAM role assumption across multiple AWS accounts so usage bills to the correct account: a pod starts with its ambient AWS identity (IRSA / EKS Pod Identity / instance profile), then assumes a downstream role in another account via STS before calling Bedrock, with temp credentials cached and rotated by the AWS SDK. Static keys are not acceptable, and the base identity alone is insufficient since it's shared across providers.
This gap (AIGOV-371) was fixed server-side in coder/coder#26527 (backend: assume a configured role ARN via STS before calling Bedrock; whether the role is same- or cross-account is purely a matter of its trust policy) and coder/coder#26578 (web UI follow-up). The only piece reaching this provider is one new
role_arnfield oncodersdk.AIProviderBedrockSettings, plus server-side ARN validation. Everything else lives inaibridge/coderd/cli/ UI, which this provider doesn't import.What this PR does
Adds an optional
role_arntocoderd_ai_provider'ssettings.bedrockblock so the assume-role workflow is configurable via Terraform, not only the UI. When set, the gateway uses its base identity to assume that IAM role via STS and signs Bedrock requests with the resulting temporary credentials; the role can live in the same account or a different one, depending entirely on its trust policy. A deployment that needs several roles configures several providers. Omitting it preserves today's behavior. Also updates the example and regeneratesdocs/.SDK bump
role_arnisn't in any taggedcodersdkrelease yet (latest v2.34.3 predates it), sogo.modis pinned to a pseudo-version of the coder/coder#26527 merge commit; re-pin to a real tag once one ships.Closes CODAGT-607. Refs AIGOV-371. Refs coder/coder#26527, coder/coder#26578.