fusion-roles-cli について
fusion-roles-cli は、`froles` .NET コマンドラインツールで Fusion Roles V2 のリソースを JSON 設定から作成、更新、確認、エクスポートするスキルです。環境をまたいでロールを管理するチーム向けで、ドライランの差分表示と冪等な調整に対応します。
主な機能
- 01Roles V2 リソースの作成・更新
- 02変更差分を示すデプロイのドライラン
- 03既存ロール設定のエクスポート
- 04ロール、バインディング、割り当ての調整
活用シーン
- 01サービスのロール設定のデプロイ
- 02デプロイ前の変更確認
- 03監査用のロール状態のエクスポート
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ equinor/ fusion-skills --skill fusion-roles-cliインストール後、Claude Code で/fusion-roles-cliを入力して読み込まれたか確認します。
同梱ファイルCHANGELOG.mdreferences/role-config-schema.md
詳細
Fusion Roles CLI
使用する場面
Fusion Roles V2 のリソース(ロール、バインディング、割り当て、スコープタイプ)を設定ファイルから作成または更新する必要がある場合や、既存のロールの状態を確認またはエクスポートする必要がある場合に使用します。
一般的なきっかけ:
- 「サービスのロール設定をデプロイして」
- 「この JSON ファイルからロールを作成して」
- 「fusion-myservice の現在のロール設定をエクスポートして」
- 「ロール設定ファイルの形式を教えて」
- 「この Entra グループのバインディングを追加して」
- 「このアカウントに割り当てられているロールを確認して」
- 「ロールのデプロイをドライランして」
使用しない場面
- データベースのプロビジョニング —
fusion-infra-cliを使用します - Azure AD グループ自体の管理 — Azure ポータルまたは Graph API を使用します
- Roles V1(レガシーシステム) — このツールは Roles V2 のみを対象としています
- アプリケーションコードの変更
前提条件
.NET グローバルツールとして froles をインストールします:
dotnet tool install --global \
--add-source "https://statoil-proview.pkgs.visualstudio.com/Fusion%20-%20Packages/_packaging/Fusion-Public/nuget/v3/index.json" \
Fusion.Roles.Cli
最新バージョンに更新します:
froles --update
認証には DefaultAzureCredential が自動的に使用されます(az login セッションが使用されます)。上書きするには -t <token> を渡します。
基本的なワークフロー — ロール設定をデプロイする
1. 設定ファイルを作成する
設定ファイルは、システムのすべてのロールリソースを宣言する JSON ファイルです。エディターでの検証と自動補完を有効にするため、必ず $schema の参照を含めてください。
最小限の例(roles-config.json):
{
"$schema": "https://rolesv2.api.fusion.equinor.com/public/schemas/role-config.schema.json",
"accessRoles": [
{
"systemIdentifier": "my-service",
"name": "MyService.Project.Read",
"description": "Read access to project resources"
}
],
"roles": [
{
"name": "project-viewer",
"displayName": "Project Viewer",
"accessRoleMappings": [
{ "accessRoleIdentifier": "MyService.Project.Read" }
]
}
]
}
すべてのリソースタイプとフィールド定義を含む完全なスキーマについては、references/role-config-schema.md を参照してください。
2. 変更を確認するためにドライランする
予期しない変更を検出するため、デプロイの前に必ずドライランしてください:
froles create -e ci --file roles-config.json --dry-run
ドライランでは、作成、パッチ適用、変更なしのいずれになるかが正確に表示されます。追加または削除されたロールを示すバインディングの差分も含まれます。
3. デプロイする
# CI
froles create -e ci --file roles-config.json
# QA
froles create -e fqa --file roles-config.json
# Production
froles create -e fprd --file roles-config.json
create は冪等であり、繰り返し実行しても安全です。リソースは自然キーで照合され、変更されたフィールドにのみパッチが適用されます。
4. 現在の状態をエクスポートする(任意)
システムの現在の設定をエクスポートするには(初期オンボーディングや監査に便利です):
froles export my-service -e ci -o current-state.json
エクスポートしたファイルを変更し、create に渡すことができます。
調整動作
create コマンドは、各リソースタイプを自然キーに基づいて調整します:
| リソース | 自然キー | 動作 |
|---|---|---|
| スコープタイプ | name | 存在しない場合は作成し、description が変更されている場合はパッチを適用 |
| アクセスロール | systemIdentifier + name | 存在しない場合は作成し、変更されている場合はパッチを適用 |
| ロール/請求可能なロール | name | 存在しない場合は作成し、変更されている場合はパッチを適用。アクセスロールのマッピングは完全に調整 |
| バインディング | identifier | すべてのフィールドにパッチを適用。差分にはロール/グループの追加と削除を表示 |
| ロール割り当て | roleIdentifier + source + externalIdentifier | 存在しない場合は作成し、存在する場合はスキップ |
重要:ロール/請求可能なロールのアクセスロールマッピングは完全に調整されます。設定に含まれないマッピングは削除されます。設定ファイルで宣言されたシステムに属するアクセスロールのみが管理対象になります。
環境
| キー | 用途 |
|---|---|
ci | 継続的インテグレーション |
fqa | QA/本番前環境 |
fprd | 本番環境 |
tr | トレーニング環境 |
詳細なリファレンス
コマンドとフラグの完全なリファレンスを確認するには、次を実行します:
froles --help
froles create --help
または、ソースドキュメントを参照してください:
安全性
- 本番環境にデプロイする前に、必ずドライランしてください
- アクセスロールマッピングの調整では、マッピングされていないロールが削除されます。ドライランの出力を注意深く確認してください
- トークンを設定ファイルに保存しないでください。パイプラインでは、必ずシークレット変数から
-t <token>を指定してください delete role-assignmentsは破壊的な操作です。実行前にユーザーに確認し、ドライランしてください