Foreword
Preface
- Who is this book for?
- Versioning
- About the Author
Acknowledgements
- IPart 1 - Basics
1Introducing Vault
- 1.1Application security facts and figures
- 1.2What is Vault
- Vault architecture
- Workflow
- 1.3Case studies
- Case study one: application security
- Case study two: operational security
- 1.4What you’ll learn
- 1.5Summary
2Getting started with Vault
- 2.1Vault in practice
- Vault command-line interface
- Writing secrets into Vault
- Reading secrets from Vault
- Restricting secret access using policy
- Policy
- Vault HTTP API
- Accessing secrets using the Vault API
- Vault UI
- 2.2Summary
3Authenticating with Vault
- 3.1Basic authentication workflow with Vault
- 3.2Auth methods
- User permissions in an organization
- Enabling an authentication method
- Configuring an authentication method
- Testing your LDAP server settings
- Mapping LDAP groups to Vault policy
- Authenticating applications with Vault
- Configuring AppRole authentication method
- Authentication using the Vault Agent
- Interacting with Vault using the Vault Agent
- 3.3Summary
4Storing and generating secrets using Vault
- 4.1Secrets engine
- Enabling a key-value secrets engine
- Generic key-value secrets engine
- Versioned key-value secrets engine
- Database secrets engine
- Generating on-demand cloud credentials
- 4.2Summary
5Control access in Vault using policy
- 5.1Vault policy syntax
- Managing policies
- 5.2Summary
- IIPart 2 - Application Patterns
6Application secrets with Vault Agent
- 6.1Vault Agent
- Configuring Vault Agent
- Creating templates for Vault Agent
- Configuring Vault Agent to render templates
- 6.2Summary
7Using Vault with HashiCorp Nomad
- 7.1Using Nomad and Vault together
- Deploying MySQL
- Configuring database secrets engine
- Configuring Vault with Nomad cluster-related policies and roles
- Configuring Nomad to use Vault
- 7.2Running workloads on Nomad
- Redeploying MySQL
- Deploying an application
- Validating application
- Revoking generated database credentials
- 7.3Summary
8Using Vault with Kubernetes
- 8.1Using Kubernetes and Vault together
- Configuring key-value secrets engine
- Creating Vault service in Kubernetes
- Installing Vault Agent Injector in Kubernetes
- Configuring Kubernetes authentication method
- Configuring Vault policy and role
- 8.2Fetching secrets for Kubernetes workloads from Vault
- 8.3Summary
- IIIPart 3 - Operational Patterns
9Securing SSH with Vault
- 9.1Enabling SSH secrets engine
- 9.2Configuring SSH secrets engine
- Creating a role to use the SSH secrets engine
- Configuring machines to use one-time SSH passwords from Vault
- 9.3Summary
10Integration Vault with CI systems
- 10.1Authenticating CI/CD system with Vault
- Enabling and Configuring AppRole authentication method
- Store GitLab Token in Vault
- Create Policy for Accessing Secrets
- Generating Role ID and Secret ID
- 10.2Configuring Vault Plugin in Jenkins
- 10.3Fetching Secrets in Jenkins Job
- Create Jenkins Job
- Run Jenkins Job
- 10.4Summary
Appendix A - Vault development environment
- Installing Vault
- Starting the Vault Server
Appendix B - GLAuth LDAP server
- Installing GLAuth
- Downloading GLAuth config
Appendix C - jq Command-line JSON Processor
- Installing jq
- Try it out
Appendix d - Vagrant environment
- Installing Vagrant
- Installing Vagrant provider
- Validate Vagrant installation
- Install vbguest plugin
- Initialize Vagrant
- Start Vagrant machine
- Access the Vagrant machine
Appendix e - Nomad development environment
- Prerequisites
- Installing Vagrant
- Installing Docker in Vagrant
- Installing Nomad
- Validate Nomad installation
- Initialize Nomad Cluster in Dev Mode
- Validate the Nomad Dev Cluster
- Accessing Nomad UI
Appendix f - minikube environment
- Prerequisites
- Installing Docker
- Installing
kubectland Helm CLI - Installing minikube
- Starting a Kubernetes cluster
- Validating Cluster
- Validating
kubectl
Appendix g - Jenkins on Docker
- Prerequisites
- Installing Docker
- Running Jenkins container