Gating Access to Kubernetes API & Workloads with HashiCorp Boundary
Seamless application integration with a fully functional RBAC system.
In this post, we’ll look at the latest HashiCorp Boundary and Kubernetes integration and the access problems it solves. Kubernetes gives DevOps teams a platform to abstract container orchestration and manage the lifecycle of applications at scale in organizations of all sizes. HashiCorp has made a concerted effort to support and develop native integrations with Kubernetes across our projects.
HashiCorp Boundary is an open source project that enables practitioners and operators to securely access dynamic hosts and services with fine-grained authorization without requiring direct network access and was launched at HashiConf in 2020. In the four months since its public debut, the Boundary engineering team has been working hard to develop core maturity as well as ecosystem integrations.
» Kubernetes Access Model
Today, the access model for applications running on Kubernetes is a coarse-grained experience. Kubernetes users can fork a shell within a container using kubectl exec
. This model solves access to the container, but once the user gains access they have a blank check to do as they wish inside that container. Other controls are necessary to safeguard the container runtime as well as other containers running on that Kubernetes cluster.
Securing containers is a multi-faceted process that often transverses the technology stack, it starts with host-level security, runs up the stack to container platform security, how the container runtime is forked, then gets into Linux primitives such as how users and groups are managed within the container image itself. It all goes without saying: container security is hard.
The extra controls needed around the container runtime itself are a byproduct of kubectl exec
giving shell access to a container. Yes, there are many methods for accessing applications running inside a container on Kubernetes. None of these access models necessitate forking a shell as they rely on ingress controllers or other network abstractions for giving a user access to a TCP session. However, if you want to protect access with role or attribute-based access control (RBAC or ABAC), it can be a complicated process when you want to integrate these access models with existing solutions you may have such as a company directory.
» Gating Kubernetes with Boundary
This is where HashiCorp Boundary comes in. By running Boundary on Kubernetes, you can restrict network access for ingress to one point, the Boundary pod. This ingress point for users can proxy all necessary TCP sessions to any container on Kubernetes. This can be done with minimal operational overhead and next to no YAML engineering.
The outcome of this is an access model capable of seamless integration with a fully functional RBAC system. What is even more compelling is that this same tool can integrate with an underlying cloud platform to provide one tool to access the infrastructure for the underlying cluster, to the workloads running on top. Imagine being able to start a fully managed, RBAC-controlled SSH session to a VM underpinning your Kubernetes cluster, and then starting another session with the same tool to get access to the application running in a container on top of that cluster. That’s the power of HashiCorp Boundary on Kubernetes.
Gating access to services within your cluster with Boundary is only the beginning. In our latest 0.1.4 release, we have included a new boundary connect kube
feature. This command forks kubectl
under the hood to allow you to gate API calls to your Kubernetes cluster with Boundary. This allows you to use the same tool across your development and operations teams to administer Kubernetes and access workloads on top of it.
» What’s Next
These updates are very exciting for us, and as we look into the future road map we know that they are even more powerful as we develop dynamic host catalogs and session recording for the Kubernetes ecosystem.
The latest release wraps up the story for secure software-defined perimeter for Kubernetes, both the API and workloads on top. We built a new deployment example for Kubernetes in our reference architecture repo. You can use this as an example or for getting started with HashiCorp Boundary on Kubernetes.
Sign up for the latest HashiCorp news
More blog posts like this one
HashiCorp at re:Invent 2024: Security Lifecycle Management with AWS
A recap of HashiCorp security news and developments on AWS from the past year, for your security management playbook.
HashiCorp at AWS re:Invent: Your blueprint to cloud success
If you’re attending AWS re:Invent in Las Vegas, Dec. 2 - Dec. 6th, visit us for breakout sessions, expert talks, and product demos to learn how to take a unified approach to Infrastructure and Security Lifecycle Management.
Secure remote access to private HTTPS targets with HashiCorp Boundary
Learn how Boundary can act as a true VPN replacement by securing remote access to private HTTPS endpoints with transparent sessions.