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

マルチクラウドで認証したい ~CloudRunと.NET8 Blazor ServerでAzure Open AIをセキュアに呼び出す~

マルチクラウドで認証したい ~CloudRunと.NET8 Blazor ServerでAzure Open AIをセキュアに呼び出す~

2025年5月25日に開催された「.NETラボ 勉強会 2024年5月 newMVP祭り」の登壇資料です。

イベントURL:https://dotnetlab.connpass.com/event/317839/

登壇タイトル
マルチクラウドで認証したい
~CloudRunと.NET8 Blazor ServerでAzure Open AIをセキュアに呼び出す~

デモで利用したアプリケーション
https://github.com/ymd65536/dotNETCloudRun

Kento.Yamada

May 25, 2024
Tweet

More Decks by Kento.Yamada

Other Decks in Programming

Transcript

  1. • 自己紹介 • 宣伝 • 前提知識 ◦ 認証・認可とは • 認証・認可の用途

    ◦ どういう用途で使う? • Google Cloudの認証・認可 ◦ 基礎知識 ◦ Google Cloudリソースへの認証1 ◦ Google Cloudリソースへの認証2 ◦ 外部IDを使って認証する ◦ Google CloudにおけるID統合 ◦ Google Cloudの認証・認可 ◦ Google アカウントとGoogle Cloud アカウント • 主要なMicrosoftの認証(使うものに厳選して紹介 話すこと 2 • デモ • AWSの認証・認可 ◦ AWSリソースへの認証・認可1 ◦ AWSリソースへの認証・認可2 ◦ AWSアカウントの制御 ◦ 補足:AWS Builder ID • まとめ • Tips(ここは話さない)
  2. どういう用途で使う? 11 クラウドでは標準になっている。その一方で使い方で役割が変わる! • 社内アカウントの管理(情シスっぽい話) ◦ ex) 社内資料へのアクセス ◦ ex)

    デバイスアクセス(MDM) • インフラの管理(エンジニアっぽい話) ◦ ex) Webアプリケーションで特定のデータベースにアクセス ◦ ex) マネジメントコンソールからリソースにアクセス
  3. どういう用途で使う? 12 クラウドでは標準になっている。その一方で使い方で役割が変わる! • 社内アカウントの管理(情シスっぽい話) ◦ ex) 社内資料へのアクセス ◦ ex)

    デバイスアクセス(MDM) • インフラの管理(エンジニアっぽい話) ◦ ex) Webアプリケーションで特定のデータベースにアクセス ◦ ex) マネジメントコンソールからリソースにアクセス
  4. Google Cloudの認証・認可(基礎知識) 14 認証・認可でいうと、えげつないくらいある! • API キー • OAuth クライアント

    ID • ユーザー アカウントまたはサービス アカウント • トークン • Firebase Authentication • Identity Platform • Identity-Aware Proxy • Workload IdentityとWorkforce Identity • Cloud Identity • Identity and Access Management
  5. 補足:GoogleアカウントとGoogle Cloud アカウント 根本的に異なるもの • Google = Googleアカウント(今回使うもの) • Google

    Cloud = Google Cloudアカウント(今回使うもの) • Google Workspace = Google Workspaceアカウント Google CloudはGoogle アカウントかGoogle Workspaceアカウントがあれば使える! 15
  6. Google Cloudリソースへの認証1 16 • Firebase Authentication ◦ Firebaseプラットフォームにおける認証 ◦ FirebaseはGoogleに買収されているため、Googleの認証機能として数える

    • Identity Platform ◦ Google Cloudにおける認証サービス ◦ なんだけども、実はSDKレベルで見るとFirebaseとほぼ同じ ◦ Firebaseの上位互換のような存在
  7. 外部IDを使って認証する 外部IDを使ってGoogle Cloudリソースへのアクセスを許可 • Workforce Identity ◦ サービスとして紹介されている • Workload

    Identity ◦ Google のIAMがもつ1つの機能として解説されている • Cloud Identity ◦ IDaaS、ID統合なので認証は外部 外部IDというとたとえば、Microsoft Entra IDとの連携 18
  8. Google Cloudの認証・認可 20 • Google Cloudの認証およびリソース操作に関する制御 ◦ Identity and Access

    Management(IAM) 今回はCloudRunと他のサービスアクセスで利用します。 ポリシー名の言い回しはわりとAzureに近しいものを感じる。 例:⚪⚪⚪管理者、⚪⚪⚪閲覧者など
  9. 主要なMicrosoftの認証 • Microsoft Entra ID • Active Directory(AD) Azure AD=Microsoft

    Entra ID という解釈でOK! なお、Azureサービスの呼び出しにはManaged IDを利用(推奨) ※細かいことを言うとたくさんあるけど、趣旨がズレるので割愛 21 今回はAzureの「アプリの登録」を使っています。
  10. 構成図 22 Artifact Registry Cloud Run Blazor Server Cloud Monitoring

    Microsoft Azure Secret Manager ログチェック シークレットの登録 イメージのプッシュ シークレットの参照 イメージのプル マネージドIDを呼び出し Google認証
  11. AWSリソースへの認証・認可1 • AWSの認証およびリソース操作に関する制御 ◦ Identity and Access Management(IAM) AWS IAMでは主に3つの分け方がある(振り返り)

    • IAMユーザー ◦ コンソールユーザーだったり、プログラブルユーザーだったりさまざま • IAMロール ◦ AzureではマネージドID、Google Cloudではサービスアカウントに該当 • IAMユーザーグループ ◦ IAM ユーザーの集合 27
  12. まとめ • 認証認可ってなんだっけ? ◦ 認証:システム・リソース利用に必要な本人確認 ◦ 認可:システム・リソースの操作に対する権限 • クラウドではさまざまな認証がある ◦

    昨今においてはクラウド同士で安全に認証する方法があるYo • 今回はGoogle Cloud ✖ Azureで認証してみた ◦ 認証すれば、他のクラウドサービスも安全に呼び出せるYo • AWSの認証認可 ◦ IAMやAmazon Cognito、AWS Control TowerがあるYo 31