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

Workload Identity とは?

最終更新:
💡 アプリのIDを確かめ、必要なアクセスを認める

アプリやサービスなどのワークロードを識別し、そのIDに応じてアクセスを制御する考え方や仕組み。クラウドとのID連携では、長期キーをアプリへ配る代わりに、信頼するIDの情報から短期の認証情報を取得する。

📌 このページのポイント
長期キーを配らず、IDから認証情報を得る Kubernetes Pod ServiceAccount のIDを使う AWS STS ID・信頼条件 を確認 OIDCトークン 一時認証情報 AWSサービス 例:S3 権限内でアクセス IDの確認とアクセス権限の設定は別 短期の認証情報も適切に保護する
AWS IRSAの概念例。信頼関係・権限・対応SDKなどの設定が必要。
ひよこ ひよこ
Podからクラウドを使うには、APIキーを保存するの?
ペンギン先生 ペンギン先生
長期のキーを渡す方法もあるけれど、IDを連携する方法もあるよ。例えばGKEのWorkload Identity FederationやAWSのIRSAでは、KubernetesのServiceAccountに関係するIDを使い、クラウドへのアクセスを制御できるんだ。
ひよこ ひよこ
IDを設定すれば何でも使える?
ペンギン先生 ペンギン先生
身元の確認と権限の設定は別だよ。GKEでこの機能を有効にするだけではIAM権限は増えない。どのIDがどのリソースへアクセスできるか、IAMポリシーで必要な範囲を認めるんだ。
ひよこ ひよこ
認証情報はどう手に入れるの?
ペンギン先生 ペンギン先生
例えばAWSのIRSAでは、ServiceAccountのOIDCトークンをAWSのSTSへ渡し、一時的なロール認証情報を取得するよ。対応SDKや信頼関係などの設定が必要で、全クラウドが同じ手順とは限らないんだ。
ひよこ ひよこ
Kubernetes以外でも使える?
ペンギン先生 ペンギン先生
GitHub ActionsのOIDC連携も例になるよ。クラウド側で信頼するワークフローの条件を定め、ジョブのID情報を検証して短期のアクセストークンを取得する。長期のクラウド認証情報をGitHubのSecretへ複製する必要を減らせるんだ。
ひよこ ひよこ
短期なら漏れても安全?
ペンギン先生 ペンギン先生
有効期限内の悪用や過大な権限には注意が必要だよ。信頼条件と最小権限、実行環境の保護が大切なんだ。AWSもIRSAでコンテナー自体がセキュリティ境界になるわけではないと説明している。すべての秘密情報が不要になる、という意味ではないよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Workload Identity」って出てきたら「アプリなどのIDに基づいてアクセスを制御する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Workload Identity」 = ワークロードのID
💬 Workloadはアプリやサービスなどの処理を担う実体、Identityはその身元を表すよ。人のアカウントと同じように、実行するアプリを識別してアクセスを考えるんだ。

参考資料

← 用語集にもどる