linux-hub

Create Linux users from Github Teams

Challenges

If you want to use immutable AMIs it can be difficult to give users access, you need to deploy a new version of your AMI.

Netflix BLESS serves to solve a similar problem, but is much more complicated (and feature rich).

Solution

Github exposes all users public SSH keys via their API We can associate users to a Github Team We can query the members of a team via the Github API, provided we have an access key with 'read:org' permissions

So we can therefore use the Github API to provide authorization and authentication of users to systems.

Usage

The idea of this gem is to be run as a cron job, to synchronise users at a regular interval. You need to create a config file that specifies:

  • The organisation to find the team in
  • The team who are permitted access
  • The access key to query team membership

Example config:

---
organisation: github
team: sysadmins
access_token: baconfoobar

Example command:

linux-hub --config-file config/config.yaml --sync-users