Kubernetesの「鍵」を管理する:RBACを最小限に絞るための防犯術
こんにちは。現場で泥臭いインシデント対応を長年続けていると、「なぜこんなに鍵を開けっ放しにしているのか?」と頭を抱えたくなる現場によく遭遇します。
皆さんが管理しているKubernetes(K8s)クラスターは、いわば「巨大なマンション」です。このマンションにはたくさんの部屋(Pod)があり、そこにサービスという住人が住んでいます。今日お話しする「RBAC(ロールベースアクセス制御)」は、誰がどの部屋の鍵を持ち、どこまで自由に入れるかを決める「鍵管理システム」のことです。
新人のIT担当者の皆さんも、今日からこのマンションの管理人になったつもりで、一緒に防犯対策を学んでいきましょう!
—
1. なぜ「最小権限」が必要なのか?(泥棒の視点)
もしマンションの清掃員さんに「全室のマスターキー」を渡していたらどうなるでしょうか?もしその人が悪意を持っていたり、あるいは不運にも鍵を紛失してしまったら……。泥棒はマスターキーを手に入れ、マンション中の部屋を自由に荒らすことができます。
K8sにおける「やりすぎた権限付与」もこれと同じです。
例えば、ある開発用ツールに「クラスター内の全リソースを操作できる権限」を与えていたとします。もしそのツールにたった一行の脆弱性(泥棒の侵入口)が見つかったら、攻撃者はその権限を悪用し、あなたのクラスターを丸ごと乗っ取ったり、仮想通貨のマイニングを勝手に始めたりします。
「必要ないなら、鍵は渡さない」。これがセキュリティの鉄則です。
—
2. RBACの設計:誰に、何を、どこまで?
K8sのRBACでは、主に以下の3つの要素を組み合わせて権限を作ります。
1. Role / ClusterRole: 「何をできるか」(例:Podの読み取りのみ、削除も可能など)
2. Subject: 「誰が」(例:特定の開発者、特定のサービスアカウント)
3. RoleBinding: 「上記2つを紐付ける」
実践:最小権限のRoleを作ってみよう
例えば、「特定の名前空間でPodのリストを見るだけ」の権限を作ってみましょう。
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader # ロールの名前
rules:
- apiGroups: [""] # ""はコアグループを指します
resources: ["pods"] # Podというリソースを対象にする
verbs: ["get", "list"] # 「見る」「一覧表示する」権限のみ付与
見ての通り、ここには delete や update が含まれていません。これだけで、万が一この権限が悪用されても、攻撃者はPodを勝手に消したり書き換えたりすることができなくなります。これが「最小権限」の第一歩です。
—
3. 守りを固めるための「定期的な棚卸し」
一度設定して安心していませんか? 鍵を貸した相手が退職したり、役割が変わったりすることもありますよね。定期的な監査は、セキュリティ管理者の仕事として最も重要です。
監査のポイント
cluster-adminは誰が持っている?: この権限は「マンションの全権利」です。これを保持している人間やサービスアカウントは、本当に必要最小限の数に絞られていますか?- 使われていない権限はないか?: 過去のプロジェクトで付与したまま放置されている
RoleBindingがあれば、迷わず削除しましょう。
ツールを活用する
手動でチェックするのは大変なので、kubectl auth can-i コマンドを使って、自分やサービスアカウントの権限を確認する癖をつけましょう。
# 「このサービスアカウントは、Podを削除できるか?」を確認するコマンド
kubectl auth can-i delete pods --as=system:serviceaccount:default:my-app
このコマンドが no を返せば、その権限は正しく制限されている証拠です。安心できますよね。
—
4. 最後に:セキュリティは「完璧」を目指さない
セキュリティの世界に「完璧」はありません。どれだけ強固な鍵をかけても、窓を割られることもあれば、鍵自体を盗まれることもあります。
大切なのは、「もし突破されたときに、被害をどこまで小さく食い止められるか」という視点です。RBACで権限を絞っておけば、たとえ一箇所が破られても、攻撃者がクラスター全体を支配するのを防ぐことができます。
最初は難しく感じるかもしれませんが、まずは「このサービスアカウントには、本当に edit 権限が必要かな?」と自問自答することから始めてみてください。その小さな疑問が、あなたの守るクラスターを大きく強くします。
明日からの運用で、ぜひ「鍵の棚卸し」を試してみてくださいね!応援しています。
コメント