Testing a scripted or otherwise automated and orchestrated implementation of BitWarden on Google Cloud.
Sometimes a potential client lead brings a piece of tech to my attention that for one reason or another it seems valuable to take it more seriously than others. (As opposed to tech that sounds vaguely interesting where I throw out a quick and ambiguous ballpark because frankly I'm holding onto the faith that something more dope will come along soon if I can be patient and keep my eyes open.)
This is one of the former cases. It's Google Cloud and it's a security-related solution. At the time of this writing, I'm looking to diversify my cloud experience and I'm always trying to stay strong when it comes to security.
That being said, I'm willing to put in some extra research time of my own to take this potential opportunity particularly serious..
Here are some links to repos and blogs and official landing sites related to what we're trying to accoplish with this effort.
Bitwarden | The password manager trusted by millions
The basics on the BitWarden solution.
This feature is part of a spec from a particular client who is interested in
How to create a VM(virtual machine) on GCP with Terraform
This looks like a decent boilerplate to throw up a basic VM to get started.
One of my own GitHub repos where this SHOULD be Conveniently Documented
These docs contain a CI/CD quickstart for small sample projects
While I usually like to have CI/CD set up with Terraform and Terraform Cloud, for the sake of a rapid research turnaround, I'm saving state to a bucket.
NOTE: while an even faster way would be to use local state, I tend to jump from my office machine to my mobile so it'll be nice to be able to access state from a common source. TF Cloud has an extra auth step and I'm likely to always be the sole contributor here.
- Authenticate with Google: from the gcloud cli, run the command below.
gcloud auth login
- Create a Project: Use the below command to create a project to work with. Make sure you change the id to make it unique. Replace "CyberWorld" with your own company or project or whatever is your own. Make sure to note the output of the command. You may need the unique identifier later.
gcloud projects create cyberworld-bitwarden-test-2 --name="BitWarden Test" --labels=type=research,temp=1
- Select the Project: Use the below command to select the project you just created. Don't forget to change the id to match the actual project you just created.
gcloud config set project cyberworld-bitwarden-test-2
- Retrieve Your Organization ID
gcloud organizations list
- Create a Folder to Store Terraform state: Remeber, you can also just store the state to a local file if you're going to be working alone on a single machine. Or you can take extra steps to set up Terraform Cloud and CI/CD with GitHub actions. I highly recommend this practice on actual teams.
gcloud resource-manager folders create --display-name="BitWarden Test" --organization=306636251100
# Inialize Terraform
terraform init