プロファイル適用性: レベル1
レガシー認証、属性ベースのアクセス制御 (ABAC) としても知られるものは、ロールベースのアクセス制御 (RBAC) に取って代わられ、現在は積極的に開発されていません。RBACはKubernetesで権限を管理するための推奨方法です。
Kubernetesでは、RBACはクラスタおよびネームスペースレベルでリソースへの権限を付与するために使用されます。RBACは、一連の権限を含むルールで役割を定義することができる一方で、Kubernetes
Engineのレガシー認証者 (ABAC) は広範で静的に定義された権限を付与します。RBACはABACに比べて大きなセキュリティ上の利点を提供するため、アクセス制御の推奨オプションです。可能な限り、GKEクラスタではレガシー認証を無効にする必要があります。
注意Kubernetes Engineクラスタは、GKEバージョン1.8以降でレガシー認証システムをデフォルトで無効にするため、ロールベースのアクセス制御権限が特別な処理が必要なく有効になります。
|
影響
クラスターでレガシー認証者が無効になった後、ユーザはRBACを使用して認証ロールを作成する権限を付与され、ロールベースのアクセス制御の権限が有効になるようにする必要があります。
監査
Google Cloud Consoleを使用する
- Kubernetes Engine websiteに移動します。
- クラスタのリストから各クラスタをクリックして詳細ペインを開き、レガシー認証が無効に設定されていることを確認してください。
コマンドラインを使用する:
既存のクラスターのレガシー認証ステータスを確認するには、次のコマンドを実行してください。
gcloud container clusters describe <cluster_name> --zone <compute_zone> --format json | jq '.legacyAbac'
レガシー認証が無効の場合、出力は
{}を返す必要があります。レガシー認証が有効の場合、上記のコマンドはtrueの値を返します。修復
Google Cloud Consoleを使用する
- Kubernetes Engine websiteに移動します。
- レガシー認証が有効になっているKubernetesクラスターを選択してください。
- [EDIT]をクリックします。
- レガシー認証を無効に設定します。
- [保存] をクリックします。
コマンドラインを使用する:
既存のクラスターでレガシー認証を無効にするには、次のコマンドを実行してください。
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以上を実行しているクラスターでは削除されます。
