Skip to content

Conversation

@userhas404d
Copy link

Hey @jmkeyes thanks for building and maintaining this project!

Disclaimer: I don't work for gravitational but my org uses teleport heavily

These changes are a result of not being able to easily leverage the teleport client as a credential process via aws config (more details on how this client works available here). I realize not many folks are going to have a use case for this so if you'd prefer that this not get merged I completely understand. I tried to make a point to avoid any major changes to the existing client config and maintained boto3 as the default. Fully testing this without a working teleport implementation is also going to be a challenge but hopefully with it being an optional client config that's not a huge deal.

@jmkeyes
Copy link
Owner

jmkeyes commented Jun 24, 2025

Hey @userhas404d, thanks for submitting this PR! I believe this keyring backend should already transparently support using Teleport.

I read through the Teleport documentation and found that it can launch a local proxy gateway to communicate with AWS for applications using the AWS SDK:

$ tsh proxy aws -p 23456
Started AWS proxy on http://127.0.0.1:23456.

Use the following credentials and HTTPS proxy setting to connect to the proxy:
  export AWS_ACCESS_KEY_ID=abcd1234-this-is-an-example
  export AWS_SECRET_ACCESS_KEY=zyxw9876-this-is-an-example
  export AWS_CA_BUNDLE=<ca-bundle-path>
  export HTTPS_PROXY=http://127.0.0.1:23456

The AWS SDK (ie: boto3) should react to the presence of those environment variables and use them automatically, so long as they are available to the process (ie: pip / twine) doing the keyring lookup.

Have you encountered issues using the proxy with this library? I would try this myself, but I don't have a Teleport account to test it out.

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.

2 participants