PlaTT でRBAC(Permission)をサポート
こんにちは。ACS事業部亀崎です。弊社から2024年夏にManaged Backstage「PlaTT」を発表させていただきました。
そしてこのたび PlaTT にPermission機能を導入いたしました。
https://www.ap-com.co.jp/pressrelease/post-11668
Backstageはとても便利なOSSの開発者ポータルなのですが、その維持管理はとても面倒です。 さらに、各種データのアクセス制御を行うPermission機能はOSSではオプションとなっており、利用者が独自でPermission Policyを(Typescriptの)コードとして記述しなければならないというものでした。
弊社ではPermission機能を少しでも簡略化し、管理・運用しやすいものへとするために、Permissionの機能拡張に取り組んでまいりましたが、 このたび正式対応を発表いたします。
お気づきの方もいらっしゃると思いますが、本ブログではBackstageのPermission機能についての解説を何回かにわけてご紹介してまいりました。今回のこの記事では、PlaTTでのPermission機能正式サポートにあわせてそれらの記事をまとめていきたいと思います。
最終的に何が実現できるか
Permission機能導入により、ユーザーの役割ごとにBackstage内のデータの読み書き等のアクセス可否、テンプレート機能の実行可否を設定することができるようになります。
以前紹介したこちらの記事はその一例
制御できる内容
アクセス制御の対象はBackstageの各Plugin側で規定されています。代表的なものがCatalogやScaffolder Templateといったものになります。
実現方法
弊社のManaged Backstage「PlaTT」ではPermissionの管理にOPA(Open Policy Agent)とBackstageとの連携部分に backstage-opa-plugin を利用させていただいております。
OPAではRegoというポリシー言語でPermission Policyをコードとして記述します。コード可が可能なことで、GitHub等を利用したコードレビューも実現できますし、過去の変更履歴も管理可能です。これにより適用したポリシーを戻すことも容易にもなります。 さらにテストツールを利用して、適用前に単体テストなども行うことができるようになります。
こうしたPolicy as Codeが実現できるのがOPAを活用する利点です。
また、サンプルポリシーコードも弊社からOpen Sourceとして公開させていただいております。
ユーザーの皆様には、組織の各種ロールに従ってアクセス制御を定義していただく必要がありますが、このテンプレートを活用することで比較的容易に指定することができるようになると思います。
さいごに
弊社ではPlatform Engineering、Backstageに関するご支援をさせていただいております。
PlaTTの導入支援、ポリシーの定義の支援などもご支援させていただきます。ご興味のある方はぜひお声がけください。