Azure-SSIS Integration Runtime のMicrosoft Entra 認証を有効にする

適用対象: Azure Data Factory Azure Synapse Analytics (プレビュー)

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

この記事では、Azure Data Factory (ADF) または Azure Synapse の指定されたシステム/ユーザー割り当てマネージド ID を使用した Microsoft Entra 認証を有効にし、従来の認証方法 (SQL 認証など) の代わりにそれを使用して以下を行う方法について説明します。

  • お客様に代わって Azure SQL Database サーバー/Managed Instance で SSIS カタログ データベース (SSISDB) をプロビジョニングする Azure SSIS 統合ランタイム (IR) を作成します。

  • Azure SSIS IR で SSIS パッケージを実行するときに、さまざまな Azure リソースに接続します。

ADF のマネージド ID について詳しくは、「Data Factory および Azure Synapse 用のマネージド ID」をご覧ください。

Note

  • このシナリオで、ADF の指定されたシステム/ユーザー割り当てマネージド ID を使用した Microsoft Entra 認証は、Azure-SSIS IR のプロビジョニングとその後の開始操作でのみ使用され、これにより、SSISDB のプロビジョニングと接続が行われます。 SSIS パッケージの実行については、Azure-SSIS IR は SSISDB のプロビジョニング中に作成されるフル マネージド アカウント (AzureIntegrationServiceDbo および AzureIntegrationServiceWorker) での SQL 認証を使用して SSISDB に引き続き接続し、パッケージをフェッチします。

  • 接続マネージャーのユーザー割り当てマネージド ID 機能、たとえば OLEDB 接続マネージャー を使用するには、接続マネージャーで使用されるのと同じユーザー割り当てマネージド ID で SSIS IR をプロビジョニングする必要があります。

  • SQL 認証を使用して Azure-SSIS IR を既に作成している場合、現時点では、PowerShell を介して Microsoft Entra 認証を使用するように再構成することはできませんが、Azure portal/ADF アプリを介して行うことは可能です。

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を開始するには、Azure PowerShell のインストールに関する記事を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

Azure SQL Database で Microsoft Entra 認証を有効にする

Azure SQL Database は、Microsoft Entra ユーザーを使用したデータベースの作成をサポートしています。 最初に、ADF の指定されたシステム/ユーザー割り当てマネージド ID をメンバーとして使用して Microsoft Entra グループを作成する必要があります。 次に、Azure SQL Database サーバーの Active Directory 管理者として Microsoft Entra ユーザーを設定してから、そのユーザーを使用して SQL Server Management Studio (SSMS) でこれに接続する必要があります。 最後に、Azure-SSIS IR が ADF の指定されたシステム/ユーザー割り当てマネージド ID を使用してユーザーに代わって SSISDB を作成できるように、Microsoft Entra グループを表す包含ユーザーを作成する必要があります。

ADF の指定されたシステム/ユーザー割り当てマネージド ID をメンバーとして使用して Microsoft Entra グループを作成する

既存の Microsoft Entra グループを使用することも、Azure AD PowerShell を使用して新しいグループを作成することもできます。

  1. Azure AD PowerShell モジュールをインストールします。

  2. Connect-AzureAD を使用してサインインし、次のコマンドレットを実行してグループを作成し、それを変数に保存します。

    $Group = New-AzureADGroup -DisplayName "SSISIrGroup" `
                              -MailEnabled $false `
                              -SecurityEnabled $true `
                              -MailNickName "NotSet"
    

    Note

    Azure AD および MSOnline PowerShell モジュールは、2024 年 3 月 30 日の時点で非推奨となります。 詳細については、非推奨の最新情報を参照してください。 この日以降、これらのモジュールのサポートは、Microsoft Graph PowerShell SDK への移行支援とセキュリティ修正プログラムに限定されます。 非推奨になるモジュールは、2025 年 3 月 30 日まで引き続き機能します。

    Microsoft Entra ID (旧称 Azure AD) を使用するには、Microsoft Graph PowerShell に移行することをお勧めします。 移行に関する一般的な質問については、「移行に関する FAQ」を参照してください。 注: バージョン 1.0.x の MSOnline では、2024 年 6 月 30 日以降に中断が発生する可能性があります。

    結果は次の例のようになります。ここには、変数値も表示されます。

    $Group
    
    ObjectId DisplayName Description
    -------- ----------- -----------
    6de75f3c-8b2f-4bf4-b9f8-78cc60a18050 SSISIrGroup
    
  3. ADF の指定されたシステム/ユーザー割り当てマネージド ID をグループに追加します。 「Data Factory および Azure Synapse 用のマネージド ID」の記事に従って、ADF の指定されたシステム/ユーザー割り当てマネージド ID のオブジェクト ID (たとえば 765ad4ab-XXXX-XXXX-XXXX-51ed985819dc。ただし、この目的にアプリケーション ID は使用しないでください) を取得できます。

    Add-AzureAdGroupMember -ObjectId $Group.ObjectId -RefObjectId 765ad4ab-XXXX-XXXX-XXXX-51ed985819dc
    

    後でグループ メンバーシップを確認することもできます。

    Get-AzureAdGroupMember -ObjectId $Group.ObjectId
    

Azure SQL Database の Microsoft Entra 認証を構成する

次の手順を使用して、Azure SQL Database の Microsoft Entra 認証を構成して管理することができます。

  1. Azure portal で、左側のナビゲーションから [すべてのサービス] ->[SQL Server] を選択します。

  2. Microsoft Entra 認証を構成する Azure SQL Database サーバーを選択します。

  3. ブレードの [設定] セクションで [Active Directory 管理者] を選択します。

  4. コマンド バーで、 [管理者の設定] を選択します。

  5. サーバーの管理者にする Microsoft Entra ユーザー アカウントを選択し、[選択] を選択します。

  6. コマンド バーの [保存] を選択します。

Microsoft Entra グループを表す包含ユーザーを Azure SQL Database に作成する

次の手順では、SSMS が必要になります。

  1. SSMS を起動します。

  2. [サーバーに接続] ダイアログで、 [サーバー名] フィールドにサーバー名を入力します。

  3. [認証] フィールドで、[Active Directory - MFA サポートで汎用] を選択します (他の 2 つの Active Directory 認証の種類を使用することもできます。「Azure SQL Database の Microsoft Entra 認証の構成と管理」を参照してください)。

  4. [ユーザー名] フィールドに、サーバー管理者として設定した Microsoft Entra アカウントの名前を入力します (例: testuser@xxxonline.com)。

  5. [接続] を選択し、サインイン プロセスを完了します。

  6. オブジェクト エクスプローラーで、[データベース] -> [システム データベース] フォルダーを展開します。

  7. マスター データベースを右クリックし、 [新しいクエリ] を選択します。

  8. クエリ ウィンドウで、次の T-SQL コマンドを入力し、ツールバーの [実行] を選択します。

    CREATE USER [SSISIrGroup] FROM EXTERNAL PROVIDER
    

    このコマンドは正常に完了し、グループを表す包含ユーザーが作成されます。

  9. クエリ ウィンドウをクリアして、次の T-SQL コマンドを入力し、ツールバーの [実行] を選択します。

    ALTER ROLE dbmanager ADD MEMBER [SSISIrGroup]
    

    このコマンドは正常に完了し、包含ユーザーにデータベース (SSISDB) を作成する権限が与えられます。

  10. SSISDB が SQL 認証を使用して作成されていて、Azure-SSIS IR で Microsoft Entra 認証を使用してこれにアクセスするように切り替えたい場合は、最初に、マスター データベースにアクセス許可を付与する上記の手順が正常に完了していることを確認します。 次に、SSISDB データベースを右クリックし、 [新しいクエリ] を選択します。

    1. クエリ ウィンドウで、次の T-SQL コマンドを入力し、ツールバーの [実行] を選択します。

      CREATE USER [SSISIrGroup] FROM EXTERNAL PROVIDER
      

      このコマンドは正常に完了し、グループを表す包含ユーザーが作成されます。

    2. クエリ ウィンドウをクリアして、次の T-SQL コマンドを入力し、ツールバーの [実行] を選択します。

      ALTER ROLE db_owner ADD MEMBER [SSISIrGroup]
      

      コマンドは正常に完了し、包含ユーザーに SSISDB にアクセスする権限が与えられます。

Azure SQL Managed Instance で Microsoft Entra 認証を有効にする

Azure SQL Managed Instance は、ADF の指定されたシステム/ユーザー割り当てマネージド ID によるデータベースの直接の作成をサポートしています。 ADF の指定されたシステム/ユーザー割り当てマネージド ID を Microsoft Entra グループに参加させたり、そのグループを表す包含ユーザーを Azure SQL Managed Instance 内に作成したりする必要はありません。

Azure SQL Managed Instance の Microsoft Entra 認証を構成する

Azure SQL Managed Instance の Microsoft Entra 管理者のプロビジョニングの手順に従います。

ADF または Azure Synapse の指定されたシステム/ユーザー割り当てマネージド ID を Azure SQL Managed Instance にユーザーとして追加する

次の手順では、SSMS が必要になります。

  1. SSMS を起動します。

  2. sysadmin である SQL Server アカウントを使用して、Azure SQL Managed Instance に接続します。 これは、Azure SQL Managed Instance で Microsoft Entra サーバー プリンシパル (ログイン) のサポートが一般提供されるようになると削除される一時的な制限事項です。 Microsoft Entra 管理者アカウントを使用してログインを作成しようとすると、次のエラーが表示されます: Msg 15247、Level 16、State 1、Line 1 このアクションを実行するアクセス許可がユーザーにありません

  3. オブジェクト エクスプローラーで、[データベース] -> [システム データベース] フォルダーを展開します。

  4. マスター データベースを右クリックし、 [新しいクエリ] を選択します。

  5. クエリ ウィンドウで、次の T-SQL スクリプトを実行して、ADF の指定されたシステム/ユーザー割り当てマネージド ID をユーザーとして追加します。

    CREATE LOGIN [{your managed identity name}] FROM EXTERNAL PROVIDER
    ALTER SERVER ROLE [dbcreator] ADD MEMBER [{your managed identity name}]
    ALTER SERVER ROLE [securityadmin] ADD MEMBER [{your managed identity name}]
    

    ADF にシステム マネージド ID を使用する場合、your managed identity name はご利用の ADF 名である必要があります。 ADF にユーザー割り当てマネージド ID を使用する場合、your managed identity name は、指定されたユーザー割り当てマネージド ID 名である必要があります。

    このコマンドは正常に完了し、ADF のシステム/ユーザー割り当てマネージド ID にデータベース (SSISDB) を作成する権限が与えられます。

  6. SSISDB が SQL 認証を使用して作成されていて、Azure-SSIS IR で Microsoft Entra 認証を使用してこれにアクセスするように切り替えたい場合は、最初に、マスター データベースにアクセス許可を付与する上記の手順が正常に完了していることを確認します。 次に、SSISDB データベースを右クリックし、 [新しいクエリ] を選択します。

    1. クエリ ウィンドウで、次の T-SQL コマンドを入力し、ツールバーの [実行] を選択します。

      CREATE USER [{your managed identity name}] FOR LOGIN [{your managed identity name}] WITH DEFAULT_SCHEMA = dbo
      ALTER ROLE db_owner ADD MEMBER [{your managed identity name}]
      

      このコマンドは正常に完了し、ADF のシステム/ユーザー割り当てマネージド ID に SSISDB にアクセスする権限が与えられます。

Azure Portal/ADF アプリで Azure-SSIS IR をプロビジョニングする

Azure portal/ADF アプリで Azure-SSIS IR をプロビジョニングする場合は、[展開設定] ページで、[Azure SQL Database サーバー/マネージド インスタンスによってホストされる SSIS カタログ (SSISDB) を作成して、プロジェクト、パッケージ、環境、実行ログを格納する] チェック ボックスをオンにして、[Data Factory のシステム管理 ID による Microsoft Entra 認証を使用する] または [Data Factory のユーザー割り当てマネージド ID による Microsoft Entra 認証を使用する] チェック ボックスをオンにして、SSISDB をホストするデータベース サーバーにアクセスするための Azure-SSIS IR の Microsoft Entra 認証方法を選択します。

詳細については、ADF での Azure-SSIS IR の作成に関する記事を参照してください。

PowerShell で Azure-SSIS IR をプロビジョニングする

PowerShell を使用して Azure-SSIS IR をプロビジョニングするには、次のようにします。

  1. Azure PowerShell モジュールをインストールします。

  2. スクリプトで CatalogAdminCredential パラメーターを設定しないでください。 次に例を示します。

    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
                                          -DataFactoryName $DataFactoryName `
                                          -Name $AzureSSISName `
                                          -Description $AzureSSISDescription `
                                          -Type Managed `
                                          -Location $AzureSSISLocation `
                                          -NodeSize $AzureSSISNodeSize `
                                          -NodeCount $AzureSSISNodeNumber `
                                          -Edition $AzureSSISEdition `
                                          -MaxParallelExecutionsPerNode $AzureSSISMaxParallelExecutionsPerNode `
                                          -CatalogServerEndpoint $SSISDBServerEndpoint `
                                          -CatalogPricingTier $SSISDBPricingTier
    
    Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
                                            -DataFactoryName $DataFactoryName `
                                            -Name $AzureSSISName
    

ADF の指定されたシステム/ユーザー割り当てマネージド ID で Microsoft Entra 認証を使用して SSIS パッケージを実行する

Azure-SSIS IR で SSIS パッケージを実行する場合、ADF の指定されたシステム/ユーザー割り当てマネージド ID で Microsoft Entra 認証を使用して、さまざまな Azure リソースに接続できます。 現在、以下の接続マネージャーで、ADF の指定されたシステム/ユーザー割り当てマネージド ID を使用した Microsoft Entra 認証がサポートされています。