특정 namespace에 대해 읽기/쓰기 role 추가하는 방법

Moon Blue의 IT 로그 📝·2024년 12월 4일
0

💡 특정 네임스페이스에 대해서 읽기/쓰기 role 만 추가해야 하는 경우

#!/bin/bash

ROLE="read-write-role"
ROLE_BINDING="read-write-role-binding"
SERVICE_ACCOUNT="monitoring-sa" # 기존에 미리 만들어둔 serviceaccount 이름

# Application 네임스페이스 목록
declare -a namespaces=(
  "app-01"
  "app-02"
  "app-03"
)

# namespace 기준으로 role&rolebinding 생성
for namespace in "${namespaces[@]}"; do

  # role 생성
  cat <<EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: $ROLE
  namespace: $namespace
rules:
- apiGroups: ["*"]  # 모든 API 그룹
  resources: ["*"]  # 모든 리소스
  verbs: ["get", "list", "watch", "create", "update"]  # 읽기 및 업데이트 권한
EOF

  # role-binding 생성
  kubectl create rolebinding $ROLE_BINDING \
    --role=$ROLE \
    --serviceaccount=default:$SERVICE_ACCOUNT \
    --namespace="$namespace"
done

💡 pods 와 pods/eviction 리소스에 대한 구분이 필요❗️
💡 update 와 patch 에 대한 구분을 명확히해야 권한설정을 헷갈리지 않는다❗️

profile
What a Beautiful World~ 🌏

0개의 댓글