You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/integrations/destinations/s3.md
+125-35
Original file line number
Diff line number
Diff line change
@@ -6,24 +6,35 @@ This page guides you through the process of setting up the S3 destination connec
6
6
7
7
List of required fields:
8
8
9
-
-**Access Key ID**
10
-
-**Secret Access Key**
11
9
-**S3 Bucket Name**
12
10
-**S3 Bucket Path**
13
11
-**S3 Bucket Region**
14
12
13
+
If you are using STS Assume Role, you must provide the following:
14
+
15
+
-**Role ARN**
16
+
17
+
Otherwise, if you are using AWS credentials you must provide the following:
18
+
19
+
-**Access Key ID**
20
+
-**Secret Access Key**
21
+
22
+
If you are using an Instance Profile, you may omit the Access Key ID and Secret Access Key,
23
+
as well as, the Role ARN.
24
+
25
+
Additionally the following prerequisites are required:
26
+
15
27
1. Allow connections from Airbyte server to your AWS S3/ Minio S3 cluster \(if they exist in
16
28
separate VPCs\).
17
-
2. An S3 bucket with credentials or an instance profile with read/write permissions configured for
29
+
2. An S3 bucket with credentials, a Role ARN, or an instance profile with read/write permissions configured for
18
30
the host (ec2, eks).
19
31
3.[Enforce encryption of data in transit](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html#transit)
20
32
21
33
## Setup guide
22
34
23
35
### Step 1: Set up S3
24
36
25
-
[Sign in](https://console.aws.amazon.com/iam/) to your AWS account. Use an existing or create new
26
-
[Access Key ID and Secret Access Key](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#:~:text=IAM%20User%20Guide.-,Programmatic%20access,-You%20must%20provide).
37
+
[Sign in](https://console.aws.amazon.com/iam/) to your AWS account.
27
38
28
39
Prepare S3 bucket that will be used as destination, see
29
40
[this](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) to create
@@ -34,6 +45,109 @@ to an unencrypted connection. Airbyte recommends all connections be configured t
1. Open the [IAM console](https://console.aws.amazon.com/iam/home#home).
50
+
2. In the IAM dashboard, select **Policies**, then click **Create Policy**.
51
+
3. Select the **JSON** tab, then paste the following JSON into the Policy editor (be sure to substitute in your bucket name):
52
+
```json
53
+
{
54
+
"Version": "2012-10-17",
55
+
"Statement": [
56
+
{
57
+
"Effect": "Allow",
58
+
"Action": [
59
+
"s3:PutObject",
60
+
"s3:GetObject",
61
+
"s3:DeleteObject",
62
+
"s3:PutObjectAcl",
63
+
"s3:ListBucket",
64
+
"s3:ListBucketMultipartUploads",
65
+
"s3:AbortMultipartUpload",
66
+
"s3:GetBucketLocation"
67
+
],
68
+
"Resource": [
69
+
"arn:aws:s3:::YOUR_BUCKET_NAME/*",
70
+
"arn:aws:s3:::YOUR_BUCKET_NAME"
71
+
]
72
+
}
73
+
]
74
+
}
75
+
```
76
+
77
+
:::note
78
+
At this time, object-level permissions alone are not sufficient to successfully authenticate the connection. Please ensure you include the **bucket-level** permissions as provided in the example above.
79
+
:::
80
+
81
+
4. Give your policy a descriptive name, then click **Create policy**.
82
+
83
+
#### Authentication Option 1: Using an IAM Role (Most secure)
84
+
85
+
<!-- env:cloud -->
86
+
:::note
87
+
This authentication method is currently in the testing phase. To enable it for your workspace, please contact our Support Team.
88
+
:::
89
+
<!-- /env:cloud -->
90
+
91
+
1. In the IAM dashboard, click **Roles**, then **Create role**. <!-- env:oss -->
92
+
2. Choose the appropriate trust entity and attach the policy you created.
93
+
3. Set up a trust relationship for the role. For example for **AWS account** trusted entity use default AWS account on your instance (it will be used to assume role). To use **External ID** set it to environment variables as `export AWS_ASSUME_ROLE_EXTERNAL_ID="{your-external-id}"`. Edit the trust relationship policy to reflect this:
2. Choose the **AWS account** trusted entity type.
116
+
3. Set up a trust relationship for the role. This allows the Airbyte instance's AWS account to assume this role. You will also need to specify an external ID, which is a secret key that the trusting service (Airbyte) and the trusted role (the role you're creating) both know. This ID is used to prevent the "confused deputy" problem. The External ID should be your Airbyte workspace ID, which can be found in the URL of your workspace page. Edit the trust relationship policy to include the external ID:
4. Complete the role creation and note the Role ARN.
138
+
5. Select **Attach policies directly**, then find and check the box for your new policy. Click **Next**, then **Add permissions**.
139
+
140
+
141
+
##### Authentication Option 2: Using an IAM User
142
+
143
+
Use an existing or create new
144
+
[Access Key ID and Secret Access Key](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#:~:text=IAM%20User%20Guide.-,Programmatic%20access,-You%20must%20provide).
145
+
146
+
1. In the IAM dashboard, click **Users**. Select an existing IAM user or create a new one by clicking **Add users**.
147
+
2. If you are using an _existing_ IAM user, click the **Add permissions** dropdown menu and select **Add permissions**. If you are creating a _new_ user, you will be taken to the Permissions screen after selecting a name.
148
+
3. Select **Attach policies directly**, then find and check the box for your new policy. Click **Next**, then **Add permissions**.
149
+
4. After successfully creating your user, select the **Security credentials** tab and click **Create access key**. You will be prompted to select a use case and add optional tags to your access key. Click **Create access key** to generate the keys.
150
+
37
151
### Step 2: Set up the S3 destination connector in Airbyte
0 commit comments