ルールを登録したファイアーウォールポリシーを指定して、仮想ルータにファイアーウォールを作成し、確認する手順を解説します。
ファイアーウォールサービスの設定は以下の要素から構成され、番号順にフィルタリング情報を構成していきます。ファイアーウォールを仮想ルータに関連付けることで、設定したフィルタリングが行われるようにします。
- ファイアーウォールルールの作成
- ファイアーウォールポリシーを作成し、ルール群を登録
- ポリシーを指定してファイアーウォールを作成し、仮想ルータに関連付け
-
以下の設定をします。
$ FW_NAME=<新規ファイアーウォール名(任意)>
$ FWP_ID=<設定するファイアーウォールポリシーID>
$ ROUTER_ID=<適用する仮想ルータID>
$ AVAILABILITY_ZONE=<ファイアーウォールポリシーで設定されているものと同じアベイラビリティゾーン>
-
次の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で表現されます。
-
作成したファイアーウォールを確認するため、以下の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】となるよう作成してください。