Skip to content
v0.8.38GitHub

Getting startedIntroduction

Introduction

s3ctl creates S3-compatible buckets and gives each one its own access key, from flags, a JSON config or a CSV batch.

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

For every bucket, s3ctl can create the bucket, turn on versioning and apply a bucket policy, then create an IAM user with an access key and a policy that only allows access to that one bucket. It works with any S3/IAM-compatible endpoint, and with OVHcloud Public Cloud Object Storage through the OVHcloud API.

It’s a single command with no subcommands. You describe the buckets with flags, a JSON config or a CSV batch file, and --dry-run prints the plan before anything changes. The same command rotates and re-scopes OVHcloud credentials and deletes buckets, and it won’t empty a bucket unless you pass --force. Text output is for people; --output json gives scripts one payload shape for successes and errors alike.

StepFlagWhat happens
Plan--dry-runPrints what would be created or deleted. Nothing is written.
Create--create-scoped-credentialsCreates the bucket, then a user and a key that only reach that bucket.
Rotate--ovh-rotate-credentialsIssues a new OVHcloud key for an existing bucket and removes the old one.
Delete--deleteDeletes empty buckets. One that still holds objects needs --force.
  1. Reads its settings. Flags win over the JSON config, and the config wins over built-in defaults.

  2. Plans. With --dry-run it prints what it would do and stops. Nothing is created.

  3. Applies. It creates the bucket, turns on versioning and applies a bucket policy when you ask for them, then creates the scoped user and key.

  4. Reports. Text for people, or with --output json one JSON document whether the run succeeds or fails. A failed run exits non-zero.

ProviderWhat it works with
s3, the defaultAny S3-compatible endpoint. Scoped credentials go through the IAM API: AWS IAM by default, or another IAM-compatible service with --iam-endpoint.
ovhOVHcloud Public Cloud Object Storage, through the OVHcloud API. Each bucket gets a Public Cloud user and an S3 credential pair, scoped with a container profile and an S3 user policy.

The Quickstart installs s3ctl and walks through a first bucket. Installation covers every channel, pinned versions and checksum verification.