Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HashiCorp Vault for Drupalers

HashiCorp Vault for Drupalers

Securely managing application secrets can be challenging - especially in complex, multi-datacenter environments. Many common secret management tools and services only solve specific use cases, and are often coupled to specific cloud providers.

HashiCorp Vault is an open-source secret management tool designed to support distributed applications and infrastructure as first-class citizens. It provides powerful features such as:

- Centralised secret storage
- Dynamic secrets
- Encryption as a Service
- Identity brokering
- Access control management
- Audit logging

This session will introduce some important Vault concepts and operational considerations, before diving into a technical demonstration of the current Drupal integration capabilities.

Nick Santamaria

June 08, 2018
Tweet

More Decks by Nick Santamaria

Other Decks in Programming

Transcript

  1. Nick Santamaria • Drupal developer since 2006 • SysOps Engineer

    at PreviousNext • Based in Melbourne, Australia • HashiCorp Fan @nicksanta github.com/nicksantamaria drupal.org/user/87915
  2. What are Secrets? A piece of information that proves an

    identity, or authorization to perform certain functions. • Username & Password • API Token • TLS Certificate
  3. What are Secrets? Things in this realm must be carefully

    handled. • Who has access? • When did they access it? • How will they be rotated?
  4. The Secret Management Problem Vault addresses the challenges of secrets

    management. • Centralised • Fine-grained access control • Audit trail
  5. “moving from a world of sprawl to a world of

    centrality; with strong guarantees around encryption, access control, and visibility.” - Armon Dadgar, HashiCorp CTO
  6. Dynamic Secrets Each client receives unique credentials. • Identify the

    specific point of breach. • Revoke credentials for the compromised client.
  7. The Encryption Problem Cryptography is simple to get wrong and

    can undermine its integrity. Key lifecycle management is even harder.
  8. Vault Architecture - Audit Core • Logs request / response

    trail. • Who has done what. Authentication Audit Logs
  9. Vault Architecture - Storage Core • Stores encrypted data at

    rest. • Highly Available. • Durable. Authentication Storage Audit Logs
  10. Vault Architecture - Secret Engines Core Provides access to different

    secrets. Authentication Storage Audit Logs Secret Engines
  11. Vault Architecture - Drupal Integration Core Authentication Secret Engines Authentication

    Provider Plugins • Key integration • Encrypt integration Lease Maintenance Vault Client service
  12. Drupal Integration - Current State Secret Engines • Key/Value -

    drupal.org/project/vault_key_kv • AWS - drupal.org/project/vault_key_aws
  13. Drupal Integration - Current State Planned • AppRole Authentication •

    TLS Authentication • TOTP Provider for TFA - drupal.org/project/tfa
  14. Drupal Integration - Design Goals ✔ Modular - Each module

    provides a single function. ✔ Auditable - Simple implementation for easy code review. ✔ Simple - Vault module only responsible for: 1. Plugin manager for authentication providers. 2. Expose authenticated client as a service. 3. Maintain leases (via cron).
  15. Drupal Integration - not Design Goals ✗ Provide management layer

    for Vault. ✗ Mitigate bad/insecure vault configuration. ✗ Support dynamic database credentials.