
Azure Privileged Identity Management (PIM) 역할 활성화를 터미널에서 직접 관리할 수 있는 명령줄 인터페이스 도구입니다.
명령줄 인터페이스 도구로, 터미널에서 직접 Azure Privileged Identity Management(PIM) 역할 활성화를 관리할 수 있습니다.
azpim을 사용하기 전에 다음이 필요합니다:
# Azure CLI 설치 (아직 설치되지 않은 경우)
# 참고: https://docs.microsoft.com/en-us/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는 하루에 최대 한 번(텍스트 모드에서만) 짧은 "업데이트 가능" 힌트를 표시합니다.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 "Break-glass for incident" \
--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 "Task completed"
# 모든 구독에서 비활성화 (subscription-id 생략)
azpim deactivate --non-interactive --yes \
--role-name "Contributor" \
--allow-multiple
공통 플래그 (활성화/비활성화):
--non-interactive - 대화형 프롬프트 비활성화-y, --yes - 확인 프롬프트 건너뛰기--subscription-id <id> - 대상 구독 (비활성화 시 선택사항)--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
# 특정 프리셋 세부 정보 표시
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 ║
╚════════════════════════════════════════════════════╝
✔ Authentication successful
┌─ User Information ──────────────────────────────────
│ Name: John Doe
│ Email: [email protected]
└──────────────────────────────────────────────────────
✔ Found 3 subscription(s)
? What would you like to do?
❯ ▶ Activate Role(s)
◼ Deactivate Role(s)
✕ Exit