0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Fabric の Data Factory から Snowflake へアクセスする際の PUBLIC IP RANGE に関する調査結果

0
Posted at

概要

Microsoft Fabric の Data Factory から Snowflake へアクセスする際の PUBLIC IP RANGE に関する調査結果を共有します。Microsoft Fabric 側からのアクセス元は DataFactory.{リージョン} の IP Range となるため、該当する IP Range を Snowflake のネットワークポリシーに追加する必要があります。

image.png

Microsoft Fabric の Data Factory からのアウトバウンドが DataFactory であることは、下記のドキュメントに記載されているようです。一方で、この記載は抽象度が高く、読み取り方によって解釈が分かれる可能性があります。そのため、筆者の理解に誤りがある可能性もあります。

image.png

出所: サービス タグ - Microsoft Fabric | Microsoft Learn

検証前は、Power BI の Snowflake マネージドネットワークルールに含まれている可能性を想定していましたが、現時点ではユーザー側で IP Range を設定する必要があることを確認しました。なお、Power BI の接続に関して Snowflake 側で管理できる点は運用上有用であり、同様の仕組みが Data Factory にも適用されることを筆者は望んでいます。

image.png

出所: ネットワークルール | Snowflake Documentation

手順

Snowflake にユーザーを作成

ロールを作成します。

USE ROLE SECURITYADMIN;

CREATE ROLE IF NOT EXISTS ROLE_FABRIC_PBI_TEST;

image.png

Warehouse、データベース、および、スキーマを作成します。

USE ROLE SYSADMIN;

CREATE WAREHOUSE IF NOT EXISTS WH_FABRIC_PBI_TEST
  WAREHOUSE_SIZE = 'XSMALL'
  AUTO_SUSPEND   = 60
  AUTO_RESUME    = TRUE;

CREATE DATABASE IF NOT EXISTS FABRIC_TEST_DB;
CREATE SCHEMA   IF NOT EXISTS FABRIC_TEST_DB.SCHEMA_01;

image.png

ロールに対して権限を付与します。

USE ROLE SECURITYADMIN;

GRANT USAGE ON WAREHOUSE WH_FABRIC_PBI_TEST TO ROLE ROLE_FABRIC_PBI_TEST;
GRANT USAGE ON DATABASE  FABRIC_TEST_DB     TO ROLE ROLE_FABRIC_PBI_TEST;
GRANT USAGE ON SCHEMA    FABRIC_TEST_DB.SCHEMA_01 TO ROLE ROLE_FABRIC_PBI_TEST;

GRANT CREATE TABLE ON SCHEMA FABRIC_TEST_DB.SCHEMA_01 TO ROLE ROLE_FABRIC_PBI_TEST;

GRANT SELECT ON ALL TABLES IN SCHEMA FABRIC_TEST_DB.SCHEMA_01 TO ROLE ROLE_FABRIC_PBI_TEST;
GRANT SELECT
  ON FUTURE TABLES IN SCHEMA FABRIC_TEST_DB.SCHEMA_01
  TO ROLE ROLE_FABRIC_PBI_TEST;

image.png

USE ROLE ROLE_FABRIC_PBI_TEST;
USE WAREHOUSE WH_FABRIC_PBI_TEST;
USE DATABASE FABRIC_TEST_DB;
USE SCHEMA SCHEMA_01;

CREATE OR REPLACE TABLE TABLE_01 (
    ID   INT,
    NAME STRING,
    TS   TIMESTAMP_NTZ
);

INSERT INTO TABLE_01 (ID, NAME, TS)
VALUES
  (1, 'Alice', CURRENT_TIMESTAMP());

image.png

ユーザーを作成します。

USE ROLE SECURITYADMIN;

CREATE USER IF NOT EXISTS USER_FABRIC_PBI_TEST
  PASSWORD = $$ReplaceWithStrongPassword12345$$
  MUST_CHANGE_PASSWORD = FALSE
  DEFAULT_ROLE = ROLE_FABRIC_PBI_TEST
  DEFAULT_WAREHOUSE = WH_FABRIC_PBI_TEST;


GRANT ROLE ROLE_FABRIC_PBI_TEST TO USER USER_FABRIC_PBI_TEST;

image.png

Power BI の Azure 東日本リージョンからのアクセスを許可するネットワークポリシーを作成し、ユーザーに割り当てます。なお、このネットワークポリシーの付与は、POWERBI_{リージョン}_AZURE のネットワークポリシーに Microsoft Fabric のリソースからのアクセスが含まれているかを検証することを目的としています。

CREATE OR REPLACE NETWORK POLICY NP_FABRIC
  ALLOWED_NETWORK_RULE_LIST = ('SNOWFLAKE.NETWORK_SECURITY.POWERBI_JAPANEAST_AZURE');

ALTER USER USER_FABRIC_PBI_TEST
  SET NETWORK_POLICY = NP_FABRIC;

image.png

パイプラインからのアクセス検証がエラー

Fabric にて接続を作成し、テスト接続を実施するとエラーとなりました。エラーメッセージから、ネットワークポリシーによる制限が原因であることが推測できます。

image.png

Test connection operation failed.
Failed to open the database connection.
[Snowflake] 390422 (08004): Incoming request with IP/Token 20.191.165.11 is not allowed to access Snowflake. Contact your account administrator. For more information about this error, go to https://community.snowflake.com/s/ip-xxxxxxxxxxxx-is-not-allowed-to-access.

image.png

Data Factory タグの IP アドレスからのアクセスを許可

Snowflake にて Data Factory タグの IP アドレスからのアクセスを許可します。

ALTER NETWORK POLICY NP_FABRIC
    SET ALLOWED_IP_LIST = (
        '13.78.109.192/28',
        '20.43.64.128/25',
        '20.43.65.0/26',
        '20.43.70.120/29',
        '20.191.164.0/24',
        '20.191.165.0/26',
        '20.210.70.88/29',
        '40.79.187.208/28',
        '40.79.195.224/28',
        '48.210.4.0/27'
    );

image.png

上記の IP アドレスは 2026年2月11日時点での IP アドレスです。下記のリンク先から json をダウンロードして、 DataFactory の対象リージョンの値をセットしてください。

image.png

出所: Download Azure IP Ranges and Service Tags – Public Cloud from Official Microsoft Download Center

image.png

Fabric パイプラインの実行

テスト接続が正常終了することを確認します。

image.png

下記の SQL を実行するパイプラインを実行すると、想定通りに動作します。

INSERT INTO FABRIC_TEST_DB.SCHEMA_01.TABLE_01 (ID, NAME, TS)
VALUES
  (2, 'B', CURRENT_TIMESTAMP());

image.png

image.png

その他の Data Factory 機能の検証

ミラーリング

STREAM を作成権限を付与後に、想定通りに動作しました。

GRANT CREATE STREAM ON SCHEMA FABRIC_TEST_DB.SCHEMA_01 TO ROLE ROLE_FABRIC_PBI_TEST;

image.png

image.png

image.png

コピージョブ

想定通りに動作しました。

image.png

image.png

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?