環境や利用用途によっては、ユーザー毎に役割を設け、それに応じたアクセス権を付与したい場合があります。ここでは、ACI でユーザーロール・権限を決定し、設定するまでの 1 つの例を示します。
1. 変更したい設定の権限確認
今回は Bridge Domain の Subnet 設定を変更可能なユーザーを作成します。まず最初にテナントを作成し、実際に変更を行いたい設定の class を確認します。その後、その class に必要な権限を確認します。
1a. Tenant の作成
APIC にログインし、Tenants > Add Tenant をクリックすると下記の画面が開きます。今回はテナント名 "demo01" のテナントを作成します。Security Domain の "+" ボタンを押下して Name のプルダウンから "Create Security Domain" を選択します。Security Domain名は "demo" としています。


1b. BD, Subnet の作成
Bridge Domains を右クリックし、Create Brdidge Domain を選択することで Bridge Domain を作成することができます。今回は、"bd01" という名前にしています。

新しく作成したBridge Domain "bd01" の下で Subnets を右クリックし "Create Subnet" を選択します。下記の例では Gateway IP に 192.168.0.1/24 を設定しています。

1c. class の確認
画面右上の歯車アイコンをクリックし、Show Debug Info を有効にすることで画面下部に class や dn が表示されるようになります。

表示が小さく読みづらいですが、今回の Subnet で使用している class は fvSubnet であることが確認できます。

1d. class の権限確認
class 名が分かったので、APIC Management Information Model Reference でこの class を確認してみます。このドキュメントは歯車アイコンから Documentation > API Documentation から開くことができます。

左側の Classes から fv:Subnet を探し、クリックすることで下記右側の画面が表示されます。以下の出力結果より、変更を行う(= Write Access) には "admin" もしくは "tenant-connectivity-l2" の権限が必要なことが確認できます。

2. tenant-connectivity-l2 権限を持つユーザー作成
Cisco ACI AAA RBAC Rules and Privileges で、 "tenant-connectivity-l2" 権限を持つロールを確認することができます。最初から用意されているロールを使用することをお勧めしますが、今回は、ロールも作成してみたいと思います。
2a. Role の作成
Admin > AAA > Security を開き、右ペインで Roles を選択します。右上のツールアイコンから "Create Role" を選択しロールを新規作成します。今回は "demo_Role" という名前で "tenant-connectivity-l2" 権限のみを持つロールを作成しています。


2b. ユーザー作成
Admin > AAA > Users を右クリックし、"Create Local User" を選択します。今回は "demo_User" という名前で新規のユーザを作成します。パスワードは任意のものを設定します。

このユーザに Security Domain "demo" を紐づけます。これにより、このユーザは Security Domain "demo" に属するテナント "demo01" にアクセス可能になります。ロールも先ほど作成した "demo_Role" を紐づけます。変更を許可したいので、Role Privilege Type は "Write" を選択します。

3. 動作確認
ログアウトし、今回作成したユーザー "demo_User" でログインし直してSubnet 設定が変更できるかを確認してみます。

admin ユーザーでログインした場合と異なり、Fabric や Admin といったグレーアウトされています。

テナント "demo01" で先ほどと同じように Subnet を作成し、特にエラーが出力されることなく設定できることが確認できました。


今回は、fvSubnet を使用するために必要な "tenant-connectivity-l2" という権限を持つロールを作成しましたが、class によって必要な権限は様々です。それらを 1 つづつ調べていくのも良いですが、デフォルトで用意されているロールを使用する方が楽なことが多いです。そのため、デフォルトで用意されているロールでは不十分だったり、特定の権限を追加したくなった場合に、そのロールをベースとしたカスタムロールを作成することをお勧めします。