GKE クラスターのワークロードが Cloud Storage と BigQuery に安全にアクセスする必要があります。サービスアカウントキーファイルを使用せずに認証を行う最もセキュアな方法はどれですか?
- A. Kubernetes Secret にサービスアカウントキー JSON を保存してマウントする
- B. GKE ノードプールのデフォルトサービスアカウントに必要な権限を付与する
- C. Cloud Storage と BigQuery の API キーを環境変数に設定する
- D. Workload Identity を設定して Kubernetes Service Account と Google Service Account を紐付ける
解答と解説を見る
正解: D
Workload Identity は GKE の推奨認証方式で、Kubernetes Service Account と Google Cloud Service Account を IAM 設定で紐付けます。Pod が Cloud API を呼び出す際に自動的に適切なサービスアカウントとして認証され、キーファイルが不要です。キーのローテーションも不要で、漏洩リスクがありません。Kubernetes Secret にキー JSON を保存する方法はキーを管理・ローテーションする必要があり、Secret が漏洩するとキーも危険にさらされます。ノードプールのデフォルトサービスアカウントへの権限付与は、そのノード上のすべての Pod が同じ権限を持つことになり過剰な権限付与になります。API キーは Google Cloud の IAM ベースのサービス(Storage・BigQuery)には使用しません。