ファイアーウォール作成

ルールを登録したファイアーウォールポリシーを指定して、仮想ルータにファイアーウォールを作成し、確認する手順を解説します。



ファイアーウォールサービスの設定は以下の要素から構成され、番号順にフィルタリング情報を構成していきます。ファイアーウォールを仮想ルータに関連付けることで、設定したフィルタリングが行われるようにします。

  1. ファイアーウォールルールの作成
  2. ファイアーウォールポリシーを作成し、ルール群を登録
  3. ポリシーを指定してファイアーウォールを作成し、仮想ルータに関連付け
  1. 以下の設定をします。
    $ FW_NAME=<新規ファイアーウォール名(任意)>
    $ FWP_ID=<設定するファイアーウォールポリシーID>
    $ ROUTER_ID=<適用する仮想ルータID>
    $ AVAILABILITY_ZONE=<ファイアーウォールポリシーで設定されているものと同じアベイラビリティゾーン>
  2. 次のAPIを実行します。
    $ curl -X POST -Ss $NETWORK/v2.0/fw/firewalls -H "X-Auth-Token: $OS_AUTH_TOKEN" \
    -H "Content-Type: application/json" -d '{"firewall": {"name": "'$FW_NAME'",
     "firewall_policy_id": "'$FWP_ID'", "router_id": "'$ROUTER_ID'",
     "availability_zone": "'$AVAILABILITY_ZONE'"}}' | jq .

    以下のレスポンスが返ってきます。

    {
      "firewall": {
        "status": "PENDING_CREATE",
        "router_id": "<設定した仮想ルータID>",
        "name": "<新規ファイアーウォール名>",
        "admin_state_up": true,
        "tenant_id": "<プロジェクトID>",
        "firewall_policy_id": "<設定したファイアーウォールポリシーID>",
        "id": "新規ファイアーウォールID",
        "description": "",
        "availability_zone": "アベイラビリティゾーン"
      }
    }

    アベイラビリティゾーンは、AZ1がjp-east-1a、AZ2がjp-east-1bで表現されます。

  3. 作成したファイアーウォールを確認するため、以下のAPIを実行します。
    $ curl -Ss $NETWORK/v2.0/fw/firewalls -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq .

    以下のように、設定したファイアーウォールポリシー名を含んだリストが出力された場合、作成は完了です。

    {
      "firewalls": [
      
         ...
      
        {
          "status": "PENDING_CREATE",
          "router_id": "<設定した仮想ルータID>",
          "name": "<新規ファイアーウォール名>",
          "admin_state_up": true,
          "tenant_id": "<プロジェクトID>",
          "firewall_policy_id": "<設定したファイアーウォールポリシーID>",
          "id": "新規ファイアーウォールID",
          "description": "",
          "availability_zone": "アベイラビリティゾーン"
        },
        
        ...
        
      ]
    }
警告: 自プロジェクト以外のファイアーウォールポリシー、またはルールが設定されると、作成されたファイアーウォールは異常な状態となります。その状態になった場合、ユーザーでの削除ができなくなり、本サービス基盤の管理者による削除が必要になります。ファイアーウォールおよびそのポリシー/ルールは【必ず同一のプロジェクトID】となるよう作成してください。