プロファイル適用性: レベル1
レガシー認証、属性ベースのアクセス制御 (ABAC) とも呼ばれるものは、ロールベースのアクセス制御 (RBAC) に取って代わられ、現在は積極的に開発されていません。Kubernetesでの権限管理にはRBACが推奨されています。
Kubernetesでは、RBACはクラスターおよびネームスペースレベルでリソースへの権限を付与するために使用されます。RBACは、一連の権限を含むルールで役割を定義することを可能にしますが、Kubernetes
Engineのレガシーオーサライザー (ABAC) は広範で静的に定義された権限を付与します。
RBACはABACに比べて重要なセキュリティ上の利点を提供するため、アクセス制御の推奨オプションです。可能な場合は、GKE Clustersのレガシー認証を無効にする必要があります。
注意Kubernetes Engine クラスターは、GKE バージョン 1.8 以降でレガシー認証システムをデフォルトで無効にするため、特別な処理が必要なくロールベースのアクセス制御権限が有効になります。
|
注意GKE 1.6または1.7を実行しているクラスターでは、KubernetesサービスアカウントはデフォルトでKubernetes APIに対する完全な権限を持っています。Kubernetesサービスアカウントに対する役割ベースのアクセス制御権限を有効にするには、クラスターを
--no-enable-legacy-authorizationオプションで作成または更新する必要があります。この要件は、GKEバージョン1.8以上を実行しているクラスターでは不要です。 |
影響
クラスターでレガシー認証者が無効化された後、ユーザはRBACを使用して認証ロールを作成する権限を付与される必要があります。これにより、ロールベースのアクセス制御の権限が有効になります。
監査
Google Cloud Consoleを使用する:
- Google CloudコンソールKubernetes EngineページにアクセスしてKubernetes Engineに移動します。
- クラスターのリストから各クラスターをクリックして詳細ペインを開き、レガシー認証が無効に設定されていることを確認してください。
コマンドラインを使用する:
既存のクラスターのレガシー認証ステータスを確認するには、まずクラスター名、場所、プロジェクトの3つの変数を定義し、次のコマンドを実行します。
gcloud container clusters describe $CLUSTER_NAME --location $LOCATION -- project $PROJECT_ID --format json | jq '.legacyAbac'
レガシー認証が無効の場合、出力は (
null) nullを返します。レガシー認証が有効の場合、上記のコマンドはtrue値を返します。修復
Google Cloud Consoleを使用する:
- Google CloudコンソールKubernetes EngineページにアクセスしてKubernetes Engineに移動します。
- レガシー認証が有効になっているKubernetesクラスターを選択してください。
- 編集をクリック。
- レガシー認証を無効に設定します。
- 保存をクリック。
コマンドラインを使用する:
既存のクラスターのレガシー認証を無効にするには、次のコマンドを実行してください。
gcloud container clusters update <cluster_name> --location <location> --no- enable-legacy-authorization
