Jira (BOLT-1270) Bolt should have an encrypted data store

17 views
Skip to first unread message

Lucy Wyman (JIRA)

unread,
Apr 30, 2019, 12:33:02 PM4/30/19
to puppe...@googlegroups.com
Lucy Wyman updated an issue
 
Puppet Task Runner / New Feature BOLT-1270
Bolt should have an encrypted data store
Change By: Lucy Wyman
Summary: eyaml encryption for sensitive inventory Bolt should have an encrypted data store
Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.7.1#77002-sha1:e75ca93)
Atlassian logo

Lucy Wyman (JIRA)

unread,
Apr 30, 2019, 12:34:17 PM4/30/19
to puppe...@googlegroups.com
Lucy Wyman updated an issue
Questions:
- How do you interact with this feature within the inventory
?

Out of scope:
- Connect to third party encrypted data stores, ie. Vault

Lucy Wyman (JIRA)

unread,
Apr 30, 2019, 12:57:02 PM4/30/19
to puppe...@googlegroups.com
Lucy Wyman updated an issue
Questions:
- How do you interact with this feature within the inventory?
- Should you be able to have a single file with encrypted data in it that can be used by multiple users, or is it on a per user basis? Do you need to be able to share the data with multiple people? *The easiest solution seems like encrypted data should be on a per user basis.*
- Does the sensitive data live in the inventory or in an external file?

TODO:
- Look at Ansible Vault - how does that work?

Out of scope:
- Connect to third party encrypted data stores, ie. Vault

Nick Maludy (JIRA)

unread,
May 2, 2019, 5:39:05 AM5/2/19
to puppe...@googlegroups.com

Alex Dreyer (JIRA)

unread,
May 14, 2019, 1:25:03 PM5/14/19
to puppe...@googlegroups.com
Alex Dreyer updated an issue
Change By: Alex Dreyer
Questions:
- How do you interact with this feature within
Bolt should support eyaml data in the inventory ? file.
- Should you
Users should
be able to have a single file with encrypted embed bolt eyaml data in it that can be used by multiple users, or is it on a per user basis? Do you need the inventory file similar to be able to share how the data with multiple people? * prompt plugin works.
The easiest solution seems like encrypted data plugin should be on called eyaml, It should have a per user basis.* single key "encrypted-value" that

{noformat}
nodes:
- Does uri: my_node
     config:
       winrm:
         password:
           _plugin: eyaml
           encrypted-value: >
                  ENC[PKCS7,Y22exl+OvjDe+drmik2XEeD3VQtl1uZJXFFF2NnrMXDWx0csyqLB/2NOWefv
                  NBTZfOlPvMlAesyr4bUY4I5XeVbVk38XKxeriH69EFAD4CahIZlC8lkE/uDh
                  jJGQfh052eonkungHIcuGKY/5sEbbZl/qufjAtp/ufor15VBJtsXt17tXP4y
                  l5ZP119Fwq8xiREGOL0lVvFYJz2hZc1ppPCNG5lwuLnTekXN/OazNYpf4CMd
                  /HjZFXwcXRtTlzewJLc+/gox2IfByQRhsI/AgogRfYQKocZgFb/DOZoXR7wm
                  IZGeunzwhqfmEtGiqpvJJQ5wVRdzJVpTnANBA5qxeA==]
{noformat}

Users should configure
the sensitive data live eyaml plugin in bolt yaml under the inventory or in an external file? {{plugins:eyaml}} section. relative paths to keys should be relative to the {{Boltdir}}.

TODO {noformat}
---
ssh
:
  host - Look at Ansible Vault key - check: false
plugins:
   eyaml:
      pkcs7_private_key: keys/private_key.pkcs7.pem
      pkcs7_public_key:  keys/public_key.pkcs7.pem
{noformat}


Questions:
- What should the {{encrypted-value}} key be called?
- Can bolt expose the "eyaml" command directly or do we need {{bolt eyaml encrypt}} and {{bolt eyaml create-keys}} the latter seems out of scope unless documenting
how does that work to use eyaml proves difficult ? Can we put eyaml in {{/opt/puppetlabs/bin/eyaml}} or does it need to be {{/opt/puppetlabs/bolt/bin/eyaml}}.
- Should we leverage the hiera-eyaml's gem plugins or just support pkcs7. If we're not going to leverage eyaml plugins we should probably just call this the pkcs7 plugin.

Out of scope:
- Connect to third party encrypted data stores, ie. Vault
. These should be separate plugins.

Cas Donoghue (JIRA)

unread,
May 15, 2019, 1:30:03 PM5/15/19
to puppe...@googlegroups.com

Lucy Wyman (JIRA)

unread,
May 15, 2019, 1:42:03 PM5/15/19
to puppe...@googlegroups.com
Lucy Wyman updated an issue
 
Change By: Lucy Wyman
Bolt should support eyaml data in the inventory file.

Users should be able to embed bolt eyaml data in the inventory file similar to how the prompt plugin works.
The plugin should be called eyaml, It should have a single key "encrypted-value" that

{noformat}
nodes:
   - uri: my_node
     config:
       winrm:
         password:

           _plugin: eyaml
           encrypted-value:
>

                  ENC[PKCS7,Y22exl+OvjDe+drmik2XEeD3VQtl1uZJXFFF2NnrMXDWx0csyqLB/2NOWefv
                  NBTZfOlPvMlAesyr4bUY4I5XeVbVk38XKxeriH69EFAD4CahIZlC8lkE/uDh
                  jJGQfh052eonkungHIcuGKY/5sEbbZl/qufjAtp/ufor15VBJtsXt17tXP4y
                  l5ZP119Fwq8xiREGOL0lVvFYJz2hZc1ppPCNG5lwuLnTekXN/OazNYpf4CMd
                  /HjZFXwcXRtTlzewJLc+/gox2IfByQRhsI/AgogRfYQKocZgFb/DOZoXR7wm
                  IZGeunzwhqfmEtGiqpvJJQ5wVRdzJVpTnANBA5qxeA==]
{noformat}

Users should configure the eyaml plugin in bolt yaml under the {{plugins:eyaml}} section. relative paths to keys should be relative to the {{Boltdir}}.

{noformat}
---
ssh:
  host-key-check: false
plugins:
   eyaml:
      pkcs7_private_key: keys/private_key.pkcs7.pem
      pkcs7_public_key:  keys/public_key.pkcs7.pem
{noformat}


Questions:
-
What should the {{encrypted-value}} key be called?
-
Can bolt expose the "eyaml" command directly or do we need {{bolt eyaml encrypt}} and {{bolt eyaml create-keys}} the latter seems out of scope unless documenting how to use eyaml proves difficult? Can we put eyaml in {{/opt/puppetlabs/bin/eyaml}} or does it need to be {{/opt/puppetlabs/bolt/bin/eyaml}}.

- Should we leverage the hiera-eyaml's gem plugins or just support pkcs7. If we're not going to leverage eyaml plugins we should probably just call this the pkcs7 plugin.
- User should not have to run eyaml command to encrypt a value
- Do we need bolt eyaml commands? Yes, behaves like {{hiera eyaml}} command and uses the hiera cli class.
- {{bolt eyaml createkeys}} calls hiera create key
- {{bolt eyaml encrypt}} with f s and p options
- {{bolt eyaml decrypt}} with f and s options

Out of scope:
- Connect to third party encrypted data stores, ie. Vault. These should be separate plugins.

Lucy Wyman (JIRA)

unread,
May 15, 2019, 1:43:03 PM5/15/19
to puppe...@googlegroups.com
Lucy Wyman updated an issue
Change By: Lucy Wyman
Sprint: Bolt Ready for Grooming Kanban

Alex Dreyer (JIRA)

unread,
May 21, 2019, 2:40:03 PM5/21/19
to puppe...@googlegroups.com
Alex Dreyer assigned an issue to Alex Dreyer
Change By: Alex Dreyer
Assignee: Nick Maludy Alex Dreyer

Tom Beech (JIRA)

unread,
Jun 20, 2019, 6:46:03 PM6/20/19
to puppe...@googlegroups.com
Tom Beech updated an issue
Change By: Tom Beech
Fix Version/s: BOLT Next

Tom Beech (JIRA)

unread,
Jun 20, 2019, 8:01:03 PM6/20/19
to puppe...@googlegroups.com
Tom Beech updated an issue
Change By: Tom Beech
Release Notes Summary: Adds an eyaml plugin and support for embedding eyaml data in the inventory.
Release Notes: New Feature

Alex Dreyer (JIRA)

unread,
Jun 20, 2019, 8:06:02 PM6/20/19
to puppe...@googlegroups.com
Alex Dreyer updated an issue
Change By: Alex Dreyer
Release Notes Summary: Adds an a hiera eyaml compatible pkcs7 plugin and support for embedding eyaml data in the inventory.

Michelle Fredette (JIRA)

unread,
Jun 21, 2019, 4:51:03 PM6/21/19
to puppe...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages