iam-rolesanywhere-session


Nameiam-rolesanywhere-session JSON
Version 2.2.0 PyPI version JSON
download
home_pageNone
SummaryBoto3 session creator for IAM Roles Anywhere
upload_time2024-07-02 10:20:10
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseApache-2.0
keywords iam aws rolesanywhere boto3 botocore
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # IAM Roles Anywhere Session

[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![PyPI version](https://badge.fury.io/py/iam-rolesanywhere-session.svg)](https://badge.fury.io/py/iam-rolesanywhere-session)
![Status](https://img.shields.io/pypi/status/iam-rolesanywhere-session.svg)

[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)

This package provides an easy way to create a __refreshable__ boto3 Session with [AWS Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/APIReference/Welcome.html).

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](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/getting-started.html)
- Valid X.509 certificate, private key, and optionally a certificate chain file associated with your trust anchor

## Install

- From PyPi

```bash
pip install iam-rolesanywhere-session
```

- From source

```bash
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          | `{}`                                         |

```python
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](https://awslabs.github.io/iam-roles-anywhere-session/) the complete documentation with additional usage and module reference.

## Contributing

Contributions are very welcome.
To learn more, see the [Contributor Guide](CONTRIBUTING.md).

## License

Distributed under the terms of the [Apache 2](LICENSE)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "iam-rolesanywhere-session",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "iam, aws, rolesanywhere, boto3, botocore",
    "author": null,
    "author_email": "Thomas Buatois <tbuatois@amazon.fr>",
    "download_url": "https://files.pythonhosted.org/packages/17/94/7751b1a504ab0ffc44e857839a9540a2cfb2a4eb3e4c5d55d3cfba0bf9ec/iam_rolesanywhere_session-2.2.0.tar.gz",
    "platform": null,
    "description": "# IAM Roles Anywhere Session\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![PyPI version](https://badge.fury.io/py/iam-rolesanywhere-session.svg)](https://badge.fury.io/py/iam-rolesanywhere-session)\n![Status](https://img.shields.io/pypi/status/iam-rolesanywhere-session.svg)\n\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)\n\nThis package provides an easy way to create a __refreshable__ boto3 Session with [AWS Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/APIReference/Welcome.html).\n\nThis package implements the algorithm described here: <https://docs.aws.amazon.com/rolesanywhere/latest/userguide/authentication-sign-process.html>.\n\n## Requirements\n\n- Python 3.8 or later\n- Creation and configuration of a trust anchor. See [documentation](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/getting-started.html)\n- Valid X.509 certificate, private key, and optionally a certificate chain file associated with your trust anchor\n\n## Install\n\n- From PyPi\n\n```bash\npip install iam-rolesanywhere-session\n```\n\n- From source\n\n```bash\ngit clone https://github.com/awslabs/iam-roles-anywhere-session.git\ncd iam-roles-anywhere-session\npython3 -m pip install ./\n```\n\n## Configuration\n\nFor this package to work you will need to have at your disposal your `certificate` and `private_key` file in a PEM format.\n\nIAMRoleAnywhereSession will take multiple arguments:\n\n| Name                         | Description                                                                                                                              | Type          | Default value                                |\n| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------- | -------------------------------------------- |\n| profile_arn                  | The Amazon Resource Name (ARN) of the profile.                                                                                           | string        | None                                         |\n| role_arn                     | The Amazon Resource Name (ARN) of the role to assume.                                                                                    | string        | None                                         |\n| trust_anchor_arn             | The Amazon Resource Name (ARN) of the trust anchor.                                                                                      | string        | None                                         |\n| certificate                  | The x509 certificate file, in PEM format.                                                                                                | path or bytes | None                                         |\n| private_key                  | The certificate private key file, in PEM Format.                                                                                         | path or bytes | None                                         |\n| private_key_passphrase       | The passphrase use to decrypt private key file.                                                                                          | string        | None                                         |\n| region                       | The name of the region where you configured IAM Roles Anywhere.                                                                          | string        | us-east-1                                    |\n| 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                                         |\n| service_name                 | An identifier for the service, used to build the botosession.                                                                            | string        | rolesanywhere                                |\n| endpoint                     | Roles Anywhere API endpoint to use                                                                                                       | string        | '{service_name}.{region_name}.amazonaws.com' |\n| verify                       | Whether to validate SSL certificates, or the path to a trusted certificate authority                                                     | bool or str   | None                                         |\n| proxies                      | Proxy endpoint(s) for use behind private networks with a proxy.                                                                          | dict          | `{}`                                         |\n| proxies_config               | A dictionary of additional proxy configurations.                                                                                         | dict          | `{}`                                         |\n\n```python\nfrom iam_rolesanywhere_session import IAMRolesAnywhereSession\nroles_anywhere_session = IAMRolesAnywhereSession(\n    profile_arn=\"arn:aws:rolesanywhere:eu-central-1:************:profile/a6294488-77cf-4d4a-8c5c-40b96690bbf0\",\n    role_arn=\"arn:aws:iam::************:role/IAMRolesAnywhere-01\",\n    trust_anchor_arn=\"arn:aws:rolesanywhere:eu-central-1::************::trust-anchor/4579702c-9abb-47c2-88b2-c734e0b29539\",\n    certificate='certificate.pem',\n    private_key='privkey.pem',\n    region=\"eu-central-1\"\n).get_session()\ns3 = roles_anywhere_session.client(\"s3\")\nprint(s3.list_buckets())\n```\n\n# Documentation\n\nYou can find [here](https://awslabs.github.io/iam-roles-anywhere-session/) the complete documentation with additional usage and module reference.\n\n## Contributing\n\nContributions are very welcome.\nTo learn more, see the [Contributor Guide](CONTRIBUTING.md).\n\n## License\n\nDistributed under the terms of the [Apache 2](LICENSE)\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Boto3 session creator for IAM Roles Anywhere",
    "version": "2.2.0",
    "project_urls": {
        "changelog": "https://github.com/awslabs/iam-roles-anywhere-session./blob/main/CHANGELOG.md",
        "documentation": "https://awslabs.github.io/iam-rolesanywhere-session/",
        "repository": "https://github.com/awslabs/iam-roles-anywhere-session.git"
    },
    "split_keywords": [
        "iam",
        " aws",
        " rolesanywhere",
        " boto3",
        " botocore"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7591a97d74e32bc55ce889bd0001e9b14cb3155861659b3b953f0eb261db58d1",
                "md5": "7a2ffec926855749adbe40e5e03ea6ad",
                "sha256": "1267649aa9cb8c77da994ad76e661465f843b1d149acd1b354e2c06faa8d6182"
            },
            "downloads": -1,
            "filename": "iam_rolesanywhere_session-2.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7a2ffec926855749adbe40e5e03ea6ad",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 12122,
            "upload_time": "2024-07-02T10:20:08",
            "upload_time_iso_8601": "2024-07-02T10:20:08.633731Z",
            "url": "https://files.pythonhosted.org/packages/75/91/a97d74e32bc55ce889bd0001e9b14cb3155861659b3b953f0eb261db58d1/iam_rolesanywhere_session-2.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "17947751b1a504ab0ffc44e857839a9540a2cfb2a4eb3e4c5d55d3cfba0bf9ec",
                "md5": "a7a387a3ad48a66b76018309204fad1c",
                "sha256": "77217468ce51e8d44ae62f85b680041331cdfdb14e5de9f72384472ead49361a"
            },
            "downloads": -1,
            "filename": "iam_rolesanywhere_session-2.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a7a387a3ad48a66b76018309204fad1c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 20364,
            "upload_time": "2024-07-02T10:20:10",
            "upload_time_iso_8601": "2024-07-02T10:20:10.355341Z",
            "url": "https://files.pythonhosted.org/packages/17/94/7751b1a504ab0ffc44e857839a9540a2cfb2a4eb3e4c5d55d3cfba0bf9ec/iam_rolesanywhere_session-2.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-02 10:20:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "awslabs",
    "github_project": "iam-roles-anywhere-session.",
    "github_not_found": true,
    "lcname": "iam-rolesanywhere-session"
}
        
Elapsed time: 0.27099s