ビュー:
プロファイル適用性: レベル1
レガシー認証、属性ベースアクセス制御 (ABAC) とも呼ばれるものは、ロールベースアクセス制御 (RBAC) に取って代わられ、現在は積極的に開発されていません。Kubernetesでの権限管理にはRBACが推奨されています。
Kubernetesでは、RBACはクラスターおよびネームスペースレベルでリソースへの権限を付与するために使用されます。RBACは、一連の権限を含むルールで役割を定義することを可能にしますが、Kubernetes Engineのレガシー認可 (ABAC) は広範で静的に定義された権限を付与します。RBACはABACに比べて大きなセキュリティ上の利点を提供するため、アクセス制御の推奨オプションです。可能な限り、GKEクラスターではレガシー認可を無効にする必要があります。
注意
注意
Kubernetes Engineクラスタは、GKEバージョン1.8以降でレガシー認証システムをデフォルトで無効にするため、ロールベースのアクセス制御権限が特別な処理が必要なく有効になります。

影響

クラスターでレガシーオーソライザーが無効化された後、ユーザはRBACを使用して認可ロールを作成する権限を付与される必要があります。これにより、ロールベースのアクセス制御の権限が有効になります。

監査

Google Cloud Consoleを使用する:
  1. Kubernetes Engine のウェブサイトにアクセスしてください。
  2. クラスタのリストから各クラスタをクリックして詳細ペインを開き、レガシー認証が無効に設定されていることを確認してください。
コマンドラインの使用:
既存のクラスターのレガシー認証ステータスを確認するには、次のコマンドを実行してください。
gcloud container clusters describe <cluster_name> --zone <compute_zone> 
--format json | jq '.legacyAbac'
レガシー認証が無効の場合、出力はnull ({}) を返します。レガシー認証が有効の場合、上記のコマンドはtrue値を返します。

修復

Google Cloud Consoleを使用する:
  1. Kubernetes Engine のウェブサイトにアクセスしてください。
  2. レガシー認可が有効になっているKubernetesクラスターを選択してください。
  3. [EDIT]をクリックします。
  4. レガシー認証を無効に設定します。
  5. [保存] をクリックします。
コマンドラインの使用:
既存のクラスターでレガシー認証を無効にするには、次のコマンドを実行してください。
gcloud container clusters update <cluster_name> --zone <compute_zone> 
--no-enable-legacy-authorization

追加情報:

GKE 1.6または1.7を実行しているクラスターでは、KubernetesサービスアカウントはデフォルトでKubernetes APIに対して完全な権限を持っています。Kubernetesサービスアカウントに対するロールベースのアクセス制御権限を有効にするには、クラスターを--no-enable-legacy-authorizationオプションで作成または更新する必要があります。この要件は、GKEバージョン1.8以上を実行しているクラスターでは削除されます。