Skip to content

kubeconfig での Role 設定手順

kubeconfigを記載することで Role によって Kubernetes の操作権限を制御します。

cf.

手順

例として、Pod の参照のみ可能な kubeconfig を作成します。

  • ServiceAccount を作成します:
apiVersion: v1
kind: ServiceAccount
metadata:
  name: pod-reader
  namespace: default
  • Role を作成します:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: pod-reader
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["get", "list"]
  • RoleBinding を作成します:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: default
subjects:
  - kind: ServiceAccount
    name: pod-reader
    namespace: default
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
  • 認証トークンを作成します:
kubectl create token pod-reader -n default
  • kubeconfigを作成します:
apiVersion: v1
kind: Config
clusters:
  - name: my-cluster
    cluster:
      server: https://<API_SERVER>
      #certificate-authority-data: <CA_DATA> # base64 encoded
      insecure-skip-tls-verify: true
users:
  - name: pod-reader
    user:
      token: <TOKEN>
contexts:
  - name: pod-reader-context
    context:
      cluster: my-cluster
      namespace: default
      user: pod-reader
current-context: pod-reader-context
  • kubeconfigを適用します:
export KUBECONFIG=path/to/config