This is the talk I gave at the 2nd Hashicorp Paris User Group meetup.
This explains how Vault and Terraform can be used to securely manage AWS infrastructure.
The source code is available on GitHub: https://github.com/MrTrustor/terraform-vault-demo
6. Vault
Secret managment
Consul MySQL AWS etc.
Secret
backends
Vault
Encryption
Authentification
ACLs…
User
Vault CLI
Vault
client libs
etc.
REST API
Clients
7. Vault concepts
Tokens ➢ Main authentication method. The other methods
dynamically generate tokens.
Leases, TTL, Hierarchies, etc.
Authentication ➢ Verify an identity
Several authentication backends (LDAP, App ID, etc.)
(Un)seal ➢ Decrypt the encryption key
Need a certain number of shards to get the master key
Policies ➢ ACLs associated to paths in Vault.
Given to token when they are created
9. Vault & AWS STS
Using Vault to get AWS Credentials
Vault
Root AWS Account Target AWS Account
IAM CrossAccount
target role
AssumeRole
Temporary
Credentials
AWS STS
AWS Secret
Backend
• Vault authenticates against AWS IAM
• Uses a role that can connect to another account
• Gets temporary credentials for this role from STS
Comment est-ce qu’Oxalide utilise Terraform et Vault pour que des dizaines d’ingénieurs puissent gérer des dizaines de comptes AWS de manière sécurisée ?
Je parle sous la surveillance de notre directeur technique/RSSI ici présent, donc si vous le voyez me plaquer soudainement au sol, ne vous étonnez pas, c’est que j’ai juste dépassé la limite de ce que j’ai le droit de dire
Vous avez déjà vu une démonstration de Terraform ce soir, donc je ne vais pas trop passer de temps dessus. On va surtout voir comment on peut faire interragir Terraform, Vault et AWS.