---
title: Use Amazon S3 for object storage
description: Use Amazon S3 as the object store for your InfluxDB 3 Core instance.
url: https://docs.influxdata.com/influxdb3/core/object-storage/s3/
estimated_tokens: 1191
product: InfluxDB 3 Core
version: core
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb3/core/object-storage/s3/
date: '2026-08-27T09:54:30-05:00'
lastmod: '2026-08-27T09:54:30-05:00'
---

Use [Amazon S3](https://aws.amazon.com/s3/) as the object store for your
InfluxDB 3 Core instance.

Amazon S3 is the reference object storage implementation InfluxDB 3 Core
is built against and tested with.

* [Object store requirements](#object-store-requirements)
* [Create an S3 bucket](#create-an-s3-bucket)
* [Create IAM credentials](#create-iam-credentials)
* [Configure InfluxDB to connect to S3](#configure-influxdb-to-connect-to-s3)
* [Confirm the object store is working](#confirm-the-object-store-is-working)

## Object store requirements

InfluxDB 3 Core depends on strict object store consistency semantics—
strong read-after-write and list-after-write consistency, and conditional PUT
(PUT-if-not-exists) support.
Amazon S3 provides these semantics.
See [Object store requirements](../#object-store-requirements) for the full
list of semantics InfluxDB 3 Core depends on and how to verify your
object store meets them.

## Create an S3 bucket

1. Sign in to the [Amazon S3 console](https://console.aws.amazon.com/s3/).
2. Click **Create bucket**.
3. Enter a bucket name–for example, `influxdb3`–and choose an AWS Region.
4. Keep the default **Block Public Access** and versioning settings unless
   your organization requires otherwise, and click **Create bucket**.

Alternatively, use the[AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html) to
create a bucket:

```bash
aws s3 mb s3://influxdb3 --region AWS_REGION
```

## Create IAM credentials

Create an IAM user or role with permission to read from and write to your
bucket, and generate an access key for it:

1. In the [IAM console](https://console.aws.amazon.com/iam/), create a new
   user (or use an existing one) and attach a policy that grants access to
   your bucket–for example:

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Action": ["s3:GetBucketLocation", "s3:ListBucket"],
         "Resource": ["arn:aws:s3:::influxdb3"]
       },
       {
         "Effect": "Allow",
         "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"],
         "Resource": ["arn:aws:s3:::influxdb3/*"]
       }
     ]
   }
   ```

2. Generate an access key for the user under **Security credentials**.
   Save the access key ID and secret access key–you use them to configure
   InfluxDB 3 Core.

> [!Tip]
> In production, prefer an IAM role (for example, an EC2 instance profile or
> IAM roles for service accounts on EKS) over long-lived access keys where
> your deployment environment supports it.

## Configure InfluxDB to connect to S3

To use your S3 bucket as the object store for your InfluxDB 3 Core
instance, provide the following options or environment variables with the`influxdb3 serve` command:

#### Command options ####

* `--node-id`: Your InfluxDB 3 Core node ID (`INFLUXDB_NODE_ID`)
* `--object-store`: `s3`
* `--bucket`: `influxdb3`
* `--aws-access-key-id`: Your access key ID (`AWS_ACCESS_KEY_ID`)
* `--aws-secret-access-key`: Your secret access key (`AWS_SECRET_ACCESS_KEY`)
* `--aws-default-region`: *(Optional)* Your bucket’s AWS Region (`AWS_REGION`); defaults to `us-east-1`

```
influxdb3 serve \

--node-id INFLUXDB_NODE_ID \
  --object-store s3 \
  --bucket influxdb3 \
  --aws-access-key-id AWS_ACCESS_KEY_ID \
  --aws-secret-access-key AWS_SECRET_ACCESS_KEY \
  --aws-default-region AWS_REGION
```

* `INFLUXDB3_NODE_ID`: Your InfluxDB 3 Core node ID (`INFLUXDB_NODE_ID`)
* `INFLUXDB3_OBJECT_STORE`: `s3`
* `INFLUXDB3_BUCKET`: `influxdb3`
* `AWS_ACCESS_KEY_ID`: Your access key ID
* `AWS_SECRET_ACCESS_KEY`: Your secret access key
* `AWS_DEFAULT_REGION`: *(Optional)* Your bucket’s AWS Region; defaults to`us-east-1`

```

export INFLUXDB3_NODE_ID=INFLUXDB_NODE_ID
export INFLUXDB3_OBJECT_STORE=s3
export INFLUXDB3_BUCKET=influxdb3
export AWS_ACCESS_KEY_ID=AWS_ACCESS_KEY_ID
export AWS_SECRET_ACCESS_KEY=AWS_SECRET_ACCESS_KEY
export AWS_DEFAULT_REGION=AWS_REGION

influxdb3 serve
```

## Confirm the object store is working

When InfluxDB 3 Core starts, it seeds your S3 bucket with the necessary
directory structure and begins storing data there. Confirm the object store
is functioning properly:

1. View the `influxdb3 serve` log output to confirm that the server is
   running correctly.

2. Inspect the contents of your bucket to confirm the necessary directory
   structure is created–for example, using the AWS CLI:

   ```
   aws s3 ls s3://influxdb3
   ```

#### Related

* [Create a bucket (Amazon S3 docs)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html)
* [InfluxDB 3 Core configuration options](/influxdb3/core/reference/config-options/)

[object storage](/influxdb3/core/tags/object-storage/)[S3](/influxdb3/core/tags/s3/)
