このページでは、Google Kubernetes Engine(GKE)ノード サービス アカウントの分析情報に関するネットワーク アナライザの分析情報について説明します。すべての分析情報の種類の詳細については、分析情報のグループと種類をご覧ください。
これらの分析情報を gcloud CLI または Recommender API で表示するには、次の分析情報の種類を使用します。
google.networkanalyzer.container.serviceAccountInsight
次の権限が必要です。
recommender.networkAnalyzerGkeServiceAccountInsights.list
recommender.networkAnalyzerGkeServiceAccountInsights.get
ネットワーク アナライザの分析情報に Recommender API を使用する方法の詳細については、Recommender CLI と API の使用をご覧ください。
GKE のノード サービス アカウントが無効になっている
この分析情報は、クラスタ内の 1 つ以上のプールで無効になっている GKE ノード サービス アカウントが使用されていることを示します。これによって、そのサービスアカウントが無効化された状態で作成されたクラスタ内のノードが、起動処理や登録に失敗する可能性があります。
この分析情報には次の情報が含まれます。
- サービス アカウント: 通常、人ではなく、Compute Engine インスタンスなどのアプリケーションやコンピューティング ワークロードで使用される特別な種類のアカウント。そのアカウント固有のメールアドレスで識別されます。この情報は Recommender API で確認できます。
- GKE クラスタ: GKE クラスタの名前
- ノードプール: 無効なサービス アカウントを使用しているノードプールのリスト
関連トピック
詳細については、Compute Engine のデフォルトのサービス アカウントを有効にするとサービス アカウントを無効にするをご覧ください。
推奨事項
ノードのサービス アカウントを有効にします。影響を受けるノードプールに未登録のノードがある場合、ノードは再起動し、クラスタに正しく登録されます。すべてのノードが再起動するまでに時間がかかることがあります。迅速な解決のために、ノードプールをゼロノードから X ノードにサイズ変更するか、同じノード サービス アカウントを使用する新しいノードプールを作成することをおすすめします。
GKE ノードプールは Compute Engine のデフォルトのサービス アカウントを使用する
GKE クラスタ内のノードプールは、Compute Engine のデフォルトのサービス アカウントをノード サービス アカウントとして使用します。このアカウントには、Google Kubernetes Engine クラスタの実行に必要な権限を超える権限が必要です。
この分析情報には次の情報が含まれます。
- GKE クラスタ: GKE クラスタの名前
- ノードプール: デフォルトのサービス アカウントを使用しているノードプールのリスト
関連トピック
詳細については、最小権限のサービス アカウントの使用についての項目をご覧ください。
推奨事項
Compute Engine のデフォルトのサービス アカウントの代わりに、権限の少ないサービス アカウントを作成してノードで使用します。
GKE ノードプールのアクセス スコープが正しく構成されていない
GKE クラスタのノードプールでアクセス スコープが手動で指定されていますが、指定されたスコープではノードを登録できません。
ワークロードがアプリケーションのデフォルト認証情報(ADC)を使用する場合、アクセス スコープは、ノードとノードで実行されているワークロードに対する権限を付与する従来の方法です。 GKE ノードでは、少なくともデフォルトのスコープを必ず使用してください。そうしないと、ノードを登録できません。
この分析情報には次の情報が含まれます。
- GKE クラスタ: GKE クラスタの名前
- ノードプール: アクセス スコープが正しく構成されていないノードプールのリスト
関連トピック
詳細については、GKE のアクセス スコープをご覧ください。
推奨事項
ノードプールを十分なアクセス スコープを持つノードプールに置き換えます。十分なアクセス スコープを持つノードプールを作成するには、次のいずれかを行います。
アクセス スコープを指定せずに、新しいノードプールを作成する。Google Cloud CLI で、
gcloud container node-pools create
を呼び出すときに--scopes
フラグを指定しないでください。ノードで実行されているワークロードを承認するには、Identity and Access Management(IAM)権限または Kubernetes のロールベース アクセス制御(RBAC)を使用します。これは、特定の IAM サービス アカウントまたは Kubernetes サービス アカウントにアクセス権を付与するためです。詳細については、ワークロード用にカスタム サービス アカウントを構成するをご覧ください。
手動で指定したアクセス スコープの新しいノードプール リストに、次のスコープを追加する。
https://www.googleapis.com/auth/devstorage.read_only
https://www.googleapis.com/auth/service.management.readonly
https://www.googleapis.com/auth/servicecontrol
https://www.googleapis.com/auth/trace.append
https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/monitoring.write