Appearance
Custom AWS S3 Storage
The Custom storage feature is available with the Plugin Expansion plan and higher.
If you're on the Plugin for Startup plan, consider upgrading to access this feature. For more details, visit our pricing page or contact support.
The Custom Cloud Storage feature in the Topol Plugin lets you connect your own storage provider. Alongside Google Cloud Storage, Cloudflare R2, and DigitalOcean Spaces, you can also use Amazon Web Services (AWS S3). This tutorial walks through that setup step by step.
Throughout this guide, you will create a few values that you'll need at the very end (your bucket name, region, access key, and secret key). Save each one somewhere safe as you go.
Create an S3 bucket dedicated to the TOPOL plugin integration
1) Log in to your AWS console at https://s3.console.aws.amazon.com/s3/home.
2) Click Create bucket and fill out the form:
- Bucket name: enter your own name (for example,
topol-plugin). Save it for the final step. - Under Object Ownership, select ACLs enabled, then select Object writer.
- Under Block Public Access settings, deselect Block all public access, then tick I acknowledge that the current settings might result in this bucket and the objects within becoming public. to confirm.
- Leave all remaining options at their defaults and click the Create bucket button.
Add a CORS configuration so the editor can interact with the bucket
1) Open the bucket you just created (find it on https://s3.console.aws.amazon.com/s3/home).

2) Open the Permissions tab.
3) Scroll to the bottom of the page. In the Cross-origin resource sharing (CORS) section, click the Edit button and paste in the following statement:
json
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"https://o6lwlm3sld.execute-api.eu-west-1.amazonaws.com",
"https://d5aoblv5p04cg.cloudfront.net",
"https://v3.develop.email-assets.topol.io",
"https://v3.email-assets.topol.io",
"https://v4.develop.email-assets.topol.io",
"https://v4.email-assets.topol.io"
],
"ExposeHeaders": []
}
]4) Click the Save changes button.
Create your own policy
This policy scopes the plugin's access to just the bucket you created.
1) Go to https://console.aws.amazon.com/iam/home#/policies.
2) Click Create policy.
3) In the form that appears, select the following:
- Service: S3
- Actions:
- List -> ListBucket
- Read -> GetObject
- Write -> PutObject, DeleteObject
- Permissions management -> PutObjectAcl
- Resources:
- Select specific.
- For bucket, click Add ARN. Type your bucket name from the first section and click the Add button.
- For object, click Add ARN. Type your bucket name from the first section, and in the object name field select Any. Click the Add button.
4) Click Review policy.
5) Type a policy name.
6) Click Create policy.
Create an AWS user
The plugin authenticates as a dedicated user that carries this policy.
1) Go to https://console.aws.amazon.com/iam/home#/users.
2) Click the Add user button.
3) Fill in the User name field (for example, topol-plugin-user).
4) Click the Next: Permissions button in the bottom-right corner.
5) Click Attach existing policies directly.
6) In the search field, type the name of the policy you created in the previous section (for example, topol-plugin).
7) Select the policy and click the Next button in the bottom-right corner.
8) Click Next again, then click Create user.
Create access keys
1) Go to https://console.aws.amazon.com/iam/home#/users.
2) Click the user you just created.
3) Open the Security credentials tab.
4) Scroll to Access keys.
5) Click Create Access key.
6) Select Third-party service and create the access key.
7) Copy the Access key and Secret key. Save both for the final step.
8) Click Done.

Set your AWS credentials for the API Token in TOPOL
The remaining steps happen in the Topol app, using the values you saved above.
1) Log in to your Topol account at https://app.topol.io/. The API Tokens tab is selected by default.
2) Select the API Token where you want to set up your own AWS S3 storage and switch to the Configuration tab.
3) In the Custom storage section, click Set up Amazon S3 storage.

4) A modal will appear. Fill in the credentials you saved during this setup:
- Bucket name: the bucket you created in the first section.
- Region: the AWS region you selected for your bucket (for example,
eu-west-1). - Access key: the access key you saved earlier.
- Private key: the secret key you saved earlier.
- CloudFront URL (optional): if you serve your bucket through a CloudFront distribution, enter its URL.

5) Click Finish setup.
Setup complete. The plugin now uploads files to your S3 bucket.
If you hit any issues, contact our support.
