My favourite data structure is a hash of hashes (of hashes ...)
In Puppet 6, the Hiera replacement lookup allows you access values by defining the key with dot notation. In previous versions you need to extract the whole hash into a manifests and then extract the data from there
Even better you can do that lookup within Hiera itself
profile::private_ssh_keys:
'/home/user/.ssh/id_rsa':
mode: '0600'
owner: 'user'
group: 'groupname'
content: "%{lookup('keybase::sshkeys.my@keyname.private_key')}\n"
Seem more in the Interpolation Functions documentation - https://puppet.com/docs/puppet/6/hiera_merging.html#interpolation_functions