次の方法で共有


Azure Arc で有効になっている SQL Server のマネージド ID (プレビュー)

適用対象: SQL Server 2025 (17.x) プレビュー

この記事では、Azure Arc によって有効になっている SQL Server のマネージド ID を構成する方法について説明します。

SQL Server 2025 (17.x) プレビューには、Windows 上の SQL Server のマネージド ID サポートが含まれています。 マネージド ID を使用して、Microsoft Entra 認証を使用して Azure 内のリソースと対話します。

SQL Server 2025 でのマネージド ID の使用は現在 プレビュー段階です

概要

SQL Server 2025 (17.x) プレビューでは、 Microsoft Entra マネージド ID のサポートが導入されています。 資格情報を管理する必要なく、マネージド ID を使用して Azure サービスに対する認証を行います。 マネージド ID は Azure によって自動的に管理され、Microsoft Entra 認証をサポートするすべてのサービスに対する認証に使用できます。 SQL Server 2025 (17.x) プレビューでは、マネージド ID を使用して受信接続を認証したり、Azure サービスへの送信接続を認証したりできます。

SQL Server インスタンスを Azure Arc に接続すると、SQL Server ホスト名に対してシステム割り当てマネージド ID が自動的に作成されます。 マネージド ID が作成されたら、レジストリを更新して、ID を SQL Server インスタンスと Microsoft Entra テナント ID に関連付ける必要があります。

Azure Arc によって有効になっている SQL Server でマネージド ID を使用する場合は、次の点を考慮してください。

  • マネージド ID は、Azure Arc サーバー レベルで割り当てられます。
  • システム割り当てマネージド ID のみがサポートされます。
  • SQL Server では、この Azure Arc サーバー レベルのマネージド ID が プライマリ マネージド ID として使用されます。
  • SQL Server は、 inbound 接続または outbound 接続のいずれかで、このプライマリ マネージド ID を使用できます。
    • Inbound connections は、ログインと SQL Server に接続するユーザーです。 受信接続は、 SQL Server 2022 から入手できるアプリ登録を使用して実現することもできます。
    • Outbound connections は、URL へのバックアップや Azure Key Vault への接続など、Azure リソースへの SQL Server 接続です。
  • アプリの登録では、SQL Server が送信接続を行 うことができません 。 送信接続には、SQL Server に割り当てられたプライマリ マネージド ID が必要です。

[前提条件]

Azure Arc によって有効になっている SQL Server でマネージド ID を使用する前に、次の前提条件を満たしていることを確認してください。

プライマリ マネージド ID を有効にする

Azure Extension for SQL Server をサーバーにインストールした場合は、Azure portal から直接、SQL Server インスタンスのプライマリ マネージド ID を有効にすることができます。 レジストリを更新してプライマリ マネージド ID を手動で有効にすることもできますが、細心の注意を払って行う必要があります。

Azure portal でプライマリ マネージド ID を有効にするには、次の手順に従います。

  1. Azure portal で Azure Arc リソースによって有効になっている SQL Server に移動します。

  2. [ 設定] で Microsoft Entra ID と Purview を 選択し、 Microsoft Entra ID と Purview ページを 開きます。

    [Microsoft Entra ID 認証を有効にする] オプションが表示されない場合は、SQL Server インスタンスが Azure Arc に接続されていること、および最新の SQL 拡張機能がインストールされていることを確認します。

  3. [Microsoft Entra ID と Purview] ページで、[プライマリ マネージド ID を使用する] の横にあるチェック ボックスをオンにし、[保存] を使用して構成を適用します。

    Azure portal の Microsoft Entra オプションのスクリーンショット。

ID にアプリケーションのアクセス許可を付与する

Arc 対応マシン名を使用するシステム割り当てマネージド ID には、次の Microsoft Graph アプリケーションアクセス許可 (アプリ ロール) が必要です。 User.Read.AllGroupMember.Read.All、および Application.Read.All

PowerShell を使用して、マネージド ID に必要なアクセス許可を付与できます。 または、 ロール割り当て可能なグループを作成することもできます。 グループが作成されたら、 ディレクトリ 閲覧者 ロールをグループに割り当て、Arc 対応マシンのすべてのシステム割り当てマネージド ID をグループに追加します。

次の PowerShell スクリプトは、マネージド ID に必要なアクセス許可を付与します。

# Update these variables to match your Azure & Arc machine setup
$tenantID = '<Enter-Your-Azure-Tenant-Id>'
$managedIdentityName = '<Enter-Your-Arc-HostMachine-Name>'

# Install and connect to AzureAD
try {
    Install-Module -Name AzureAD -Force -Scope CurrentUser -ErrorAction Stop
    Import-Module AzureAD
    Connect-AzureAD -TenantId $tenantID
    Write-Output "Connected to AzureAD successfully."
} catch {
    Write-Error "Failed to install or connect to AzureAD: $_"
    return
}

# Get Microsoft Graph API service principal
$graphAppId = '00000003-0000-0000-c000-000000000000'
$graphSP = Get-AzureADServicePrincipal -Filter "appId eq '$graphAppId'"
if (-not $graphSP) {
    Write-Error "Microsoft Graph service principal not found."
    return
}

# Get the managed identity
$managedIdentity = Get-AzureADServicePrincipal -SearchString $managedIdentityName | Where-Object { $_.DisplayName -eq $managedIdentityName }

if (-not $managedIdentity) {
    Write-Error "Managed identity '$managedIdentityName' not found."
    return
}

# Define roles to assign
$requiredRoles = @(
    "User.Read.All",
    "GroupMember.Read.All",
    "Application.Read.All"
)

# Assign roles
foreach ($roleValue in $requiredRoles) {
    $appRole = $graphSP.AppRoles | Where-Object { $_.Value -eq $roleValue -and $_.AllowedMemberTypes -contains "Application" }
    if ($appRole) {
        try {
            New-AzureADServiceAppRoleAssignment `
                -ObjectId $managedIdentity.ObjectId `
                -PrincipalId $managedIdentity.ObjectId `
                -ResourceId $graphSP.ObjectId `
                -Id $appRole.Id
            Write-Output "Successfully assigned role '$roleValue' to '$managedIdentityName'."
        } catch {
            Write-Warning "Failed to assign role '$roleValue': $_"
        }
    } else {
        Write-Warning "Role '$roleValue' not found in Microsoft Graph AppRoles."
    }
}

ログインとユーザーを作成する

Microsoft Entra チュートリアルの手順に従って、マネージド ID のログインとユーザーを作成します。

制限事項

SQL Server 2025 でマネージド ID を使用する場合は、次の制限事項を考慮してください。

  • Microsoft Entra 認証は、Windows Server で実行されている Arc 対応 SQL Server 2025 でのみサポートされます。
  • フェールオーバー クラスター インスタンスでの Microsoft Entra 認証の使用はサポートされていません。
  • SQL Server に対する認証のために選択する ID は、Microsoft Entra ID noディレクトリ閲覧者ロール、または次の 3 つの Microsoft Graph アプリケーションのアクセス許可 (アプリ ロール) (User.Read.AllGroupMember.Read.AllApplication.Read.All) のいずれかを持っている必要があります。
  • Microsoft Entra 認証を有効にすると、無効にすることはお勧めできません。 レジストリ エントリを削除して Microsoft Entra 認証を強制的に無効にすると、SQL Server 2025 で予期しない動作が発生する可能性があります。
  • FIDO2 メソッドを使用した Microsoft Entra 認証による Arc マシン上の SQL Server への認証は、現在サポートされていません。