Add boto3-refresh-session#2906
Closed
michaelthomasletts wants to merge 2 commits intovinta:masterfrom
Closed
Conversation
Owner
|
@michaelthomasletts Sorry Mike. While boto3-refresh-session looks well-maintained and documented, but this feels a bit too niche for the list. Going to pass on this one. |
Author
|
I understand. Thanks for your consideration. |
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.
Project
boto3-refresh-session (GitHub)
Official Documentation
PyPI
Checklist
Add project-name* [project-name](url) - Description ending with period.Why This Project Is Awesome
Which criterion does it meet? (pick one)
Recognition
Featured in TL;DR Sec
Featured in CloudSec List
What is it?
boto3-refresh-session is a simple Python package with a drop-in replacement for boto3.Session named RefreshableSession. It automatically refreshes temporary AWS credentials, caches clients, and supports MFA token providers. It supports automatic temporary AWS security credential refresh for STS, IOT Core, and custom credential callables. And it is thoroughly tested, regularly updated, comprehensively documentated, and published to PyPI.
Why does it matter? And how does it differ from alternatives?
Although boto3 already supports automatic temporary credential refresh via role assumption as configured in
~/.aws/config, there are scenarios and edge cases where that is insufficient. Below are just a few examples:boto3-refresh-session exists to fill those gaps (and others not listed) while maintaining full compatibility with boto3.
Although there are other open source tools available which address automatic temporary AWS credential refresh, boto3-refresh-session is ergonomically designed to feel like an extension of boto3 (with a few extra parameters) rather than a separate library with a completely unfamiliar API. Using boto3-refresh-session, you can initialize service clients, resources, collections, etc. from
RefreshableSessionexactly like you would in boto3. More, the available alternatives to boto3-refresh-session do not support the breadth of features that boto3-refresh-session does, such as client caching, MFA token provider support, or IoT Core X.509 credential refresh, among others. Even if someone doesn't need boto3-refresh-session's core feature (automatic temporary AWS credential refresh), the client caching feature will almost certainly still be useful to them.