Anpassade roller för onlinemigreringar av SQL Server till Azure SQL Managed Instance

Azure Database Migration Service använder ett APP-ID för att interagera med Azure Services. APP-ID:t kräver antingen rollen Deltagare på prenumerationsnivå (vilket många företagssäkerhetsavdelningar inte tillåter) eller skapande av anpassade roller som ger de specifika behörigheter som Azure Database Migration Service kräver. Eftersom det finns en gräns på 2 000 anpassade roller i Microsoft Entra-ID kanske du vill kombinera alla behörigheter som krävs specifikt av APP-ID:t till en eller två anpassade roller och sedan ge APP-ID:t den anpassade rollen för specifika objekt eller resursgrupper (jämfört med på prenumerationsnivå). Om antalet anpassade roller inte är ett problem kan du dela upp de anpassade rollerna efter resurstyp för att skapa tre anpassade roller totalt enligt beskrivningen nedan.

I avsnittet AssignableScopes i rolldefinitionens json-sträng kan du styra var behörigheterna visas i användargränssnittet lägg till rolltilldelning i portalen. Du kommer förmodligen att vilja definiera rollen på resursgruppen eller till och med resursnivå för att undvika att störa användargränssnittet med extra roller. Observera att detta inte utför den faktiska rolltilldelningen.

Minsta antal roller

Vi rekommenderar för närvarande att du skapar minst två anpassade roller för APP-ID:t, en på resursnivå och den andra på prenumerationsnivå.

Kommentar

Det sista anpassade rollkravet kan så småningom tas bort eftersom ny SQL Managed Instance-kod distribueras till Azure.

Anpassad roll för APP-ID:t. Den här rollen krävs för migrering av Azure Database Migration Service på resurs- eller resursgruppsnivå som är värd för Azure Database Migration Service (mer information om APP-ID finns i artikeln Använd portalen för att skapa ett Microsoft Entra-program och tjänstens huvudnamn som kan komma åt resurser).

{
  "Name": "DMS Role - App ID",
  "IsCustom": true,
  "Description": "DMS App ID access to complete MI migrations",
  "Actions": [
        "Microsoft.Storage/storageAccounts/read",
        "Microsoft.Storage/storageAccounts/listKeys/action",
        "Microsoft.Storage/storageaccounts/blobservices/read",
        "Microsoft.Storage/storageaccounts/blobservices/write",
        "Microsoft.Sql/managedInstances/read",
        "Microsoft.Sql/managedInstances/write",
        "Microsoft.Sql/managedInstances/databases/read",
        "Microsoft.Sql/managedInstances/databases/write",
        "Microsoft.Sql/managedInstances/databases/delete",
        "Microsoft.Sql/managedInstances/metrics/read",
        "Microsoft.DataMigration/locations/*",
        "Microsoft.DataMigration/services/*"
  ],
  "NotActions": [
  ],
  "AssignableScopes": [
    "/subscriptions/<subscription_id>/ResourceGroups/<StorageAccount_rg_name>",
    "/subscriptions/<subscription_id>/ResourceGroups/<ManagedInstance_rg_name>",
    "/subscriptions/<subscription_id>/ResourceGroups/<DMS_rg_name>",
  ]
}

Anpassad roll för APP-ID – prenumeration. Den här rollen krävs för migrering av Azure Database Migration Service på prenumerationsnivå som är värd för SQL Managed Instance.

{
  "Name": "DMS Role - App ID - Sub",
  "IsCustom": true,
  "Description": "DMS App ID access at subscription level to complete MI migrations",
  "Actions": [
        "Microsoft.Sql/locations/managedDatabaseRestoreAzureAsyncOperation/*"
  ],
  "NotActions": [
  ],
  "AssignableScopes": [
    "/subscriptions/<subscription_id>"
  ]
}

json ovan måste lagras i två textfiler och du kan använda antingen AzureRM, AZ PowerShell-cmdletar eller Azure CLI för att skapa rollerna med antingen New-AzureRmRoleDefinition (AzureRM) eller New-AzRoleDefinition (AZ).

Mer information finns i artikeln anpassade Azure-roller.

När du har skapat de här anpassade rollerna måste du lägga till rolltilldelningar till användare och APP-ID:er till lämpliga resurser eller resursgrupper:

  • Rollen "DMS-roll – app-ID" måste beviljas till det APP-ID som ska användas för migreringarna, och även på resursnivåerna Lagringskonto, Azure Database Migration Service och SQL Managed Instance. Den beviljas på resurs- eller resursgruppsnivå som är värd för Azure Database Migration Service.
  • Rollen "DMS-roll – app-ID – under" måste beviljas till APP-ID:t på prenumerationsnivå som är värd för SQL Managed Instance (beviljandet i resursen eller resursgruppen misslyckas). Det här kravet är tillfälligt tills en koduppdatering har distribuerats.

Utökat antal roller

Om antalet anpassade roller i ditt Microsoft Entra-ID inte är ett problem rekommenderar vi att du skapar totalt tre roller. Du behöver fortfarande rollen "DMS-roll – app-ID – under", men rollen "DMS-roll – app-ID" ovan delas upp efter resurstyp i två olika roller.

Anpassad roll för APP-ID för SQL Managed Instance

{
  "Name": "DMS Role - App ID - SQL MI",
  "IsCustom": true,
  "Description": "DMS App ID access to complete MI migrations",
  "Actions": [
        "Microsoft.Sql/managedInstances/read",
        "Microsoft.Sql/managedInstances/write",
        "Microsoft.Sql/managedInstances/databases/read",
        "Microsoft.Sql/managedInstances/databases/write",
        "Microsoft.Sql/managedInstances/databases/delete",
        "Microsoft.Sql/managedInstances/metrics/read"
  ],
  "NotActions": [
  ],
  "AssignableScopes": [
    "/subscriptions/<subscription_id>/resourceGroups/<ManagedInstance_rg_name>"
  ]
}

Anpassad roll för APP-ID för lagring

{
  "Name": "DMS Role - App ID - Storage",
  "IsCustom": true,
  "Description": "DMS App ID storage access to complete MI migrations",
  "Actions": [
"Microsoft.Storage/storageAccounts/read",
        "Microsoft.Storage/storageAccounts/listKeys/action",
        "Microsoft.Storage/storageaccounts/blobservices/read",
        "Microsoft.Storage/storageaccounts/blobservices/write"
  ],
  "NotActions": [
  ],
  "AssignableScopes": [
    "/subscriptions/<subscription_id>/resourceGroups/<StorageAccount_rg_name>"
  ]
}

Rolltilldelning

Om du vill tilldela en roll till användare/APP-ID öppnar du Azure-portalen och utför följande steg:

  1. Gå till resursgruppen eller resursen (förutom den roll som måste beviljas för prenumerationen), gå till Åtkomstkontroll och bläddra sedan för att hitta de anpassade roller som du nyss skapade.

  2. Välj lämplig roll, välj APP-ID och spara sedan ändringarna.

App-ID:t visas nu på fliken Rolltilldelningar .

Nästa steg