GKE ノードのサービス アカウントの分析情報

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