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.

Avatar for Nick Santamaria

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.