Namespace isolation
Definition
Namespace isolation is a security and resource management technique used in container orchestration platforms like Kubernetes to separate and control access to resources within a cluster. Each namespace provides a scope for names, allowing resources to be organized and managed independently. This isolation helps in enforcing security boundaries, preventing unauthorized access, and managing resource allocation efficiently.
Secure Settings Example
apiVersion: v1
kind: Namespace
metadata:
name: secure-namespace
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: secure-namespace
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: secure-namespace
subjects:
- kind: User
name: jane-doe
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
Insecure Settings Example
apiVersion: v1
kind: Namespace
metadata:
name: insecure-namespace
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: insecure-namespace
name: admin
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: admin-binding
namespace: insecure-namespace
subjects:
- kind: User
name: john-doe
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: admin
apiGroup: rbac.authorization.k8s.io