Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Synapse Analytics Access Control

Ryoma Nagata
September 25, 2021

Synapse Analytics Access Control

46th Microsoft Data Platform Day(Online)
「Azure Synapse Analytics上のデータ認可あれこれ」登壇資料

https://sqlserver.connpass.com/event/216907/

Ryoma Nagata

September 25, 2021
Tweet

More Decks by Ryoma Nagata

Other Decks in Technology

Transcript

  1. 【中級者向け】 Synapse Analyticsの データアクセスあれこれ Microsoft MVP for Data Platform 2021

    永田 亮磨 Twitter:@ryomaru0825 Linkedin:ryoma-nagata-0825 Qiita:qiita.com/ryoma-nagata
  2. 1. Synapse 周辺のアクセス制御全体像 2. Synapse RBAC基本まとめ 3. 分析機能別アクセス制御仕様について 1. ストレージエクスプローラー

    2. SQL スクリプト(SQLアクセス) 3. 統合データセット 4. Sparkノートブック ※尺の状況次第でデモを割愛します AGENDA
  3. データ機能 Azure Data Lake Storage Gen2 専用 SQL Pool サーバレス

    SQL Pool 分析機能 (Synapse Studio) SQLスクリプト ストレージ エクスプローラー ノートブック データセット アクセス制御 (データ機能側で設定) Azure RBAC/ACL SQL Server権限制御 Azure Synapseにまつわるアクセス制御は複数のアクセス制御機能で成り立つ。 用語: • Synapse Workspace=分析作業のためのコラボレーションスペース。Azureリソースとしてデプロイする、 Synapse Analyticsのインスタンス(という理解)。 • Synapse Studio=分析作業を行うためのWeb UI Synapse 周辺のアクセス制御のイメージ アクセス制御 ( Synapse RBACロール) Synapse User Synapse 管理者 Synapse 共同作成者 ... Synapse Workspace
  4. 基本的な構成は以下の5つのロール。 Synapse RBAC基本まとめ • Synapse ワークスペースのアクセス制御を設定する方法 - Azure Synapse Analytics

    | Microsoft Docs ロール 概要 ワークスペース 権限管理 サーバレス SQL Pool 権限管理 (dbロールでも実 施可) 専用SQL Pool 権限管理 (dbロールでも実 施可) パイプライン、 データフロー、リ ンクドサービス (テスト不可)な どの成果物作成 データセットプレ ビュー、リンクド サービステスト、 デバッグ、トリ ガーの紐づけ Spark poolや、統 合ランタイムの監 視 ※作成にはAzure RBACが必要 Synapse管理者 ワークスペースの 全体管理 〇 〇 × 〇 〇 〇 Synapse共同作 成者 開発者向けロール × × × 〇 × 〇 Synapse資格情 報ユーザー 疎通確認まで行う 開発者向けロール × × × × 〇 × Synapse コン ピューティング オペレーター 運用監視者向け ロール × × × × × 〇 SQL AD管理者 (既定では作成 者=Synapse管 理者に割当て) 専用SQLプールの 管理 × × 〇 × × × 組み合わせて利用する
  5. AD認証時はAzure Portalだとこの時の状態 • AD認証/アカウントキーでのアクセス が使用される • 必要なアクセス許可は • AD認証の場合:前述の Blobデータxxxロール割り当てか、

    データレイクのACL設定で行う • キー認証の場合:共同作成者などを割 り当てる 機能別のアクセス制御について ストレージエクスプローラー in Synapse Studio Synapse Studio
  6. • 専用SQL Pool、サーバレスSQL Poolに対する 権限により接続される。 • 専用SQL Poolの場合 • Synapse

    RBAC, Azure RBAC との関連:なし • SQL AD管理者にsysadminが付与されることを除 き、SQL Pool内での権限制御となる。 (SQL Serverと”ほぼ”同じように行う) • サーバレスSQL Poolの場合 • Synapse RBACとの関連:Synapse管理者、 Synapse SQL管理者にsysadminが付与される • Azure RBACとの関連:なし • 管理者アクセス以外は、SQL Pool内で権限制御をす る(SQL Serverと同じように行う) 機能別のアクセス制御について SQLスクリプト in Synapse Studio
  7. • サーバレス SQL PoolのsysadminにはSynapse管理者 or Synapse SQL 管理者が割り当て サーバレスSQL Pool上のSynapse

    Workspace マネージドIDの権限設定について • sys.server_principals (Transact-sql) - SQL Server | Microsoft Docs Synapse RBACの割り当て状態 サーバレス SQL Poolでの確認結果
  8. • SQL Pool管理画面でプロパティを設定すると、SQL PoolへのCONTROL権 限が付与される 専用SQL Pool上のSynapse Workspace マネージドIDの権限設定について •

    Synapse ワークスペースのマネージド ID にアクセス許可を付与する - Azure Synapse Analytics | Microsoft Docs Synapse Studio上のSQL Pool管理画面 専用SQL Poolでの確認結果
  9. Azure Data Lake Storage Gen2 • 以下のテーブルでは、外部データソースへのアクセスが発生するため、Data Lake側のデータアクセス設定が必要 • サーバレスSQL

    Pool上のテーブルとビュー • 専用SQL Pool上の外部テーブル • データアクセスの権限チェックとCREDENTIAL(資格情報)について • 既定設定(CREDENTIALを設定しない)だと、呼び出し元のAADアカウントに対する権限をチェックする • Synapse WorkspaceのマネージドIDや、ストレージアカウントキーなどを使用するCREDENTIALを作成し、DATA_SOURCEオブジェクト に利用すると、呼び出し元のアカウントに関わらず、CREDENTIALの内容でデータアクセスをする 外部テーブルについて 専用 SQL Pool サーバレス SQL Pool 外部テーブル CREDENTIAL 外部テーブル Azure Data Lake Storage Gen2 呼び出し元の権限でアクセス CREDENTIALで設定した資格情報でアクセス (たとえばSynapseマネージドIDに設定した権限)
  10. • データレイク・SQL Pool共に既定では、実行者のAADアカウントでデータにアク セスする • Studio上でのアドホック実行→自分のIDでAD認証アクセス • パイプラインからのノートブック実行→Synapse WorkspaceマネージドIDでAD認証 アクセス

    • 専用SQL Poolへのアクセスには、SQL認証ユーザも利用可能 機能別のアクセス制御について Sparkノートブック • サーバーレス Apache Spark プールと SQL プールの間でのデータのインポートとエクスポート - Azure Synapse Analytics | Microsoft Docs
  11. デモユーザ(DEUser01)の権限状態: データレイクには権限のない状態+リンクサービスの利用権限を持つ • ➀既定のアクセス(AADパススルー) • ②TokenLibraryを経由のリンクサービス使用のアクセス • ※リンクサービスの利用権限を持たない場合、失敗する Tips: •

    ➀と②を同じセッション内では、実施できない。➀を実施した時点で、AADパススルーとし て初期化されてしまう仕様 • Token Library経由のリンクサービス利用は、Synapse RBACでリンクサービスの利用 権限を持たなくても使用できる不具合状態だったが、9/14日ごろに修正された デモ Token library