Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Workload Identity Federationとは_TC3_IDaaS勉強会

Workload Identity Federationとは_TC3_IDaaS勉強会

TC3株式会社

July 08, 2022
Tweet

More Decks by TC3株式会社

Other Decks in Technology

Transcript

  1. ©2022 TC3株式会社 Confidential 2
 Workload Identity Federationってなに? もとはGCP独自の用語のようだが、最近ではGCP以外でも使われ始めている様子。 そのためこれは一体なんなのかを調べてみた。 実世界の例:

    - GitHub actionsがAWSやGCPのリソースにアクセスする - オンプレミスサーバー上のバッチアプリケーションがAWS, Azure, GCP上のリソースにアクセスする
  2. ©2022 TC3株式会社 Confidential 3
 Workload Identity Federationってなに? ワークロードの認証のフェデレーション? 1. ワークロードとは

    2. ワークロードの認証とは 3. フェデレーションとは 4. ワークロードの認証のフェデレーションとは
  3. ©2022 TC3株式会社 Confidential 4
 Workload Identity Federationってなに? ワークロード(Workload)とは 直訳すると「作業負荷」のことですが、 この場合のワークロードは、コンピューターに負荷をかけるプロセスそのものを指す。

    参考: https://www.techtarget.com/searchdatacenter/definition/workload In computing, a workload, typically, is any program or application that runs on any computer. A workload can be a simple alarm clock or contact app running on a smartphone, … ITの文脈においてワークロードとは、コンピューター上で走るプログラム、アプリケーションのこ とです。スマートフォン上のアラームや電話帳アプリ、...もそれに該当する
  4. ©2022 TC3株式会社 Confidential 5
 Workload Identity Federationってなに? ワークロードの認証(Workload Identity)とは ワークロードは人を介さず自律的に動くアプリケーションなので、

    人で言えばユーザーID・パスワードといった、ワークロード専用の認証情報が必要になる。 単純にワークロードにもユーザーID・パスワードを発行したら終わりなのでは? と思った方もいるかもしれませんが、そう思われるのも当然でついこの前まではそうすることが一 般的でした。
  5. ©2022 TC3株式会社 Confidential 6
 Workload Identity Federationってなに? ワークロードの認証に関する問題 - GitHubの公開リポジトリにAWSのアクセスキーを入れると、たとえ1分でも盗られる可能性

    がある。 - つい最近有名なCIサービスの脆弱性により、本来ユーザーにしかみることのできないログが 抜かれ、ワークロードで利用していた認証情報が盗まれた。
  6. ©2022 TC3株式会社 Confidential 7
 Workload Identity Federationってなに? フェデレーション(Federation)とは 直訳すると「連合」のことですが、 この場合のフェデレーションは、外部システムと自システムを接続し、外部の機能をシームレスに

    利用できる状態を指す。 参考: https://en.wikipedia.org/wiki/Federation_(information_technology) A federation is a group of computing or network providers agreeing upon standards of operation in a collective fashion. フェデレーションとは、複数のコンピュータやネットワークプロバイダーが、標準仕様に則り協調 すること。
  7. ©2022 TC3株式会社 Confidential 8
 Workload Identity Federationってなに? ワークロードの認証のフェデレーションとは これまでの内容をまとめると、Workload Identity

    Federationは「ワークロードの認証に関する標 準仕様上で動くシステムの集まり」となる。 ただし「ワークロードの認証に関する標準仕様」というものがあるわけではない。そのため、この スライドでは出来る限り一般化した説明を試みてみたい。 GCP, AWS, Azureのドキュメントを見る限り(※)根本的なフロー、先に触れたワークロードの認証 に関するリスクや、数ページ後に紹介する価値はほぼ同じであると考えている。 ※実装に関する詳しいドキュメントは見つけられなかったので同じ可能性もある
  8. ©2022 TC3株式会社 Confidential 9
 Workload Identity Federationってなに? OAuth 2.0 Token

    Exchange GCPが提供しているものは「OAuth 2.0 Token Exchange」の仕様の上に実装されているのでまず は OAuth 2.0 Token Exchange の要点をおさえておく。 参考: https://datatracker.ietf.org/doc/html/rfc8693 This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation 本仕様では、OAuth 2.0 認可サーバーにセキュリティトークンを要求・取得する方法を定義する ことで、HTTP および JSON ベースのセキュリティトークンサービス(STS)のプロトコルを定義し ている(なりすましや委任を用いたセキュリティトークンも含む)。
  9. ©2022 TC3株式会社 Confidential 10
 Workload Identity Federationってなに? OAuth 2.0 Token

    Exchange Client app Workload 外部API AuthZ Server 1 2 認可サーバーに アクセストークンをリクエストする ※subject_token は Client app から渡されたもの 認可サーバーが持つSTSを利用してトークンを変換する ※ STS: セキュリティトークンサービス
  10. ©2022 TC3株式会社 Confidential 11
 Workload Identity Federationってなに? OAuth 2.0 Token

    Exchange Client app Workload 外部API AuthZ Server 1 2 認証サーバーから アクセストークンを受け取る
  11. ©2022 TC3株式会社 Confidential 12
 Workload Identity Federationってなに? OAuth 2.0 Token

    Exchange Client app Workload 外部API AuthZ Server 1 2 変換されたトークンを使って、 外部APIをコールする ※ Token Exchangeを利用しない一般的なAPIコール では、Client appからBackend APIに直接このリクエ ストを送っている
  12. ©2022 TC3株式会社 Confidential 13
 Workload Identity Federationってなに? OAuth 2.0 Token

    Exchange の価値 なにが嬉しいの? a. クライアントアプリケーションが外部APIのトークンを知っている必要がなくなるため、外 部APIのトークンが漏れる可能性が減る b. M2M(※)では、クライアントアプリケーション側の情報(e.g. 誰か)を外部APIまで届けること が出来なかった(WIFにはこのメリットはない) c. M2Mの場合、外部APIのキーが静的なためキーのローテーションがしにくく、漏れたときの 被害が広がりやすい ※ M2M = Machine-to-Machine: 静的な認証情報(e.g. API Key, API secret)をワークロードに事前に設定し、外部APIを呼び出すやり方。 OAuth2 の Client Credential flow も認証情報をアクセストークンに変換するプロセスを挟みはするが、b, c はない。
  13. ©2022 TC3株式会社 Confidential 14
 Workload Identity Federationってなに? 要するに: セキュアなトークン変換の仕組みを使って短命なトークンを発行し、 外部のリソースにアクセスする方法

    Token Exchange 代理アカウント リソース Workload 外部 事前にWorkload専用に最小権限が設定されたロールが作成されていて、アク セスの都度そのロールを持ったアカウントが仮想的に用意され、そのアカウン トがリソースにアクセスしたような挙動をするとも言える 内部 認証基盤 (e.g. OIDC, PKI) 信頼関係構築 済
  14. ©2022 TC3株式会社 Confidential 15
 Workload Identity Federationってなに? 参考資料 Workload Identity

    Federation - GCP: https://cloud.google.com/iam/docs/workload-identity-federation OAuth 2.0 Token Exchange: https://datatracker.ietf.org/doc/html/rfc8693 Delegation Patterns for OAuth 2.0 using Token Exchange - Scott Brady: https://www.scottbrady91.com/oauth/delegation-patterns-for-oauth-20 Secure cloud deployments with OpenID Connect: https://github.blog/changelog/2021-10-27-github-actions-secure-cloud-deployments-with-openid-connect/ Workload Identity Federation - Azure: https://docs.microsoft.com/en-us/azure/active-directory/develop/workload-identity-federation AWS IAM Roles Anywhare - https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html
  15. ©2022 TC3株式会社 Confidential 16
 Thank you for your attention. G

    I G I N N O V A T E D . If you are interested, please contact to [email protected] .