Skip to content
v0.8.38GitHub

ReferenceIAM permissions

IAM permissions

What the identity running s3ctl needs, for each thing you ask it to do.

Applies to v0.8.38stable, released 4 November 2026Release notes →

s3ctl uses the credentials you give it, so the identity behind them needs permission for whatever the run does. These are the actions behind each API call s3ctl makes on the s3 provider.

ActionNeeded for
s3:ListBucketChecking the bucket doesn’t exist yet. s3ctl won’t take over an existing bucket.
s3:CreateBucketEvery bucket.
s3:PutBucketVersioning--enable-versioning.
s3:PutBucketPolicy--bucket-policy-template or --bucket-policy-file.

Scoped credentials go through the IAM API as well as S3. AWS IAM is the default target; set --iam-endpoint for an IAM-compatible service elsewhere.

ActionNeeded for
iam:CreateUserThe bucket’s user.
iam:TagUserThe ManagedBy and Bucket tags s3ctl puts on the user.
iam:PutUserPolicyThe s3ctl-bucket-access inline policy.
iam:CreateAccessKeyThe user’s access key.
iam:DeleteUserPolicy, iam:DeleteUserCleaning up a user when a later step fails.
ActionNeeded for
s3:ListBucketChecking the bucket exists and listing its objects.
s3:ListBucketVersionsListing object versions and delete markers.
s3:DeleteObject, s3:DeleteObjectVersionEmptying the bucket with --force.
s3:DeleteBucketDeleting the bucket.

On OVHcloud, s3ctl works through the Public Cloud API, so what matters is the IAM policy on your Public Cloud project. OAuth2 and IAM setup lists the least-privilege actions.