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

fix: issue with aws credentials not being passed in correctly #1266

Open
wants to merge 1 commit into
base: canary
Choose a base branch
from

Conversation

seawatts
Copy link

@seawatts seawatts commented Dec 21, 2024

Issue

Lendflow caught a bug where they were getting the error The security token included in the request is invalid when calling the baml client functions within the playground as well as their local environment while trying to use an assumed role. They were setting the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY but did not have the ability to also set AWS_SESSION_TOKEN which is required in the aws credentials chain.

Root cause and fix

When assuming an IAM role, it’s required by the AWS credentials chain to supply the AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, as well as AWS_SESSION_TOKEN. Previously, we did not pass the AWS_SESSION_TOKEN into the credentials chain. I updated the code to do so.

Additionally, I fixed another issue with AWS_PROFILE and SSO. There is now separate logic for when AWS_PROFILE is passed in that will use the credentials chain to grab the SSO token from disk (not available in WASM).


Important

Fixes AWS credentials issue by including AWS_SESSION_TOKEN and handling AWS_PROFILE for SSO.

  • Behavior:
    • Fixes missing AWS_SESSION_TOKEN in credentials chain in aws_bedrock.rs and aws_client.rs.
    • Adds logic to handle AWS_PROFILE for SSO in aws_client.rs.
  • Code Changes:
    • Updates UnresolvedAwsBedrock and ResolvedAwsBedrock structs in aws_bedrock.rs to include session_token and profile.
    • Modifies AwsClient::client_anyhow() in aws_client.rs to set credentials provider with session_token.
  • Misc:
    • Removes patchelf dependency from pyproject.toml.

This description was created by Ellipsis for bf6fc64. It will automatically update as commits are pushed.

Findings:
When assuming an IAM role, it’s required by the AWS credentials chain to supply the AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, as well as AWS_SESSION_TOKEN. Previously, we did not pass the AWS_SESSION_TOKEN into the credentials chain. I updated the code to do so.

Additionally, fix another issue with AWS_PROFILE and SSO. There is now separate logic for when AWS_PROFILE is passed in that will use the credentials chain to grab the SSO token from disk (not available in WASM).
Copy link

vercel bot commented Dec 21, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
baml ✅ Ready (Inspect) Visit Preview 💬 Add feedback Dec 21, 2024 5:03pm

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Looks good to me! Reviewed everything up to bf6fc64 in 13 seconds

More details
  • Looked at 150 lines of code in 3 files
  • Skipped 0 files when reviewing.
  • Skipped posting 1 drafted comments based on config settings.
1. integ-tests/python/pyproject.toml:23
  • Draft comment:
    The patchelf dependency was removed, but this change is not mentioned in the PR description. Ensure that this removal is intentional and won't affect the build or tests.
  • Reason this comment was not posted:
    Comment did not seem useful.

Workflow ID: wflow_3s2dnsisE8SqGCOR


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

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.

1 participant