次の方法で共有


Azure Arcによって有効にされたSQL Serverのマネージド ID とMicrosoft Entra認証を設定する

適用対象: SQL Server 2025 (17.x)

この記事では、Azure Arcによって有効にされたSQL Serverのマネージド ID Microsoft Entra ID設定および構成する手順について説明します。

SQL Serverを使用したマネージド ID の概要については、Azure Arc で有効になっているSQL Serverの管理 ID に関するページを参照してください。

[前提条件]

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

  • SQL Server 2025 以降でサポートされ、Windowsで実行されます。
  • SQL Serverを Azure Arc
  • Azure Extension for SQL Server の最新バージョン。

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

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

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

  1. Azure ポータルで Azure Arc によって有効化された SQL Server リソースに移動します。

  2. Settings で、Microsoft Entra ID と Purview を選択して、Microsoft Entra ID および Purview ページを開きます。

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

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

    Azure ポータルでの Microsoft Entra オプションのスクリーンショット。

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

Important

これらのアクセス許可を付与できるのは 、特権ロール管理者 以上のロールだけです。

SQL Server インスタンスに対して Microsoft Entra 認証を有効にするには、システム割り当てマネージド ID ごとに、Microsoft Graph をクエリするための User.Read.AllGroupMember.Read.All、および Application.Read.All アクセス許可が必要です。 これらのアクセス許可の詳細については、以下を参照してください。

  • User.Read.All: Microsoft Entraユーザー情報へのアクセスを許可します。
  • GroupMember.Read.All: グループ情報へのアクセスMicrosoft Entra許可します。
  • Application.Read.All: Microsoft Entraサービス プリンシパル (アプリケーション) 情報へのアクセスを許可します。

これらのアクセス許可はアプリケーション レベルのアクセス許可 (アプリ ロール) であり、各マネージド ID に直接割り当てる必要があります。 Microsoft Entra セキュリティ グループに手動で割り当て、グループ メンバーシップを使用してメンバーに付与することはできません。 コンピューターが多数ある環境では、Directory Readers ロールを role-assignable Microsoft Entra セキュリティ グループに割り当て、マネージド ID をメンバーとして追加することもできます。 アプリ ロールのアクセス許可とは異なり、このMicrosoft Entra ロールはグループ レベルで付与できるため、大規模な管理が簡素化されます。 ただし、Directory Reader は、すべてのディレクトリ オブジェクトに対して広範な読み取りアクセス権を付与し、対象となる 3 つのGraph APIアクセス許可を大幅に超えています。 最小特権アクセスが必要な運用環境では、 ディレクトリ閲覧者 ロールは推奨されません。

次の PowerShell スクリプトは、マネージド ID に必要なアクセス許可を付与します。 このスクリプトが PowerShell 7.5 以降のバージョンで実行され、Microsoft.Graph モジュール 2.28 以降がインストールされていることを確認します。

# Set your Azure tenant and managed identity name
$tenantID = '<Enter-Your-Azure-Tenant-Id>'
$managedIdentityName = '<Enter-Your-Arc-HostMachine-Name>'

# Connect to Microsoft Graph
try {
    Connect-MgGraph -TenantId $tenantID -ErrorAction Stop
    Write-Output "Connected to Microsoft Graph successfully."
}
catch {
    Write-Error "Failed to connect to Microsoft Graph: $_"
    return
}

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

# Get the managed identity service principal
$managedIdentity = Get-MgServicePrincipal -Filter "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 using scoped syntax
foreach ($roleValue in $requiredRoles) {
    $appRole = $graphSP.AppRoles | Where-Object {
        $_.Value -eq $roleValue -and $_.AllowedMemberTypes -contains "Application"
    }

    if ($appRole) {
        try {
            New-MgServicePrincipalAppRoleAssignment   -ServicePrincipalId $managedIdentity.Id `
                -PrincipalId $managedIdentity.Id `
                -ResourceId $graphSP.Id `
                -AppRoleId $appRole.Id `
                -ErrorAction Stop

            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 のログインとユーザーを作成します。