
Welcome to my course on Managing Secrets with Hashicorp Vault! This course lays out several lectures for working with Vault and how you can use Vault to enable safer secret management.
The Lab Guide for this course is attached to this lecture as a PDF. Please be sure to download a copy of this PDF for your reference. The Lab Guide provides detailed exercises on deploying, configuring, and using Hashicorp Vault. Each lab in the guide has a video lecture associated with it.
The Lab Guide may be updated from time-to-time. Any updates to the lab guide will be communicated to you directly.
Version 2 of the Lab Guide is now aligned with Vault 0.9 and newer and includes all the new syntax and commands.
The video lectures have not been updated yet to reflect the changes in the lab guide.
Every lecture in this course that begins with "Lab" in the title corresponds to a lab in the Lab Guide itself.
In this lecture I give a brief overview of what Vault is and the problems it can solve.
In this lecture I go over some of the common use cases for using Vault.
In this lecture I try to explain why Vault is importmant, moreover why it is important to have a secrets management solution in place.
In this lecture I dive right in showing you how to manage your first secret in Vault. The labs that follow will show you how to run Vault server in development mode with little effort.
In this lab you will download and install Hashicorp Vault.
In this video you will learn how to start Vault server in development mode. This is the quickest way to get started with using Vault.
Configure your environment to connect to the HashiCorp Vault server by setting the vault address in your terminal, then verify connectivity with vault status and review unseal key health.
Learn to use the vault command line with path help to discover path capabilities, focusing on the secret path and its kv back end for reading and writing arbitrary secrets.
Delete a secret in Hashicorp Vault with the delete command, then verify by reading it back; Vault may report deleted even if it existed, during development mode.
In this lecture we take a deeper dive into Vault. In this lecture you will learn
Learn to use the vault path help command to discover paths and their operations, and to pass data into vault via standard input and flat files.
Write a secret foo via the vault CLI on the default back end, using a token and optional standard input, JSON, or a file, then read to verify.
Learn to use the Vault REST API with curl, authenticate using a Vault token, and perform create, read, and delete operations on secret/dev endpoints.
Vault supports many different authentication methods. In this lecture and set of labs you will learn what an authentication backed is and how to use one. The labs will show you how you can authenticate Vault users against Github, LDAP, and other such providers.
In these series of LDAP Labs you will learn how to authenticate against Vault using an LDAP backend.
In these series of LDAP Labs you will learn how to authenticate against Vault using an LDAP backend.
In these series of LDAP Labs you will learn how to authenticate against Vault using an LDAP backend.
In these series of LDAP Labs you will learn how to authenticate against Vault using an LDAP backend.
In these series of LDAP Labs you will learn how to authenticate against Vault using an LDAP backend.
This video lecture covers the use of response wrapping tokens which are used to provide indirect access to secrets.
Create a child token with the dev policy, optionally omitting the default policy, then verify access by writing to secret/dev and renew if allowed.
Revoke a token using its token accessor with the token revoke command, requiring a privileged root token, then verify by logging back in and observing a permission denied from vault.
Learn how Vault's response wrapping uses a short-lived rapid response token to protect secrets, including wrap TTL, lookups, and single-use unwrap to reveal the secret.
Understand how vault uses ACL-like policies attached to authentication tokens to enforce access control, with paths, capabilities, explicit denies, and multi-tenant workflows.
Explore lab part 1 of Vault policy syntax by defining a resource path, granting create, read, update, delete, and list on dev, with explicit admin denial.
Test authentication tokens by creating a dev team token with its policy, then read, write, and list secrets under dev and test, and validate access controls with an ops token.
Learn how to remove a policy in Vault by issuing a delete on the policy endpoint, including specifying the policy name to delete.
In this lab you will learn how to manage static secrets using the Key/Value secret backend.
Learn how to generate on-demand AWS credentials using the AWS secret backend.
Learn how to generate dynamic on-demand credentials for a MySQL database.
In this lab you will use the Transit backend to perform encryption and hashing operations on static data.
Whatever you do, don't skip this lecture! In this lecture I go over how Vault is typically deployed into production environments. We'll cover the following topics:
Why Managing Secrets is so important ...
Everyone who works in IT these days is concerned with security. It's hard to go a day without reading about some sort of data leak or DDOS attack in the news affecting thousands if not millions of users. Having a solid defense-in-depth and risk management plan is key to protecting your organization's digital assets. In the past this has been the responsibility of executive management and security professionals, however these days in our brave new cloud computing world, everyone who works in and with the cloud has a far greater direct impact on releasing services that we are all responsible for taking a security-first approach.
Managing secrets is an integral part of protecting your organization and any digital assets, including on-premise and cloud native applications.
So what is Secrets Management?
First let's ask what may seem like an obvious question: What is a secret? A secret is really anything that you consider sensitive enough to protect from prying eyes, bad actors, or even incompetent ones. A more technical definition of a secret might be any credential, password, tokens, keys, or certificates used to protect data or access services used by an application or even a human.
So secrets management, then, is responsible for the governance of these secrets. Governance is a process that defines how secrets are created, protected, rotated, distributed, revoked, and destroyed. The governance process may also cover who can access what secrets and when.
While process is great on paper, at the end of the day you need tools to make the secrets management process real. Enter one fantastic tool: Hashicorp's Vault.
This course will teach you how to use Hashicorp Vault.
I have put together this easy to follow course on how to get anyone up to speed on using Hashicorp Vault as quickly as possible. You don't need to be a security professional or understand all the details behind encryption algorithms to learn Vault.
Vault is not just another password vault by the way. In this course you will learn the following:
1. Securely deploy Vault into Development and Production environments
2. Manage static secrets such as passwords
3. Generate and management dynamic secrets such as AWS access tokens or database credentials
4. How to bootstrap infrastructure and services without a human
... and many others ...