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