mcpField
F
fusion-roles-cli

fusion-roles-cli

github.com/equinorセキュリティ406 回インストール
リポジトリ

fusion-roles-cli について

fusion-roles-cli は、`froles` .NET コマンドラインツールで Fusion Roles V2 のリソースを JSON 設定から作成、更新、確認、エクスポートするスキルです。環境をまたいでロールを管理するチーム向けで、ドライランの差分表示と冪等な調整に対応します。

主な機能

  1. 01Roles V2 リソースの作成・更新
  2. 02変更差分を示すデプロイのドライラン
  3. 03既存ロール設定のエクスポート
  4. 04ロール、バインディング、割り当ての調整

活用シーン

  1. 01サービスのロール設定のデプロイ
  2. 02デプロイ前の変更確認
  3. 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継続的インテグレーション
fqaQA/本番前環境
fprd本番環境
trトレーニング環境

詳細なリファレンス

コマンドとフラグの完全なリファレンスを確認するには、次を実行します:

froles --help
froles create --help

または、ソースドキュメントを参照してください:

安全性

  • 本番環境にデプロイする前に、必ずドライランしてください
  • アクセスロールマッピングの調整では、マッピングされていないロールが削除されます。ドライランの出力を注意深く確認してください
  • トークンを設定ファイルに保存しないでください。パイプラインでは、必ずシークレット変数から -t <token> を指定してください
  • delete role-assignments は破壊的な操作です。実行前にユーザーに確認し、ドライランしてください

コメント