説明
Kubernetes RBAC は、ロールとバインディングによって、ユーザーやサービスアカウントが参照・変更できるリソースを制限します。Crossplane の AKSCluster で disableRBAC: true にすると、この制御が無効になり、最小権限に合わせて操作範囲を分けることが難しくなります。
RBAC は認証とは別の認可の仕組みです。有効にするだけで適切な権限になるわけではなく、実際のロールとバインディングを確認する必要があります。
想定される影響
- クラスターにアクセスする主体が、業務上必要な範囲を超えてリソースを参照・変更できる可能性があります。
- ユーザーやサービスアカウントが悪用されると、重要なリソースの変更・削除によって影響が広がる可能性があります。
対処方法
- 新しいクラスターでは
disableRBACをfalseにしてください。Microsoft は既存の非 RBAC クラスターで後から Kubernetes RBAC を有効にする方法をサポートしていないため、その環境は RBAC を有効にした新しいクラスターへ移行する計画を立ててください。 - 必要なリソースと操作だけを許可するロールとバインディングを構成し、不要なクラスター全体の権限を取り除いてください。
- 移行の前後でユーザーとサービスアカウントの許可・拒否される操作を試験し、アプリケーションとデータの移行手順を確認してください。
例
以下は既存の Crossplane API でクラスターの作成設定を比較する部分的な例です。ノードやネットワークなど、残りの必須設定は省略しています。
変更前
yaml
apiVersion: compute.azure.crossplane.io/v1alpha3
kind: AKSCluster
spec:
location: eastus
nodeCount: 2
disableRBAC: true
Kubernetes RBAC を無効にする作成設定です。
変更後
yaml
apiVersion: compute.azure.crossplane.io/v1alpha3
kind: AKSCluster
spec:
location: eastus
nodeCount: 2
disableRBAC: false
Kubernetes RBAC を有効にする作成設定です。この値だけを変更して既存の非 RBAC クラスターを移行する例ではありません。必要なロールとバインディングも別途構成してください。