Back to Guides
Intermediate
50 minutes
Kubernetes Integration Guide
Integrate TigerAccess with your Kubernetes clusters. Provide certificate-based kubectl access with comprehensive audit logging and RBAC synchronization.
Overview
TigerAccess acts as a Kubernetes API proxy, providing:
- Certificate-Based Access: No long-lived kubeconfigs
- Full Audit Trail: All kubectl commands logged
- Dynamic RBAC: Permissions based on TigerAccess roles
- Multi-Cluster: Single interface for all clusters
Prerequisites
- TigerAccess auth and proxy services running
- Admin access to Kubernetes cluster(s)
- kubectl installed locally
- Network access from proxy to Kubernetes API server
Configure Kubernetes Proxy
Enable Kubernetes support in TigerAccess proxy:
# In /etc/tigeraccess/config.yaml
proxy:
enabled: true
kubernetes:
enabled: true
listen_addr: "0.0.0.0:3026"
public_addr: "proxy.example.com:3026"
# Optional: kubeconfig for cluster discovery
kubeconfig_file: "/etc/tigeraccess/kubeconfig"Register Kubernetes Clusters
Add Cluster
tac kube add prod-cluster \
--kubeconfig=/path/to/kubeconfig \
--labels=env=production,region=us-east-1Configure Service Account
Create a service account for TigerAccess in your cluster:
# tigeraccess-sa.yaml apiVersion: v1 kind: ServiceAccount metadata: name: tigeraccess namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: tigeraccess roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: tigeraccess namespace: kube-system
kubectl apply -f tigeraccess-sa.yamlUser Access Configuration
Create Kubernetes Access Role
tac roles create k8s-developer --spec - <<EOF
kind: role
version: v7
metadata:
name: k8s-developer
spec:
allow:
kubernetes_labels:
env: ["development", "staging"]
kubernetes_resources:
- kind: pod
namespace: "*"
name: "*"
verbs: ["get", "list", "watch"]
- kind: deployment
namespace: "app-*"
name: "*"
verbs: ["get", "list", "watch", "update", "patch"]
kubernetes_groups:
- "view"
- "edit"
EOFProduction Access with MFA
tac roles create k8s-admin --spec - <<EOF
kind: role
version: v7
metadata:
name: k8s-admin
spec:
allow:
kubernetes_labels:
env: ["production"]
kubernetes_groups:
- "cluster-admin"
options:
require_session_mfa: true
max_session_ttl: 2h
EOFkubectl Setup
Login and Get Credentials
# Login to TigerAccess
tac login --proxy=proxy.example.com:3023 --user=alice
# Configure kubectl
tac kube login prod-cluster
# Or for all clusters
tac kube login --allUse kubectl
# List pods in all namespaces
kubectl get pods --all-namespaces
# Create deployment
kubectl create deployment nginx --image=nginx
# View logs
kubectl logs -f deployment/nginxSwitch Between Clusters
# List available clusters
tac kube ls
# Switch to different cluster
tac kube login staging-cluster
# Or use kubectl context
kubectl config use-context staging-clusterRBAC Synchronization
Enable Automatic RBAC Sync
TigerAccess can automatically create Kubernetes RBAC resources based on your TigerAccess roles:
# In config.yaml
proxy:
kubernetes:
rbac_sync:
enabled: true
# Sync interval
sync_interval: 5m
# Prefix for created resources
resource_prefix: "tigeraccess-"Manual Sync
# Manually trigger RBAC sync
tac kube sync-rbac prod-cluster
# Sync all clusters
tac kube sync-rbac --allAdvanced Features
Pod Exec Auditing
All kubectl exec sessions are recorded:
# Exec into pod (recorded session)
kubectl exec -it nginx-pod -- /bin/bash
# View exec session history
tac sessions ls --type=kube-execNamespace Restrictions
# Restrict access to specific namespaces
spec:
allow:
kubernetes_resources:
- kind: "*"
namespace: "team-backend"
name: "*"
verbs: ["*"]
deny:
kubernetes_resources:
- kind: "*"
namespace: "kube-system"
name: "*"
verbs: ["*"]Cluster Discovery
# Auto-discover EKS clusters
tac discovery start eks \
--type=eks \
--regions=us-east-1,us-west-2 \
--tags=managed-by=tigeraccess
# Auto-discover GKE clusters
tac discovery start gke \
--type=gke \
--project=my-projectTroubleshooting
Unable to Connect to Cluster
# Verify cluster registration
tac kube ls
# Test connectivity
tac kube test prod-cluster
# Check credentials
kubectl cluster-infoPermission Denied
# Check effective permissions
tac status
# View Kubernetes groups
kubectl auth can-i --listOn This Page
Ready to Secure Your Infrastructure?
Join thousands of security-conscious teams using TigerAccess to protect their critical infrastructure and AI agents.
No credit card required • 14-day free trial • Enterprise support available