このページでは、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