AWS plugins for Imbi (IAM Identity Center, SSM, CloudWatch Logs)
Reason this release was yanked:
Mistagged version
Project description
imbi-plugin-aws
AWS provider for the Imbi project logs and configuration tabs.
Plugins shipped
This package ships (or will ship) three entry points from one distribution:
| Slug | Type | Status |
|---|---|---|
aws-iam-ic |
identity |
✅ shipped |
aws-ssm |
configuration |
planned |
aws-cloudwatch-logs |
logs |
planned |
The identity plugin federates each Imbi user into AWS via IAM Identity Center (formerly AWS SSO) and mints short-lived STS credentials per call. The data plugins (when shipped) consume those credentials transparently — see the contract below.
Identity consumption contract for the data plugins
When a project's (:Project)-[:USES_PLUGIN]->(:Plugin) edge or
project-type fallback names this package's aws-iam-ic plugin via the
identity_plugin_id edge property, the host-side
hydrate_identity() helper runs aws-iam-ic.materialize() before
calling the data plugin's handler. materialize() calls
GetRoleCredentials against the IAM IC Portal API and returns
short-lived STS keys in IdentityCredentials.extra:
IdentityCredentials(
access_token=<unchanged IAM IC token>,
extra={
'aws_access_key_id': 'AKIA...',
'aws_secret_access_key': '...',
'aws_session_token': '...',
'aws_region': 'us-east-1',
'aws_account_id': '111111111111',
},
)
The host attaches this to PluginContext.identity and the data plugins
read it from there. Concretely, when aws-ssm (or
aws-cloudwatch-logs) is invoked:
async def list_keys(self, ctx, credentials):
if ctx.identity is not None:
# IAM IC path: credentials dict is empty (no operator-supplied
# static keys); read STS from ctx.identity.extra.
aws_creds = ctx.identity.extra
else:
# Static-key path: ServiceApplication.plugin_credentials carries
# access_key_id / secret_access_key / session_token.
aws_creds = credentials
session = aiobotocore.session.get_session()
client = session.create_client(
'ssm',
region_name=aws_creds['aws_region'],
aws_access_key_id=aws_creds['aws_access_key_id'],
aws_secret_access_key=aws_creds['aws_secret_access_key'],
aws_session_token=aws_creds.get('aws_session_token'),
)
...
The data plugin doesn't know whether the caller is federated (via
aws-iam-ic) or running as a service principal (legacy
ServiceApplication.plugin_credentials). Same five well-known keys,
sourced differently.
requires_identity=true on a future logs/configuration manifest would
make the federated path mandatory; today both plugins fall back to the
service-principal credentials when no ctx.identity is set.
License
BSD-3-Clause.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file imbi_plugin_aws-0.1.0.tar.gz.
File metadata
- Download URL: imbi_plugin_aws-0.1.0.tar.gz
- Upload date:
- Size: 152.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
638eb4132410ffa48cf9434cae0673e0cbb948790e0e1f1af0a62a4f41efed68
|
|
| MD5 |
1113e4eff3d16ee7d118d6d3c1cd35ed
|
|
| BLAKE2b-256 |
cb5df9ac5b997ee974c72c88cbd8cbda019bb0c97a243996da77035058e46846
|
Provenance
The following attestation bundles were made for imbi_plugin_aws-0.1.0.tar.gz:
Publisher:
publish.yml on AWeber-Imbi/imbi-plugin-aws
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
imbi_plugin_aws-0.1.0.tar.gz -
Subject digest:
638eb4132410ffa48cf9434cae0673e0cbb948790e0e1f1af0a62a4f41efed68 - Sigstore transparency entry: 1500816524
- Sigstore integration time:
-
Permalink:
AWeber-Imbi/imbi-plugin-aws@ed1ced67f01825ed030c7aefd70a595228f474df -
Branch / Tag:
refs/tags/1.0.0 - Owner: https://github.com/AWeber-Imbi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ed1ced67f01825ed030c7aefd70a595228f474df -
Trigger Event:
release
-
Statement type:
File details
Details for the file imbi_plugin_aws-0.1.0-py3-none-any.whl.
File metadata
- Download URL: imbi_plugin_aws-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f9ede1c26272b395d3d26b63fd4c074703dc0625ade754abcea3fd5ef8fdb4b
|
|
| MD5 |
e707695fb5425fcf99b2be0f489de6cf
|
|
| BLAKE2b-256 |
d6023bd152b3c853f7cb193d7719c82b8a2960fa30f9757a45b480ce52188287
|
Provenance
The following attestation bundles were made for imbi_plugin_aws-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on AWeber-Imbi/imbi-plugin-aws
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
imbi_plugin_aws-0.1.0-py3-none-any.whl -
Subject digest:
1f9ede1c26272b395d3d26b63fd4c074703dc0625ade754abcea3fd5ef8fdb4b - Sigstore transparency entry: 1500816749
- Sigstore integration time:
-
Permalink:
AWeber-Imbi/imbi-plugin-aws@ed1ced67f01825ed030c7aefd70a595228f474df -
Branch / Tag:
refs/tags/1.0.0 - Owner: https://github.com/AWeber-Imbi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ed1ced67f01825ed030c7aefd70a595228f474df -
Trigger Event:
release
-
Statement type: