変更要約: AZ-204 第2章を Associate 級に深掘り(比較表・シナリオ・FAQ・ひっかけ+深掘り段落、図を日本語化)
2.1Blob ストレージ向けの開発
SDK による Blob 操作(クライアント→コンテナ→Blob、アップロード/ダウンロード/一覧)、アクセス層とライフサイクル、SAS と Entra ID による安全なアクセスといった開発を理解します。AZ-204 の「Azure ストレージ向けの開発」の出発点です。
非構造化データ(画像・ログ・ファイル)の保存先が Blob ストレージ です。開発では SDK のクライアント階層と安全なアクセスを押さえます。
2.1.1SDK・層・アクセス
- SDK クライアント階層:BlobServiceClient → コンテナ → Blob の順にたどり、アップロード/ダウンロード/一覧を行う。
- アクセス層/ライフサイクル:ホット/クール/アーカイブを使い分け、ライフサイクルルールで自動移行・コスト最適化。
- 安全なアクセス:SAS(範囲/期限限定の委任)と Entra ID + RBAC。推奨は Entra ID、キーは厳重管理。
「クライアント→コンテナ→Blob の階層」「期限付き委任アクセス=SAS」「推奨はキー不要の Entra ID + RBAC」「めったに使わない長期保管=アーカイブ層」 は AZ-204 で頻出です。
開発では SDK の階層 BlobServiceClient → コンテナ(BlobContainerClient)→ Blob(BlobClient) をたどり、アップロード/ダウンロード/一覧/メタデータ操作を行います。Blob 種別は ブロック BLOB(一般的なファイル・大きい場合はブロック分割で並列アップロード)、追記 BLOB(ログ)、ページ BLOB(仮想ディスク)。コスト最適化は アクセス層(ホット/クール/コールド/アーカイブ)と ライフサイクル管理ポリシー、アーカイブは読み出しに リハイドレート が要る点に注意。安全なアクセスは「Entra ID + RBAC(推奨・キー不要)」「SAS(範囲/操作/期限を限定した委任。ユーザー委任 SAS が安全・ストアドアクセスポリシー で一括失効)」「アカウントキー(最後の手段・要ローテーション)」。Blob 作成などのイベントは Event Grid で Functions 等へ連携でき、誤削除対策に 論理削除/バージョニング、改ざん防止に 不変ストレージ。判断軸は「恒久・キーレス=Entra ID + RBAC」「一時委任=SAS」「長期保管=アーカイブ層」「イベント連携=Event Grid」。
| やりたいこと | 使うもの |
|---|---|
| 恒久・キー不要のアクセス | Entra ID + RBAC |
| 期限/範囲限定の一時委任 | SAS(ユーザー委任SAS推奨) |
| めったに使わない長期保管 | アーカイブ層(要リハイドレート) |
| Blob イベントを下流連携 | Event Grid → Functions |
シナリオ:アップロードされた画像をサムネイル生成し、古い画像は安く保管したい。 SDK でコンテナへアップロード(大きい画像はブロック分割)。Blob 作成を Event Grid で Functions にトリガーしてサムネイル生成。古い画像は ライフサイクル管理ポリシーでクール→アーカイブへ。外部共有は ユーザー委任 SAS(読み取り・短期)、社内アプリは Entra ID + RBAC(キーレス)。
Q. SDK の階層は? BlobServiceClient→コンテナ→Blob。Q. 一時委任は? SAS(ユーザー委任SASが安全)。Q. 恒久・キーレス? Entra ID + RBAC。Q. 長期保管? アーカイブ層(要リハイドレート)。Q. Blob イベント連携? Event Grid。Q. 大きいファイル? ブロック分割アップロード。
混同に注意:
①アーカイブ層は即時読み出し不可(リハイドレート要)。
②SAS は発行後の個別失効が難しい——ストアドアクセスポリシーやキー再生成で無効化。
③アカウントキーはフルアクセス=大きな blast radius——Entra ID/SAS を優先。
④Blob 種別を取り違えない(一般ファイル=ブロック、ログ=追記、VHD=ページ)。
大きいファイルはブロック分割でアップロードし、変更通知(Event Grid)で Blob 作成イベントを下流(Functions 等)へ連携できます。
2.1.2この節のまとめ
- SDK=クライアント→コンテナ→Blob、層でコスト最適化
- アクセスはSAS / Entra ID + RBAC(推奨)
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. Blob ストレージの SDK でクライアントから Blob へたどる正しい階層はどれですか?
Q2. 第三者に特定の Blob へ期限付き・範囲限定でアクセスさせたい。最も適した方法はどれですか?
Q3. Blob へのアクセス方法として最も推奨される(キー不要の)方式はどれですか?

