AKS の Kubernetes RBAC が無効

AKS で Kubernetes RBAC を使用し、ユーザーとサービスアカウントの操作を最小限の権限に制限してください。

説明

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 クラスターを移行する例ではありません。必要なロールとバインディングも別途構成してください。

参考資料