aws-credentials-sts
This package provides STS-based credential resolvers and a chain provider:
AssumeRoleCredentialsResolver- assumes an explicitrole_arnusing credentials from asource_resolver.ProfileAssumeRoleCredentialsResolver- assumes a role configured in a named profile in the shared config/credentials files.
Installation
uv pip install aws-credentials-sts
Once installed, the provider registers itself with the SDK's modular credential
chain. When a client resolves credentials through the default chain, it
will attempt to assume the role configured in the active profile
(role_arn/source_profile/credential_source), unless a higher-precedence
source resolves credentials first.
Client Configuration
To use this resolver explicitly, set the aws_credentials_identity_resolver
property on a service client's config to an AssumeRoleCredentialsResolver
instance. It assumes role_arn using credentials from the source_resolver:
from aws_credentials_sts import AssumeRoleCredentialsResolver
from smithy_aws_core.identity import EnvironmentCredentialsResolver
service_client = ServiceClient(
config=ServiceClientConfig(
aws_credentials_identity_resolver=AssumeRoleCredentialsResolver(
source_resolver=EnvironmentCredentialsResolver(),
role_arn="arn:aws:iam::123456789012:role/example-role",
),
)
)
To assume the role defined in a named profile instead, use
ProfileAssumeRoleCredentialsResolver with a MergedConfig loaded from the
shared config/credentials files:
from aws_credentials_sts import ProfileAssumeRoleCredentialsResolver
from smithy_aws_core.config import load_config
async def build_client() -> ServiceClient:
return ServiceClient(
config=ServiceClientConfig(
aws_credentials_identity_resolver=ProfileAssumeRoleCredentialsResolver(
profile_name="my-profile",
config_file=await load_config(),
),
)
)
Standalone
Either resolver can also be used on its own to fetch credentials directly:
import asyncio
from aws_credentials_sts import AssumeRoleCredentialsResolver
from smithy_aws_core.identity import EnvironmentCredentialsResolver
async def main() -> None:
resolver = AssumeRoleCredentialsResolver(
source_resolver=EnvironmentCredentialsResolver(),
role_arn="arn:aws:iam::123456789012:role/example-role",
)
identity = await resolver.get_identity(properties={})
asyncio.run(main())
Release files for aws-credentials-sts 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aws_credentials_sts-0.1.0.tar.gz | 5.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aws_credentials_sts-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.1 kB
Release files / aws_credentials_sts-0.1.0.tar.gz
| Download URL | aws_credentials_sts-0.1.0.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
05ffeaa580d46252491d1b82bbc6f1bde1be6ffacc618a3d4777a66eed7a2024
|
|
BLAKE2b-256 checksum How to use checksums |
4c50bcc6926a634460b413ee9a25ffdb49ad42fe8aa2194d360bb2d14a0d109a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Amazon Linux","version":"2023","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / aws_credentials_sts-0.1.0-py3-none-any.whl
| Download URL | aws_credentials_sts-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9681a9a3789bc28be51cb82f89687420b064bf0e5f335de34cd44584435dc266
|
|
BLAKE2b-256 checksum How to use checksums |
819cd83890d20ceaf213f322874c884df1e80b4a1895dceed27c814b2d4970dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Amazon Linux","version":"2023","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|