Skip to content

Chef cookbook for configuring nodes to trust PrivX OAM issued OpenSSH user certificates

License

Notifications You must be signed in to change notification settings

SSHcom/privx-chef-cookbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PrivX

This cookbook configures a node to trust PrivX issued OpenSSH user certificates.

Configuration

Attributes

Required attributes under node['privx']:

  • 'api_endpoint': https:// prefixed hostname for PrivX.
  • 'api_ca_cert': Trust anchor for PrivX's TLS certificate.
  • 'roles': JSON array of objects which have key 'principal' (str) and 'roles' (array).
{
    "api_endpoint": "https://privx.example.com",
    "api_ca_cert": "-----BEGIN CERTIFICATE-----\nYXNkZmFzZGZhc2Zhc2Zhc2RmYXNkZmFzZGY=\n-----END CERTIFICATE-----",
    "principals": [
        {
          "principal": "root",
          "roles": [{"name": "root-everywhere"}, {"name": "dev-admin"}]
        }
      ]
}

Chef-vault

PrivX cookbook expects to find vault with name privx and an databag with name privx which has following fields:

  • 'oauth_client_secret': OAuth client secret
  • 'api_client_id': ID of the API user
  • 'api_client_secret': Password for the API user

These values can be found from Settings -> Deployment -> Deploy and configure SSH target hosts -> Configure using a deployment script.

Add the credentials to chef vault:

knife vault create privx privx '{"oauth_client_secret": "ZGdoZGZ0aGRmZ2hkZ2hibmN2", "api_client_id": "02781968-2a83-4cc2-4790-5f64cab9020c", "api_client_secret": "eRsiGFQJgMw1aKL4JjbBNyDOTsNHJc2zYPLGGgNH+ak="}' --mode client

This vault needs to be exposed to the node at bootstrap with --bootstrap-vault-item 'privx:privx'

Bootstrapping

knife bootstrap ec2-18-194-178-70.eu-central-1.compute.amazonaws.com \
                --ssh-user ec2-user \
                --sudo \
                --identity-file ~/.ssh/aws \
                --node-name node1 \
                --environment development \
                --run-list 'role[system]' \
                --bootstrap-vault-item 'privx:privx'

With Openstack nodes --hint openstack is probably required.

About

Chef cookbook for configuring nodes to trust PrivX OAM issued OpenSSH user certificates

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages