Skip to content

Commit ce2c6c5

Browse files
Added Bring Your Own Storage documentation (#3099)
1 parent 1a395c4 commit ce2c6c5

File tree

3 files changed

+111
-9
lines changed

3 files changed

+111
-9
lines changed
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
---
2+
id: bring-your-own-storage
3+
title: Bring Your Own Storage
4+
sidebar_label: Bring Your Own Storage
5+
---
6+
7+
import useBaseUrl from '@docusaurus/useBaseUrl';
8+
import Tabs from '@theme/Tabs';
9+
import TabItem from '@theme/TabItem';
10+
11+
Mobile App Distribution on a Private Cloud instance, allows you to *Bring Your Own Storage* and store the app artifacts on your own bucket.
12+
13+
This document explains how to create a new bucket that can be then used by Mobile App Distribution.
14+
15+
### Creating a bucket
16+
17+
18+
19+
- `AWS region` is your own choice. Best would be in the same region as the compute instances.
20+
21+
22+
- `Bucket Name` should fit your own naming convention.
23+
24+
25+
- Here is what needs to be configured:
26+
27+
- `Bucket type`: General Purpose
28+
29+
- `Object ownership`: ACLs Disabled (all objects in this bucket are owned by this account)
30+
31+
- `Block Public Access settings for this bucket`: On
32+
33+
- `Default encryption`: SSE-S3 (for custom KMS, see next section)
34+
35+
- `Bucket Policy`:
36+
```json
37+
{
38+
"Version": "2012-10-17",
39+
"Id": "mobile_app_distribution_policy",
40+
"Statement": [
41+
{
42+
"Sid": "mobile_app_distribution_statement",
43+
"Effect": "Allow",
44+
"Principal": {
45+
"AWS": "<will be provided to you>"
46+
},
47+
"Action": [
48+
"s3:GetObject",
49+
"s3:PutObject"
50+
],
51+
"Resource": "arn:aws:s3:::<bucket name>/*"
52+
}
53+
]
54+
}
55+
```
56+
57+
### Using SSE-KMS on Bucket
58+
59+
In order to have objects in S3 encrypted with SSE-KMS, a Key Policy is required.
60+
61+
Here is what's required:
62+
63+
- Key is **required** to be created in the same region as the S3 bucket
64+
65+
- Create with key type `Symmetric`, and key usage `Encrypt and Decrypt`
66+
67+
- Paste this **Key Policy**:
68+
```json
69+
{
70+
"Version": "2012-10-17",
71+
"Id": "mobile_app_distribution_key_policy",
72+
"Statement": [
73+
{
74+
"Sid": "Allow Mobile App Distribution",
75+
"Effect": "Allow",
76+
"Principal": {
77+
"AWS": "<will be provided to you>"
78+
},
79+
"Action": [
80+
"kms:Encrypt",
81+
"kms:Decrypt",
82+
"kms:GenerateDataKey"
83+
],
84+
"Resource": "*"
85+
},
86+
{
87+
"Sid": "Enable IAM User Permissions",
88+
"Effect": "Allow",
89+
"Principal": {
90+
"AWS": "arn:aws:iam::<your account id>:root"
91+
},
92+
"Action": "kms:*",
93+
"Resource": "*"
94+
}
95+
]
96+
}
97+
```
98+
99+
100+
101+

docs/testfairy/security/private-cloud.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,22 @@ Each Private Cloud instance operates independently, ensuring no shared resources
1818

1919
#### Key Components
2020

21-
- Dedicated Instance
21+
- **Dedicated Instance**
2222

2323
A dedicated instance is provisioned for each Private Cloud. This guarantees that compute resources are
2424
not shared with other tenants, providing consistent performance, isolation and security.
2525

26-
- Dedicated Database
26+
- **Dedicated Database**
2727

2828
Each Private Cloud instance comes with its own dedicated database. This ensures that all data is completely
2929
isolated, providing enhanced data security and performance benefits.
3030

31-
- Dedicated Data Storage (S3, GCS)
31+
- **Dedicated Data Storage (S3)**
3232

3333
For object storage, each tenant has a dedicated S3 bucket. This ensures that files and data stored in the cloud
3434
are securely isolated and managed separately.
3535

36-
- Dedicated IP Address
36+
- **Dedicated IP Address**
3737

3838
Each Private Cloud instance is assigned a dedicated IP address. This allows for better control over network traffic,
3939
improved security through IP whitelisting.
@@ -42,22 +42,22 @@ Each Private Cloud instance operates independently, ensuring no shared resources
4242

4343
A Private Cloud instance can suit your needs better by its available customizations:
4444

45-
- Select Hosted Region
45+
- **Select Hosted Region**
4646

4747
You may decide where the data is hosted, select from one of AWS available regions.
4848

49-
- Firewall Rules
49+
- **Firewall Rules**
5050

5151
A dedicate IP address and instance also allows you to select custom firewall rules. For example, admin panel is
5252
only available through company VPN.
5353

54-
- Custom Data Retention
54+
- **Custom Data Retention**
5555

5656
Apply specific rules as to how long your files are stored and when they are removed
5757

58-
- Provide S3-compliant Bucket
58+
- **Provide S3 Bucket**
5959

60-
Host the apps on your own S3 bucket (may that be AWS S3, GCP GCS or others). Your bucket, your rules.
60+
Host the apps on your own S3 bucket. Your bucket, your rules.
6161

6262

6363

sidebars.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1188,6 +1188,7 @@ module.exports = {
11881188
collapsed: true,
11891189
items: [
11901190
'testfairy/security/private-cloud',
1191+
'testfairy/security/bring-your-own-storage',
11911192
{
11921193
type: 'category',
11931194
label: 'Single Sign On',

0 commit comments

Comments
 (0)