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年当時のものであるが、現在でも通用する。
ユーザロール
権限管理と言っても柔軟にどんな要望でも実現できるわけではなく、予め定義されたロールを割り当てる事によって、ある程度の権限管理を実現できます。各ロールに割り当てられた権限は以下の通りです。
ユーザロール | 該当パーティション | 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の初期設定は以下の通りとします。
事前準備
パーティションの作成
「System」「Users」「Partition List」の順に画面遷移します
「Create」を押下します。
「Partition Name」には何か分かりやすい名前を入力します。入力後、「Finished」を押下します。同様の操作を繰り返し、「part01」「part02」という名前の2つのパーティションを作成します。
コマンドラインで操作する場合は以下の通りです。
create auth partition part01 create auth partition part02
ユーザの作成
「System」「Users」「User List」の順に画面遷移します
「Create」を押下します。
「User Name」「Password」を入力します。
次に「Role」に「Manager」を、「Partiion」に「part01」を入力し、「Add」を押下します。
「Partition Access」の欄に設定が反映された事を確認し、「Finish」を押下します。
コマンドラインで操作する場合は以下の通りです。
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を作成します。ここで確認したいのは「設定変更の権限が意図したユーザに与えられるか」ですので、入力するパラメタは適当で差し支えございません。
同様の操作を繰り返し、part01とpart02のそれぞれに属するvirtual serverを1つずつ作成します。
コマンドラインで操作する場合は以下の通りです。
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でログインします。
「Local Traffic」「Virtual Server」の順に画面遷移します。よく見ると、/Common/に属すvirtual serverのチェックボックスがグレーアウトされており削除不能である事が分かります。また、/part02/に属すvirtual serverが表示されてない事も分かります。
この画面で「virtual server名」を押下し、さらにvirtual serverの詳細設定画面へ遷移してみましょう。
/Common/に属すvirtual serverは入力欄がグレーアウトされていて設定変更不能である事が分かります。
/part01/に属すvirtual serverは設定変更可能である事が分かります。