次の方法で共有


Azure Database for PostgreSQL を Azure Data Factory と Synapse Analytics に接続する

重要

Azure Database for PostgreSQL バージョン 2.0 では、ネイティブの Azure Database for PostgreSQL サポートが強化されています。 ソリューションで Azure Database for PostgreSQL バージョン 1.0 を使用する場合は、できるだけ早く Azure Database for PostgreSQL のリンクされたサービスをアップグレードする必要があります。

Azure Data Factory とは

Azure Data Factory は、複雑なハイブリッド抽出-変換-読み込み (ETL)、抽出-読み込み変換 (ELT)、およびデータ統合プロジェクトを調整および運用化するために構築された、フル マネージドのサーバーレスデータ統合サービスです。 Azure 統合ランタイム では、データ ストアとコンピューティング サービスをパブリックにアクセス可能なエンドポイントに接続できます。 Azure Integration Runtime のマネージド仮想ネットワークを有効にすると、プライベート ネットワーク環境で Azure Private Link サービスを使用したデータ ストアへの接続がサポートされます。

Azure Data Factory は、選択した統合ランタイムに応じて、さまざまな機能をサポートする Azure Database for PostgreSQL コネクタを提供します。

リンクされたサービス

Azure Data Factory では、 リンクされたサービス はデータ ソースへの接続です。 Azure Database for PostgreSQL を使用する場合は、JSON を使用してリンクされたサービスを定義し、プログラムで接続の詳細を指定できます。 この方法は、自動化、バージョン管理、デプロイのシナリオに役立ちます。 JSON 定義には、サーバー名、データベース名、認証の種類、その他の接続パラメーターなどのプロパティが含まれます。 リンクされたサービスを作成することで、Azure Database for PostgreSQL インスタンスに簡単に接続し、Azure Data Factory 内でデータ統合タスクを実行できます。

リンクされたサービスは、Azure Data Factory UI を使用するか、JSON を使用してプログラムで作成できます。 リンクされたサービスを使用すると、Azure Database for PostgreSQL インスタンスに接続し、Azure Data Factory 内でデータ統合タスクを実行できます。

[前提条件]

Azure portal を使用してリンクされたサービスを作成する

リンクされたサービスは、Azure Data Factory UI を使用するか、JSON を使用してプログラムで作成できます。 リンクされたサービスを使用すると、Azure Database for PostgreSQL インスタンスに接続し、Azure Data Factory 内でデータ統合タスクを実行できます。

  1. Azure Data Factory または Synapse ワークスペースの [ 管理 ] タブを参照し、[ リンクされたサービス] を選択し、[ 新規] を選択します。

    Azure Data Factory UI を使用して新しいリンクされたサービスを作成するのスクリーンショット。

  2. リンクされたサービス ページで、[ + 新規] を選択して、新しいリンクされたサービスを作成します。 すべての Azure Data Factory コネクタの一覧が表示されたウィンドウが開きます。 Azure Database for PostgreSQL を検索して選択し、[続行] を選択します。

    新しいリンクされたサービス フィールドで 'Azure Database for PostgreSQL' を検索しているスクリーンショット。

  3. バージョン 2.0 が選択されていることを確認します。

    Azure Database for PostgreSQL コネクタの [新しいリンクされたサービス] ウィンドウのスクリーンショット。

認証

認証には、基本認証、サービス プリンシパル、システム割り当てマネージド ID、ユーザー割り当てマネージド ID の 4 つの方法がサポートされています。

基本認証
  1. 認証の種類として [基本認証 ] を選択し、Azure PostgreSQL フレキシブル サーバー インスタンスの接続の詳細 ( サーバー名ユーザー名パスワードなど) を入力してください。

    基本認証の種類を持つ Azure Database for PostgreSQL コネクタの新しいリンクされたサービス ウィンドウのスクリーンショット。

  2. [アカウントの選択方法] で [Azure サブスクリプションから] または [手動で入力]を選択します。

    Azure サブスクリプションサーバー名、およびデータベース名を選択します。 また、 ポートを入力します。

    Azure サブスクリプションのアカウント選択方法のスクリーンショット。

  3. ユーザー名とパスワードを入力します

    ユーザー名とパスワードのスクリーンショット。

  4. これで、接続をテストし、リンクされたサービスを作成できます

サービス プリンシパルの認証

サービス プリンシパル認証のセットアップ手順に従うには、Azure Database for PostgreSQL に接続するために、Azure Data Factory または Synapse Analytics でリンクされたサービスを設定する必要があります。 このプロセスには、適切な認証方法の選択、接続の詳細の構成、接続の確認が含まれます。 続行する前に、必要な前提条件とアクセス許可があることを確認します。

  1. Microsoft Entra アプリを登録し、サービス プリンシパルを作成します

  2. [認証の種類] で [ サービス プリンシパル ] を選択します。

    サービス プリンシパルの資格情報の種類には 2 種類あり、両方のサービス プリンシパル メソッドには "テナント""サービス プリンシパル ID"、および "Azure クラウドの種類" の値が必要です。

    サービス プリンシパル認証の種類を持つ Azure Database for PostgreSQL コネクタの [新しいリンク サービス] ウィンドウのスクリーンショット。

  3. アカウントの選択方法で、Azure サブスクリプションからまたは手動で入力を選択します。

    Azure サブスクリプションサーバー名、およびデータベース名を選択します。 また、 ポートを入力します。

    Azure サブスクリプションのアカウント選択方法のスクリーンショット。

  4. サービス プリンシパル キー表示名としても表示されるサービス プリンシパル名を入力します。

  5. [認証の参照方法] で [インライン] を選択します。

    サービス プリンシパルインライン認証の参照方法のスクリーンショット。

  6. テナントを入力します。 テナント ID は、サービス プリンシパル名が作成された Azure 内にあります。

    Azure 上のサービス プリンシパル テナントのスクリーンショット。

  7. サービス プリンシパル ID を入力します。 クライアント ID は、サービス プリンシパル名が作成された Azure にあります。

    Azure のサービス プリンシパル ID のスクリーンショット。

  8. サービス プリンシパル資格情報の種類で、サービス プリンシパル証明書またはサービス プリンシパル キーを選択します。

    サービス プリンシパル証明書 認証には、 サービス プリンシパル証明書 と必要に応じて サービス プリンシパルパスワードが必要です。

    サービス プリンシパル証明書の認証の種類を含む Azure Database for PostgreSQL コネクタの [新しいリンク サービス] ウィンドウのスクリーンショット。

  9. Azure クラウドの種類を選択します。

  10. これで、接続をテストし、リンクされたサービスを作成できます

システム割り当てマネージド ID 認証

Azure Data Factory または Synapse Analytics のリンクされたサービスで認証の種類としてシステム割り当てマネージド ID を使用して Azure Database for PostgreSQL に接続するには、次の手順が必要です。 このプロセスには、適切な認証方法の選択、接続の詳細の構成、接続の確認が含まれます。 続行する前に、必要な前提条件とアクセス許可があることを確認します。

  1. Azure Database for PostgreSQL リソースの [セキュリティ]

    1. アイデンティティを選択

    2. システム割り当てマネージド IDオンになっていることを確認する

      Azure Database for PostgreSQL サーバー リソースのシステム割り当てマネージド ID 構成のスクリーンショット。

  2. Azure Data Factory リソースで、

    1. [設定] を選択し、[マネージド ID] を選択します

    2. [システム割り当て済み] タブで、状態が [オン] になっていることを確認します

      Azure Data Factory リソースのシステム割り当てマネージド ID 構成のスクリーンショット。

  3. Azure Database for PostgreSQL リソースの [セキュリティ]

    1. 認証を選択

    2. Microsoft Entra 認証のみ、または PostgreSQL と Microsoft Entra 認証方法のいずれかを選択します。

    3. + Microsoft Entra 管理者の追加 を選択してください

    4. Azure Data Factory リソースのシステム割り当てマネージド ID を Microsoft Entra 管理者の 1 人として追加する

      Azure Database for PostgreSQL リソースに Azure Data Factory システム割り当てマネージド ID 構成を追加するスクリーンショット。

  4. Azure Data Factory のリンクされたサービスで、認証の種類として システム割り当てマネージド ID を 選択します。

    選択されたシステム割り当てマネージド ID のスクリーンショット。

  5. アカウントの選択方法で、Azure サブスクリプションからまたは手動で入力を選択します。

    Azure サブスクリプションサーバー名、およびデータベース名を選択します。 また、 ポートを入力します。

    Azure サブスクリプションのアカウント選択方法のスクリーンショット。

  6. これで、接続をテストし、リンクされたサービスを作成できます

ユーザー割り当てマネージド ID 認証

Azure Data Factory または Synapse Analytics のリンクされたサービスで認証の種類としてユーザー割り当てマネージド ID を使用して Azure Database for PostgreSQL に接続するには、次の手順が必要です。 このプロセスには、適切な認証方法の選択、接続の詳細の構成、接続の確認が含まれます。 続行する前に、必要な前提条件とアクセス許可があることを確認します。

  1. Azure portal でユーザー割り当てマネージド ID リソースを 作成します。 詳細については、「ユーザー割り当てマネージド ID の管理」を参照してください

  2. ユーザー割り当てマネージド ID を Azure Database for PostgreSQL リソースに割り当てる

    1. Azure Database for PostgreSQL サーバー リソースの [セキュリティ]

    2. 認証を選択

    3. Microsoft Entra 認証のみ、または PostgreSQL と Microsoft Entra 認証方法のいずれかを選択します。

    4. [ + Microsoft Entra 管理者の追加] をクリックし、ユーザー割り当てマネージド ID を選択します

      Azure Database for PostgreSQL サーバーのユーザー割り当てマネージド ID 構成のスクリーンショット。

  3. ユーザー割り当てマネージド ID を Azure Data Factory リソースに割り当てる

    1. [設定] を選択し、[マネージド ID] を選択します

    2. [ ユーザー割り当て ] タブの下。 [+ 追加 ] をクリックし、ユーザーマネージド ID を選択します

      Azure Data Factory リソースのユーザー割り当てマネージド ID 構成のスクリーンショット。

  4. Azure Data Factory のリンクされたサービスで、認証の種類としてユーザー割り当てマネージド ID を選択します

    リンクされたサービスの認証の種類で選択されたユーザー割り当てマネージド ID のスクリーンショット。

  5. アカウントの選択方法で、Azure サブスクリプションからまたは手動で入力を選択します。

    Azure サブスクリプションサーバー名、およびデータベース名を選択します。 また、 ポートを入力します。

    Azure サブスクリプションのアカウント選択方法のスクリーンショット。

  6. [資格情報] で、またはユーザー割り当てマネージド ID 資格情報を選択するか、[+ 新規] を使用して新しい ID を作成します

    選択された資格情報のドロップ メニューのスクリーンショット。

    1. 新しい資格情報を作成する必要がある場合は、[+ 新規] を選択します。

    2. Typeユーザー割り当てマネージド ID であることを確認する

    3. Azure サブスクリプションを選択する

    4. ユーザーに割り当てられたマネージドアイデンティティData Factory に割り当て済みの下でマネージド ID を選択し、作成をクリックします

      ユーザー マネージド ID が選択された [資格情報の作成] のスクリーンショット。

  7. これで、接続をテストし、リンクされたサービスを作成できます

接続をテスト

  1. 必要な接続フィールドがすべて入力されると、右下隅に [テスト接続 ] ボタンが表示されます。 テスト接続ボタンは、リンクされたサービスが Azure Database for PostgreSQL サーバーに接続できることを確認します。

    Azure Database for PostgreSQL コネクタのテスト接続の [新しいリンクされたサービス] ウィンドウのスクリーンショット。

  2. [ 作成 ] ボタンをクリックします

リンクサービスJSON

次の表では、Azure Database for PostgreSQL のリンクされたサービスのプロパティについて説明します。 プロパティは JSON 形式で定義されます。これは、リンクされたサービスをプログラムで作成するために使用されます。

プロパティ 説明 必須
名前 リンクされたサービスの名前。 名前付け規則を参照してください イエス
リンクされたサービスの種類 AzurePostgreSql にする必要があります イエス
サーバー Azure Database for PostgreSQL フレキシブル サーバー インスタンスの完全修飾ホスト名 イエス
ポート Azure Database for PostgreSQL フレキシブル サーバー インスタンスのポート番号 イエス
データベース データベース名 イエス
sslモード SSL 接続構成を表す数値。 0 (無効)、 1 (許可)、 2 (優先)、 3 (必須)、 4 (VerifyCA)、 5 (VerifyFull) イエス
認証タイプ 使用する認証を指定します。 BasicAuthServicePrincipalSystemAssignedManagedIdentity、または UserAssignedManagedIdentity イエス
資格情報 ユーザー割り当てマネージド ID を資格情報オブジェクトとして指定します。 UserAssignedManagedIdentity に必要です。 それ以外の場合は必須ではありません
ユーザー名 基本認証用のユーザー名、またはサービス プリンシパル認証用のサービス プリンシパル名 イエス
パスワード 基本認証のユーザー名パスワード BasicAuth の場合は必須。 それ以外の場合は必須ではありません
テナント テナント ID ServicePrincipal 認証の種類に必要
servicePrincipalId サービス主体 ID ServicePrincipal 認証の種類に必要
servicePrincipalCredentialType サービス プリンシパルの種類。 ServicePrincipalCert または ServicePrincipalKey イエス
servicePrincipalEmbeddedCert サービス プリンシパル証明書 ServicePrincipalCert の場合は必須。 それ以外の場合は必須ではありません
servicePrincipalEmbeddedCertPassword サービス プリンシパル証明書のパスワード いいえ
servicePrincipalKey サービス プリンシパル キー (サービスの主体キー) ServicePrincipalKey が servicePrincipalCredentialType の場合は必須。 それ以外の場合は必須ではありません

認証の種類に応じて、異なるフィールドに異なる JSON ペイロードが必要です。

基本認証、サービス プリンシパル証明書、サービス プリンシパル キーなど、さまざまな認証方法の JSON 構成例を次に示します。 これらの JSON テンプレートは、特定の要件に合わせてカスタマイズできます。

BasicAuth を使用するリンクされたサービスは、次のように JSON 形式で定義されます。

{
    "name": "<Name of the linked service>",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server host name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "username": "<Service Principal Name>",
            "authenticationType": "BasicAuth",
            "password": "<username password>"
        }
    }
}

サービス プリンシパル証明書を使用するリンクされたサービスは、次のように JSON 形式で定義されます。

{
    "name": "<Name of the linked service>",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server host name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "username": "<Service Principal Name>",
            "authenticationType": "ServicePrincipal",
            "tenant": "<Tenant ID>",
            "servicePrincipalId": "<SP ID>",
            "servicePrincipalCredentialType": "ServicePrincipalCert",
            "servicePrincipalEmbeddedCert": "<Embedded certificate>",
            "servicePrincipalEmbeddedCertPassword": "<Service Principal certificate password>"
        }
    }
}

サービス プリンシパル キーを使用するリンクされたサービスは、次のように JSON 形式で定義されます。

{
    "name": "<Name of the linked service>",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server host name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "username": "<Service Principal Name>",
            "authenticationType": "ServicePrincipal",
            "tenant": "<Tenant ID>",
            "servicePrincipalId": "<SP ID>",
            "servicePrincipalCredentialType": "ServicePrincipalKey",
            "servicePrincipalKey": "<Service Principal Key>"
        }
    }
}

システム割り当てマネージド ID の例:

{
    "name": "AzurePostgreSqlLinkedService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "authenticationType": "SystemAssignedManagedIdentity"
        }
    }
}

ユーザー割り当てマネージド ID の例:

{
    "name": "AzurePostgreSqlLinkedService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "authenticationType": "UserAssignedManagedIdentity",
            "credential": {
                "referenceName": "<your credential>",
                "type": "CredentialReference"
            }
        }
    }
}

API を使用してリンクされたサービスを作成する

リンクされたサービスは、 管理ハブ と、それらを参照するアクティビティ、データセット、またはデータ フローを使用して、Azure Data Factory ポータルで作成できます。

リンクされたサービスは、 .NET APIPowerShellREST APIAzure Resource Manager テンプレートAzure portal のいずれかのツールを使用して作成できます。

リンクされたサービスを作成する場合、ユーザーは指定されたサービスに対して適切な承認を必要とします。 十分なアクセス権が付与されていない場合、ユーザーは使用可能なリソースを表示できないため、手動入力オプションを使用する必要があります。

アクティビティ

アクティビティは、特定のタスクを実行できるパイプライン内のタスクです。 スクリプト アクティビティを使用すると、ユーザーは PostgreSQL スクリプトを実行して、データベースのクエリまたは変更を行うことができます。