1. 3

    Rails’ credentials/secrets file is the devil. So I recently integrated envkey.com with my app, and it was a breeze to do. Might be a pricier than the AWS solution, but the capabilities I get are pretty nice.

    Being a super small startup, I preferred paying EnvKey some money to offload the dev effort to come up with something which would never be as good as the EnvKey solution.

    A few months in, and so far so good!

    1. 1

      Envkey.com looks interesting, and there’s definitely some merit to using a third party to store and encrypt your credentials over using aws to encrypt credentials for aws services.

      $20/month isn’t terrible, but it’s a bit pricey and per-seat pricing feels a little out of line with the value of the service they’re providing. But who am I to judge a SaaS that looks like it’s paying the rent?

      I worry about one thing: how do you securely deploy your envkey api key?

      This is the same problem with HashiCorp Vault or any external secret keeper. There’s a secret which unlocks all your other secrets…that makes it the most important secret. How are you injecting that secret into your application? The whole reason the AWS Parameter store is viable is that access to download and decrypt your secrets isn’t controlled by a key stored on the machine. It’s controlled by the EC2 or container’s instance role.

      1. 2

        Hashicorp Vault has many ways to authenticate and get a token, you can tie to EC2, or you can auth against LDAP/Github, AppRole(where you can tie it to specific machine(s)/applications, etc. But it is definitely a turtles all the way down approach. The goal of Vault is to only have to worry about deploying the token and vault will then handle ALL of your secret/sensitive information for you, with transit, DB and the other backends. So at least the problem becomes “manageable” since it’s only the 1 token you have to get out there.

    1. 2
      1. Closed <head> tags over open ones which display the content in the title bar.

      That being said, I’m all for it. These are generally good rules to follow even if you aren’t remote.

      1. 1

        I sympathize, but is installing most common languages that hard?

        Python, Ruby, and Java are all a single search away, and the first result gets you to a download page rather quickly. If you’re learning a language or Bayesian Statistics…you probably should be able to install a programming environment.

        I’d recommend using homebrew or chocolatey as installers, that might help grease the wheels as well.

        1. 5

          There was a lot of unnecessary complexity when I tried to use Python or something similar to prove or disprove Monty Hall result in 30min-1hr after a head injury forgetting programming. That challenge time had to include setting up tools, learning the language, etc. The problem just takes basic I/O, some random numbers, and some calculations. When little issues added up around the runtime or a library (can’t recall what), I just decided to try a version of BASIC since I started on it with almost no effort long ago. FreeBASIC had an auto-install for Ubuntu. Manual was about a page or two with simple I/O commands plus usable examples. Programming was typing into text file (.bas) followed by one command to compile. So, so, simple. Competed the challenge with most time going to semi-formal specification as intended vs the code or compiles.

          Probably good idea to get something already set up with libraries and all in these more popular languages. Maybe even some premade libraries for common plumbing that require no thought. They can learn the real thing as they progress. I’m sure these exist at least in pieces but lots of newcomers never see them.

        1. 2

          CERN (http://superuser.openstack.org/articles/cern-expanding-cloud-universe/) and the NSA (https://blog.rackspace.com/nsa-opens-the-kimono-on-its-openstack) use it. Quite large deployments too.

          I’ve managed teams deploying it in large scale for internal clouds as well.

          It is a PITA if you use all the bells and whistles. My advice would be keep it simple. VMs still have lots of value… Containers haven’t hit the enterprise quite yet.