Azure Container Apps で IP のイングレス制限を設定する

Azure Container Appsでは、IP イングレス制限を構成することで、コンテナー アプリへの受信トラフィックを制限できます。

次の 2 種類の制限があります。

  • 許可: 許可ルールで指定したアドレス範囲からの受信トラフィックのみを許可します。
  • 拒否: 拒否規則で指定したアドレス範囲からすべての受信トラフィックを拒否します。

IP 制限規則を定義しない場合、すべての受信トラフィックが許可されます。

IP 制限ルールには、次のプロパティが含まれています。

プロパティ 内容
名前 文字列 ルールの名前です。
説明 文字列 ルールの説明。
ipAddressRange CIDR 形式のIP アドレス範囲 CIDR 表記の IP アドレス範囲。
アクション [許可] または [拒否] ルールに対して実行する操作です。

ipAddressRange パラメーターは IPv4 アドレスを受け入れます。 クラスレス ドメイン間ルーティング (CIDR) 表記で IPv4 アドレス ブロックを定義します。

すべてのルールは同じ型である必要があります。 許可規則と拒否規則を組み合わせることはできません。

IP イングレス制限を管理する

IP アクセス制限ルールは、Azure portal または Azure CLI を使用して管理できます。

ルールの追加

  1. Azure ポータルで、コンテナー アプリに移動します。

  2. 左側のメニューで、[ ネットワーク>Ingress] を選択します。

  3. [ IP 制限] で、指定した IP アドレス範囲からのトラフィックを許可または拒否することができます。 この例では、 次に構成した IP からのトラフィックを許可し、他のすべてのトラフィックを拒否するを選択します。

  4. [追加] を選択し、規則を作成します。

    コンテナー アプリの [イングレス] ページの IP 制限設定のスクリーンショット。

  5. 次のフィールドの値を入力します。

    フィールド 内容
    IPv4 アドレスまたは範囲 IP アドレスまたは IP アドレスの範囲を CIDR 表記で入力します。 たとえば、1 つの IP アドレスからのアクセスを許可するには、次の形式を使用します: 10.200.10.2/32
    名前 規則の名前を入力します。
    説明 ルールの説明を入力します。
  6. [追加] を選択します。

  7. 手順 4 ~ 6 を繰り返して、さらにルールを追加します。

  8. ルールの追加が完了したら、[ 保存] を選択します。

ルールを更新する

  1. Azure ポータルで、コンテナー アプリに移動します。
  2. 左側のメニューで、[ ネットワーク>Ingress] を選択します。
  3. 更新するルールを選びます。
  4. ルールの設定を変更します。
  5. [保存] を選択して更新プログラムを保存します。
  6. [ イングレス ] ページで、[ 保存] を選択して、更新されたルールを保存します。

ルールを削除する

  1. Azure ポータルで、コンテナー アプリに移動します。
  2. 左側のメニューで、[ ネットワーク>Ingress] を選択します。
  3. 削除するルールの横にある削除アイコンを選択します。
  4. [保存] を選択します。

az containerapp ingress access-restriction コマンド グループを使用して、IP アクセス制限を管理できます。 このコマンド グループには、次のオプションがあります。

  • set: ルールを作成または更新します。
  • remove: ルールを削除します。
  • list: すべてのルールを一覧表示します。

ルールの作成または更新

az containerapp ingress access-restriction set コマンドを使用して、IP 制限を作成または更新できます。

この az containerapp ingress access-restriction set コマンドでは、次のパラメーターを使用します。

引数 内容
--rule-name (必須) 文字列 アクセス制限ルールの名前を指定します。
--description 文字列 アクセス制限ルールの詳細を指定します。
--action (必須) 許可、拒否 指定した IP アドレスの範囲からのアクセスを許可または拒否するかどうかを指定します。
--ip-address (必須) IP アドレスまたは IP アドレスの範囲 (CIDR 表記) 許可または拒否する IP アドレスの範囲を指定します。

別の --rule-name と ---ip-address 値を使用してコマンドを繰り返して、さらにルールを追加します。

許可ルールを作成する

次の例 az containerapp access-restriction set コマンドは、IP アドレス範囲への受信アクセスを制限するルールを作成します。 許可規則を追加する前に、既存の拒否規則を削除する必要があります。

次の例の値をお客様独自の値に置き換えてください。

az containerapp ingress access-restriction set \
   --name <CONTAINER_APP_NAME> \
   --resource-group <RESOURCE_GROUP> \
   --rule-name "my allow rule" \
   --description "example of rule allowing access" \
   --ip-address 192.168.0.1/28 \
   --action Allow

別の --ip-address--rule-name の値を使用してコマンドを繰り返して、許可ルールを追加します。

拒否ルールを作成する

次の az containerapp access-restriction set コマンドの例では、指定した IP 範囲からの受信トラフィックを拒否するアクセス規則を作成します。 拒否規則を追加する前に、既存の許可規則を削除する必要があります。

次の例にあるプレースホルダーは、独自の値に置き換えることができます。

az containerapp ingress access-restriction set \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --rule-name "my deny rule" \
  --description "example of rule denying access" \
  --ip-address 192.168.0.100/28 \
  --action Deny

別の --ip-address--rule-name の値を使用してコマンドを繰り返して、拒否ルールを追加します。 既に存在するルール名を使用すると、既存のルールが更新されます。

ルールを更新する

az containerapp ingress access-restriction set コマンドを使用してルールを更新できます。 IP アドレス範囲とルールの詳細は変更できますが、ルール名やアクションは変更できません。

--action パラメーターは必須ですが、アクションを [許可] から [拒否] に、またはその逆に変更することはできません。 --description パラメーターを省略すると、説明が削除されます。

次の例では、IP アドレス範囲を更新します。

az containerapp ingress access-restriction set \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --rule-name "my deny rule" \
  --ip-address 192.168.0.1/24 \
  --description "example of rule denying access" \
  --action Deny

アクセス制限の削除

次の例の az containerapp ingress access-restriction remove コマンドはルールを削除します。

az containerapp ingress access-restriction remove \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --rule-name "<your rule name>"

アクセス制限の一覧

次の例の az containerapp ingress access-restriction list コマンドは、コンテナー アプリの IP 制限規則を一覧表示します。

az containerapp ingress access-restriction list \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP>

トラブルシューティング

コンテナー アプリでの IP 関連の問題のトラブルシューティングに役立つ情報を次に示します。

アクセスが拒否されました

RBAC: クライアントに返 されたアクセス拒否 メッセージは、クライアントがコンテナー アプリからの IP 制限によってブロックされていることを示します。 この問題を解決するには、アクセスを要求するクライアント IP アドレスが許可規則または拒否規則に基づいて許可されていることを確認します。

アドレス範囲を使用する場合は、ブロックされた IP が許容範囲内にあることを確認します。

次のステップ