App Service 用の Azure セキュリティ ベースライン

このセキュリティ ベースラインは、Azure セキュリティ ベンチマーク バージョン 3.0 のガイダンスをApp Serviceに適用します。 Azure セキュリティ ベンチマークには、Azure 上のクラウド ソリューションをセキュリティで保護する方法に関する推奨事項がまとめてあります。 内容は、App Service に適用される Azure セキュリティ ベンチマークと関連ガイダンスで定義されているセキュリティ コントロールによってグループ化されています。

このセキュリティ ベースラインとその推奨事項は、Microsoft Defender for Cloud を使用して監視できます。 Azure Policy定義は、Microsoft Defender for Cloud ダッシュボードの [規制コンプライアンス] セクションに一覧表示されます。

機能に関連するAzure Policy定義がある場合は、Azure セキュリティ ベンチマークのコントロールと推奨事項への準拠を測定するのに役立つ、このベースラインに一覧表示されます。 一部の推奨事項では、特定のセキュリティ シナリオを有効にするために有料の Microsoft Defender プランが必要になる場合があります。

注意

App Serviceに適用されない機能は除外されています。 App Service を完全に Azure セキュリティ ベンチマークにマップする方法については、完全な App Service セキュリティ ベースライン マッピング ファイルを参照してください。

セキュリティ プロファイル

セキュリティ プロファイルは、App Serviceの影響が大きい動作をまとめたものです。その結果、セキュリティに関する考慮事項が高まる可能性があります。

サービス動作属性
製品カテゴリ コンピューティング、Web
顧客は HOST/OS にアクセスできます アクセス権なし
サービスは顧客の仮想ネットワークにデプロイできます True
保存中の顧客コンテンツを格納する True

ネットワークのセキュリティ

詳細については、Azure セキュリティ ベンチマークの「ネットワークのセキュリティ」を参照してください。

NS-1: ネットワーク セグメント化の境界を確立する

機能

Virtual Network 統合

説明: サービスは、顧客のプライベート Virtual Network (VNet) へのデプロイをサポートします。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

機能ノート: Virtual Network統合は、App Service環境を使用する場合は既定で構成されますが、パブリック マルチテナント オファリングを使用する場合は手動で構成する必要があります。

構成ガイダンス: インターネット アドレスへの送信通信に対して安定した IP を確保する: Virtual Network統合機能を使用して、安定した送信 IP を提供できます。 これにより、受信側は必要に応じて IP に基づいて許可リストを作成できます。

分離価格レベル (App Service Environment (ASE) とも呼ばれる) でApp Serviceを使用する場合は、Azure Virtual Network内のサブネットに直接デプロイできます。 ネットワーク セキュリティ グループを使用して、Azure App Service Environmen を保護 (仮想ネットワーク内のリソースに対する受信トラフィックと送信トラフィックをブロック) したり、App Service Environment 内のアプリへのアクセスを制限したりします。

マルチテナント App Service (分離層にないアプリ) で、アプリがVirtual Network統合機能を使用してVirtual Network内または経由でリソースにアクセスできるようにします。 その後、ネットワーク セキュリティ グループを使用して、アプリからの送信トラフィックを制御できます。 Virtual Network統合を使用する場合は、"すべてルーティング" 構成を有効にして、すべての送信トラフィックを統合サブネット上のネットワーク セキュリティ グループとユーザー定義ルートの対象にすることができます。 この機能を使用して、アプリからパブリック アドレスへの送信トラフィックをブロックすることもできます。 仮想ネットワーク統合を使用して、アプリへの受信アクセスを提供することはできません。

Azure サービスに対する通信では、多くの場合、代わりにサービス エンドポイントを使用する必要がある IP アドレスとメカニズムに依存する必要はありません。

: App Service環境の場合、既定では、ネットワーク セキュリティ グループには最も低い優先順位で暗黙的な拒否規則が含まれており、明示的な許可規則を追加する必要があります。 最小特権のネットワーク アプローチに基づいて、ネットワーク セキュリティ グループの許可規則を追加します。 App Service Environment をホストするために使用される基になる仮想マシンは、Microsoft が管理するサブスクリプション内にあるため、直接アクセスできません。

同じリージョンの仮想ネットワークで仮想ネットワーク統合機能を使用する場合は、ネットワーク セキュリティ グループとユーザー定義のルートが含まれるルート テーブルを使用します。 ユーザー定義のルートを統合サブネットに配置して、意図したとおりに送信トラフィックを送信できます。

リファレンス: アプリを Azure 仮想ネットワークと統合する

ネットワーク セキュリティ グループのサポート

説明: サービス ネットワーク トラフィックは、サブネット上のネットワーク セキュリティ グループルールの割り当てを尊重します。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True True Microsoft

機能ノート: ネットワーク セキュリティ グループのサポートは、App Service環境を使用しているすべてのお客様が利用できますが、パブリック マルチテナント オファリングを使用しているお客様向けの VNet 統合アプリでのみ利用できます。

構成ガイダンス: 既定のデプロイで有効になっているので、追加の構成は必要ありません。

リファレンス: App Service Environment ネットワーク

NS-2: ネットワーク制御を使用してクラウド サービスをセキュリティで保護する

機能

説明: ネットワーク トラフィックをフィルター処理するためのサービス ネイティブ IP フィルタリング機能 (NSG やAzure Firewallと混同しないでください)。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

構成ガイダンス: Azure Web Apps のプライベート エンドポイントを使用して、プライベート ネットワーク内にあるクライアントがPrivate Link経由でアプリに安全にアクセスできるようにします。 プライベート エンドポイントでは、Azure VNet アドレス空間の IP アドレスが使用されます。 プライベート ネットワーク上のクライアントと Web アプリ間のネットワーク トラフィックは、VNet および Microsoft バックボーン ネットワーク上の Private Link を経由することで、パブリック インターネットにさらされないようにします。

: プライベート エンドポイントは、Web アプリへの受信フローにのみ使用されます。 送信フローではこのプライベート エンドポイントは使用されません。 VNet 統合機能を使用して、別のサブネット内のネットワークに送信フローを挿入できます。 App Service トラフィックの受信側のサービスにプライベート エンドポイントを使用すると、SNAT が発生するのを回避し、安定した送信 IP 範囲を提供します。

追加のガイダンス: Azure Container Registry (ACR) に格納されているApp Serviceでコンテナーを実行する場合は、それらのイメージがプライベート ネットワーク経由でプルされていることを確認します。 そのためには、ACR でプライベート エンドポイントを構成し、それらのイメージを格納し、Web アプリケーションで "WEBSITE_PULL_IMAGE_OVER_VNET" アプリケーション設定を設定します。

リファレンス: Azure Web アプリのプライベート エンドポイントの使用

パブリック ネットワーク アクセスの無効化

説明: サービスでは、サービス レベルの IP ACL フィルター規則 (NSG やAzure Firewallではなく) または "パブリック ネットワーク アクセスの無効化" トグル スイッチを使用して、パブリック ネットワーク アクセスを無効にできます。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

構成ガイダンス: サービス レベルの IP ACL フィルター規則またはプライベート エンドポイントを使用するか、ARM でプロパティを publicNetworkAccess 無効に設定して、パブリック ネットワーク アクセスを無効にします。

リファレンス: Azure App Serviceアクセス制限を設定する

NS-5: DDoS 保護をデプロイする

NS-5 のその他のガイダンス

App ServiceのWeb Application Firewallをホストする仮想ネットワークで DDOS Protection Standard を有効にします。 Azure は、通常のトラフィック パターンについて学習し、異常な動作を検出できるインテリジェントな DDoS Standard 機能を使用して改善できる、ネットワーク上の DDoS Basic 保護を提供します。 DDoS Standard はVirtual Networkに適用されるため、Application Gatewayや NVA など、アプリの前のネットワーク リソース用に構成する必要があります。

NS-6: Web アプリケーション ファイアウォールをデプロイする

NS-6 のその他のガイダンス

WAF がアプリケーションに対してバイパスされないようにします。 WAF のみにアクセスをロックダウンすることで、WAF をバイパスできないことを確認します。 アクセス制限、サービス エンドポイント、プライベート エンドポイントの組み合わせを使用します。

さらに、Web Application Firewall (WAF) が有効なAzure Application Gatewayまたは Azure Front Door を介してトラフィックをルーティングすることで、App Service Environmentを保護します。

マルチテナント オファリングの場合は、次を使用してアプリへの受信トラフィックをセキュリティで保護します。

  • アクセス制限: 受信アクセスを制御する一連の許可または拒否規則
  • サービス エンドポイント: 指定された仮想ネットワークまたはサブネットの外部からの受信トラフィックを拒否できます
  • プライベート エンドポイント: プライベート IP アドレスを使用してアプリをVirtual Networkに公開します。 アプリでプライベート エンドポイントが有効になっていると、そのアプリにはインターネットからアクセスできません。

サブスクリプションと仮想ネットワーク全体でアプリケーションとネットワークの接続ポリシーを一元的に作成、適用、および記録するために、Azure Firewall を実装することを検討してください。 Azure Firewall では、仮想ネットワーク リソースに静的パブリック IP アドレスが使用されます。これにより、外部ファイアウォールは、仮想ネットワークからのトラフィックを識別できます。

ID 管理

詳細については、「 Azure セキュリティ ベンチマーク: ID 管理」を参照してください。

IM-1: 一元的な ID および認証システムを使用する

機能

データ プレーン アクセスに必要なAzure AD Authentication

説明: サービスでは、データ プレーン アクセスに Azure AD 認証を使用できます。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

構成ガイダンス: 認証済み Web アプリケーションの場合は、既知の確立された ID プロバイダーのみを使用して、ユーザー アクセスを認証および承認します。 アプリに自分の組織のユーザーのみがアクセスする必要がある場合、またはユーザーがすべて Azure Active Directory (Azure AD) を使用している場合は、データ プレーンへのアクセスを制御する既定の認証方法として Azure AD を構成します。

リファレンス: Azure App ServiceとAzure Functionsでの認証と承認

データ プレーン アクセスのローカル認証方法

説明: ローカル ユーザー名やパスワードなど、データ プレーン アクセスでサポートされるローカル認証方法。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

機能に関する注意事項: ローカル認証方法またはアカウントの使用は避けてください。これらは可能な限り無効にする必要があります。 代わりに、Azure AD を使用して、可能な限り認証を行います。

構成ガイダンス: データ プレーン へのアクセスに対するローカル認証方法の使用を制限します。 代わりに、既定の認証方法として Azure Active Directory (Azure AD) を使用して、データ プレーンへのアクセスを制御します。

リファレンス: Azure App ServiceとAzure Functionsでの認証と承認

IM-3: アプリケーション ID を安全かつ自動的に管理する

機能

マネージド ID

説明: データ プレーン アクションは、マネージド ID を使用した認証をサポートします。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True False Customer

構成ガイダンス: 可能な場合は、サービス プリンシパルの代わりに Azure マネージド ID を使用します。この ID は、Azure Active Directory (Azure AD) 認証をサポートする Azure サービスとリソースに対して認証できます。 マネージド ID の資格情報は、プラットフォームによって完全に管理、ローテーション、保護されており、ソース コードまたは構成ファイル内でハードコーディングされた資格情報を使用せずに済みます。

App Serviceでマネージド ID を使用する一般的なシナリオは、Azure SQL Database、Azure Storage、Key Vault などの他の Azure PaaS サービスにアクセスすることです。

リファレンス: App ServiceとAzure Functionsにマネージド ID を使用する方法

サービス プリンシパル

説明: データ プレーンでは、サービス プリンシパルを使用した認証がサポートされます。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

追加のガイダンス: サービス プリンシパルは認証のパターンとしてサービスでサポートされていますが、代わりに可能な場合はマネージド ID を使用することをお勧めします。

Microsoft Defender for Cloud による監視

Azure Policy 組み込み定義 - Microsoft.Web:

名前
(Azure portal)
説明 効果 Version
(GitHub)
API アプリではマネージド ID を使用する必要がある マネージド ID を使用して認証セキュリティを強化します AuditIfNotExists、Disabled 2.0.0
関数アプリではマネージド ID を使用する必要がある マネージド ID を使用して認証セキュリティを強化します AuditIfNotExists、Disabled 2.0.0
Web アプリではマネージド ID を使用する必要がある マネージド ID を使用して認証セキュリティを強化します AuditIfNotExists、Disabled 2.0.0

IM-7: 条件に基づいてリソースへのアクセスを制限する

機能

データ プレーンの条件付きアクセス

説明: データ プレーン アクセスは、Azure AD 条件付きアクセス ポリシーを使用して制御できます。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True False Customer

構成ガイダンス: ワークロード内の Azure Active Directory (Azure AD) 条件付きアクセスに適用される条件と条件を定義します。 特定の場所からのアクセスのブロックや許可、危険なサインイン動作のブロック、特定のアプリケーションに対する組織が管理するデバイスの要求など、一般的なユース ケースを検討してください。

IM-8: 資格情報とシークレットの公開を制限する

機能

Azure Key Vault でのサービス資格情報とシークレットの統合とストレージのサポート

説明: データ プレーンでは、資格情報とシークレット ストアに対する Azure Key Vaultのネイティブな使用がサポートされています。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True False Customer

構成ガイダンス: アプリ シークレットと資格情報が、コードファイルや構成ファイルに埋め込まれるのではなく、Azure Key Vault などのセキュリティで保護された場所に格納されていることを確認します。 アプリのマネージド ID を使用して、資格情報や、Key Vaultに格納されているシークレットに安全な方法でアクセスします。

リファレンス: App ServiceとAzure FunctionsにKey Vault参照を使用する

特権アクセス

詳細については、「 Azure セキュリティ ベンチマーク: 特権アクセス」を参照してください。

PA-7: Just Enough Administration (最小限の特権の原則) に従う

機能

データ プレーン用の Azure RBAC

説明: Azure Role-Based Access Control (Azure RBAC) を使用して、サービスのデータ プレーン アクションへのアクセスを管理できます。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
False 適用しない 適用しない

構成ガイダンス: この機能は、このサービスをセキュリティで保護するためにサポートされていません。

PA-8: クラウド プロバイダーサポートのアクセス プロセスを決定する

機能

カスタマー ロックボックス

説明: カスタマー ロックボックスは、Microsoft サポート へのアクセスに使用できます。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

構成ガイダンス: Microsoft がデータにアクセスする必要があるサポート シナリオでは、カスタマー ロックボックスを使用して確認し、各 Microsoft のデータ アクセス要求を承認または拒否します。

データ保護

詳細については、Azure セキュリティ ベンチマークの「データ保護」を参照してください。

DP-1:機密データを検出、分類、ラベル付けする

機能

機密データの検出と分類

説明: ツール (Azure Purview や Azure Information Protection など) は、サービス内のデータの検出と分類に使用できます。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
False 適用しない 適用しない

機能ノート: コード内の資格情報を識別するために、ビルド パイプラインに資格情報スキャナーを実装します。 また、資格情報スキャナーを使うと、検出された資格情報を、Azure Key Vault などのより安全な場所に移動しやすくなります。

構成ガイダンス: この機能は、このサービスをセキュリティで保護するためにサポートされていません。

DP-2: 機密データをターゲットにした異常と脅威を監視する

機能

データ漏えい/損失防止

説明: サービスでは、機密データの移動 (顧客のコンテンツ内) を監視するための DLP ソリューションがサポートされています。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
False 適用しない 適用しない

機能ノート: データの識別、分類、および損失防止機能はまだApp Serviceに使用できませんが、宛先がインターネットまたは Azure サービスに "タグ" を使用するすべてのルールを削除することで、仮想ネットワークからのデータ流出リスクを軽減できます。

Microsoft では、App Service 用の基になるインフラストラクチャを管理し、データの損失や漏洩を防ぐための厳格な管理を実施してきました。

タグを使用して、機密情報を格納または処理するリソースApp Service追跡するのに役立ちます。

構成ガイダンス: この機能は、このサービスをセキュリティで保護するためにサポートされていません。

DP-3: 転送中の機密データの暗号化

機能

転送中のデータの暗号化

説明: サービスは、データ プレーンの転送中のデータ暗号化をサポートします。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

構成ガイダンス: 転送中のすべての情報を暗号化するために、TLS/SSL 設定で構成された TLS v1.2 の既定の最小バージョンを使用して適用します。 また、すべての HTTP 接続要求が HTTPS にリダイレクトされるようにします。

リファレンス: Azure App Serviceに TLS/SSL 証明書を追加する

Microsoft Defender for Cloud による監視

Azure Policy 組み込み定義 - Microsoft.Web:

名前
(Azure portal)
説明 効果 Version
(GitHub)
API アプリには HTTPS を介してのみアクセスできるようにする HTTPS を使用すると、サーバー/サービスの認証が確実に実行され、転送中のデータがネットワーク層の傍受攻撃から保護されるようになります。 Audit、Disabled 1.0.0
API アプリでは FTPS のみを必須とする セキュリティを強化するために FTPS 強制を有効にします AuditIfNotExists、Disabled 2.0.0
関数アプリでは FTPS のみを必須とする セキュリティを強化するために FTPS 強制を有効にします AuditIfNotExists、Disabled 2.0.0
Web アプリでは FTPS を必須とする セキュリティを強化するために FTPS 強制を有効にします AuditIfNotExists、Disabled 2.0.0
Function App には HTTPS 経由でのみアクセスできるようにする HTTPS を使用すると、サーバー/サービスの認証が確実に実行され、転送中のデータがネットワーク層の傍受攻撃から保護されるようになります。 Audit、Disabled 1.0.0
API アプリでは最新の TLS バージョンを使用する必要がある 最新の TLS バージョンにアップグレードします AuditIfNotExists、Disabled 1.0.0
関数アプリでは最新の TLS バージョンを使用する必要がある 最新の TLS バージョンにアップグレードします AuditIfNotExists、Disabled 1.0.0
Web アプリでは最新の TLS バージョンを使用する必要がある 最新の TLS バージョンにアップグレードします AuditIfNotExists、Disabled 1.0.0
Web アプリケーションには HTTPS を介してのみアクセスできるようにする HTTPS を使用すると、サーバー/サービスの認証が確実に実行され、転送中のデータがネットワーク層の傍受攻撃から保護されるようになります。 Audit、Disabled 1.0.0

DP-4: 保存データ暗号化を既定で有効にする

機能

プラットフォーム キーを使用した保存データの暗号化

説明: プラットフォーム キーを使用した保存データの暗号化がサポートされています。保存中の顧客コンテンツは、これらの Microsoft マネージド キーで暗号化されます。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True True Microsoft

機能に関するメモ: App Service アプリの Web サイト コンテンツ (ファイルなど) は Azure Storage に格納され、保存中のコンテンツが自動的に暗号化されます。 アプリケーション シークレットを Key Vault に格納し、それらを実行時に取得することを選択します。

お客様提供のシークレットは、App Service 構成データベースに保存され、保存時に暗号化されます。

ローカルに接続されたディスクは、必要に応じて Web サイトの一時ストレージ (たとえば、D:\local や %TMP%) として使用できますが、これらのディスクは保存時に暗号化されないので注意してください。

構成ガイダンス: 既定のデプロイで有効になっているので、追加の構成は必要ありません。

DP-5: 必要に応じて保存データ暗号化でカスタマー マネージド キー オプションを使用する

機能

CMK を使用した保存データの暗号化

説明: カスタマー マネージド キーを使用した保存データの暗号化は、サービスによって格納される顧客コンテンツでサポートされています。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

構成ガイダンス: 規制コンプライアンスに必要な場合は、カスタマー マネージド キーを使用した暗号化が必要なユース ケースとサービス スコープを定義します。 これらのサービスに対してカスタマー マネージド キーを使用して、保存データの暗号化を有効にして実装します。

: App Service アプリの Web サイト コンテンツ (ファイルなど) は Azure Storage に格納され、保存されているコンテンツは自動的に暗号化されます。 アプリケーション シークレットを Key Vault に格納し、それらを実行時に取得することを選択します。

お客様提供のシークレットは、App Service 構成データベースに保存され、保存時に暗号化されます。

ローカルに接続されたディスクは、必要に応じて Web サイトの一時ストレージ (たとえば、D:\local や %TMP%) として使用できますが、これらのディスクは保存時に暗号化されないので注意してください。

リファレンス: カスタマー マネージド キーを使用した保存時の暗号化

DP-6: セキュア キー管理プロセスの使用

機能

Azure Key Vault でのキー管理

説明: このサービスは、顧客キー、シークレット、または証明書に対する Azure Key Vault統合をサポートします。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

構成ガイダンス: Azure Key Vaultを使用して、キーの生成、配布、ストレージなど、暗号化キーのライフ サイクルを作成および制御します。 定義されたスケジュールに基づいて、またはキーの提供終了や侵害が発生した場合に、Azure Key Vault とサービスのキーをローテーションして取り消します。 ワークロード、サービス、またはアプリケーション レベルでカスタマー マネージド キー (CMK) を使用する必要がある場合は、キー管理のベスト プラクティスに従ってください。キー階層を使用して、キー コンテナーにキー暗号化キー (KEK) を使用して個別のデータ暗号化キー (DEK) を生成します。 キーが Azure Key Vaultに登録され、サービスまたはアプリケーションのキー ID を介して参照されていることを確認します。 独自のキー (BYOK) をサービスに持ち込む必要がある場合 (オンプレミスの HSM から Azure Key Vaultに HSM で保護されたキーをインポートする場合など)、初期キー生成とキー転送を実行するために推奨されるガイドラインに従ってください。

リファレンス: App ServiceとAzure FunctionsにKey Vault参照を使用する

DP-7: セキュリティで保護された証明書管理プロセスを使用する

機能

Azure Key Vault での証明書管理

説明: このサービスは、顧客証明書に対して Azure Key Vault 統合をサポートします。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

構成ガイダンス: App Serviceは SSL/TLS やその他の証明書を使用して構成できます。この証明書は、App Serviceで直接構成することも、Key Vaultから参照することもできます。 すべての証明書とシークレットを一元的に管理するには、App Serviceに直接ローカルに展開するのではなく、App Serviceによって使用される証明書をKey Vaultに格納します。 これを構成するとApp Service Azure Key Vaultから最新の証明書が自動的にダウンロードされます。 キー サイズが不十分、有効期間が長過ぎ、暗号化が安全でないなど、セキュリティで保護されていないプロパティを使用せずに、証明書の生成が定義された標準に従っていることを確認します。 定義されたスケジュールに基づいて、または証明書の有効期限が切れたときに、Azure Key Vaultで証明書の自動ローテーションを設定します。

リファレンス: Azure App Serviceに TLS/SSL 証明書を追加する

アセット管理

詳細については、「 Azure セキュリティ ベンチマーク: 資産管理」を参照してください。

AM-2: 承認済みのサービスのみを使用する

機能

Azure Policy のサポート

説明: サービス構成は、Azure Policyを使用して監視および適用できます。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

構成ガイダンス: Microsoft Defender for Cloud を使用して、Azure リソースの構成を監査および適用するAzure Policyを構成します。 Azure Monitor を使用し、リソースで構成の逸脱が検出されたときにアラートを作成します。 Azure Policy [deny] および [deploy if not exists] 効果を使用して、Azure リソース全体にセキュリティで保護された構成を適用します。

: Azure Policyを使用して、App Serviceデプロイされたアプリの標準的なセキュリティ構成を定義して実装します。 "Microsoft.Web" 名前空間の組み込みのAzure Policy定義とAzure Policyエイリアスを使用して、システム構成のアラート、監査、適用を行うカスタム ポリシーを作成します。 ポリシー例外を管理するためのプロセスとパイプラインを作成します。

リファレンス: Azure App Serviceの規制コンプライアンスコントロールのAzure Policy

AM-4: アセット管理へのアクセスを制限する

AM-4 のその他のガイダンス

機密情報を処理するシステムを分離します。 これを行うには、個別のApp Service プランまたはApp Service環境を使用し、異なるサブスクリプションまたは管理グループの使用を検討します。

ログと脅威検出

詳細については、「 Azure セキュリティ ベンチマーク: ログ記録と脅威検出」を参照してください。

LT-1: 脅威検出機能を有効にする

機能

Microsoft Defender for Service /製品オファリング

説明: サービスには、セキュリティの問題を監視およびアラートするためのオファリング固有の Microsoft Defender ソリューションがあります。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

構成ガイダンス: microsoft Defender for App Serviceを使用して、App Serviceで実行されているアプリケーションを対象とする攻撃を特定します。 Microsoft Defender for App Service を有効にすると、この Defender プランで提供される次のサービスの利点をすぐに活用できます。

  • セキュリティ保護: Defender for App Serviceは、App Service計画の対象となるリソースを評価し、その結果に基づいてセキュリティに関する推奨事項を生成します。 それらの推奨事項に記載された詳しい手順に従って、App Service リソースのセキュリティを強化することができます。

  • 検出: Defender for App Serviceは、App Service App Serviceが実行されている VM インスタンスとその管理インターフェイス、App Service アプリとの間で送受信される要求と応答、基になるサンドボックスと VM、および内部ログをApp Serviceします。

リファレンス: Web アプリと API を保護する

LT-4: セキュリティ調査のためにログ記録を有効にする

機能

Azure リソース ログ

説明: サービスは、強化されたサービス固有のメトリックとログを提供できるリソース ログを生成します。 お客様はこれらのリソース ログを構成し、ストレージ アカウントやログ分析ワークスペースなどの独自のデータ シンクに送信できます。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True Customer

構成ガイダンス: App Serviceで Web アプリのリソース ログを有効にします。

リファレンス: Azure App Serviceでアプリの診断ログを有効にする

体制と脆弱性の管理

詳細については、「 Azure セキュリティ ベンチマーク: 体制と脆弱性の管理」を参照してください。

PV-2: セキュリティで保護された構成を監査して適用する

PV-2 のその他のガイダンス

リモート デバッグをオフにします。運用環境のワークロードではリモート デバッグを有効にしないでください。これにより、攻撃対象領域が増加するサービス上の追加のポートが開かれるためです。

Microsoft Defender for Cloud による監視

Azure Policy 組み込み定義 - Microsoft.Web:

名前
(Azure portal)
説明 効果 Version
(GitHub)
CORS で API アプリへのアクセスをすべてのリソースには許可しない クロス オリジン リソース共有 (CORS) では、API アプリへのアクセスをすべてのドメインには許可しないでください。 API アプリの操作に必要なドメインのみを許可します。 AuditIfNotExists、Disabled 1.0.0
CORS で関数アプリへのアクセスをすべてのリソースには許可しない クロス オリジン リソース共有 (CORS) で、関数アプリへのアクセスをすべてのドメインには許可しないでください。 関数アプリの操作に必要なドメインのみを許可します。 AuditIfNotExists、Disabled 1.0.0
CORS で、Web アプリケーションへのアクセスをすべてのリソースには許可しない クロス オリジン リソース共有 (CORS) で、Web アプリケーションへのアクセスをすべてのドメインには許可しないでください。 Web アプリの操作に必要なドメインのみを許可します。 AuditIfNotExists、Disabled 1.0.0
API アプリで "クライアント証明書 (着信クライアント証明書)" が [オン] に設定されていることを確認する クライアント証明書を使用すると、アプリは受信要求に対して証明書を要求できます。 有効な証明書を持つクライアントのみがアプリにアクセスできます。 Audit、Disabled 1.0.0
Web アプリで "クライアント証明書 (着信クライアント証明書)" が [オン] に設定されていることを確認する クライアント証明書を使用すると、アプリは受信要求に対して証明書を要求できます。 有効な証明書を持つクライアントのみがアプリにアクセスできます。 Audit、Disabled 1.0.0
関数アプリでは、"クライアント証明書 (着信クライアント証明書)" が有効になっている必要がある クライアント証明書を使用すると、アプリは受信要求に対して証明書を要求できます。 有効な証明書を持つクライアントのみが、そのアプリにアクセスできるようになります。 Audit、Disabled 1.0.1
API アプリでリモート デバッグを無効にする必要がある リモート デバッグを実行するには、受信ポートが API アプリ上で開かれている必要があります。 リモート デバッグを無効にする必要があります。 AuditIfNotExists、Disabled 1.0.0
関数アプリでリモート デバッグを無効にする必要がある リモート デバッグを実行するには、受信ポートが関数アプリ上で開かれている必要があります。 リモート デバッグを無効にする必要があります。 AuditIfNotExists、Disabled 1.0.0
Web アプリケーションのリモート デバッグを無効にする リモート デバッグを実行するには、受信ポートが Web アプリケーション上で開かれている必要があります。 リモート デバッグを無効にする必要があります。 AuditIfNotExists、Disabled 1.0.0

PV-7: 定期的なレッド チーム操作を実施する

PV-7 のその他のガイダンス

エンゲージメントの侵入テストルールに従って、Web アプリケーションで定期的 な侵入テストを実施します

バックアップと回復

詳細については、「 Azure セキュリティ ベンチマーク: バックアップと回復」を参照してください。

BR-1:定期的な自動バックアップを保証する

機能

Azure Backup

説明: サービスは、Azure Backup サービスによってバックアップできます。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
True False Customer

構成ガイダンス: 可能な場合は、ステートレス アプリケーション設計を実装して、App Serviceを使用して復旧とバックアップのシナリオを簡略化します。

実際にステートフル アプリケーションを維持する必要がある場合は、App Serviceでバックアップと復元機能を有効にして、手動またはスケジュールに従ってアプリのバックアップを簡単に作成できます。 バックアップが無期限に保持されるように構成できます。 以前の状態のスナップショットにアプリを復元するには、既存のアプリを上書きするか、別のアプリに対して復元を行います。 定期的なバックアップと自動バックアップが、組織のポリシーで定義されている頻度で行われることを確認します。

: App Serviceは、使用するようにアプリを構成した Azure ストレージ アカウントとコンテナーに次の情報をバックアップできます。

  • アプリの構成
  • ファイルのコンテンツ
  • アプリに接続されているデータベース

リファレンス: Azure でアプリをバックアップする

サービス ネイティブ バックアップ機能

説明: サービスは独自のネイティブ バックアップ機能をサポートします (Azure Backupを使用していない場合)。 詳細については、こちらを参照してください

サポートされています 既定で有効 構成の責任
False 適用しない 適用しない

構成ガイダンス: この機能は、このサービスをセキュリティで保護するためにサポートされていません。

DevOps セキュリティ

詳細については、「 Azure セキュリティ ベンチマーク: DevOps セキュリティ」を参照してください。

DS-6: DevOps ライフサイクル全体を通してワークロードのセキュリティを確保する

DS-6 のその他のガイダンス

適切に管理され、セキュリティで保護された DevOps デプロイ パイプラインなど、制御された信頼できる環境からApp Serviceにコードをデプロイします。 これにより、バージョン管理されておらず、悪意のあるホストからデプロイされていることを確認したコードが回避されます。

次のステップ