
Azure Privileged Identity Management (PIM) ロールアクティベーションをターミナルから直接管理するためのコマンドラインインターフェースツールです。
ターミナルから直接Azure Privileged Identity Management (PIM) ロールのアクティベーションを管理するためのコマンドラインインターフェースツールです。
azpimを使用する前に、次のものが揃っていることを確認してください。
# Azure CLIのインストール(未インストールの場合)
# 参照: https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli
# Azureにログイン
az login
# ログイン状態を確認
az account show
# npmを使用
npm install -g azpim
# pnpmを使用
pnpm add -g azpim
# yarnを使用
yarn global add azpim
インストール後、azpimコマンドがグローバルで使用可能になります。
以前にazp-cliを使用していた場合、プリセットは~/.config/azp-cli/(Windowsの場合は%APPDATA%\azp-cli\)に保存されています。移行するには:
presets.jsonを新しい場所(~/.config/azpim/、Windowsの場合は%APPDATA%\azpim\)にコピーします。npm uninstall -g azp-cli# リポジトリのクローン
git clone https://github.com/tapanmeena/azpim.git
cd azpim
# 依存関係のインストール
pnpm install
# プロジェクトのビルド
pnpm build
# 開発用にグローバルリンク
npm link
# グローバルインストール後
azpim
# 特定のコマンドを指定
azpim activate
azpim deactivate
azpim preset list
azpim update
# 開発モード(ソースから)
pnpm dev
| コマンド | エイリアス | 説明 |
|---|---|---|
activate | a | Azure PIMでロールをアクティベート(デフォルト) |
deactivate | d | Azure PIMでロールを非アクティブ化 |
preset | - | 再利用可能なプリセットを管理 |
favorites | fav | お気に入りのサブスクリプションを管理 |
check-update | update, upgrade | 新しいバージョンの確認 |
help | - | ヘルプ情報を表示 |
グローバルフラグ:
--debug - デバッグログを有効にする--version - バージョン番号を表示| コマンド | 説明 |
|---|---|
preset list | 利用可能なすべてのプリセットを一覧表示 |
preset show | 特定のプリセットの詳細を表示 |
preset add | 新しいプリセットを追加(インタラクティブウィザード) |
preset edit | 既存のプリセットを編集(インタラクティブウィザード) |
preset remove | プリセットを削除 |
| コマンド | 説明 |
|---|---|
favorites list | すべてのお気に入りサブスクリプションを一覧表示 |
favorites add | サブスクリプションをお気に入りに追加 |
favorites remove | お気に入りからサブスクリプションを削除 |
favorites clear | すべてのお気に入りをクリア |
favorites export | お気に入りをファイルにエクスポート |
favorites import | お気に入りをファイルからインポート |
favorites refresh | サブスクリプションキャッシュをリフレッシュ |
新しいバージョンが利用可能かどうかを確認できます。
azpim update
# エイリアス
azpim upgrade
注意事項:
azpim updateは、最新の場合は終了コード0、更新可能な場合は2、エラーの場合は1を返します。--check-only - アップグレード手順を表示せず、ステータスのみをチェックして表示します。--output jsonは、スクリプトで使用可能な構造化レスポンスを返します。azpim activateとazpim deactivateは、1日に1回まで「更新可能」という短いヒント(テキストモードのみ)を表示します。AZPIM_NO_UPDATE_NOTIFIER=1(またはAZPIM_DISABLE_UPDATE_CHECK=1)を設定します。アップデート確認のキャッシュは、プリセットと同じ設定ディレクトリに保存されます。
~/.config/azpim/update-check.json(または$XDG_CONFIG_HOME/azpim/update-check.json)%APPDATA%\azpim\update-check.jsonフラグを使用して、インタラクティブメニューを経由せずにPIMロールを直接アクティベートまたは非アクティブ化できます。スクリプトやCI/CDワークフローに最適です。
# 単一のロールを名前でアクティベート(非対話)
azpim activate --non-interactive --yes \
--subscription-id <SUBSCRIPTION_GUID> \
--role-name "Owner" \
--duration-hours 2 \
--justification "インシデント対応のための緊急アクセス" \
--output json
# 複数のロールをアクティベート(--role-nameを繰り返す)
azpim activate --non-interactive --yes \
--subscription-id <SUBSCRIPTION_GUID> \
--role-name "Contributor" \
--role-name "User Access Administrator"
# ロール名が複数の対象ロールに一致する場合(異なるスコープ)、
# --non-interactive はエラーになります。明示的にすべての一致を許可する必要があります。
azpim activate --non-interactive --yes \
--subscription-id <SUBSCRIPTION_GUID> \
--role-name "Contributor" \
--allow-multiple
# リクエストを送信せずに何が起こるかをプレビュー
azpim activate --non-interactive --dry-run \
--subscription-id <SUBSCRIPTION_GUID> \
--role-name "Contributor" \
--output json
# 特定のロールを非アクティブ化
azpim deactivate --non-interactive --yes \
--subscription-id <SUBSCRIPTION_GUID> \
--role-name "Owner" \
--justification "タスク完了"
# すべてのサブスクリプションにわたって非アクティブ化(subscription-idを省略)
azpim deactivate --non-interactive --yes \
--role-name "Contributor" \
--allow-multiple
共通フラグ(activate/deactivate):
--non-interactive - インタラクティブプロンプトを無効化-y, --yes - 確認プロンプトをスキップ--subscription-id <id> - ターゲットサブスクリプション(deactivateでは省略可能)--role-name <name> - ターゲットとするロール名(繰り返し指定可能)--allow-multiple - 複数のロール一致を許可--dry-run - 送信せずにプレビュー--output <text|json> - 出力形式(デフォルト: text)--quiet - 重要でない出力を抑制アクティベーション固有:
--duration-hours <n> - 期間(1~8時間、デフォルトはロールによって異なる)--justification <text> - アクティベーションの理由非アクティブ化固有:
--justification <text> - 非アクティブ化の理由(省略可能)プリセットを使用すると、日常的なアクティベーション/非アクティブ化ルーチン(サブスクリプション+ロール名+期間+理由)を保存し、--preset <name> で再利用できます。
デフォルトでは、プリセットはユーザーごとの設定ファイルに保存されます。
~/.config/azpim/presets.json(または$XDG_CONFIG_HOME/azpim/presets.json)%APPDATA%\azpim\presets.json場所を上書きするには:
AZPIM_PRESETS_PATH=/path/to/presets.jsonプリセットには、以下の一方または両方のブロックを定義できます。
activate: subscriptionId、roleNames[]、durationHours、justification、allowMultipledeactivate: subscriptionId(省略可能)、roleNames[]、justification、allowMultiplejustificationでは単純なテンプレートが使用可能:
${date} → YYYY-MM-DD${datetime} → ISOタイムスタンプ${userPrincipalName} → Microsoft Graph /me から解決# プリセットを作成(インタラクティブウィザード)
azpim preset add daily-ops
# Azure統合でプリセットを作成(サブスクリプション/ロールを取得)
azpim preset add daily-ops --from-azure
# プリセットを編集(インタラクティブウィザード)
azpim preset edit daily-ops
# すべてのプリセットを一覧表示
azpim preset list
# 1つのプリセットの詳細を表示
azpim preset show daily-ops
# プリセットを削除
azpim preset remove daily-ops
# プリセットを使用(フラグはプリセット値を上書き)
azpim activate --preset daily-ops --yes
# プリセットを使用した非対話実行
azpim activate --preset daily-ops --non-interactive --yes --output json
# プリセットを使用して非アクティブ化
azpim deactivate --preset daily-ops --non-interactive --yes
azpim preset addでプリセットを作成する際、activateやdeactivateのデフォルトとして設定することもできます。
azpim activate --non-interactive --yes は --subscription-idや--role-nameを指定しなくても動作できます。╔════════════════════════════════════════════════════╗
║ Azure PIM CLI - Role Activation Manager ║
╚════════════════════════════════════════════════════╝
✔ 認証成功
┌─ ユーザー情報 ──────────────────────────────────
│ 名前: 山田 太郎
│ メール: [email protected]
└──────────────────────────────────────────────────────
✔ 3件のサブスクリプションが見つかりました