Aangepaste rollen voor onlinemigraties van SQL Server naar Azure SQL Managed Instance

Azure Database Migration Service maakt gebruik van een APP-id om te communiceren met Azure Services. De APP-id vereist de rol Inzender op abonnementsniveau (die veel bedrijfsbeveiligingsafdelingen niet toestaan) of het maken van aangepaste rollen die de specifieke machtigingen verlenen die Azure Database Migration Service nodig heeft. Aangezien er een limiet is van 2000 aangepaste rollen in Microsoft Entra-id, kunt u alle machtigingen combineren die specifiek zijn vereist voor de APP-id in een of twee aangepaste rollen en vervolgens de APP-id de aangepaste rol verlenen voor specifieke objecten of resourcegroepen (vs. op abonnementsniveau). Als het aantal aangepaste rollen geen probleem is, kunt u de aangepaste rollen op resourcetype splitsen om in totaal drie aangepaste rollen te maken, zoals hieronder wordt beschreven.

Met de sectie AssignableScopes van de json-tekenreeks voor roldefinities kunt u bepalen waar de machtigingen worden weergegeven in de gebruikersinterface roltoewijzing toevoegen in de portal. Waarschijnlijk wilt u de rol definiëren in de resourcegroep of zelfs op resourceniveau om te voorkomen dat de gebruikersinterface met extra rollen onbelangrijke e-mail bevat. Houd er rekening mee dat hiermee de werkelijke roltoewijzing niet wordt uitgevoerd.

Minimum aantal rollen

We raden momenteel aan om minimaal twee aangepaste rollen te maken voor de APP-id, één op resourceniveau en de andere op abonnementsniveau.

Notitie

De laatste vereiste voor aangepaste rollen kan uiteindelijk worden verwijderd, omdat er nieuwe SQL Managed Instance-code wordt geïmplementeerd in Azure.

Aangepaste rol voor de APP-id. Deze rol is vereist voor migratie van Azure Database Migration Service op het niveau van de resource of resourcegroep die als host fungeert voor de Azure Database Migration Service (zie het artikel De portal gebruiken om een Microsoft Entra-toepassing en service-principal te maken die toegang heeft tot resources) voor meer informatie over de APP-id.

{
  "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>",
  ]
}

Aangepaste rol voor de APP-id - abonnement. Deze rol is vereist voor migratie van Azure Database Migration Service op abonnementsniveau die als host fungeert voor het met SQL beheerde exemplaar.

{
  "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>"
  ]
}

De bovenstaande json moet worden opgeslagen in twee tekstbestanden en u kunt de AzureRM-, AZ PowerShell-cmdlets of Azure CLI gebruiken om de rollen te maken met behulp van New-AzureRmRoleDefinition (AzureRM) of New-AzRoleDefinition (AZ).

Zie het artikel Aangepaste Azure-rollen voor meer informatie.

Nadat u deze aangepaste rollen hebt gemaakt, moet u roltoewijzingen toevoegen aan gebruikers en APP-id('s) aan de juiste resources of resourcegroepen:

  • De rol DMS-rol - App-id moet worden verleend aan de APP-id die wordt gebruikt voor de migraties, en ook op het opslagaccount, het Azure Database Migration Service-exemplaar en resourceniveaus van SQL Managed Instance. Deze wordt verleend op het niveau van de resource of resourcegroep die als host fungeert voor de Azure Database Migration Service.
  • De rol 'DMS-rol - App-id - Sub' moet worden verleend aan de APP-id op abonnementsniveau dat als host fungeert voor het beheerde SQL-exemplaar (verlenen bij de resource of resourcegroep mislukt). Deze vereiste is tijdelijk totdat een code-update wordt geïmplementeerd.

Uitgebreid aantal rollen

Als het aantal aangepaste rollen in uw Microsoft Entra-id geen probleem is, raden we u aan om in totaal drie rollen te maken. U hebt nog steeds de rol 'DMS-rol - App-id - Sub' nodig, maar de bovenstaande rol 'DMS-rol - App-id' wordt gesplitst op resourcetype in twee verschillende rollen.

Aangepaste rol voor de APP-id voor 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>"
  ]
}

Aangepaste rol voor de APP-id voor Storage

{
  "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>"
  ]
}

Roltoewijzing

Als u een rol wilt toewijzen aan gebruikers/APP-id, opent u Azure Portal en voert u de volgende stappen uit:

  1. Navigeer naar de resourcegroep of resource (met uitzondering van de rol die moet worden verleend voor het abonnement), ga naar Toegangsbeheer en blader naar de aangepaste rollen die u zojuist hebt gemaakt.

  2. Selecteer de juiste rol, selecteer de APP-id en sla de wijzigingen op.

Uw APP-id('s) worden nu weergegeven op het tabblad Roltoewijzingen .

Volgende stappen