deployment-admin について
Power BI の管理者やデリバリーチーム向けのデプロイ・ガバナンススキルです。環境間の昇格、CI/CD、アクセス制御、容量、ワークスペース管理を扱います。
主な機能
- 01デプロイパイプラインと REST API 自動化
- 02GitHub Actions と Azure DevOps の CI/CD
- 03Fabric Git 統合とブランチ戦略
- 04RLS と OLS のセキュリティ設定
- 05容量とワークスペースロールの管理
活用シーン
- 01開発、テスト、本番環境間でコンテンツを昇格する
- 02CI/CD で PBIP プロジェクトをデプロイする
- 03ユーザーやロールごとにデータアクセスを制限する
- 04ワークスペースの権限と容量を管理する
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill deployment-adminインストール後、Claude Code で/deployment-adminを入力して読み込まれたか確認します。
同梱ファイルreferences/governance-checklist.mdreferences/report-server-detail.md
詳細
デプロイと管理
概要
Power BI のデプロイでは、ワークスペース、容量、環境をまたいで、開発から本番環境まで移行します。このスキルでは、デプロイパイプライン、CI/CD の自動化、セキュリティ設定、容量管理、ガバナンスのベストプラクティスについて説明します。
デプロイパイプライン
環境間でコンテンツを昇格させるための Power BI の組み込み機能です。
| ステージ | 目的 | 一般的な用途 |
|---|---|---|
| 開発 | 構築と反復 | 開発者が変更をテストします |
| テスト | 検証 | QA によるレビュー、ユーザー受け入れテスト |
| 本番 | エンドユーザー | 稼働中のレポートとダッシュボード |
**要件:**すべてのステージのワークスペースで、Premium、PPU、または Fabric 容量が必要です。
デプロイのルール:
- デプロイされるコンテンツの種類:レポート、セマンティックモデル、データフロー、ページ分割されたレポート
- パラメーター化ルールにより、環境固有の値(サーバー名、データベース)を処理します
- 逆方向のデプロイ(本番から開発)もサポートされていますが、慎重に使用してください
- 自動バインドにより、デプロイされたレポートが各ステージの適切なセマンティックモデルに接続されます
REST API によるパイプラインの自動化
# Get deployment pipelines
GET https://api.powerbi.com/v1.0/myorg/pipelines
# Deploy all content from stage 0 (Dev) to stage 1 (Test)
POST https://api.powerbi.com/v1.0/myorg/pipelines/{pipelineId}/deployAll
{
"sourceStageOrder": 0,
"options": {
"allowOverwriteArtifact": true,
"allowCreateArtifact": true,
"allowOverwriteTargetArtifactLabel": true
},
"note": "Automated deployment from CI/CD"
}
GitHub Actions による CI/CD
PBIP ベースのデプロイ
name: Power BI Deploy
on:
push:
branches: [main]
paths: ['reports/**']
permissions:
id-token: write
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Azure Login (Service Principal)
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Get Access Token
id: token
run: |
TOKEN=$(az account get-access-token \
--resource https://analysis.windows.net/powerbi/api \
--query accessToken -o tsv)
echo "::add-mask::$TOKEN"
echo "token=$TOKEN" >> $GITHUB_OUTPUT
- name: Deploy via Fabric REST API
run: |
# Import PBIP to workspace using Fabric Git integration
# or use deployment pipeline API
curl -X POST \
"https://api.powerbi.com/v1.0/myorg/pipelines/${{ secrets.PIPELINE_ID }}/deployAll" \
-H "Authorization: Bearer ${{ steps.token.outputs.token }}" \
-H "Content-Type: application/json" \
-d '{
"sourceStageOrder": 0,
"options": {
"allowOverwriteArtifact": true,
"allowCreateArtifact": true
}
}'
検証ステップ(ベストプラクティスアナライザー)
- name: Run Tabular Editor BPA
run: |
# Install Tabular Editor CLI
dotnet tool install -g TabularEditor.TOMWrapper
# Run Best Practice Analyzer
tabulareditor model.bim -A BPARules.json -V
Azure DevOps による CI/CD
trigger:
branches:
include: [main]
paths:
include: ['reports/*']
pool:
vmImage: 'ubuntu-latest'
steps:
- task: PowerBIActions@5
displayName: 'Deploy to Test'
inputs:
PowerBIServiceConnection: 'PowerBI-ServicePrincipal'
Action: 'Publish'
WorkspaceName: 'Sales-Test'
PbixFile: '$(Build.SourcesDirectory)/reports/*.pbix'
OverWrite: true
- task: PowerBIActions@5
displayName: 'Refresh Dataset'
inputs:
PowerBIServiceConnection: 'PowerBI-ServicePrincipal'
Action: 'DatasetRefresh'
WorkspaceName: 'Sales-Test'
DatasetName: 'SalesModel'
**Azure DevOps 拡張機能:**Visual Studio Marketplace から「Power BI Actions」をインストールすると、パイプラインのネイティブタスクを利用できます。
Fabric Git 統合
ネイティブのソース管理統合(2023 年後半から GA):
- **ワークスペースをリポジトリに接続:**ワークスペースの設定 > Git 統合 > 接続
- **対応リポジトリ:**Azure DevOps Repos、GitHub(2025 年以降)
- **同期の方向:**ワークスペースからリポジトリへ(コミット)、またはリポジトリからワークスペースへ(更新)
- **対応アイテム:**レポート、セマンティックモデル、ノートブック、パイプライン、レイクハウス
ブランチ戦略:
- Main ブランチを本番ワークスペースに接続します
- 開発にはフィーチャーブランチを使用します
- PR ベースでレビューとマージを行います
- Main へのマージ時に自動同期します
セキュリティ
行レベルのセキュリティ(RLS)
Power BI Desktop で定義します(モデリング > ロールの管理)。
// Static RLS - filter by specific values
[Region] = "West"
// Dynamic RLS - filter by logged-in user
[Email] = USERPRINCIPALNAME()
// Dynamic RLS with lookup table
[ManagerEmail] = USERPRINCIPALNAME()
|| PATHCONTAINS([ManagerPath], LOOKUPVALUE(
Employees[EmployeeID],
Employees[Email], USERPRINCIPALNAME()
))
テスト:
- Desktop:モデリング > 表示方法 > ロールを選択します(USERPRINCIPALNAME はサポートされません)
- Service:セマンティックモデルの設定 > セキュリティ > 特定のユーザーでロールをテストします
- Embedded:有効な ID を指定して埋め込みトークンを生成します
ルール:
- RLS は閲覧者のみに適用されます。管理者/メンバー/共同作成者は RLS を回避します
- Power BI Service でユーザー/グループをロールに追加する必要があります
- サービス プリンシパルは、EffectiveIdentity を指定してトークンを生成することで RLS をテストできます
- RLS フィルターはリレーションシップを通じて伝播します(単方向)
- 双方向フィルターを使用する場合は、セキュリティ上の漏えいがないか慎重にテストしてください
オブジェクトレベルのセキュリティ(OLS)
特定のロールに対して、特定のテーブル/列へのアクセスを制限します。以下を使用して設定します。
- Tabular Editor(推奨)
- TOM/.NET SDK
- TMSL を使用する XMLA エンドポイント
// TMSL to add OLS
{
"createOrReplace": {
"object": { "database": "model", "role": "RestrictedUser" },
"role": {
"name": "RestrictedUser",
"tablePermissions": [{
"name": "Employees",
"columnPermissions": [{
"name": "Salary",
"metadataPermission": "none"
}]
}]
}
}
}
容量管理
| SKU の種類 | ユースケース | 機能 |
|---|---|---|
| Power BI Pro | 個人での共同作業 | 1GB モデル、1 日あたり 8 回の更新 |
| Power BI Premium Per User (PPU) | ユーザー単位の Premium 機能 | 100GB モデル、1 日あたり 48 回の更新、XMLA、デプロイパイプライン |
| Power BI Premium (P SKU) | 組織全体での利用。Fabric F SKU が優先されるため非推奨 | 専用容量 |
| Fabric F SKU | 最新の容量 | F2 から F2048、P/A/EM SKU を置き換えます |
| Power BI Embedded (A/EM SKU) | アプリへの埋め込み。F SKU の登場により非推奨 | API 駆動 |
Fabric F SKU の同等性(2026 年):
| F SKU | 旧 SKU の同等品 | CU | PBI コンテンツの表示 |
|---|---|---|---|
| F2 | EM1 | 2 | 不可(API のみ) |
| F4 | EM2 | 4 | 不可 |
| F8 | EM3 | 8 | 不可 |
| F16 | P1(部分的) | 16 | 不可 |
| F32 | P1(部分的) | 32 | 不可 |
| F64 | P1 | 64 | 可(ユーザー数無制限) |
| F128 | P2 | 128 | 可 |
| F256 | P3 | 256 | 可 |
**重要なルール:**F64 は、Pro/PPU ライセンスを持たないユーザーに Power BI コンテンツの表示権限を含む最小の Fabric SKU です。
ワークスペース管理
| ワークスペースのロール | 権限 |
|---|---|
| 管理者 | すべての操作、メンバーの追加・削除、ワークスペースの削除 |
| メンバー | コンテンツの公開・編集、共有、権限の管理 |
| 投稿者 | コンテンツの作成・編集(共有や権限の管理は不可) |
| 閲覧者 | RLS の適用対象となるコンテンツの閲覧のみ |
ベストプラクティス:
- 個々のユーザーではなく、セキュリティグループを使ってロールを割り当てます
- 環境(開発/テスト/本番)ごとにワークスペースを分けます
- エンドユーザーへのコンテンツ配布にはアプリを使います
- 各ワークスペースの管理者ロールは 2~3 人に制限します
- ガバナンスのために監査ログを有効にします
Power BI Report Server(オンプレミス)
Report Server に関する詳細なガイダンスについては、references/report-server-detail.md をご覧ください。
主な情報:SQL Server Enterprise SA または Premium ライセンスが必要です。PBIX のみを使用し、PBIR は使用しません。リリースサイクルは 1 月/5 月/9 月です。最新バージョンは 2026 年 1 月版です。
Fabric Git 統合の更新(2025~2026 年)
初回の一般提供以降に行われた Git 統合の強化:
- Azure DevOps Repos に加えて、GitHub のサポートが追加されました(2025 年)
- リアルタイムインテリジェンス項目(Eventstream、KQL DB、Data Activator)が Git 統合をサポートするようになりました
- Dataflow Gen2 が CI/CD と Git 統合をサポートするようになりました
- デプロイ パイプラインが Git をトリガーとする自動化をサポートするようになりました
- PBIR 形式のレポートの競合解決が改善されました(ビジュアルごとのファイル単位の粒度)
追加リソース
参考ファイル
references/governance-checklist.md-- テナント設定、監査ログ、秘密度ラベル、データ損失防止、コンプライアンスのチェックリストreferences/report-server-detail.md-- Power BI Report Server のオンプレミス環境:バージョン、機能比較、REST API、セキュリティ、デプロイ アーキテクチャ