Skip to main content

Boto3 session creator for IAM Roles Anywhere

Project description

IAM Roles Anywhere Session

License PyPI version Status

Code style: black pre-commit

This package provides an easy way to create a refreshable boto3 Session with AWS Roles Anywhere.

This package implements the algorithm described here: https://docs.aws.amazon.com/rolesanywhere/latest/userguide/authentication-sign-process.html.

Requirements

  • Python 3.8 or later
  • Creation and configuration of a trust anchor. See documentation
  • Valid X.509 certificate, private key, and optionally a certificate chain file associated with your trust anchor

Install

  • From PyPi
pip install iam-rolesanywhere-session
  • From source
git clone https://github.com/awslabs/iam-roles-anywhere-session.git
cd iam-roles-anywhere-session
python3 -m pip install ./

Configuration

For this package to work you will need to have at your disposal your certificate and private_key file in a PEM format.

IAMRoleAnywhereSession will take multiple arguments:

Name Description Type Default value
profile_arn The Amazon Resource Name (ARN) of the profile. string None
role_arn The Amazon Resource Name (ARN) of the role to assume. string None
trust_anchor_arn The Amazon Resource Name (ARN) of the trust anchor. string None
certificate The x509 certificate file, in PEM format. path or bytes None
private_key The certificate private key file, in PEM Format. path or bytes None
private_key_passphrase The passphrase use to decrypt private key file. string None
region The name of the region where you configured IAM Roles Anywhere. string us-east-1
session_duration The duration, in seconds, of the role session. The value specified can range from 900 seconds (15 minutes) up to 3600 seconds (1 hour). int 3600
service_name An identifier for the service, used to build the botosession. string rolesanywhere
endpoint Roles Anywhere API endpoint to use string '{service_name}.{region_name}.amazonaws.com'
verify Whether to validate SSL certificates, or the path to a trusted certificate authority bool or str None
proxies Proxy endpoint(s) for use behind private networks with a proxy. dict {}
proxies_config A dictionary of additional proxy configurations. dict {}
from iam_rolesanywhere_session import IAMRolesAnywhereSession
roles_anywhere_session = IAMRolesAnywhereSession(
    profile_arn="arn:aws:rolesanywhere:eu-central-1:************:profile/a6294488-77cf-4d4a-8c5c-40b96690bbf0",
    role_arn="arn:aws:iam::************:role/IAMRolesAnywhere-01",
    trust_anchor_arn="arn:aws:rolesanywhere:eu-central-1::************::trust-anchor/4579702c-9abb-47c2-88b2-c734e0b29539",
    certificate='certificate.pem',
    private_key='privkey.pem',
    region="eu-central-1"
).get_session()
s3 = roles_anywhere_session.client("s3")
print(s3.list_buckets())

Documentation

You can find here the complete documentation with additional usage and module reference.

Contributing

Contributions are very welcome. To learn more, see the Contributor Guide.

License

Distributed under the terms of the Apache 2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iam_rolesanywhere_session-2.2.0.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file iam_rolesanywhere_session-2.2.0.tar.gz.

File metadata

File hashes

Hashes for iam_rolesanywhere_session-2.2.0.tar.gz
Algorithm Hash digest
SHA256 77217468ce51e8d44ae62f85b680041331cdfdb14e5de9f72384472ead49361a
MD5 a7a387a3ad48a66b76018309204fad1c
BLAKE2b-256 17947751b1a504ab0ffc44e857839a9540a2cfb2a4eb3e4c5d55d3cfba0bf9ec

See more details on using hashes here.

File details

Details for the file iam_rolesanywhere_session-2.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for iam_rolesanywhere_session-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1267649aa9cb8c77da994ad76e661465f843b1d149acd1b354e2c06faa8d6182
MD5 7a2ffec926855749adbe40e5e03ea6ad
BLAKE2b-256 7591a97d74e32bc55ce889bd0001e9b14cb3155861659b3b953f0eb261db58d1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page