K8s RBAC権限設定生成

Kubernetes RBAC Role & ClusterRoleBinding YAML ジェネレーター

APIグループ、リソース操作(verbs)、Subject(ServiceAccount/User/Group)を指定して、Kubernetes RBACのRole、ClusterRole、RoleBinding、ClusterRoleBindingマニフェストを迅速に設計・生成します。

プリセット:
RBAC ロールおよびサブジェクトの設定
RBAC スコープ(Role vs ClusterRole)名前空間スコープ
RoleBinding
RoleBinding サブジェクト(ユーザー、グループ、サービスアカウント)
rbac.authorization.k8s.io
rbac.authorization.k8s.io
RBAC ポリシールール (apiGroups, resources, verbs)2
#1ルール #1: pods, pods/log, events
#2ルール #2: deployments, replicasets
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: pod-log-reader
  namespace: staging
  labels:
    app.kubernetes.io/part-of: developer-access
    env: staging
rules:
  - apiGroups:
      - ""
    resources:
      - "pods"
      - "pods/log"
      - "events"
    verbs:
      - "get"
      - "list"
      - "watch"
  - apiGroups:
      - "apps"
    resources:
      - "deployments"
      - "replicasets"
    verbs:
      - "get"
      - "list"
      - "watch"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: developer-log-reader-binding
  namespace: staging
  labels:
    app.kubernetes.io/part-of: developer-access
    env: staging
subjects:
  - kind: Group
    name: frontend-developers
    apiGroup: rbac.authorization.k8s.io
  - kind: User
    name: [email protected]
    apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: pod-log-reader
  apiGroup: rbac.authorization.k8s.io
ポリシールール数
Role (名前空間: staging)
紐付けられたサブジェクト
2 件のサブジェクト (0 SA, 2 User/Group)
RBAC スコープ
グレード A: 最小権限に準拠・厳格保護

rbac.authorization.k8s.io/v1 仕様標準

名前空間スコープの Role およびクラスター全体の ClusterRole に対する rbac.authorization.k8s.io/v1 仕様標準に厳格に準拠。

完全ブラウザ内処理・ゼロ送信

すべての RBAC ポリシー、サービスアカウント、クラスター権限は外部送信なしでブラウザサンドボックス内で完結します。

最小権限原則と本番環境対応

ワイルドカードや権限昇格のリスクを検出する最小権限セキュリティ監査を備えた本番品質のマニフェストを生成。

技術リファレンス&アーキテクチャガイド

Kubernetes RBAC Role & ClusterRoleBinding YAML 生成ツール — リファレンスガイド

APIグループ、リソース操作(verbs)、Subject(ServiceAccount/User/Group)を指定して、Kubernetes RBACのRole、ClusterRole、RoleBinding、ClusterRoleBindingマニフェストを迅速に設計・生成します。

主要パラメータ&設定項目

kindstring

RBACリソースの種類を定義します('Role'、'ClusterRole'、'RoleBinding'、または 'ClusterRoleBinding')。

初期値: Role
rules[].apiGroupsarray[string]

対象リソースが属するAPIグループ(Pods/Services等のコアリソースは '""'、Deploymentsは 'apps')。

初期値: [""]
rules[].resourcesarray[string]

アクセス権を付与するKubernetesリソースの複数形名称(例:'pods', 'configmaps', 'deployments', 'secrets')。

初期値: ["pods"]
rules[].verbsarray[string]

リソースに対して許可するAPIアクション('get', 'list', 'watch', 'create', 'update', 'patch', 'delete')。

初期値: ["get", "list"]
subjectsarray[object]

権限を付与するエンティティのリスト(ServiceAccount、User、またはGroup)。RoleBindingで必須。

初期値: Required for Bindings
roleRefobject

RoleBindingまたはClusterRoleBindingによってバインドされる対象のRoleまたはClusterRoleの参照情報。

初期値: Required for Bindings

プロの活用テクニック&推奨設定

ワイルドカード権限の回避

verbsやresourcesでのワイルドカード('*')指定は極力避け、更新権限が不要な場合は読み取り権限('get', 'list', 'watch')のみに限定してください。

ClusterRoleの再利用と制限

汎用的な権限セットをClusterRoleとして1つ定義し、各名前空間内のRoleBindingから参照することで、特定名前空間に限定した再利用性の高い権限付与が可能です。

auth can-iによる権限検証

作成したRBACルールは、ワークロード稼働前に 'kubectl auth can-i <verb> <resource> --as=system:serviceaccount:<namespace>:<name>' を実行して想定通りの権限が付与されているか検証してください。

よくあるトラブルと解決策

「is forbidden: User cannot list resource in API group」エラーが発生する

'rules[].apiGroups' の指定が正確か(コアリソースは ''、Deploymentsは 'apps')、およびリソース名が複数形('service' ではなく 'services')になっているかを確認してください。

RoleBindingを設定したが、別名前空間のリソースにアクセスできない

RoleBindingは自身が存在する名前空間内でのみ有効です。クラスタ全体に権限を付与したい場合はClusterRoleBindingを使用するか、各名前空間ごとに個別のRoleBindingを適用してください。

よくある質問 (FAQ)

RoleとClusterRoleの根本的な違いは何ですか?▼

Roleは単一の名前空間内にスコープが限定された権限を定義します。一方、ClusterRoleはクラスタ全体、またはノード(Nodes)や永続ボリューム(PersistentVolumes)などのクラスタスコープのリソースに対する権限を定義します。

RoleBindingからClusterRoleを参照することはできますか?▼

はい、可能です。これは推奨されるベストプラクティスです。ClusterRoleで共通の権限ルールを定義し、それを名前空間固有のRoleBindingでバインドすることで、その名前空間内だけに限定して権限を適用できます。

コアリソース(PodsやServices)のapiGroupsが空文字列("")である理由は何ですか?▼

KubernetesのAPIアーキテクチャにおいて、初期から存在するコアリソースはレガシーなコアAPIグループに属しており、YAMLマニフェスト上では空文字列("")として表記する仕様になっているためです。

特定のリソースインスタンス(特定の名前のConfigMapなど)だけに権限を限定できますか?▼

はい。ルールの 'resourceNames' フィールドに対象の名前を指定(例:resourceNames: ['my-configmap'])することで、その特定のリソースインスタンスにのみ操作を限定できます。

関連するおすすめ開発ツール

すべてのツール →
Kubernetes StatefulSet&Headless Service YAML ビルダー開発ツール

コンパニオン Headless Service、永続ボリュームテンプレート(volumeClaimTemplates)、レプリカ数、podManagementPolicy を備えた本番仕様の Kubernetes StatefulSet マニフェストを生成します。

ツールを開く→
Nginx Location優先順位テスター & マッチシミュレーター開発ツール

Nginx locationディレクティブのマッチングルール検証ガイド。修飾子優先順位(=、^~、~、~*)のリアルタイムシミュレーション。

ツールを開く→
Cloudflare Headers & Redirects 生成ツール開発ツール

Cloudflare Pagesの _headers および _redirects 構成、セキュリティヘッダーポリシー、エッジリライティングルールの開発者向け構文リファレンス。

ツールを開く→
Vercel.json 設定・アーキテクチャ開発ツール

エッジルーティング、リライト、セキュリティヘッダー、サーバーレス関数、Cron設定を網羅したvercel.jsonの実務開発者向けリファレンス。

ツールを開く→
ESLint Flat Config (eslint.config.mjs) インタラクティブビルダー開発ツール

TypeScript、React、Next.js、Vue、Prettier、カスタムルールに対応した最新のESLint 9+ フラット設定ファイル(eslint.config.mjs / .js)をブラウザ上で安全に生成します。

ツールを開く→
SemVer範囲・バージョン適合性テスター開発ツール

セマンティック バージョニング(SemVer)範囲(キャレット ^、チルダ ~、ハイフン範囲、X-Range、プレリリース)をテストし、パッケージバージョンの適合性をリアルタイムに検証します。

ツールを開く→