【ワークロードアイデンティティ】

Workload Identity とは?

💡 パスワードを覚えなくても入れる、アプリ専用の身分証明書
📌 このページのポイント
従来のAPIキー方式 vs Workload Identity 従来: APIキー方式 Pod Secret APIキー固定値 漏洩リスク・ローテーション必要 Workload Identity Pod SA連携済 短命トークン 自動発行・更新 キーレス・自動ローテーション Workload Identity の認証フロー K8s Pod Service Account IDプロバイダ OIDC連携 Cloud IAM ロール付与 S3 GCS等
Workload Identityのイメージ
ひよこ ひよこ

KubernetesPodからクラウドサービスを使いたいとき、APIキーを渡すの?

ペンギン先生 ペンギン先生

昔はそうしてたんだけど、APIキーをSecretに保存して管理するのは漏洩リスクがあるんだよ。Workload Identityを使えば、Podに直接クラウドIAMロールを紐づけられるから、キーの管理自体が不要になるんだ

ひよこ ひよこ

どうやってキーなしで認証できるの?

ペンギン先生 ペンギン先生

KubernetesのService Accountとクラウドのサービスアカウントを連携させるんだよ。Podが起動すると短命のトークンが自動発行されて、それでクラウドサービスにアクセスする。トークンは自動的にローテーションされるから安全なんだ

ひよこ ひよこ

GCPAWSで呼び方が違うの?

ペンギン先生 ペンギン先生

GCPではWorkload Identity、AWSではIAM Roles for Service Accounts(IRSA)やEKS Pod Identityと呼ばれるよ。Azureでもワークロードアイデンティティフェデレーションがあるんだ。名前は違うけど考え方は同じだよ

ひよこ ひよこ

Kubernetes以外でも使えるのかな?

ペンギン先生 ペンギン先生

もちろんだよ。GitHub ActionsからAWSデプロイするときにOIDC連携でキーレス認証したり、Terraformの実行環境にWorkload Identityを設定したりと、CI/CDパイプラインでも広く使われてるんだ。秘密情報を持たないというのがゼロトラストの基本だね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Workload Identity」って出てきたら「アプリに直接クラウド権限を渡す仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Workload Identity」 = ワークロードのID
💬 Workloadは「処理を担う実体」、Identityは「身元・ID」で、アプリ自体にIDを持たせるという考え方だよ
← 用語集にもどる