Skip to content

Commit

Permalink
Add documentation on how to setup GCE accounts
Browse files Browse the repository at this point in the history
This commit adds the steps needed to create a credential with the needed access on Google Cloud Platform to be able to successfully create a new algo VPN.

Related to:
- trailofbits#682
- trailofbits#658
  • Loading branch information
bltavares committed Oct 24, 2018
1 parent 3468d27 commit 26c8cb1
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions docs/cloud-gce.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Google Cloud Platform setup

Follow the [installation instructions](https://cloud.google.com/sdk/) to have the CLI commands to interact with Google.

After creating an account and installing, login in on your account using `gcloud init`

### Creating a project

The recommendation on GCP is to group resources on **Projets**, so we will create one project to put our VPN server and service account restricted to it.

```bash
## Create the project to group the resources
### You might need to change it to have a global unique project id
PROJECT_ID=${USER}-algo-vpn
BILLING_ID="$(gcloud beta billing accounts list --format="value(ACCOUNT_ID)")"

gcloud projects create ${PROJECT_ID} --name algo-vpn --set-as-default
gcloud beta billing projects link ${PROJECT_ID} --billing-account ${BILLING_ID}

## Create an account that have access to the VPN
gcloud iam service-accounts create algo-vpn --display-name "Algo VPN"
gcloud iam service-accounts keys create configs/gce.json \
--iam-account algo-vpn@${PROJECT_ID}.iam.gserviceaccount.com
gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--member serviceAccount:algo-vpn@${PROJECT_ID}.iam.gserviceaccount.com \
--role roles/compute.admin
gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--member serviceAccount:algo-vpn@${PROJECT_ID}.iam.gserviceaccount.com \
--role roles/iam.serviceAccountUser

## Enable the services
gcloud services enable compute.googleapis.com

./algo -e "provider=gce" -e "gce_credentials_file=$(pwd)/configs/gce.json"

```

**Attention:** take care of the `configs/gce.json` file, which contains the credentials to manage your Google Cloud account, including create and delete servers on this project.

0 comments on commit 26c8cb1

Please sign in to comment.