Çevrimiçi geçişleri SQL Server için Azure SQL Yönetilen Örneği roller
Azure Veritabanı Geçiş Hizmeti Azure Hizmetleri ile etkileşim kurmak için app id kullanır. APP ID için Abonelik düzeyinde Katkıda Bulunan rolü (birçok Kurumsal güvenlik departmanının izin ver vermeyeceği) veya gerekli olan belirli izinleri veren özel roller Azure Veritabanı Geçiş Hizmeti gerekir. Azure Active Directory'da 2.000 özel rol sınırı olduğu için, APP ID için özel olarak gerekli olan tüm izinleri bir veya iki özel rolde birleştirmek ve ardından APP ID'ye belirli nesnelerde veya kaynak gruplarında (abonelik düzeyinde) özel rol vermek istemeniz gerekebilir. Özel rollerin sayısı sorun değilse, özel rolleri kaynak türüne göre bölerek aşağıda açıklandığı gibi toplamda üç özel rol oluşturabilirsiniz.
Rol tanımı json dizesinin AssignableScopes bölümü, izinlerin portalda Rol Ataması Ekle kullanıcı arabiriminde nerede görüntü olduğunu denetlemenize olanak sağlar. Kullanıcı arabirimini fazladan rollerle karmaşık hale önlemek için büyük olasılıkla rolü kaynak grubunda, hatta kaynak düzeyinde tanımlamak istersiniz. Bunun gerçek rol ataması gerçekleştirmez.
Minimum rol sayısı
Şu anda APP ID için biri kaynak düzeyinde, diğeri abonelik düzeyinde olmak üzere en az iki özel rol oluşturmanızı öneririz.
Not
Yeni SQL Yönetilen Örneği kodu Azure'a dağıtıldığından, son özel rol gereksinimi sonunda kaldırılabilir.
APP ID için Özel Rol. Azure Veritabanı Geçiş Hizmeti'i barındıran kaynak veya kaynak grubu düzeyinde Azure Veritabanı Geçiş Hizmeti geçişi için bu rol gereklidir (APP ID hakkında daha fazla bilgi için portalı kullanarak kaynaklara erişen bir Azure AD uygulaması ve hizmet sorumlusu oluşturma makalesine bakın).
{
"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>",
]
}
APP ID için özel rol - aboneliği. Bu rol, sql Azure Veritabanı Geçiş Hizmeti barındıran abonelik düzeyinde geçiş için gereklidir.
{
"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>"
]
}
Yukarıdaki json üç metin dosyası içinde depolanmış olmalıdır ve rolleri oluşturmak için AzureRM, AZ PowerShell cmdlet'lerini veya Azure CLI'yı kullanarak New-AzureRmRoleDefinition (AzureRM) veya New-AzRoleDefinition (AZ) kullanarak rolleri oluşturabilirsiniz.
Daha fazla bilgi için Azure özel rolleri makalesine bakın.
Bu özel rolleri oluşturdukta, uygun kaynaklara veya kaynak gruplarına kullanıcılara ve APP ID'lere rol atamaları eklemeniz gerekir:
- "DMS Rolü - Uygulama Kimliği" rolü, geçişler için kullanılacak APP ID'ye ve depolama hesabı, Azure Veritabanı Geçiş Hizmeti örneği ve SQL Yönetilen Örneği kaynak düzeylerinde ver gerekir. Bu, kaynağı barındıran kaynak veya kaynak grubu düzeyinde Azure Veritabanı Geçiş Hizmeti.
- SQL Yönetilen Örneği barındıran abonelik düzeyinde APP ID'ye "DMS Rolü - Uygulama Kimliği - Alt" rolü verilmiyor (kaynak veya kaynak grubunda verilenler başarısız olur). Kod güncelleştirmesi dağıtılana kadar bu gereksinim geçicidir.
Genişletilmiş rol sayısı
Özel rollerin sayısı Azure Active Directory önemli değilse toplam üç rol oluşturmanızı öneririz. Yine de "DMS Rolü - Uygulama Kimliği – Alt" rolüne ihtiyacınız vardır, ancak yukarıdaki "DMS Rolü - Uygulama Kimliği" rolü kaynak türüne göre iki farklı role ayrılır.
SQL Yönetilen Örneği için APP ID için özel rol
{
"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>"
]
}
Depolama için APP ID için özel rol
{
"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>"
]
}
Rol ataması
Kullanıcılara/APP ID'ye rol atamak için Azure portal aşağıdaki adımları gerçekleştirin:
Kaynak grubuna veya kaynağa gidin (abonelikte verilmesi gereken rol dışında), Access Control'ye gidin ve ardından yeni oluşturduğunuz özel rolleri bulmak için sayfayı kaydırın.
Uygun rolü seçin, APP ID'yi seçin ve değişiklikleri kaydedin.
APP Kimlikleri artık Rol atamaları sekmesinde listelenmiş olarak görünür.
Sonraki adımlar
- Microsoft Veritabanı Geçiş Kılavuzu'daki senaryo için geçiş kılavuzunu gözden geçirme.