この記事では、SQL Server データベースの移行のために Azure でカスタム ロールを設定する方法について説明します。 カスタム ロールは、Azure 仮想マシンを対象とする Azure Database Migration Service のインスタンスを使用して移行を開始および実行するために必要なアクセス許可のみを使用して構成されます。 Azure Database Migration Service の新しいインスタンスをプロビジョニングするには、サブスクリプション レベルで 所有者 ロールまたは 共同作成者 ロールを割り当てる必要があります。
ユーザーは以下の組み込みロールも利用できます:
- SqlVM移行役割
- SqlMI 移行役割
- SqlDB移行の役割
これらの組み込みロールにより、ユーザーは以下が可能になります:
- Database Migration Service(DMS)インスタンスを作成・削除します。
- DMSを使ってデータベースの移行を実行します。
注
Azureポータルを使って移行を設定するには、Blobコンテナ上のStorage Blob Data Readerアクセスも必要です。
カスタムロールの場合:
Azure portal の ロールの割り当ての追加 UI でアクセス許可を表示する場所を制御するには、ロール定義 JSON 文字列の AssignableScopes セクションを使用します。 余分なロールで UI が乱雑にならないように、リソース グループのレベル、またはリソースのレベルで、ロールを定義したい場合があります。 カスタム ロールが適用されるリソースで、実際のロールの割り当てが実行されることはありません。
{
"properties": {
"roleName": "DmsCustomRoleDemoForVM",
"description": "",
"assignableScopes": [
"/subscriptions/<storageSubscription>/resourceGroups/<storageAccountRG>",
"/subscriptions/<ManagedInstanceSubscription>/resourceGroups/<virtualMachineRG>",
"/subscriptions/<DMSSubscription>/resourceGroups/<dmsServiceRG>"
],
"permissions": [
{
"actions": [
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/listkeys/action",
"Microsoft.Storage/storageAccounts/blobServices/read",
"Microsoft.Storage/storageAccounts/blobServices/write",
"Microsoft.Storage/storageAccounts/blobServices/containers/read",
"Microsoft.SqlVirtualMachine/sqlVirtualMachines/read",
"Microsoft.SqlVirtualMachine/sqlVirtualMachines/write",
"Microsoft.DataMigration/locations/operationResults/read",
"Microsoft.DataMigration/locations/operationStatuses/read",
"Microsoft.DataMigration/locations/sqlMigrationServiceOperationResults/read",
"Microsoft.DataMigration/databaseMigrations/write",
"Microsoft.DataMigration/databaseMigrations/read",
"Microsoft.DataMigration/databaseMigrations/delete",
"Microsoft.DataMigration/databaseMigrations/cancel/action",
"Microsoft.DataMigration/databaseMigrations/cutover/action",
"Microsoft.DataMigration/sqlMigrationServices/write",
"Microsoft.DataMigration/sqlMigrationServices/delete",
"Microsoft.DataMigration/sqlMigrationServices/read",
"Microsoft.DataMigration/sqlMigrationServices/listAuthKeys/action",
"Microsoft.DataMigration/sqlMigrationServices/regenerateAuthKeys/action",
"Microsoft.DataMigration/sqlMigrationServices/deleteNode/action",
"Microsoft.DataMigration/sqlMigrationServices/listMonitoringData/action",
"Microsoft.DataMigration/sqlMigrationServices/listMigrations/read",
"Microsoft.DataMigration/sqlMigrationServices/MonitoringData/read",
"Microsoft.DataMigration/SqlMigrationServices/tasks/read",
"Microsoft.DataMigration/SqlMigrationServices/tasks/write",
"Microsoft.DataMigration/SqlMigrationServices/tasks/delete",
"Microsoft.DataMigration/sqlMigrationServices/validateIR/action"
],
"notActions": [],
"dataActions": [
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"
],
"notDataActions": []
}
]
}
}
ロールの作成には、Azure portal、Azure PowerShell、Azure CLI、Azure REST API のいずれかを使用できます。
詳細については、「Azure ポータルと Azure カスタム ロールを使用した Azure カスタム ロールの作成または更新」を参照してください。
注
Azureポータル経由でAzure SQL Managed InstanceやAzure SQL Virtual Machineに移行する際は、バックアップファイルを含むBlobコンテナにサインインしたユーザーがStorage Blob Data Readerのアクセス権を持っていることを確認してください。 このアクセス許可は、Azure portal を使用した移行のセットアップ時にのみ、BLOB コンテナー内のフォルダーとファイルを一覧表示するために必要です。
仮想マシンへ移行するために必要なアクセス許可の説明
| 権限アクション | 説明 |
|---|---|
Microsoft.Storage/storageAccounts/read |
ストレージ アカウントの一覧を返すか、指定されたストレージ アカウントのプロパティを取得します。 |
Microsoft.Storage/storageAccounts/listkeys/action |
指定されたストレージ アカウントのアクセス キーを返します。 |
Microsoft.Storage/storageAccounts/blobServices/read |
BLOB サービスを一覧表示します。 |
Microsoft.Storage/storageAccounts/blobServices/write |
BLOB サービスのプロパティの設定結果を返します。 |
Microsoft.Storage/storageAccounts/blobServices/containers/read |
コンテナーの一覧を返します。 |
Microsoft.Sql/managedInstances/read |
マネージド インスタンスの一覧を返すか、指定されたマネージド インスタンスのプロパティを取得します。 |
Microsoft.Sql/managedInstances/write |
指定されたパラメーターでマネージド インスタンスを作成するか、指定されたマネージド インスタンスのプロパティまたはタグを更新します。 |
Microsoft.Sql/managedInstances/databases/read |
既存のマネージド データベースを取得します。 |
Microsoft.Sql/managedInstances/databases/write |
新しいデータベースを作成するか、既存のデータベースを更新します。 |
Microsoft.Sql/managedInstances/databases/delete |
既存のマネージド データベースを削除します。 |
Microsoft.DataMigration/locations/operationResults/read |
202 Accepted 応答に関連した長時間実行操作の状態を取得します。 |
Microsoft.DataMigration/locations/operationStatuses/read |
202 Accepted 応答に関連した長時間実行操作の状態を取得します。 |
Microsoft.DataMigration/locations/sqlMigrationServiceOperationResults/read |
サービス操作の結果を取得します。 |
Microsoft.DataMigration/databaseMigrations/write |
データベース移行リソースを作成または更新します。 |
Microsoft.DataMigration/databaseMigrations/read |
データベース移行リソースを取得します。 |
Microsoft.DataMigration/databaseMigrations/delete |
データベース移行リソースを削除します。 |
Microsoft.DataMigration/databaseMigrations/cancel/action |
データベースの実行中の移行を停止します。 |
Microsoft.DataMigration/databaseMigrations/cutover/action |
データベースのオンライン移行処理を切り替えます。 |
Microsoft.DataMigration/sqlMigrationServices/write |
新規に作成するか、既存のサービスのプロパティを変更します |
Microsoft.DataMigration/sqlMigrationServices/delete |
既存のサービスを削除します。 |
Microsoft.DataMigration/sqlMigrationServices/read |
移行サービスの詳細を取得します。 |
Microsoft.DataMigration/sqlMigrationServices/listAuthKeys/action |
認証キーの一覧を取得します。 |
Microsoft.DataMigration/sqlMigrationServices/regenerateAuthKeys/action |
認証キーを再生成します。 |
Microsoft.DataMigration/sqlMigrationServices/deleteNode/action |
IR ノードの登録を解除します。 |
Microsoft.DataMigration/sqlMigrationServices/listMonitoringData/action |
すべての移行の監視データを一覧表示します。 |
Microsoft.DataMigration/sqlMigrationServices/listMigrations/read |
ユーザーの移行を一覧表示します。 |
Microsoft.DataMigration/sqlMigrationServices/MonitoringData/read |
監視データを取得します。 |
Microsoft.SqlVirtualMachine/sqlVirtualMachines/read |
SQL 仮想マシンの詳細を取得します。 |
Microsoft.SqlVirtualMachine/sqlVirtualMachines/write |
新しい SQL 仮想マシンを作成するか、既存の SQL 仮想マシンのプロパティを変更します。 |
Microsoft.DataMigration/SqlMigrationServices/tasks/read |
移行サービス タスクの詳細を取得する |
Microsoft.DataMigration/SqlMigrationServices/tasks/write |
移行サービス タスクの作成または更新 |
Microsoft.DataMigration/SqlMigrationServices/tasks/delete |
移行サービス タスクを削除します |
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read |
Azure Storage アカウントの BLOB コンテナーの読み取り |
Microsoft.DataMigration/sqlMigrationServices/validateIR/action |
Integration Runtimeを検証する。 |
Windows 認証やSQL Server認証を使って、VMware、Hyper-V、または物理サーバー向けのログイン権限を割り当てるサンプルスクリプトを入手できます。
ロール割り当て
ユーザーまたはアプリ ID にロールを割り当てるには:
Azure portal でリソースに移動します。
左側のメニューで [アクセス制御 (IAM)] を選んでから、スクロールして作成したカスタム ロールを見つけます。
割り当てるロールを選び、ユーザーまたはアプリ ID を選んでから、変更を保存します。
ユーザーまたはアプリ ID が、[ロールの割り当て] タブに表示されるようになります。