BIG-IP パーティションによる分割

スポンサーリンク

BIG-IPでpartitionを使用する方法をまとめます。partitionとは文字通りの「区切り」の機能で、特定のユーザのみに権限移譲したい設定がある時に使用します。例えば、複数のアプリケーション開発者チームが存在するような環境で、チーム毎にvirtual serverの操作を権限移譲する場合などが有効です。

仕様説明

パーティションとは

業務要件によっては全く意識する事はないですが、BIG-IPの全てのオブジェクトはpartionという概念があります。デフォルトでは/Common/というパーティションに所属しています。デフォルトのパーティション指定は省略する事もできますが、実はfull pathで指定する事もできます。例えば、VLAN作成コマンドをfull pathで指定するならば、以下のように/Common/VLAN0010と指定します。

create net vlan /Common/VLAN0010 interfaces replace-all-with { 1.1 { tagged } } tag 10

/Common/は全てのユーザがRead onlyアクセス可能なパーティションで、/Common/以外は特定ユーザしかアクセスできないように設定する事ができます。運用ルール次第では、以下のような権限管理も実現する事ができます。

図表は「独立した管理権限の設定 – F5 ネットワークス」より引用。資料は2010年当時のものであるが、現在でも通用する。

BIG-IP パーティションによる分割例

ユーザロール

権限管理と言っても柔軟にどんな要望でも実現できるわけではなく、予め定義されたロールを割り当てる事によって、ある程度の権限管理を実現できます。各ロールに割り当てられた権限は以下の通りです。

ユーザロール 該当パーティション Commonパーティション
Administrator 全オブジェクトにフルアクセス 全オブジェクトにフルアクセス
Resource Administrator ユーザーアカウントにRead Onlyアクセス
上記以外はフルアクセス
ユーザーアカウントにRead Onlyアクセス
上記以外はフルアクセス
User Manager ユーザーアカウントにフルアクセス 全オブジェクトにRead-Only アクセス
Manager 証明書とユーザオブジェクトはRead-Only
上記以外はフルアクセス
全オブジェクトにRead-Only アクセス
Application Editor ノードとプー
ルメンバーの有効/無効、追加、削除、編集
上記以外はRead-Only
全オブジェクトにRead-Only アクセス
Operator ノードとプー
ルメンバーの有効/無効
上記以外はRead-Only
全オブジェクトにRead-Only アクセス
Guest 全オブジェクトにRead-Only アクセス 全オブジェクトにRead-Only アクセス
No Access ログイン不可 ログイン不可

BIG-IPは「ロードバランサではなくアプリケーションの関わる管理を全て行う製品」とのポジショントークをよく聞きますが、実態としてはロードバランサ製品ですので、ロードバランス以外に関しては柔軟な権限制御はできません。ですので、BIG-IP ASM(WAF機能)やBIG-IP AFM(Firewall機能)の柔軟な制御はできないと思った方が良いでしょう。

動作確認の構成

構成図

BIG-IP パーティションによる分割」の動作確認が終了した時点の構成を用いて動作確認をします。なお、この構成は必須ではなく、virtual serverを作成する時のパラメタを適宜変更すれば、パーティションの動作確認は十分可能です。

                    +-----------------+
                .50 |     (Vyatta)    | .50
         +----------+     Router50    +----------+
         |     eth0 |                 | eth1     |
         |          +-----------------+          |
         |                                       |
         | 192.168.20.0/24       192.168.40.0/24 |
         | (vlan 20)                   (vlan 40) |
         |                                       |
         | .1                                    | .1
+--------+--------+                     +--------+--------+
|     bigip01     |                     |     bigip01     |
| RouteDomain 12  |                     | RouteDomain 34  |
|                 |                     |                 |
+--------+--------+                     +--------+--------+
         | .1                                    | .1
         |                                       |
         | 192.168.10.0/24       192.168.30.0/24 |
         | (vlan 10)                   (vlan 30) |
         |                                       |
         | .10                                   | .30
+--------+--------+                     +--------+--------+
|                 |                     |                 |
|     Server10    |                     |     Server30    |
|  (RockyLinux84) |                     |  (RockyLinux84) |
+-----------------+                     +-----------------+

初期設定

BIG-IPの初期設定は以下の通りとします。

bigip01 : BIG-IP 16.1.0
net vlan VLAN0010 {
    interfaces {
        1.1 {
            tagged
        }
    }
    tag 10
}
net vlan VLAN0020 {
    interfaces {
        1.1 {
            tagged
        }
    }
    tag 20
}
net vlan VLAN0030 {
    interfaces {
        1.1 {
            tagged
        }
    }
    tag 30
}
net vlan VLAN0040 {
    interfaces {
        1.1 {
            tagged
        }
    }
    tag 40
}
net route-domain RD_0012 {
    id 12
    vlans {
        VLAN0010
        VLAN0020
    }
}
net route-domain RD_0034 {
    id 34
    vlans {
        VLAN0040
        VLAN0030
    }
}
net self SelfIP_VLAN0010 {
    address 192.168.10.1%12/24
    traffic-group traffic-group-local-only
    vlan VLAN0010
}
net self SelfIP_VLAN0020 {
    address 192.168.20.1%12/24
    traffic-group traffic-group-local-only
    vlan VLAN0020
}
net self SelfIP_VLAN0030 {
    address 192.168.30.1%34/24
    traffic-group traffic-group-local-only
    vlan VLAN0030
}
net self SelfIP_VLAN0040 {
    address 192.168.40.1%34/24
    traffic-group traffic-group-local-only
    vlan VLAN0040
}
ltm virtual RD0012_VS_FORWARD_ALL {
    destination 0.0.0.0%12:any
    ip-forward
    mask any
    profiles {
        fastL4 { }
    }
    serverssl-use-sni disabled
    source 0.0.0.0%12/0
    translate-address disabled
    translate-port disabled
}
ltm virtual RD0034_VS_FORWARD_ALL {
    destination 0.0.0.0%34:any
    mask any
    profiles {
        fastL4 { }
    }
    serverssl-use-sni disabled
    source 0.0.0.0%34/0
    translate-address disabled
    translate-port disabled
}

事前準備

パーティションの作成

「System」「Users」「Partition List」の順に画面遷移します

BIG-IP パーティションの作成 01

「Create」を押下します。

BIG-IP パーティションの作成 02

「Partition Name」には何か分かりやすい名前を入力します。入力後、「Finished」を押下します。同様の操作を繰り返し、「part01」「part02」という名前の2つのパーティションを作成します。

BIG-IP パーティションの作成 03

コマンドラインで操作する場合は以下の通りです。

create auth partition part01
create auth partition part02

ユーザの作成

「System」「Users」「User List」の順に画面遷移します

パーティション単位のユーザ作成01

「Create」を押下します。

パーティション単位のユーザ作成02

「User Name」「Password」を入力します。

次に「Role」に「Manager」を、「Partiion」に「part01」を入力し、「Add」を押下します。

パーティション単位のユーザ作成03

「Partition Access」の欄に設定が反映された事を確認し、「Finish」を押下します。

パーティション単位のユーザ作成04

コマンドラインで操作する場合は以下の通りです。

create auth user user01 partition-access replace-all-with { part01 { role manager } } password P@ssw0rd
create auth user user02 partition-access replace-all-with { part02 { role manager } } password P@ssw0rd

virtual serverの作成

動作確認のため、user01, user02それぞれが管理できるvirtual serverを作成します。指定するパラメタは環境に応じて変更ください。以下に挙げる例は「BIG-IP パーティションによる分割」の動作確認が終了した時点を前提としてます。

「Local Traffic」「Virtual Server」の順に画面遷移します。画面上部のプルダウンメニューで、「partition」を「part01」に変更します。

その後、「Create」を押下します。

virtual serverの作成 01

何らかのvirtual serverを作成します。ここで確認したいのは「設定変更の権限が意図したユーザに与えられるか」ですので、入力するパラメタは適当で差し支えございません。

同様の操作を繰り返し、part01とpart02のそれぞれに属するvirtual serverを1つずつ作成します。

virtual serverの作成 02

コマンドラインで操作する場合は以下の通りです。

create ltm virtual /part01/RD0012_VS_PART01 destination 192.168.20.100%12:any ip-forward
create ltm virtual /part02/RD0034_VS_PART01 destination 192.168.40.100%34:any ip-forward

動作確認

part01に対するManager権限が与えられているuser01でログインします。

partitionの動作確認 01

「Local Traffic」「Virtual Server」の順に画面遷移します。よく見ると、/Common/に属すvirtual serverのチェックボックスがグレーアウトされており削除不能である事が分かります。また、/part02/に属すvirtual serverが表示されてない事も分かります。

この画面で「virtual server名」を押下し、さらにvirtual serverの詳細設定画面へ遷移してみましょう。

partitionの動作確認 02

/Common/に属すvirtual serverは入力欄がグレーアウトされていて設定変更不能である事が分かります。

partitionの動作確認 03

/part01/に属すvirtual serverは設定変更可能である事が分かります。

partitionの動作確認 04

タイトルとURLをコピーしました