Web ワークロードのセキュリティ要件を指定する

完了

このユニットでは、Web ワークロードの新しい要件仕様を作成するのに役立つ App Service の Azure セキュリティ ベースラインについて概説します。

Microsoft Cloud セキュリティ ベンチマークの詳細な背景については、「Microsoft サイバーセキュリティ リファレンス アーキテクチャとクラウド セキュリティ ベンチマークの概要」を参照してください。

以下に示す表には、次の場合の完全なベースラインからの制御が含まれています。

  • セキュリティ制御は "サポートされていた" が、既定で有効になって "いなかった"
  • 顧客側で実行するアクションを含む明示的なガイダンスがあった
領域 コントロール 特徴量 ガイダンスのまとめ
ネットワークのセキュリティ NS-1: ネットワーク セグメント化の境界を確立する Virtual Network 統合 インターネット アドレスへの送信通信のための安定した IP の確保: Virtual Network 統合機能を使うことで、安定した送信 IP を提供できます。 これにより、必要に応じて、受信側で IP に基づく許可リストが可能になります。
NS-2: ネットワーク制御を使用してクラウド サービスをセキュリティで保護する Azure Private Link Azure Web アプリにプライベート エンドポイントを使うと、プライベート ネットワーク内のクライアントが Private Link 経由で安全にアプリにアクセスできるようになります。 プライベート エンドポイントでは、Azure VNet アドレス空間の IP アドレスが使用されます。
NS-2: ネットワーク制御を使用してクラウド サービスをセキュリティで保護する パブリック ネットワーク アクセスの無効化 サービス レベルの IP ACL フィルター規則またはプライベート エンドポイントを使うか、Azure Resource Manager で publicNetworkAccess プロパティを無効に設定して、公衆ネットワーク アクセスを無効にします。
NS-5:DDoS Protection をデプロイする App Service の Web Application Firewall をホストする仮想ネットワークで DDoS Protection を有効にします。 Azure により、そのネットワーク上に DDoS インフラストラクチャ (Basic) 保護が提供されます。 インテリジェントな DDoS 機能を強化するには、通常のトラフィック パターンについて学習し、異常な動作を検出できる Azure DDoS Protection を有効にします。 Azure DDoS Protection には、ネットワーク保護と IP 保護という 2 つのレベルがあります。
NS-6: Web アプリケーション ファイアウォールをデプロイする アプリケーションで WAF がバイパスされないようにします。 WAF のみにアクセスをロック ダウンすることで、WAF をバイパスできないようにします。 アクセス制限、サービス エンドポイント、プライベート エンドポイントを組み合わせて使います。
ID 管理 IM-1: 一元的な ID および認証システムを使用する データ プレーン アクセスに必要な Microsoft Entra 認証 認証された Web アプリケーションの場合は、既知の確立された ID プロバイダーのみを使用して、ユーザー アクセスの認証と認可を行います。
データ プレーン アクセスのローカル認証方法 データ プレーン アクセスのためのローカル認証方法の使用を制限します。 代わりに、データ プレーン アクセスを制御するための既定の認証方法として Microsoft Entra ID を使用します。
IM-3: アプリケーション ID を安全かつ自動的に管理する マネージド ID 可能な限り、サービス プリンシパルではなく、Microsoft Entra 認証をサポートする Azure サービスやリソースを認証できる Azure マネージド ID を使います。 マネージド ID の資格情報は、プラットフォームによって完全に管理、ローテーション、保護されており、ソース コードまたは構成ファイル内でハードコーディングされた資格情報を使用せずに済みます。
IM-7: 条件に基づいてリソースへのアクセスを制限する データ プレーンへの条件付きアクセス ワークロードでMicrosoft Entra 条件付きアクセスに適用できる条件を定義します。
IM-8: 資格情報とシークレットの公開を制限する Azure Key Vault での、サービス資格情報とシークレットの統合とストレージのサポート アプリのシークレットと資格情報が、コードや構成ファイルに埋め込まれるのではなく、Azure Key Vault などの安全な場所に格納されていることを確認します。 アプリでマネージド ID を使って、Key Vault に格納された資格情報やシークレットに安全な方法でアクセスします。
特権アクセス PA-8: クラウド プロバイダー サポートのアクセス プロセスを決定する カスタマー ロックボックス Microsoft がデータにアクセスする必要があるサポート シナリオでは、カスタマー ロックボックスを使って、Microsoft のデータ アクセス要求をそれぞれ確認してから、承認または拒否します。
データ保護 DP-3: 転送中の機密データの暗号化 転送中データの暗号化 転送中のすべての情報を暗号化するために、TLS/SSL 設定で構成された既定の最小バージョン TLS v1.2 を使用および適用します。 また、すべての HTTP 接続要求が HTTPS にリダイレクトされるようにします。
DP-5: 必要に応じて保存データ暗号化でカスタマー マネージド キー オプションを使用する CMK を使用した保存データの暗号化 規制コンプライアンスに必要な場合は、カスタマー マネージド キーを使用した暗号化が必要なユース ケースとサービス スコープを定義します。 それらのサービスでカスタマー マネージド キーを使って、保存データ暗号化を有効にして実装します。
DP-6: セキュア キー管理プロセスの使用 Azure Key Vault でのキー管理 Azure Key Vault を使って暗号化キーのライフ サイクルを作成、制御します (キーの生成、配布、保管を含む)。 定義されたスケジュールに基づいて、またはキーの廃棄や侵害があったときに、Azure Key Vault とサービス内のキーをローテーションおよび失効させます。
DP-7: セキュリティで保護された証明書管理プロセスを使用する Azure Key Vault での証明書管理 App Service は、SSL/TLS などの証明書を構成することができ、App Service 上で直接構成するか、Key Vault から参照できます。 すべての証明書とシークレットを一元管理するために、App Service で使う証明書は、App Service のローカルに直接デプロイするのではなく、Key Vault に保存します。
アセット管理 AM-2: 承認済みのサービスのみを使用する
AM-4: アセット管理へのアクセスを制限する 機密情報を処理するシステムを分離します。 そのためには、App Service プランまたは App Service Environment を別々に使い、異なるサブスクリプションまたは管理グループの使用を検討します。
ログと脅威検出 LT-1: 脅威検出機能を有効にする サービス/製品のオファリングのための Microsoft Defender Microsoft Defender for App Service を使って、App Service で実行されるアプリケーションを対象とした攻撃を特定します。
LT-4: セキュリティ調査のためのログを有効にする Azure リソース ログ App Service で Web アプリのリソース ログを有効にします。
体制と脆弱性の管理 PV-2: セキュリティで保護された構成を監査して適用する リモート デバッグを有効にします。運用環境ワークロードでは、リモート デバッグを有効にしないでください。これは、サービス上でより多くのポートを開くことになり、攻撃対象領域が増えるからです。
PV-7: 定期的なレッド チーム操作を実施する エンゲージメントの侵入テスト ルールに従って、Web アプリケーションの侵入テストを定期的に実施します。
バックアップと回復 BR-1:定期的な自動バックアップを保証する Azure Backup 可能であれば、ステートレス アプリ設計を実装して、App Service を使った復旧とバックアップ シナリオを簡略化します。 ステートフルなアプリを維持する必要がある場合は、App Service のバックアップと復元機能を有効にし、手動またはスケジュールに従ってアプリのバックアップを簡単に作成できるようにします。
DevOps セキュリティ DS-6: DevOps ライフサイクル全体を通してワークロードのセキュリティを確保する App Service へのコードのデプロイは、適切に管理されセキュリティで保護された DevOps のデプロイ パイプラインのような、管理された信頼できる環境から行います。 これにより、バージョン管理および検証されていないコードが悪意のあるホストからデプロイされるのを回避することができます。