Guide to set up your S3 database with Velvet

In this guide, we outline the steps required to securely connect your S3 database to your Velvet workspace. You may be able to skip some of these steps if you've previously connected your database to other services.

Depending on whether you're starting a new project from scratch, or connecting a database that's already configured for a third-party tool - this will take between 10 minutes and 2 hours.

  1. Create a read-only user
  2. Set up a static IP address (guide here)
  3. Identify and copy your connection string
  4. Configure which database tables you want to connect with Velvet

1. Create a read-only user

It's best practice to create a user with read-only permissions for products like Velvet. Create a user with read-only permissions in S3.

Create an IAM user

Attach a bucket policy that grants read access to the user.

  1. Go to the IAM console in your AWS account.
  2. Click on "Users" and then "Add user."
  3. Provide a name for the user and select "Programmatic access" as the access type.
  4. Click "Next" to move on to permissions.

Add read-only permissions

  1. Choose an existing policy that grants read-only access to S3, such as "AmazonS3ReadOnlyAccess." Or, create a new policy with the following permissions:
    "Version": "2024-02-01",
    "Statement": [
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
            "Resource": [
  1. Replace your-bucket-name with the actual name of your S3 bucket.
  2. Click on "Next: Tags" > "Next: Review." Replace "YOUR-BUCKET-NAME" with the actual name of your S3 bucket.

Create Access Keys

  1. Click on "Create user" to finish creating the user.
  2. Store the access key ID and secret access key. You will need them for programmatic access to S3.

Once you've created a read-only user, move on to the next step.

2. Set up a static IP address

Set up a static IP using our static IP configuration guide.

3. Identify and copy your connection string

Read our general guide on URI construction here.

4. Configure your database and tables on Velvet

Configure S3 as a remote database connection and select which tables you want connected.

  1. Tap into a workspace in your Velvet dashboard
  2. Tap "Add a data source"
  3. Select type "Remote database"
  4. Name your database
  5. Paste in your database URI. Note: After providing your database credentials for the first time, we manage the connection using ClickHouse. If required, you can add ClickHouse's Static IPs to an allowlist - Read their API documentation here.
  1. Select and configure the table you want to connect as a source.
  1. Name your table and create the source.
  1. Repeat steps 6 and 7 to add each table you want included as a data source.
  2. You can now view, search, and filter data inside your database source.

Great job, you’ve connected your internal database as a data source. We’ll capture data from your connected tables so you can query them in your Velvet workspace.

Email [email protected] for support or feedback.