Security concepts
PDS uses a shared responsibility model for security. This means that Portworx secures certain components, but you must ensure the security of other components:
- Portworx secures the SaaS portion of PDS known as the control plane.
- You must secure components in the data plane.
Secure the data plane
You’re responsible for securing the following components in the data plane:
-
Target clusters: You provide the Kubernetes target clusters and are responsible for keeping them secure and up to date.
-
Backup targets: You provide the object stores used as backup targets and are responsible for keeping them secure.
-
Data service deployments: Portworx deploys certain components onto your target cluster, but ensures the integrity of these components when they’re deployed. Specifically, Portworx deploys the following:
- Docker images
- Operators and agents Portworx that manage your applications
Control access to data services
When PDS deploys a data service to your cluster, it creates an initial set of credentials. You are responsible for managing access to the data service from this point, including adding more users.
Connections
You can install the Portworx agent manifest to initiate connection from the target cluster to the control plane, and then install the PDS operator. Teleport creates a reverse tunnel to facilitate proxy connections from the PDS control plane to the Kubernetes API server of a target cluster.
You can terminate connections by deleting the Portworx agent and the PDS operator deployments.
Operations
This section explains how PDS manages the target cluster, backup, and data service deployment operations.
Target Cluster Management
The target cluster management is done in PDS by a secure reverse tunnel and Kubernetes proxy.
Target cluster auto-configuration
The deployment process begins with installing the Portworx agent, which sets up the foundation for storage management within the cluster. Following this, the Portworx agent facilitates the deployment of the PDS Operator and its allied components. This two-step process ensures a robust and manageable setup for running and managing data services within a Kubernetes cluster, leveraging the capabilities of both Portworx agent and PDS Operator.
- Teleport agent to create a secure proxy for Kubernetes API access.
- External DNS to provide DNS endpoint for data service deployments through the AWS Route 53.
Access to Kubernetes API
When the Teleport agent is configured by the PDS agent, it creates an encrypted reverse tunnel from the target cluster to the PDS control plane. This tunnel acts as Kubernetes API proxy to provide the PDS control plane with access to the Kubernetes API server in the target cluster.
The PDS control plane is authenticated as the teleport:pds-system
Kubernetes group with rights according to Role Based Access Control (RBAC) installed by PDS Helm chart:
pds-control-plane
andpds-control-plane-portworx-api
cluster rolespds-control-plane
andpds-control-plane-portworx-api
cluster role bindings
The benefits of this approach are:
- No open ingress ports are required in the target cluster.
- Only open egress port 443 is required in the target cluster.
- Self-registration and auto-configuration of the target cluster.
Backup target set-up
This action is initiated when you add a new backup target or deployment target to PDS. The PDS control plane synchronizes backup target credentials, which are needed for cloud backups of data services. The PDS API worker:
- Asks the Teleport API server to provide short-time credentials for a specific target cluster.
- Connects through the Teleport Kubernetes proxy to the Kubernetes API server of the target cluster.
- Calls the Portworx Service API to store the cloud credentials.
The cloud credentials in the PDS control plane are encrypted at rest.