---
title: How to connect MASV to an Amazon S3 bucket
description: In this article, we provide a step-by-step guide for integrating MASV with your AWS bucket. Read more.
---

[Skip to content](https://help.massive.io/en/how-to-connect-to-aws-s3-bucket#main-content)

[![MASV logo](https://help.massive.io/hs-fs/hubfs/MASV_Logo_Colour_2026.png?width=150&height=38&name=MASV_Logo_Colour_2026.png)](https://massive.io/)

- [Home](https://help.massive.io/en)
- [Products](https://massive.io/product/)
- [Pricing](https://massive.io/pricing/)
- [Blog](https://massive.io/blog/)
- [Company](https://massive.io/about-us/)

Open main navigation

Close main navigation

- [Home](https://help.massive.io/en)
- [Products](https://massive.io/product/)
- [Pricing](https://massive.io/pricing/)
- [Blog](https://massive.io/blog/)
- [Company](https://massive.io/about-us/)

 How can we help?

- There are no suggestions because the search field is empty.

1. [Help Center - MASV](https://help.massive.io/en?hsLang=en)
2. [Apps & Integrations](https://help.massive.io/en/apps-integrations?hsLang=en)
3. [Cloud integrations](https://help.massive.io/en/apps-integrations?hsLang=en#cloud-integrations)

# How to connect MASV to an Amazon S3 bucket

## Integrate MASV with your Amazon S3 bucket

Amazon S3 from AWS (Amazon Web Services) is a cloud storage service known for providing scalability, data availability, security, and performance. If you have an Amazon S3 cloud storage bucket, follow the steps below to connect it to MASV.

Topics include:

[Overview](https://help.massive.io/en/how-to-connect-to-aws-s3-bucket#overview)

[Policies and permissions](https://help.massive.io/en/how-to-connect-to-aws-s3-bucket#policies-and-permissions)

[Setting up access: Key-based or Role-based](https://help.massive.io/en/how-to-connect-to-aws-s3-bucket#key-based-or-role-based)<https://help.massive.io/en/how-to-connect-to-aws-s3-bucket#role-based-access>

[Ready? Information you'll need](https://help.massive.io/en/how-to-connect-to-aws-s3-bucket#info-you-need)

[To integrate an Amazon S3 bucket with MASV using key-based access](https://help.massive.io/en/how-to-connect-to-aws-s3-bucket#s3-key-based)

[To integrate an Amazon S3 bucket with MASV using role-based access](https://help.massive.io/en/how-to-connect-to-aws-s3-bucket#s3-role-based)

### Overview

You can create more than one Amazon S3 integration in MASV, mapping each integration to a specific Storage Class, transfer direction (save to S3 or send from S3), and Target Directory. You can then pair the integration with one or more MASV Portals to send or ingest files exactly where you want them.

In order to set up the integration with your Amazon S3 bucket, you need to create a policy and associate it with an IAM user or IAM role. The policy determines the actions permitted between MASV and Amazon S3. The policy for saving to S3 is different from the policy required to send files from S3 (details in the sections below).

After you create a policy and associate it with the IAM user or IAM role, you can set up access using Key-based or Role-based access.

**Note**: If your file name or file path includes unsupported characters, MASV removes the unsupported characters before transferring the files. Any changes are reflected in MASV-generated metadata files. For more information, see [Special character support for Amazon S3](https://help.massive.io/en/special-character-support-amazon-s3?hsLang=en).<https://help.massive.io/en/special-character-support-amazon-s3?hsLang=en>

### Policies and permissions

Both key-based and role-based access require IAM policies with permissions that allow either saving to or sending from S3. You can create the policies in the AWS Management Console. For information about creating policies for Amazon S3, see[Policies and permissions in AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).

#### Save to S3

The following Actions must be permitted to save to Amazon S3 (**Transfer Direction**: **Save to storage**):

- AbortMultipartUpload
- DeleteObject
- GetBucketLocation
- ListBucket
- PutObject

When creating your policy, you can copy and paste the following sample permission statement into the policy editor in AWS. Swap the bucket name (in bold) with your bucket name:

```
{    "Version": "2012-10-17",    "Statement": [        {            "Sid": "masvintegration",            "Effect": "Allow",            "Action": [                "s3:AbortMultipartUpload",                "s3:DeleteObject",                "s3:GetBucketLocation",                "s3:ListBucket",                "s3:PutObject"            ],            "Resource": [                "arn:aws:s3:::<bucket name>",                "arn:aws:s3:::<bucket name>/*"            ]        }    ]}
```

#### **Send from S3 to MASV**

The following S3 Actions must be permitted to send from S3 via MASV (**Transfer Direction**: **Send from storage**):

- GetObject
- ListBucket

When creating your policy, you can copy and paste the following sample permission statement into the policy editor in AWS, swapping in your bucket name (in bold) in the **Resource** section:

```
{  "Version": "2012-10-17",  "Statement": [    {      "Effect": "Allow",      "Action": [        "s3:GetObject",        "s3:ListBucket"      ],      "Resource": [        "arn:aws:s3:::<bucket name>,        "arn:aws:s3:::<bucket name>/*"      ]    }  ]}
```

To permit partial access, to specific folders/directories within the bucket, you use the following sample, swapping in your bucket name and path (bold) in the **Resource** and **Condition** sections:

```
{    "Version": "2012-10-17",    "Statement": [        {            "Effect": "Allow",            "Action": [                "s3:GetObject"            ],            "Resource": [                "arn:aws:s3:::<bucket name/folder-a>",                "arn:aws:s3:::<bucket name/folder-a>/*"                "arn:aws:s3:::<bucket name/folder-b>",                "arn:aws:s3:::<bucket name/folder-b>/*"            ]        },        {            "Effect": "Allow",            "Action": [                "s3:ListBucket"            ],            "Resource": [                "arn:aws:s3:::<bucket name>"            ],            "Condition": {                "StringLike": {                    "s3:prefix": [                        "<folder-a>*",                        "<folder-b>*"                    ]                }            }        }    ]}
```

### Setting up access: Key-based or Role-based

You can choose from two different access methods when connecting MASV to your Amazon S3 storage:

- **Key-based**: The key-based method uses an Access ID and Secret Key.
- **Role-based**: IAM role-based access uses a Trust policy.

The method you choose depends on how you want to limit and maintain access. For example, keys must be rotated regularly, so they require additional maintenance.

For more information about IAM roles and role-based access, visit [IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).

For more information about access keys, visit [Manage access keys for IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).

#### Key-based access

Access keys are created in the AWS Management Console. For key-based access, you must attach the IAM policy to an IAM user. The access keys are then generated for that user. For information about creating access keys, visit [How do I create an AWS access key?](https://repost.aws/knowledge-center/create-access-key)  Copy and save the ID and Secret to a secure location.

#### Role-based access

For role-based access, the IAM policy is attached to an IAM role and you then create a Custom Trust policy that allows MASV to assume the role during transfers. Here is the JSON code you can copy and paste into AWS Trust policy:

```
{  "Version": "2012-10-17",  "Statement": [    {      "Effect": "Allow",      "Principal": {        "AWS": "arn:aws:iam::852552850122:role/masv_transfer"      },      "Action": "sts:AssumeRole",      "Condition": {        "StringEquals": {          "sts:ExternalId": "<randomly generated External ID from MASV>"        }      }    }  ]}
```

You’ll need your IAM role ARN to create the connection with MASV.

**Note:** The External ID is generated by MASV in the **Add Integration** window. You can copy and paste it into your Custom Trust policy (edit if you created the policy in advance or create the policy in tandem with the MASV connection). If you choose to use your own External ID, it must adhere to these rules:

- Minimum of 16 characters and maximum of 1224 characters in length
- Can include alphanumeric characters and the following non-alphanumeric characters: plus (+), equal (=), comma (,), period (.), at (@), colon (:), forward slash (/), and hyphen (-)
- Cannot contain spaces

**Warning:** The External ID must be unique and kept secret in order to prevent unauthorized access to your bucket via the [confused deputy problem](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

### Ready? Information you'll need

To make the process go smoothly, have the following information on hand:

- Amazon S3 bucket name
- Region of bucket
- Key-based or Role-based access credentials: 
    - Key-based: Access key ID and Access key Secret with the appropriate associated permission policies.
    - Role-based: Role ARN with the required associated trust and permission policies. If you created your Custom Trust policy in advance and want to use an External ID that you generated, you’ll also need a copy of the External ID.
- Know which AWS Storage Class you want to choose if creating a MASV to Cloud connection.
- Know your S3 path (which folder you want to connect with).

#### To integrate an Amazon S3 bucket with MASV using key-based access

1. In the **MASV Web App**, as a Team Owner or Admin ([role](https://help.massive.io/en/what-are-the-permissions-for-owner-admins-and-members-of-your-team?hsLang=en)), from the sidebar on the left, select **Integrations**.
2. On the **Integrations** page, select the **Available Integrations** tab.
3. Select **Amazon S3**.
4. In the **Add Integration** window, enter or select the information required:  
     1. **Connection Name:** Type a meaningful name. This name will display in the **My Integrations** list.
     2. **Bucket:** Enter the name of your S3 bucket.
     3. **Access Key ID:** Copy and paste the AWS Access Key ID.
     4. **Secret Access Key:** Copy and paste the AWS Secret. Note: If a browser password manager displays, avoid saving secret key credentials to this type of service.
     5. **Region:** Choose the AWS Region where your bucket is hosted.
     6. **Storage Class:** Choose from any of the available storage classes for transfers that save files to S3 (Standard, Glacier, Intelligent Tiering, One-Zone, etc.). If sending from S3 via MASV, select Standard (files must be readily available).
     7. **Transfer Direction**: Select one of the following options:
        
            1. **Save to storage**: For inbound files (Write)--MASV transfers files to the storage device.
            2. **Send from storage**: For outbound files (Read)--MASV transfers files out of the storage device. **Note**: **Storage Class** must be set to **Standard**.
5. Choose any of the following settings in **Folder Options** or **Source Directories**: 
     1. [**Target Subdirectory**](https://help.massive.io/en/how-to-use-target-subdirectory?hsLang=en) (**Save to Cloud** direction only): To set an optional relative path, type a path in the **Target Subdirectory** box. You can edit this directory as needed.
     2. **Save directly in upload/target directory** (**Save to Cloud** direction only): If you want to save the files in a directory that uses the package name, clear the checkbox. To deliver directly into the **Target Subdirectory**, select the checkbox.
     3. **Source Directories** (**Send from Cloud** direction only): To limit access to a specific folder/directory, in **Source Directories**, type a relative path. You can edit this directory as needed.
6. In **Sidecar Options**, select any of the following options:
   
     1. **[Include Transfer Manifest](https://help.massive.io/en/how-to-generate-a-transfer-manifest-file?hsLang=en):** A JSON sidecar file that includes metadata, file path and other file info, and a file list for the transfer.
     2. **[Include Per-File Manifest](https://help.massive.io/en/how-to-generate-a-transfer-manifest-file?hsLang=en):** A JSON sidecar file generated for each file in the transfer that includes metadata, file path and other file info. Select the extension for the files: **.json** (default) or **.masv**.
     3. **[Mimir Sidecar Form ID](https://help.massive.io/en/how-to-connect-masv-with-mimir?hsLang=en):** If you are passing metadata to Mimir, enter a your Mimir Form ID.
7. Select the **Connect** button.
8. Refresh the page to update the list and status of the connections on the **My Integrations** tab. Confirm that **OK** appears in the **Status** column.

#### To integrate an Amazon S3 bucket with MASV using IAM role-based access

1. In the **MASV Web App**, as a Team Owner or Admin ([role](https://help.massive.io/en/what-are-the-permissions-for-owner-admins-and-members-of-your-team?hsLang=en)), from the sidebar on the left, select **Integrations.**
2. On the **Integrations** page, select the **Available Integrations** tab.
3. Select **Amazon S3**.
4. In the **Add Integration** window, select the **Role-based** radio button.
5. Enter or select the information required for the following fields: 
   
     1. **Connection Name:** Type a meaningful name. This name will display in the **My Integrations** list.
     2. **Bucket**: Name of the Amazon S3 bucket that you want to connect.
     3. **Role ARN:** Copy and paste the Role ARN from AWS.
     4. **External ID:** Copy this ID and save it to the Custom Trust policy for the IAM Role in AWS.
     5. **Region:** Choose the AWS Region for your bucket.
     6. **Storage Class:** Choose from Standard, Glacier, Intelligent Tiering, One-Zone, and more.
     7. **Transfer Direction**: Select one of the following options 
            1. **Save to Cloud**: For inbound files (Write)--MASV transfers files to the storage location.
            2. **Send from Cloud**: For outbound files (Read)--MASV transfers files out of the storage location.
6. Choose any of the following settings in **Folder Options** or **Source Directories**:
   
     1. [**Target Subdirectory**](https://help.massive.io/en/how-to-use-target-subdirectory?hsLang=en) (**Save to Cloud** direction only): To set an optional relative path, type a path in the **Target Subdirectory** box. You can edit this directory as needed.
     2. **Save directly in upload/target directory** (**Save to Cloud** direction only): If you want to save the files in a directory that uses the package name, clear the checkbox. To deliver directly into the **Target Subdirectory**, select the checkbox.
     3. **Source Directories** (**Send from Cloud** direction only): To limit access to a specific folder/directory, in **Source Directories**, type a relative path. You can edit this directory as needed.
7. In **Sidecar Options**, select any of the following options: 
     1. **[Include Transfer Manifest](https://help.massive.io/en/how-to-generate-a-transfer-manifest-file?hsLang=en):** A JSON sidecar file that includes metadata, file path and other file info, and a file list for the transfer.
     2. **[Include Per-File Manifest](https://help.massive.io/en/how-to-generate-a-transfer-manifest-file?hsLang=en):** Generates a manifest file (JSON) for each file delivered. Select the extension for the files: **.json** (default) or **.masv**.
     3. **[Mimir Sidecar Form ID](https://help.massive.io/en/how-to-connect-masv-with-mimir?hsLang=en):** If you are passing metadata to [Mimir](https://help.massive.io/en/how-to-connect-masv-with-mimir?hsLang=en), enter a your Mimir Form ID.
8. Select the **Connect** button.
9. Refresh the page to update the list and status of the connections on the **My Integrations** tab. Confirm that **OK** appears in the **Status** column.

That's it! After authentication, the service is connected with MASV. You can now:

1. [Connect integrations with MASV Portals](https://help.massive.io/en/how-to-use-a-portal-to-send-files-to-integrations?hsLang=en)
2. [Send files from your integration](https://help.massive.io/en/how-to-send-files-using-masv?hsLang=en#send-from-integration)

- [Get started with MASV](https://help.massive.io/en/get-started-with-masv?hsLang=en)
- [Send and request files](https://help.massive.io/en/send-and-request-files?hsLang=en#main-content)

    - [Send files](https://help.massive.io/en/send-and-request-files?hsLang=en#send-files)
    - [Request files with portals](https://help.massive.io/en/send-and-request-files?hsLang=en#request-files-with-portals)
    - [MASV Desktop App](https://help.massive.io/en/send-and-request-files?hsLang=en#masv-desktop-app)
    - [Advanced settings](https://help.massive.io/en/send-and-request-files?hsLang=en#advanced-settings)
- [Apps & Integrations](https://help.massive.io/en/apps-integrations?hsLang=en#main-content)

    - [Working with integrations](https://help.massive.io/en/apps-integrations?hsLang=en#working-with-integrations)
    - [Cloud integrations](https://help.massive.io/en/apps-integrations?hsLang=en#cloud-integrations)
    - [On-premises and cloud storage devices](https://help.massive.io/en/apps-integrations?hsLang=en#on-premises-and-cloud-storage-devices)
    - [Asset management & collaboration](https://help.massive.io/en/apps-integrations?hsLang=en#asset-management-collaboration)
- [Teams and user management](https://help.massive.io/en/teams-and-user-management?hsLang=en#main-content)

    - [Teams](https://help.massive.io/en/teams-and-user-management?hsLang=en#teams)
    - [Roles & Teamspaces](https://help.massive.io/en/teams-and-user-management?hsLang=en#roles-teamspaces)
    - [Single Sign-On (SSO)](https://help.massive.io/en/teams-and-user-management?hsLang=en#single-sign-on-sso)
- [Manage file transfers](https://help.massive.io/en/manage-file-transfers?hsLang=en#main-content)

    - [Transfer History & Dashboard](https://help.massive.io/en/manage-file-transfers?hsLang=en#transfer-history-dashboard)
    - [Notifications](https://help.massive.io/en/manage-file-transfers?hsLang=en#notifications)
    - [Custom Metadata](https://help.massive.io/en/manage-file-transfers?hsLang=en#custom-metadata)
- [Account and billing](https://help.massive.io/en/account-and-billing?hsLang=en#main-content)

    - [Account](https://help.massive.io/en/account-and-billing?hsLang=en#account)
    - [Billing](https://help.massive.io/en/account-and-billing?hsLang=en#billing)
    - [Extended Storage](https://help.massive.io/en/account-and-billing?hsLang=en#extended-storage)
- [FAQs](https://help.massive.io/en/faqs?hsLang=en)
- [Releases](https://help.massive.io/en/releases?hsLang=en)
- [MASV Desktop App](https://help.massive.io/en/masv-desktop-app?hsLang=en)

[![MASV\_Logo\_Colour\_2026](https://help.massive.io/hs-fs/hubfs/MASV_Logo_Colour_2026.png?width=100&height=25&name=MASV_Logo_Colour_2026.png "MASV_Logo_Colour_2026")](https://massive.io)

#### MASV Help Center

<https://www.youtube.com/c/MASVfast/> <https://www.linkedin.com/company/masv/>

**[MASV Service Status](https://masv.statuspage.io/)**

Copyright © 2026, MASV