mirror of
https://github.com/trailofbits/algo.git
synced 2025-09-02 10:03:01 +02:00
Create AWS EC2 setup instructions
This commit is contained in:
parent
3658d1d180
commit
ea9165eb98
1 changed files with 128 additions and 0 deletions
128
docs/cloud-amazon-ec2.md
Normal file
128
docs/cloud-amazon-ec2.md
Normal file
|
@ -0,0 +1,128 @@
|
|||
# Amazon EC2 cloud setup
|
||||
|
||||
## AWS account creation
|
||||
|
||||
Creating an Amazon AWS account requires giving Amazon a phone number that can receive a call and has a number pad to enter a
|
||||
PIN challenge displayed in the browser. This phone system prompt occasionally fails to correctly validate input, but try again
|
||||
(request a new PIN in the browser) until you succeed.
|
||||
|
||||
### Select an EC2 plan
|
||||
|
||||
The cheapest EC2 plan you can choose is the "Free Plan" a.k.a. the "AWS Free Tier." It is only available to new AWS customers,
|
||||
it has limits on usage, and is converts to standard pricing after 12 months (the "introductory period"). After you exceed the
|
||||
usage limits, after the 12 month period, or if you are an existing AWS customer, then you will pay standard pay-as-you-go
|
||||
service prices.
|
||||
|
||||
*Note*: Your Algo instance will not stop working when you hit the bandwidth limit, you will just start accumulating service
|
||||
charges on your AWS account.
|
||||
|
||||
As of the time of this writing (July 2018), the Free Tier limits include "750 hours of Amazon EC2 Linux t2.micro instance
|
||||
usage" per month, 15 GB of bandwidth (outbound) per month, and 30 GB of cloud storage. Algo will not even use 1% of the storage
|
||||
limit, but you may have to monitor your bandwidth usage or keep an eye out for the email from Amazon when you are about to
|
||||
exceed the Free Tier limits.
|
||||
|
||||
### Set up an AWS user
|
||||
|
||||
In the AWS console, find the users (“Identiy and Access Management”, a.k.a. IAM users) menu: click Services > IAM.
|
||||
|
||||
Activate multi-factor authentication (MFA) on your root account. The simplest choice is the mobile app "Google Authenticator."
|
||||
A hardware U2F token is ideal (less prone to a phishing attack), but a TOTP authenticator like this is good enough.
|
||||
|
||||

|
||||
|
||||
Now "Create individual IAM users" and click Add User.
|
||||
|
||||
Create a user name. I chose “algovpn”. Then click the box next to Programmatic Access. Then click Next.
|
||||
|
||||

|
||||
|
||||
Next, click “Attach existing policies directly.”
|
||||
|
||||
Type “admin” in the search box to filter the policies. Find “AdministratorAccess” and click the checkbox next to that.
|
||||
|
||||
Click Next when you’re done.
|
||||
|
||||

|
||||
|
||||
The user creation confirmation screen should look like this if you've done everything correctly.
|
||||
|
||||

|
||||
|
||||
On the final screen, click the Download CSV button. This file includes the AWS access keys you’ll need during the Algo set-up
|
||||
process. Click Close, and you’re all set.
|
||||
|
||||

|
||||
|
||||
## Using EC2 during Algo setup
|
||||
|
||||
After you have downloaded Algo and installed its dependencies, the next step is running Algo to provision the VPN server
|
||||
on your AWS account.
|
||||
|
||||
First you will be asked which server type to setup. You would want to enter "2" to use Amazon EC2.
|
||||
|
||||
```
|
||||
$ ./algo
|
||||
|
||||
What provider would you like to use?
|
||||
1. DigitalOcean
|
||||
2. Amazon EC2
|
||||
3. Microsoft Azure
|
||||
4. Google Compute Engine
|
||||
5. Scaleway
|
||||
6. OpenStack (DreamCompute optimised)
|
||||
7. Install to existing Ubuntu 16.04 server (Advanced)
|
||||
|
||||
Enter the number of your desired provider
|
||||
: 2
|
||||
```
|
||||
|
||||
Next you will be asked for the AWS Access Key (Access Key ID) and AWS Secret Key (Secret Access Key) that you received in
|
||||
the CSV file when you setup the account (don't worry if you don't see your text entered in the console; the key input is
|
||||
hidden here by Algo).
|
||||
|
||||
```
|
||||
Enter your aws_access_key (http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html)
|
||||
Note: Make sure to use an IAM user with an acceptable policy attached (see https://github.com/trailofbits/algo/blob/master/docs/deploy-from-ansible.md).
|
||||
[pasted values will not be displayed]
|
||||
[AKIA...]:
|
||||
|
||||
Enter your aws_secret_key (http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html)
|
||||
[pasted values will not be displayed]
|
||||
[ABCD...]:
|
||||
```
|
||||
|
||||
You will be prompted for the server name to enter. Feel free to leave this as the default ("algo") if you are not certain
|
||||
how this will affect your setup. Here we chose to call it "algovpn".
|
||||
|
||||
```
|
||||
Name the vpn server:
|
||||
[algo]: algovpn
|
||||
```
|
||||
|
||||
After entering the server name, the script ask which region you wish to setup your new Algo instance in. Enter the number
|
||||
next to name of the region.
|
||||
|
||||
```
|
||||
What region should the server be located in?
|
||||
1. us-east-1 US East (N. Virginia)
|
||||
2. us-east-2 US East (Ohio)
|
||||
3. us-west-1 US West (N. California)
|
||||
4. us-west-2 US West (Oregon)
|
||||
5. ca-central-1 Canada (Central)
|
||||
6. eu-central-1 EU (Frankfurt)
|
||||
7. eu-west-1 EU (Ireland)
|
||||
8. eu-west-2 EU (London)
|
||||
9. eu-west-3 EU (Paris)
|
||||
10. ap-northeast-1 Asia Pacific (Tokyo)
|
||||
11. ap-northeast-2 Asia Pacific (Seoul)
|
||||
12. ap-northeast-3 Asia Pacific (Osaka-Local)
|
||||
13. ap-southeast-1 Asia Pacific (Singapore)
|
||||
14. ap-southeast-2 Asia Pacific (Sydney)
|
||||
15. ap-south-1 Asia Pacific (Mumbai)
|
||||
16. sa-east-1 South America (São Paulo)
|
||||
|
||||
Enter the number of your desired region:
|
||||
[1]: 10
|
||||
```
|
||||
|
||||
You will then be asked the remainder of the standard Algo setup questions.
|
Loading…
Add table
Reference in a new issue