第12章 RBAC の設定
OpenStack Networking の Role-based Access Control (RBAC) により、neutron 共有ネットワークに対する、より粒度の高い制御が可能となります。以前のリリースでは、ネットワークは全テナントで共有するか、全く共有しないかのいずれかでした。本リリースでは、OpenStack Networking は RBAC テーブルを使用してテナント間における neutron ネットワークの共有を制御するようになりました。これにより、管理者は、ネットワークにインスタンスを接続するパーミッションをどのテナントに付与するかをコントロールすることができます。
その結果、クラウド管理者は、一部のテナントがネットワークを作成できないようにして、そのプロジェクトに対応した既存のネットワークに接続できるようにすることが可能です。
12.1. 新規 RBAC ポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、RBAC ポリシーを使用してテナントに共有ネットワークへのアクセスを許可する方法の実例を紹介します。
利用可能なネットワークの一覧を表示します。
# neutron net-list +--------------------------------------+-------------+------------------------------------------------------+ | id | name | subnets | +--------------------------------------+-------------+------------------------------------------------------+ | 7a7974fe-3b34-4538-b413-d22b985f26e1 | public | 7de0811f-86ed-4e1b-bc3c-fd2459d0db9d | | 6e437ff0-d20f-4483-b627-c3749399bdca | web-servers | fa273245-1eff-4830-b40c-57eaeac9b904 192.168.10.0/24 | | 1a744cc9-c2b2-4cfc-b06d-a10af5dc8334 | private | 5196d774-6bd2-4f5d-9c24-a4d1c8987f10 10.0.0.0/24 | +--------------------------------------+-------------+------------------------------------------------------+テナントの一覧を表示します。
# keystone tenant-list +----------------------------------+-------------+---------+ | id | name | enabled | +----------------------------------+-------------+---------+ | 4be7697a4258449a9677adb0fbb71e21 | admin | True | | 09ac16ac50634b08a689c1526a34bb82 | demo | True | | c717f263785d4679b16a122516247deb | engineering | True | | e8549caaf5bf4bd9b5618622e7c21c97 | services | True | +----------------------------------+-------------+---------+engineering テナント (
c717f263785d4679b16a122516247deb) へのアクセスを許可するweb-serversネットワークの RBAC を作成します。# neutron rbac-create 6e437ff0-d20f-4483-b627-c3749399bdca --type network --target-tenant c717f263785d4679b16a122516247deb --action access_as_shared Created a new rbac_policy: +---------------+--------------------------------------+ | Field | Value | +---------------+--------------------------------------+ | action | access_as_shared | | id | 425cdd5c-c080-4045-a896-31d446551de7 | | object_id | 6e437ff0-d20f-4483-b627-c3749399bdca | | object_type | network | | target_tenant | c717f263785d4679b16a122516247deb | | tenant_id | 4be7697a4258449a9677adb0fbb71e21 | +---------------+--------------------------------------+
これにより、engineering テナントでインスタンスを web-servers ネットワークに接続できるようになります。
12.2. 設定したRBAC ポリシーの確認 リンクのコピーリンクがクリップボードにコピーされました!
既存の RBAC ポリシーの ID を取得するには、
rbac-listオプションを使用してください。# neutron rbac-list +--------------------------------------+--------------------------------------+ | id | object_id | +--------------------------------------+--------------------------------------+ | 425cdd5c-c080-4045-a896-31d446551de7 | 6e437ff0-d20f-4483-b627-c3749399bdca | +--------------------------------------+--------------------------------------+rbac-showを使用して特定の RBAC エントリーの詳細を表示します。# neutron rbac-show 425cdd5c-c080-4045-a896-31d446551de7 +---------------+--------------------------------------+ | Field | Value | +---------------+--------------------------------------+ | action | access_as_shared | | id | 425cdd5c-c080-4045-a896-31d446551de7 | | object_id | 6e437ff0-d20f-4483-b627-c3749399bdca | | object_type | network | | target_tenant | c717f263785d4679b16a122516247deb | | tenant_id | 4be7697a4258449a9677adb0fbb71e21 | +---------------+--------------------------------------+
12.3. RBAC ポリシーの削除 リンクのコピーリンクがクリップボードにコピーされました!
既存の RBAC の ID を取得するには、
rbac-listオプションを使用してください。# neutron rbac-list +--------------------------------------+--------------------------------------+ | id | object_id | +--------------------------------------+--------------------------------------+ | 425cdd5c-c080-4045-a896-31d446551de7 | 6e437ff0-d20f-4483-b627-c3749399bdca | +--------------------------------------+--------------------------------------+rbac-deleteコマンドで対象の ID 値を指定して RBAC を削除します。# neutron rbac-delete 425cdd5c-c080-4045-a896-31d446551de7 Deleted rbac_policy: 425cdd5c-c080-4045-a896-31d446551de7