a simple python decorator to make using aws mfa super easy with boto3
Project description
aws_easy_mfa
aws_easy_mfa
is a simple wrapper for AWS's boto3 that makes it much simpler to use with MFA.
Simply wrap any function invoking a boto3 session with the aws_easy_mfa
decorator and you're off! aws_easy_mfa
will take care of all the tedius MFA login steps.
Installation
You can install aws_easy_mfa
via pip
pip install aws-easy-mfa
A simple example
Using boto3 to list bucket names in s3 with the aws_easy_mfa
decorator.
from aws_easy_mfa import aws_easy_mfa
@aws_easy_mfa(mfa_device_arn='arn-of-the-mfa-device',
mfa_token_code='code-from-token')
def list_s3_buckets(session=None):
# Create an S3 client using the session
s3_client = session.client('s3')
# List all S3 buckets
response = s3_client.list_buckets()
# Extract the bucket names from the response
buckets = response['Buckets']
bucket_names = [bucket['Name'] for bucket in buckets]
return bucket_names
Optional arguments
You can control your MFA timeout by including duration_seconds
as shown below
@aws_easy_mfa(mfa_device_arn='arn-of-the-mfa-device',
mfa_token_code='code-from-token',
duration_seconds=3600)
def list_s3_buckets(session=None):
...
In addition, if you would like your MFA-authorized sesssion for further usage, you can add the return_session=True
flag to your decorator, like this
@aws_easy_mfa(mfa_device_arn='arn-of-the-mfa-device',
mfa_token_code='code-from-token',
duration_seconds=3600,
return_session=True)
def list_s3_buckets(session=None):
...
The session is returned as a second argument. So for example instead of
bucket_names = list_s3_buckets()
enabling this flag returns your session as
bucket_names, session = list_s3_buckets()
Direct session retrieval
You can also create an MFA session without usage of the decorator as shown below:
from aws_easy_mfa.utilities import get_mfa_credentials, create_boto3_session
# get credentials
credentials = get_mfa_credentials(mfa_device_arn='arn-of-the-mfa-device',
mfa_token_code='code-from-token',
duration_seconds)
# generate mfa-authorized session
session = create_boto3_session(credentials)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file aws_easy_mfa-0.1.1.tar.gz
.
File metadata
- Download URL: aws_easy_mfa-0.1.1.tar.gz
- Upload date:
- Size: 2.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd6f02394396f3e47100545797104ff923d8eb30232a26fcc3b1420871c9c3d9 |
|
MD5 | a71480da0eec2d2cff4a403254447b50 |
|
BLAKE2b-256 | 46b79df7dfb329535176e0f2b8bc60bd08fcc277766c9c3211d8f33055156e87 |
File details
Details for the file aws_easy_mfa-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: aws_easy_mfa-0.1.1-py3-none-any.whl
- Upload date:
- Size: 3.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01e0acac575a6d2692e3c46f9d0adbe72badf91c9b59585f8faf548a9e015e64 |
|
MD5 | ffad8b70ca772d3164fc61ec825b069e |
|
BLAKE2b-256 | b21fc5fcf18db77f9d8b13680643249723a1691d1763e43cd75a9157063246db |