managing secrets at scale javacro 2016managing+secrets+at+scale+palu… · managing secrets at...

27
Managing Secrets at Scale

Upload: others

Post on 20-May-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

Managing Secrets at Scale

Page 2: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

Mark Paluch! @mp911de

" github.com/mp911de

# paluch.biz

Page 3: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z
Page 4: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

TomEE

<Resource id="MySQL Database" type="DataSource"> UserName test

xMH5uM1V9vQzVUv5LG7YLA== Password xMH5uM1V9vQzVUv5LG7YLA== PasswordCipher Static3DES </Resource>

Page 5: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

https://www.flickr.com/photos/dahlstroms/4188244058

Page 6: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z
Page 7: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

https://www.flickr.com/photos/nateone/5456129071

Page 8: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Keeping secrets secret

• Limit distribution

• Access control

• Encrypted

• Key rotation

• Locking access

Page 9: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z
Page 10: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z
Page 11: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Vault Project

• Secure storages

• Sealing/Unsealing

•Multiple authentication mechanisms

•Multiple secret backends

• ACL/policies

• HA

•HTTP API

Page 12: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Vault Project: Editions

Community

• Secret storage

• Tokens and access control policies

• Dynamic secrets with leasing and revocation

• Key rolling

• Audit logs

Enterprise

• HSM

• 24x7x365 Phone and Email Support

Page 13: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Demo: Start and initialize Vault

Page 14: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Generic secret backend

• Store arbitrary secrets

• Hierarchical paths

• JSON data structures

Page 15: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Demo: Storing/Loading generic secrets

Page 16: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Secret backends

• AWS

• Cassandra

• Consul

•MySQL/MSSSQL/PostgreSQL

• PKI

Page 17: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Keeping secrets secret

• Limit distribution ✅

• Access control

• Encrypted ✅

• Key rotation ✅

• Locking access

Page 18: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

https://www.flickr.com/photos/kristencavanaugh/10710047746

Page 19: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Authentication methods

• Token

•Username/password

• LDAP

• GitHub Token

•MFA

• TLS Certificates

• App ID

Page 20: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Two secure components

Page 21: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

App Id

• Create unique AppId’s (UUID, …), map to policies

• Store AppId’s in config management system

•Out-of-band process to map AppId to UserId

•New service: Knows AppId and determines UserId

Page 22: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Keeping secrets secret

• Limit distribution ✅

• Access control ✅

• Encrypted ✅

• Key rotation ✅

• Locking access ✅

Page 23: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Demo: Spring Cloud Vault Config

Page 24: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Operation hints

•Use SSL

•Use SSL

• Keep unseal keys secret

•Operate it HA

Page 25: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Key takeaways

• Vault is a secure storage service

• Versatile secrets

•Multiple authentication methods

• HTTP API

• Spring Cloud Vault Integration in the works

Page 26: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Q&A System.exit(0);

Page 27: Managing Secrets at Scale JavaCro 2016Managing+Secrets+at+Scale+Palu… · Managing Secrets at Scale JavaCro 2016.key Created Date: 20160427142002Z

@mp911de

Resources

• https://www.vaultproject.io/

• https://github.com/spencergibb/spring-cloud-vault-config/

• https://github.com/mp911de/spring-cloud-vault-config-samples