mcpField
D
deployment-admin

deployment-admin

github.com/josiahsiegelクラウド・DevOps5990 回インストール19 週間前に更新
リポジトリ

deployment-admin について

Power BI の管理者やデリバリーチーム向けのデプロイ・ガバナンススキルです。環境間の昇格、CI/CD、アクセス制御、容量、ワークスペース管理を扱います。

主な機能

  1. 01デプロイパイプラインと REST API 自動化
  2. 02GitHub Actions と Azure DevOps の CI/CD
  3. 03Fabric Git 統合とブランチ戦略
  4. 04RLS と OLS のセキュリティ設定
  5. 05容量とワークスペースロールの管理

活用シーン

  1. 01開発、テスト、本番環境間でコンテンツを昇格する
  2. 02CI/CD で PBIP プロジェクトをデプロイする
  3. 03ユーザーやロールごとにデータアクセスを制限する
  4. 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):

  1. **ワークスペースをリポジトリに接続:**ワークスペースの設定 > Git 統合 > 接続
  2. **対応リポジトリ:**Azure DevOps Repos、GitHub(2025 年以降)
  3. **同期の方向:**ワークスペースからリポジトリへ(コミット)、またはリポジトリからワークスペースへ(更新)
  4. **対応アイテム:**レポート、セマンティックモデル、ノートブック、パイプライン、レイクハウス

ブランチ戦略:

  • 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 の同等品CUPBI コンテンツの表示
F2EM12不可(API のみ)
F4EM24不可
F8EM38不可
F16P1(部分的)16不可
F32P1(部分的)32不可
F64P164可(ユーザー数無制限)
F128P2128可
F256P3256可

**重要なルール:**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、セキュリティ、デプロイ アーキテクチャ

コメント