Skip to main content

S3 access keys for buckets

An access key is the pair of credentials an S3 client uses to reach your buckets: an access key id such as CLDRZ8Q4M2X7KD1PLW0B and a secret access key of 40 characters. You create keys in Cloider, choose which buckets each one opens and whether it can only read, and hand them to the AWS CLI, rclone, an SDK or an app as AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.

This page explains how keys work, then shows how to create, change, rotate and delete them with every tool.

At a glance​

FormatAccess key id: 20 characters starting with CLDR. Secret key: 40 letters and digits
ScopeEvery bucket of the account, including buckets created later, or only the buckets you pick
PermissionRead & write (list, download, upload and delete files) or Read only (list and download files)
SecretShown once, when the key is created. It can't be displayed again
Limit50 access keys per account
WhereBuckets > Access Keys tab, or Access Control > S3 Credentials tab, in the dashboard. Also the CLI, Terraform, the API and MCP
Not the same asAPI tokens, which manage Cloider resources. An access key only talks S3 to buckets

How access keys work​

Every request an S3 client sends is signed with the secret key (AWS Signature Version 4), so the secret itself never travels over the network. Cloider checks the signature and which buckets the access key id opens, then allows or refuses the request.

Keys belong to the account, not to a person. Any member who can manage resources can create and delete them, and a key keeps working when the member who created it leaves the account. Give each app, server, CI pipeline and laptop its own key with the smallest scope it needs, so you can revoke one without breaking the others.

What a key can do​

ActionRead & write keyRead only key
List objects and versions (ListObjectsV2, ListObjectVersions)YesYes
Download objects and specific versions (GetObject, HeadObject)YesYes
Upload, overwrite and copy objects, including multipart uploadsYesNo
Delete objects and versionsYesNo
Read and set object tagsYesNo
Change the bucket's versioning and lifecycle rules through the S3 APIYesNo
Change the bucket's visibility or bucket policyNoNo
Create or delete bucketsNoNo

Visibility, policies, and creating and deleting buckets are managed with Cloider's own tools only, so a leaked access key can't make a bucket public, change its policy or delete it.

A bucket policy can narrow what a key does on one bucket further, for example allow a key to write only under uploads/, or deny deletes.

Keys for all buckets or for specific buckets​

  • All buckets, including ones created later. The key opens every bucket of the account. When you create a new bucket, the key reaches it immediately. This is convenient for your own laptop or for backup tools that read everything.
  • Only specific buckets. The key opens the buckets you pick and nothing else. A bucket created later isn't added on its own: change the key to include it. When one of the key's buckets is deleted, it drops out of the key's list. A key whose buckets were all deleted shows None left and opens nothing.

Before you begin​

  • At least one bucket for a key limited to specific buckets. See Create a bucket.
  • A role that can manage resources. Members with the read-only role can see keys but can't create, change or delete them.
  • For the CLI, Terraform, the API and MCP, an API token with read and write access.

Create an access key​

  1. Open Buckets in the sidebar and select the Access Keys tab. (You can also open Access Control and select S3 Credentials, which works even before the account has a bucket.)
  2. Click Create Access Key.
  3. Enter a Name that says where the key is used, for example ci-deploy, laptop or backups. Up to 64 characters.
  4. Under Buckets, choose All buckets, including ones created later, or Only specific buckets and pick the buckets.
  5. Under Permission, choose Read & write or Read only.
  6. Click Create access key.
The Create Access Key dialog with the name ci-deploy, Only specific buckets selected with acme-assets picked, and the permission Read and write
Name the key, choose its buckets and its permission.
  1. The Access key created dialog shows the Access key, the Secret key, the Endpoint and the Region, plus an AWS CLI profile snippet. Click a row to copy it. Store the secret key in your password manager or secret store now.
  2. Click I've saved the secret key.
The Access key created dialog with a warning to copy the secret key now, rows for the access key, secret key, endpoint and region, and an AWS CLI profile snippet
The secret key is shown once, in this dialog.
The S3 Credentials tab of Access Control listing access keys with their name, access key id, buckets, permission Read and write or Read only, and creation date
Access keys with the buckets each one opens and its permission.

The AWS CLI profile snippet in the dialog configures a cloider profile in one paste:

AWS CLI profile
aws configure set aws_access_key_id CLDRZ8Q4M2X7KD1PLW0B --profile cloider
aws configure set aws_secret_access_key 7hT2kV9qWm4LxR8zNc3PbY6sJd1FgA5eUo0iKlMn --profile cloider
aws configure set region eu-central-2 --profile cloider
aws configure set endpoint_url https://s3.eu-central-2.cloider.com --profile cloider
The secret key is shown once

Cloider shows the secret key only in the answer to creating the key. It can't be displayed again. If you lose it, create a new key, switch your tools to it, and delete the old one.

Use the key​

Every S3 client needs four values:

SettingValueCommon names
Access key idCLDRZ8Q4M2X7KD1PLW0BAWS_ACCESS_KEY_ID, aws_access_key_id, access_key_id, accessKeyId
Secret access keythe 40 character secretAWS_SECRET_ACCESS_KEY, aws_secret_access_key, secret_access_key
Endpointhttps://s3.eu-central-2.cloider.comAWS_ENDPOINT_URL_S3, endpoint_url, endpoint
Regioneu-central-2AWS_REGION, region

As environment variables, which the AWS CLI and the AWS SDKs read on their own:

.env
AWS_ACCESS_KEY_ID=CLDRZ8Q4M2X7KD1PLW0B
AWS_SECRET_ACCESS_KEY=7hT2kV9qWm4LxR8zNc3PbY6sJd1FgA5eUo0iKlMn
AWS_REGION=eu-central-2
AWS_ENDPOINT_URL_S3=https://s3.eu-central-2.cloider.com
AWS_REQUEST_CHECKSUM_CALCULATION=when_required
AWS_RESPONSE_CHECKSUM_VALIDATION=when_required
S3_BUCKET=acme-assets

The two checksum variables keep newer AWS CLIs and SDKs from sending upload checksums that Cloider's storage doesn't accept. See S3 tools, SDKs and Use buckets from apps and clusters.

List access keys​

Open Buckets > Access Keys, or Access Control > S3 Credentials. The table shows each key's Name, Access Key (click it to copy), Buckets, Permission and Created at. A key that is still being created or deleted shows its status instead of the edit and delete buttons.

Change a key​

You can change a key's name, its buckets and its permission at any time. The access key id and the secret stay the same, so tools using the key keep working with the new scope. Changes apply within moments.

  1. Open Buckets > Access Keys (or Access Control > S3 Credentials).
  2. Click the pencil (Edit) button of the key.
  3. Change the Name, Buckets or Permission.
  4. Click Save changes.

Rotate an access key​

Rotating a key means replacing it with a new one, for example on a schedule, when a team member leaves or when a secret may have leaked. Cloider can't regenerate the secret of an existing key, so rotation is done with two keys:

  1. Create a new key with the same buckets and permission as the old one, for example ci-deploy-2026-10.
  2. Update every place that uses the old key: CI secrets, app environment variables, Kubernetes Secrets, ~/.aws/credentials, rclone configs.
  3. Check that nothing still uses the old key. Redeploy or restart the apps that read it, and run your jobs once.
  4. Delete the old key. Anything still using it gets InvalidAccessKeyId from then on.

With the CLI, the whole rotation for a CI pipeline looks like this:

# 1. New key, printed as exports
cloider bucket key create --label ci-deploy-2026-10 --bucket acme-assets --print-env > new-key.env

# 2. Put the values from new-key.env into your CI secrets, then remove the file
rm new-key.env

# 4. Once the pipeline runs with the new key, delete the old one
cloider bucket key delete ci-deploy --yes

With Terraform, run terraform apply -replace=cloider_bucket_key.deploy: Terraform deletes the old key and creates a new one, and every resource that reads cloider_bucket_key.deploy.secret_key (for example a Kubernetes Secret) gets the new secret in the same apply. Changing label, buckets or read_only doesn't rotate a key, those change in place.

If a secret leaked

Delete the key immediately rather than rotating it gently. Anyone holding a read and write key can read, overwrite and delete every file in the buckets it opens. Then create a new key for your tools.

Delete an access key​

Deleting a key revokes it right away: anything still using it loses access. Deleting a key never deletes buckets or files.

  1. Open Buckets > Access Keys (or Access Control > S3 Credentials).
  2. Click the trash (Delete) button of the key.
  3. Confirm with Delete in the Delete Access Key dialog.

Best practices​

  • One key per app, tool or person. A key named laptop-maria or api-production tells you what breaks when you delete it.
  • Smallest scope. Limit keys to the buckets they need, and make keys read only when the tool only reads (backups being restored, CDNs, analytics).
  • Keep secrets out of code. Store them in your CI's secret store, in app environment variables marked as secret, or in a Kubernetes Secret. Never commit them. Access key ids start with CLDR, which helps secret scanners spot a leaked key.
  • Rotate regularly and whenever someone with access leaves.
  • Combine with bucket policies for rules a key's scope can't express, such as write access to one prefix only. See Bucket policies.

Troubleshooting​

MessageCause and fix
Name must not be emptyGive the key a name (--label on the CLI)
Name must not exceed 64 charactersShorten the name
Choose at least one bucketYou chose Only specific buckets without picking any. Pick one, or choose all buckets
One of the buckets doesn't exist any more, reload and try againA picked bucket was deleted meanwhile, or isn't in this account
An account can have up to 50 access keys, delete one you no longer use!The account has 50 keys. Delete unused ones
The access key must be ready to be changed.The key is still being created or deleted. Wait a moment
The access key is busy, try again in a moment!The key is being created or deleted. Wait a moment
--all and --bucket don't go together (CLI)Pass one or the other
InvalidAccessKeyId from an S3 toolThe key was deleted, or the access key id is mistyped
SignatureDoesNotMatch from an S3 toolThe secret key is wrong, or the client signs for the wrong endpoint. See Troubleshooting
AccessDenied from an S3 toolThe key doesn't open this bucket, is read only, or a bucket policy denies the action. See Troubleshooting

Next steps​

Frequently asked questions

Can I see the secret key of an existing access key again?

No. Cloider shows the secret key only once, in the answer to creating the key, and can't display it again. If you lost it, create a new key, update your tools, and delete the old key.

What is the difference between an access key and an API token?

An access key is an S3 credential: S3 clients such as the AWS CLI, rclone and the SDKs use it to read and write files in buckets. An API token authenticates the cloider CLI, Terraform, the REST API and the MCP server to manage Cloider resources, such as creating buckets and keys. Each is useless for the other's job.

Does a key for all buckets include buckets I create later?

Yes. A key created with All buckets, including ones created later (or the CLI without --bucket) opens every bucket of the account, and new buckets are added to it as soon as they are created.

How many access keys can an account have?

Up to 50 access keys per account.

Can an access key create or delete buckets?

No. Access keys read and write objects. Creating and deleting buckets, changing visibility and setting bucket policies are done with the dashboard, the cloider CLI, Terraform, the REST API or the MCP server.

What happens to an access key when its bucket is deleted?

The bucket drops out of the key's list of buckets. The key keeps working for its other buckets. A key whose buckets were all deleted shows None left and opens nothing until you add buckets to it.