S3 Credentials

An S3 credential is a combination of access_key and secret_key, along with an optional description. Each access_key is unique for the entire system. Each S3Credential always belongs to exactly one S3User. Creating Credentials


To create a credential, pass the user it belongs to:

>>> user = system.s3_users.create(account=account, name="app-user")
>>> credential = system.s3_credentials.create(user=user)

By default, an access_key and secret_key will be generated automatically if not provided. You may optionally pass explicit values:

>>> credential = system.s3_credentials.create(
...     user=user,
...     access_key="AKIAEXAMPLE",
...     secret_key="secret123",
...     description="Credential for CI/CD pipeline",
... )

Creating Multiple Credentials

Use create_many to generate multiple credentials with one call:

>>> creds = system.s3_credentials.create_many(user=user, count=2)
>>> [c.get_access_key() for c in creds]
['AKIAEXAMPLE', 'AKIAEXAMPLE']

Querying Credentials

List all credentials in the system:

>>> for cred in system.s3_credentials.to_list():
...     print(cred.get_user().get_name(), cred.get_access_key())
team-1 AKIAEXAMPLE1
team-1 AKIAEXAMPLE2

Check metadata:

>>> print(credential.get_status())
ENABLED
>>> print(credential.get_last_used())
2025-02-20T06:04:27.773000+00:00

Updating Credentials

Mutable fields include status and description:

>>> credential.update_status("DISABLED")
>>> credential.update_description("Disabled after key rotation")

Deleting Credentials

Remove a credential with:

>>> credential.delete()