> ## Documentation Index
> Fetch the complete documentation index at: https://docs.summation.com/llms.txt
> Use this file to discover all available pages before exploring further.

# S3

> Connect Summation to AWS S3 to read Parquet, CSV, and JSON files.

The S3 connector exposes objects in an AWS S3 bucket as datasets. Summation reads Parquet, CSV, and JSON files directly — no warehouse needed.

## What you'll need

* An **S3 bucket** in a known AWS region. See [AWS Regions and Zones](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) for region codes.
* An IAM user (or role with access keys) with read permission on the prefix you want exposed. See [Managing access keys for IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html). The minimum policy is in the [IAM policy](#iam-policy) section below.

## Form fields

| Field                 | Required | Stored as | Notes                                                                                                                                             |
| --------------------- | -------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Region**            | Yes      | Config    | AWS region of the bucket, e.g. `us-west-2`. See [Bucket regions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html). |
| **Base Path**         | Optional | Config    | An `s3://` prefix to scope the connection to, e.g. `s3://my-bucket/path`. Browsing starts from this prefix.                                       |
| **Access Key ID**     | Yes      | Secret    | AWS access key ID. See [Managing access keys for IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).    |
| **Secret Access Key** | Yes      | Secret    | AWS secret access key matching the key ID.                                                                                                        |

## IAM policy

Minimum policy for read-only access to a single prefix. Replace `my-bucket` and the `path/` prefix with your own. For more, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) and [Identity-based policies for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html).

```json theme={null}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": "arn:aws:s3:::my-bucket",
      "Condition": {
        "StringLike": { "s3:prefix": ["path/*"] }
      }
    },
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": "arn:aws:s3:::my-bucket/path/*"
    }
  ]
}
```

## Adding datasets

Each dataset is a single file or a glob within the bucket. Summation infers the schema from the file format. Source references use the form:

```
s3://bucket/path/to/data/
```

## Common problems

| Error or symptom           | Likely cause                                                                                             |
| -------------------------- | -------------------------------------------------------------------------------------------------------- |
| `AccessDenied`             | The IAM user/role lacks `s3:GetObject` on the key. Check both the IAM policy *and* the bucket policy.    |
| `NoSuchBucket`             | Wrong region. **Region** must match the bucket's region exactly.                                         |
| CSV columns inferred wrong | Re-check the file's encoding and delimiter. Parquet is the most reliable format for repeatable analyses. |
