変更要約: 各節に図(figure)を追加=cert-figure-retrofit。SC-500 第2章を新規作成(ドメイン2「ストレージ・DB・NW の保護」: ストレージ=ファイアウォール/プライベートエンドポイント/Entra 認可・SAS/Defender for Storage、Azure SQL=Entra 認証/監査/TDE・Always Encrypted/Defender for Databases、ネットワーク=NSG・ASG/Virtual Network Manager/Virtual WAN・VPN/Entra Private Access/プライベートエンドポイント・Private Link、Azure Firewall=アプリ/ネットワーク/DNAT 規則・脅威 Intel/IDPS・Firewall ポリシー/Network Watcher 診断)
2.1ストレージとデータベースの保護
ストレージアカウントのセキュリティ(ファイアウォール規則・アクセスポリシー・Defender for Storage)と、Azure SQL のプラットフォームレベルのセキュリティ(認証・ネットワーク・監査・Defender for Databases)を、データ保護の多層防御の観点で学びます。
データは攻撃者の最終目的になりやすいため、ストレージとデータベースの保護はドメインの中でも比重が大きい(25–30%)領域です。基本は「ネットワークで絞る → ID とアクセスで絞る → 暗号化する → 脅威を検知する」という多層防御です。本節では Azure Storage と Azure SQL を例に、各レイヤーをどの機能で実装するかを整理します。
2.1.1ストレージアカウントのネットワークとアクセス制御
ストレージアカウントは既定でパブリックにアクセス可能です。ストレージ ファイアウォール で「選択した仮想ネットワーク/IP のみ」に制限し、プライベートエンドポイント で VNet 内 private IP に限定できます。アクセス制御は、共有キーよりも Microsoft Entra 認可(RBAC) を優先し、一時的な委任には SAS(Shared Access Signature) を最小権限・短期・できれば ユーザー委任 SAS(Entra ベース)で使います。BLOB の パブリックアクセス(匿名読み取り) は原則無効化します。
2.1.2Defender for Storage による脅威検知
Microsoft Defender for Storage は、ストレージへの不審なアクセスやアップロードを検知する脅威保護プランです。マルウェア スキャン(アップロードされた BLOB をスキャンして悪意あるファイルを検出)や 機微データの脅威検知(機微データを含む BLOB への異常アクセスのアラート)を提供します。これは設定の良し悪しを見る CSPM とは別で、実行時の脅威検知(ワークロード保護)にあたります。
2.1.3Azure SQL のプラットフォームセキュリティと監査
Azure SQL Database / Managed Instance では、まず Microsoft Entra 認証(パスワードよりも一元管理・MFA 可)を優先し、ネットワークは プライベートエンドポイント や ファイアウォール規則 で絞ります。SQL 監査(auditing) は、データベースへの操作を Log Analytics やストレージに記録し、調査と証跡に使います。脅威検知は Microsoft Defender for Databases(旧 Advanced Threat Protection)が担い、SQL インジェクションの疑い・異常なログイン・機微データへの異常アクセスなどをアラートします。データ自体は 透過的データ暗号化(TDE) で保存時に暗号化され、列単位の保護は Always Encrypted を使います。
| レイヤー | ストレージ | Azure SQL |
|---|---|---|
| ネットワーク | ストレージ ファイアウォール/プライベートエンドポイント | ファイアウォール規則/プライベートエンドポイント |
| ID・アクセス | Entra 認可(RBAC)優先・SAS は最小/短期・匿名無効 | Entra 認証優先・最小権限 |
| 暗号化 | 保存時暗号化(既定)・CMK 可 | TDE(保存時)・Always Encrypted(列単位) |
| 監査 | 診断設定/ストレージ分析 | SQL 監査 → Log Analytics/ストレージ |
| 脅威検知 | Defender for Storage(マルウェア/機微データ) | Defender for Databases(SQLi/異常ログイン) |
混同に注意:
①共有キー/アカウントキー(全権・ローテーション必須)より Entra 認可(RBAC) を優先、一時委任は SAS(最小・短期・ユーザー委任 SAS)。
②TDE(保存時の全体暗号化)と Always Encrypted(特定列をクライアント側で暗号化)。
③Defender for Storage/Databases(実行時の脅威検知)と Defender CSPM(設定の態勢評価) は別物。
「要件 → 機能」:例「アップロードされた BLOB のマルウェアを検出」=Defender for Storage のマルウェアスキャン、「SQL への SQL インジェクションや異常ログインを検知」=Defender for Databases、「ストレージへのアクセスを VNet 内に限定」=プライベートエンドポイント、「DB の特定列をアプリ側で暗号化」=Always Encrypted、「一時的に最小権限で BLOB を共有」=ユーザー委任 SAS。
2.1.4この節のまとめ
- データ保護は多層:ネットワーク→ID/アクセス→暗号化→脅威検知
- ストレージ:ファイアウォール/プライベートエンドポイント+Entra 認可(SAS は最小/短期)+Defender for Storage
- Azure SQL:Entra 認証+プライベートエンドポイント+SQL 監査+TDE/Always Encrypted+Defender for Databases
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. ストレージアカウントにアップロードされた BLOB をスキャンしてマルウェアを検出する脅威保護プランはどれですか?
Q2. ストレージへのアクセスで、共有キーよりも優先すべき認可方式はどれですか?
Q3. Azure SQL でデータベース全体を保存時に暗号化する既定の仕組みはどれですか?
Q4. SQL インジェクションの疑いや異常なログインを Azure SQL で検知してアラートするのはどれですか?
Q5. データベースの特定の列(例:クレジットカード番号)をクライアント側で暗号化し、DB 管理者にも平文を見せないようにする機能はどれですか?
Q6. ストレージアカウントへのネットワークアクセスを仮想ネットワーク内の private IP のみに限定する方法はどれですか?

