Azure API Management のセキュリティ構成を推奨する

完了

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

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

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

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

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

機能: Virtual Network 統合

[説明]: サービスは顧客のプライベート仮想ネットワーク (VNet) へのデプロイをサポートします。

構成ガイダンス: Azure API Management を Azure Virtual Network (VNET) の内部にデプロイし、ネットワーク内でバックエンド サービスにアクセスできるようにします。 開発者ポータルと API Management ゲートウェイは、インターネット (外部) から、または VNet 内 (内部) でのみアクセスできるように構成可能です。

  • 外部: API Management のゲートウェイと開発者ポータルには、パブリック インターネットから外部ロード バランサーを使用してアクセスできます。 ゲートウェイは、仮想ネットワーク内のリソースにアクセスできます。
    • 外部仮想ネットワークの構成
  • 内部: API Management のゲートウェイと開発者ポータルには、仮想ネットワークから内部ロード バランサーを使用してアクセスできます。 ゲートウェイは、仮想ネットワーク内のリソースにアクセスできます。
    • 内部仮想ネットワークの構成

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

[説明]: サービスのネットワーク トラフィックは、サブネットに対するネットワーク セキュリティ グループのルール割り当てに従います。

構成ガイダンス: ネットワーク セキュリティ グループ (NSG) を API Management サブネットにデプロイし、ポート、プロトコル、ソース IP アドレス、または宛先 IP アドレスによってトラフィックを制限または監視します。 NSG 規則を作成して、サービスのオープン ポートを制限します (信頼されていないネットワークから管理ポートにアクセスできないようにするなど)。 既定では、NSG はすべての受信トラフィックを拒否しますが、仮想ネットワークと Azure Load Balancer からのトラフィックを許可することに注意してください。

注意

API Management サブネット上で NSG を構成する場合、開いておく必要のある一連のポートがあります。 これらのポートのいずれかが利用できない場合、API Management は正しく動作しない可能性があり、アクセス不能になる場合があります。

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

機能: Azure Private Link

[説明]: ネットワーク トラフィックをフィルター処理するための、サービスのネイティブ IP フィルタリング機能 (NSG または Azure Firewall とは異なります)。

構成ガイダンス: API Management インスタンスを仮想ネットワークにデプロイできないインスタンスでは、代わりにプライベート エンドポイントをデプロイして、それらのリソースのプライベート アクセス ポイントを確立する必要があります。

Note

プライベート エンドポイントを有効にするには、API Management インスタンスが既に外部または内部の仮想ネットワークで構成されていない必要があります。 プライベート エンドポイント接続は、API Management インスタンスへの受信トラフィックのみをサポートします。

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

[説明]: サービスは、サービス レベルの IP ACL フィルタリング規則 (NSG または Azure Firewall ではなく) を使用した、または "パブリック ネットワーク アクセスを無効にする" トグル スイッチを使用した、パブリック ネットワーク アクセスの無効化をサポートします。

構成ガイダンス: サービスのサブネットに割り当てられている NSG の IP ACL フィルター規則、またはパブリック ネットワーク アクセス用の切り替えスイッチを使用して、パブリック ネットワーク アクセスを無効にします。

Note

API Management は、仮想ネットワークへのデプロイだけでなく、プライベート エンドポイントを使用した、ネットワークベースでないデプロイのロックダウンと、パブリック ネットワーク アクセスの無効化をサポートします。

機能: Microsoft Defender for Cloud の監視

Azure Policy の組み込み定義 - Microsoft.ApiManagement:

名前
(Azure portal)
説明 効果 Version
(GitHub)
API Management サービスには仮想ネットワークが使用されている必要がある Azure Virtual Network のデプロイにより、セキュリティが強化され、分離が行われ、インターネット ルーティングできないネットワークに API Management サービスを配置して、アクセスを制御できます。 これらのネットワークは、さまざまな VPN テクノロジを使用してオンプレミス ネットワークに接続できます。これにより、ネットワークやオンプレミス内のバックエンド サービスにアクセスできるようになります。 開発者ポータルと API ゲートウェイは、インターネットから、または仮想ネットワーク内でのみアクセスできるように構成可能です。 Audit、Deny、Disabled 1.0.2
API Management ではサービス構成エンドポイントへの公衆ネットワーク アクセスを無効にする必要がある API Management サービスのセキュリティを強化するために、直接アクセス管理 API、Git 構成管理エンドポイント、セルフホステッド ゲートウェイ構成エンドポイントなどのサービス構成エンドポイントへの接続を制限してください。 AuditIfNotExists、Disabled 1.0.1

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

NS-6 のその他のガイダンス: 重要な Web/HTTP API を保護するには、内部モードで仮想ネットワーク (VNET) 内に API Management を構成し、Azure アプリケーション ゲートウェイを構成します。 Application Gateway は PaaS サービスの 1 つです。 リバース プロキシとしての役目を果たし、L7 の負荷分散、ルーティング、Web アプリケーション ファイアウォール (WAF)、およびその他のサービスを提供します。 詳細情報。

内部 VNET にプロビジョニング済みの API Management と Application Gateway フロントエンドを組み合わせることにより、次のシナリオが実現されます。

  • 内部コンシューマーと外部コンシューマーの両方にすべての API を公開するために 1 つの API Management リソースを使用する。
  • 外部コンシューマーに API のサブセットを公開するために 1 つの API Management リソースを使用する。
  • パブリック インターネットから API Management へのアクセスのオン/オフを切り替える方法を提供する。

ID 管理

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

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

[説明]: サービスはデータ プレーン アクセスに Azure AD 認証を使用することをサポートします。

構成ガイダンス: 可能な場合は、API Management の既定の認証方法として Azure Active Directory (Azure AD) を使用します。

  • Azure AD を使用して開発者アカウントを認証するように Azure API Management 開発者ポータルを構成します。
  • Azure AD で OAuth 2.0 プロトコルを使用して API を保護するように Azure API Management インスタンスを構成します。

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

[説明]: ローカル ユーザー名やパスワードなど、データ プレーン アクセスでサポートされるローカル認証方法。

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

構成ガイダンス: データ プレーン アクセスのためのローカル認証方法の使用を制限し、API Management ユーザー アカウントのインベントリを維持し、必要に応じてアクセスを調整します。 API Management では、開発者は、API Management を使用して公開された API のコンシューマーになります。 既定では、新しく作成された開発者アカウントは "アクティブ" になり、"開発者" グループに関連付けられます。 アクティブ状態の開発者アカウントを使用すると、サブスクリプションがあるすべての API にアクセスできます。

また、Azure API Management サブスクリプションは API へのアクセスをセキュリティで保護する手段の 1 つであり、ローテーションをサポートする生成されたサブスクリプション キーのペアが付属しています。

他の認証方法を使用する代わりに、可能であれば、データ プレーン アクセスを制御するための既定の認証方法として Azure Active Directory (Azure AD) を使用します。

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

機能: マネージド ID

[説明]: データ プレーン アクションでマネージド ID を使用した認証がサポートされています。

構成ガイダンス: Azure Active Directory (Azure AD) によって生成されたマネージド サービス ID を使用し、サービス プリンシパルを使う代わりに Azure Key Vault などの Azure AD で保護された他のリソースに API Management インスタンスが簡単かつ安全にアクセスできるようにします。 マネージド ID の資格情報は、プラットフォームによって完全に管理、ローテーション、保護されており、ソース コードまたは構成ファイル内でハードコーディングされた資格情報を使用せずに済みます。

機能: サービス プリンシパル

[説明]: データ プレーンはサービス プリンシパルを使用した認証をサポートします。

構成ガイダンス: この機能の構成に関する現在の Microsoft ガイダンスはありません。 組織でこのセキュリティ機能を構成するかどうかを確認して決定してください。

IM-5: アプリケーション アクセスにシングル サインオン (SSO) を使用する

IM-5 のその他のガイダンス: 開発者ポータルでユーザーを認証するための ID プロバイダーとして Azure Active Directory (Azure AD) を活用するように Azure API Management を構成することで、Azure AD で提供される SSO 機能のメリットを享受できます。 構成が完了すると、新しい開発者ポータル ユーザーは、最初に Azure AD を使用して認証を行い、認証後にポータルでサインアップ プロセスを完了することで、難しい設定の要らないサインアップ プロセスを実行できます。

または、委任を使用してサインイン/サインアップ プロセスをさらにカスタマイズすることもできます。 委任を使用すると、開発者のサインイン/サインアップおよび製品のサブスクリプション処理を、開発者ポータルの組み込みの機能ではなく、お客様の既存の Web サイトを使用して行うことができます。 これにより、お客様の Web サイトでユーザー データを保持し、独自の方法でこれらのステップの検証を実行できます。

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

機能: データ プレーンへの条件付きアクセス

[説明]: データ プレーン アクセスは、Azure AD 条件付きアクセス ポリシーを使用して制御できます。

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

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

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

[説明]: データ プレーンは、資格情報とシークレット ストアのための Azure Key Vault のネイティブな使用をサポートします。

構成ガイダンス: API Management と Azure Key Vault の統合を設定します。 API Management のシークレット (名前付き値) が Azure Key Vault に格納されていることを確かめ、安全にアクセスして更新できるようにします。

特権アクセス

PA-1: 高い特権を持つ/管理者ユーザーを分離して制限する

機能: ローカル管理者アカウント

[説明]: サービスにはローカル管理者アカウントという概念があります。

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

構成ガイダンス: 日常的な管理操作に必要ない場合は、緊急使用のみを目的としてローカル管理者アカウントを無効または制限します。

Note

API Management ではローカル ユーザー アカウントを作成できます。 そのようなローカル アカウントを作成するのではなく、Azure Active Directory (Azure AD) 認証のみを有効にして、これらの Azure AD アカウントにアクセス許可を割り当てます。

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

機能: データ プレーン用の Azure RBAC

[説明]: Azure ロールベースのアクセス制御 (Azure RBAC) を使用して、サービスのデータ プレーン アクションへのアクセスを管理できます。

構成ガイダンス: Azure ロールベースのアクセス制御 (Azure RBAC) を使用して、Azure API Management へのアクセスを制御します。 Azure API Management では、Azure のロールベースのアクセス制御を使用して、API Management のサービスとエンティティ (API やポリシーなど) に関するきめ細かいアクセス管理を可能にしています。

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

機能: カスタマー ロックボックス

説明: カスタマー ロックボックスは、Microsoft サポートへのアクセスのために使用できます。

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

データ保護

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

機能: 機密データの検出と分類

説明: サービスでのデータの検出と分類のためにツール (Azure Purview や Azure Information Protection など) を使用できます。

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

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

機能: データ漏えいと損失の防止

説明: サービスは (顧客のコンテンツ内の) 機密データ移動を監視する DLP ソリューションをサポートします。

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

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

機能: 転送中データの暗号化

[説明]: サービスはデータ プレーンの転送中データの暗号化をサポートします。

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

DP-3 のその他のガイダンス: 管理プレーン呼び出しは、TLS 経由で Azure Resource Manager によって行われます。 有効な JSON Web トークン (JWT) が必要です。 データ プレーン呼び出しは、TLS と、サポートされる認証メカニズムのいずれか (例: クライアント証明書や JWT など) で保護できます。

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

機能: Azure Key Vault でのキー管理

説明: サービスは、カスタマー キー、シークレット、または証明書を対象にした Azure Key Vault 統合をサポートします。

構成ガイダンス: API Management と Azure Key Vault の統合を設定します。 API Management によって使用されるキーが Azure Key Vault に格納されていることを確かめ、安全にアクセスして更新できるようにします。

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

機能: Azure Key Vault での証明書管理

説明: サービスは顧客証明書を対象にした Azure Key Vault 統合をサポートします。

構成ガイダンス: API Management と Azure Key Vault の統合を設定します。 API Management のシークレット (名前付き値) が Azure Key Vault に格納されていることを確かめ、安全にアクセスして更新できるようにします。

Azure Key Vault を使用して、証明書の作成、インポート、ローテーション、失効、格納、消去を含む証明書のライフサイクルを作成および制御します。 証明書の生成が定義された標準に従っていて、不十分なキー サイズ、長すぎる有効期間、安全でない暗号化などのセキュリティで保護されていないプロパティを使用しないことを確認します。 Azure Key Vault と Azure サービス (サポートされている場合) に、定義されたスケジュールに基づく、または証明書の有効期限が切れたときの、証明書の自動ローテーションを設定します。 アプリケーションで自動ローテーションがサポートされていない場合は、Azure Key Vault とアプリケーションで手動の方法を使用してローテーションされていることを確認します。

アセット管理

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

機能: Azure Policy のサポート

[説明]: サービス構成は、Azure Policy を使用して監視および適用できます。

構成ガイダンス: 組み込みの Azure Policy を使用して、API Management リソース全体でセキュリティで保護された構成を監視および適用します。 "Microsoft.ApiManagement" 名前空間の Azure Policy エイリアスを使用し、必要に応じてカスタム Azure Policy 定義を作成します。

ログと脅威検出

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

機能: サービス/製品のオファリングのための Microsoft Defender

説明: サービスには、セキュリティの問題を監視および警告するためのオファリング固有の Microsoft Defender ソリューションがあります。

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

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

機能: Azure リソース ログ

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

構成ガイダンス: API Management のリソース ログを有効にします。リソース ログには、監査とトラブルシューティングの目的で重要な操作とエラーに関する豊富な情報が含まれています。 API Management のリソース ログのカテゴリは次のとおりです。

  • GatewayLogs
  • WebSocketConnectionLogs

バックアップと回復

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

機能: Azure Backup

説明: サービスは、Azure Backup サービスによってバックアップできます。

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

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

[説明]: サービスは独自のネイティブ バックアップ機能 (Azure Backup を使用しない場合) をサポートします。

その他のガイダンス: Azure API Management サービスのバックアップと復元の機能を活用します。 バックアップ機能を活用すると、Azure API Management によって、お客様が所有する Azure Storage アカウントにバックアップが書き込まれます。 Azure API Management によって、システムの完全バックアップと復元を実行するためのバックアップと復元の操作が提供されます。