次の方法で共有


チュートリアル: Azure SQL Databaseのマネージド ID 認証を使用してデータベースをインポートまたはエクスポートする (プレビュー)

Applies to:Azure SQL Database

このチュートリアルでは、マネージド ID 認証を使用して BACPAC ファイルAzure SQL Databaseインポートおよびエクスポートする方法について説明します。

マネージド ID 認証を使用すると、インポート要求とエクスポート要求で SQL 管理者の資格情報とストレージ アカウント キーを指定する必要がなくなります。

マネージド ID 認証を使用した BACPAC ファイルのインポートとエクスポートは、現在 プレビュー段階です

概要

マネージド ID 認証を使用してインポートとエクスポートをAzure SQL Databaseすると、次の作業を行うことができます。

  • SQL 管理者パスワードとストレージ アカウント キーを削除します。
  • Microsoft Entra専用認証を適用します。
  • 資格情報の管理とローテーションのオーバーヘッドを削減します。

Important

インポートとエクスポートは、高い特権を持つ操作です。 信頼されたプリンシパルにのみアクセス許可を付与します。

アーキテクチャ

インポートとエクスポートのマネージド ID 認証では、次のアーキテクチャが使用されます。

  • インポートおよびエクスポート サービスは、Microsoft が管理するインフラストラクチャで実行されます。
  • 論理サーバーに割り当てられたユーザー割り当てマネージド ID が認証に使用されます。
  • Azure RBAC は、Azure Storageへのアクセスを制御します。

サポートされているシナリオ

マネージド ID 認証では、次のシナリオがサポートされています。

  • 新しいデータベースにインポートします。
  • 既存の空のデータベースにインポートします。
  • 既存のデータベースからエクスポートします。

マネージド ID 認証では、次のシナリオはサポートされていません。

  • テナント間のインポート操作。
  • データベース レベルでのみ割り当てられたマネージド ID。

[前提条件]

  • Azure サブスクリプション。
  • Azure SQL Databaseの論理サーバー
  • BLOB コンテナーを持つAzureストレージ アカウント。

ユーザー割り当てマネージド ID を作成する

1 つ以上のマネージド ID を作成します。

次の認証モデルから選択します。

  • SQL アクセスとAzure Storage アクセスの両方の 1 つの ID。
  • SQL アクセスとストレージ アクセスの ID を分離します。

最小特権のアクセス許可管理を簡略化するには、個別の ID を使用します。

マネージド ID を作成するには、 Azure portalAzure CLIAzure PowerShellARM テンプレート、または REST API を使用できます。

エクスポート操作またはインポート操作とストレージ アカウント アクセスには、ユーザー割り当てマネージド ID リソース ID が必要です。 リソース ID の形式は次のとおりです。

/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityName>

Azure ポータルで既存のユーザー割り当てマネージド ID のリソース ID を確認するには、次の手順に従います。

  1. Azure ポータルで、ユーザー割り当てマネージド ID に移動します。
  2. [設定][プロパティ] を選択します。
  3. [ 要点] で、後の手順で使用する ID の値をコピーします。

ストレージのアクセス許可を付与する

インポート操作とエクスポート操作にマネージド ID 認証を使用するには、ストレージ アカウントにアクセスするユーザー割り当てマネージド ID に、ターゲット アカウントに対する適切なAzure RBAC アクセス許可が必要です。

ストレージ アカウントのアクセスに使用するユーザー割り当てマネージド ID のアクセス許可を付与します。 論理サーバーに割り当てられているマネージド ID とは異なるマネージド ID を指定することも、SQL アクセスとストレージ アクセスの両方に 1 つの ID を使用する場合は同じ ID にすることができます。

ロールの割り当てを追加したり、共同管理者を追加したりするには、ユーザーがサブスクリプションの管理者であるか、ユーザー アクセス管理者である必要があります。

ストレージ アカウントAzure RBAC アクセス許可をマネージド ID に付与するには、次の手順に従います。

  1. Azure ポータルで、Azure ロール割り当てユーザー割り当てのマネージド ID を選択します。
  2. [Azure ロールの割り当て ウィンドウで、+ ロールの割り当ての追加 (プレビュー) を選択して、ロールの割り当ての追加 (プレビュー) ウィンドウを開きます。
  3. [スコープ] ドロップダウン リストから [ストレージ] を選択します。
  4. [ サブスクリプション] で、正しいサブスクリプションが選択されていることを確認します。
  5. [ リソース] で、エクスポートまたはインポート操作に使用するストレージ アカウントを選択します。
  6. [ ロール] で、操作に関連するストレージ BLOB ロールを検索します。
    • エクスポート操作の場合は、 ストレージ BLOB データ共同作成者ロールを 割り当てます。
    • インポート操作の場合は、 ストレージ BLOB データ閲覧者 ロールを割り当てます。
  7. [ 保存] を 選択してロールの割り当てを保存します。

マネージド ID を論理サーバーに割り当てる

論理サーバー用に作成したユーザー割り当てマネージド ID を論理サーバーに割り当てます。

論理サーバーにマネージド ID を割り当てるには、次の手順に従います。

  1. Azure ポータルで Azure SQL Database の論理サーバーを開きます。
  2. [セキュリティ][ID] を選択します。
  3. [ ユーザー割り当てマネージド ID ] セクションで、[ + 追加] を使用して、[ ユーザー割り当てマネージド ID の選択 ] ウィンドウを開きます。
  4. 前の手順で作成したマネージド ID を検索して選択し、[ 追加] を選択してサーバーに割り当てます。
  5. ユーザー割り当てマネージド ID をプライマリ ID として割り当てます。
  6. ナビゲーション バーの [保存] アイコンを使用して、変更を保存します。

Microsoft Entra の管理者を構成する

Microsoft Entra管理者を構成するには、次の手順に従います。

  1. [Azure SQL Database の論理サーバー] ペインの [設定] で、[Microsoft Entra 管理者] を選択します。
  2. Set admin を選択して、Microsoft Entra ID ペインを開きます。
  3. 作成したユーザー割り当てマネージド ID を検索して選択し、Select を使用してMicrosoft Entra管理者として設定します。
  4. (省略可能)このチェック ボックスを使用して、Support Microsoft Entra認証のみをこのサーバーに対して有効にします論理サーバーに対してMicrosoft Entra認証のみを適用します。 この設定ではすべての SQL 認証がブロックされるため、マネージド ID とその他のMicrosoft Entra プリンシパルのみがサーバーにアクセスできます。
  5. ナビゲーション バーの [保存] アイコンを使用して、変更を保存します。

複数のリソースに論理サーバーへの管理者アクセス権を付与する必要がある場合は、Microsoft Entra グループを作成し、そのグループを管理者として割り当て、そのグループのメンバーとしてユーザー割り当てマネージド ID を割り当てることを検討してください。

データベースのエクスポート

Azure ポータル、Azure CLI、Azure PowerShell、または REST API を使用して、マネージド ID 認証を使用してデータベースをエクスポートできます。

Azure ポータルからマネージド ID 認証を使用してデータベースをエクスポートするには、次の手順に従います。

  1. Azure ポータルで Azure SQL Database に移動します。
  2. [概要] ウィンドウで [エクスポート] を選択し、[データベースのエクスポート] ウィンドウを開きます。
  3. マネージド ID を使用してストレージ アカウントにアクセスするには、[ ストレージ認証にマネージド ID を使用する ] チェック ボックスをオンにし、ストレージ アカウントへのアクセスが許可されたマネージド ID のリソース ID を指定します。
  4. [認証の種類] で、[マネージド ID] を選択します。
  5. SQL マネージド ID リソース ID フィールドには、論理サーバーに割り当てられたユーザー割り当てマネージド ID のリソース ID が自動的に設定されます。 そうでない場合は、マネージド ID の作成時に保存したユーザー割り当てマネージド ID のリソース ID を指定します

データベースのインポート

Azure ポータル、Azure CLI、Azure PowerShell、または REST API を使用して、マネージド ID 認証を使用してデータベースをインポートできます。

データベースを新しいデータベースとしてインポートすることも、既存の空のデータベースにインポートすることもできます。

Azure ポータルからマネージド ID 認証を使用してデータベースをインポートするには、次の手順に従います。

  1. Azure ポータルで Azure SQL Database の論理サーバー に移動します。
  2. [概要] ウィンドウで [インポート] を選択し、[データベースのインポート] ウィンドウを開きます。
  3. マネージド ID を使用してストレージ アカウントにアクセスするには、[ ストレージ認証にマネージド ID を使用する ] チェック ボックスをオンにし、ストレージ アカウントへのアクセスが許可されたマネージド ID のリソース ID を指定します。
  4. [ データベース名] で、ターゲット データベースの名前を指定します。
  5. [認証の種類] で、[マネージド ID] を選択します。
  6. SQL マネージド ID リソース ID フィールドには、論理サーバーに割り当てられたユーザー割り当てマネージド ID のリソース ID が自動的に設定されます。 そうでない場合は、マネージド ID の作成時に保存したユーザー割り当てマネージド ID のリソース ID を指定します

一般的な問題のトラブルシューティング

インポートとエクスポートにマネージド ID 認証を使用すると、次の一般的な問題が発生する可能性があります。 各問題のトラブルシューティング手順を試してください。

  • テナントの不一致: 論理サーバー、ユーザー割り当てマネージド ID、ストレージ アカウントが同じMicrosoft Entra テナントにあることを確認します。
  • Microsoft Entra管理者として構成されていない管理 ID: ユーザー割り当てられた管理 ID を論理サーバー上のサーバーレベルのMicrosoft Entra管理者として設定します。
  • ストレージ承認エラー: ストレージ BLOB データ閲覧者 (インポート) または ストレージ BLOB データ共同作成者 (エクスポート) が適切なストレージ スコープで付与されていることを確認します。
  • 操作承認エラー: ユーザーが対象の SQL スコープでインポートまたはエクスポート操作を実行するための Azure RBAC アクセス許可を持っていることを確認してください。
  • 共有キーによる認証は無効です: インポートまたはエクスポート操作中にAzure ポータルでストレージ アカウントを選択すると、ポータルはサインインしたユーザーの資格情報を使用し、共有キーベースの承認に依存します。 ストレージ アカウントに対して共有キーの承認が無効になっている場合、Azure ポータルからのインポートとエクスポートは使用できません。 Azure CLI、PowerShell、または REST API を使用して、共有キーのアクセスが無効になっている場合のインポート操作とエクスポート操作を行います。
  • アカウント選択ドロップダウンで使用できないアカウント: インポートまたはエクスポート操作にAzure ポータルを使用する場合、サインインしているユーザーがアクセスできるストレージ アカウントのみがストレージ アカウントの選択ドロップダウンに表示されます。 ドロップダウンにストレージ アカウントが表示されない場合は、サインインしているユーザーが少なくともストレージ アカウントへの 閲覧者 ロールアクセス権を持っていることを確認します。

Permissions

インポートまたはエクスポート要求を送信するユーザーは、ターゲット スコープ (データベース、サーバー、リソース グループ、またはサブスクリプション) でインポートまたはエクスポート操作を実行するために必要なAzure RBAC アクセス許可を持っている必要があります。

次の一般的な組み込みロールには、必要なアクセス許可があります。

  • SQL DB 共同作成者
  • 投稿者
  • Owner

Microsoft.Sqlインポートおよびエクスポート アクションに必要な次のアクセス許可を含むカスタム ロールを使用することもできます。

  • Microsoft.Sql/servers/databases/export/action (POST)
  • Microsoft.Sql/servers/databases/import/action (POST)
  • Microsoft.Sql/servers/import/action (POST)
  • Microsoft.Sql/servers/databases/extensions/write (PUT)

制限事項

インポート操作とエクスポート操作にマネージド ID 認証を使用する場合は、次の制限事項を考慮してください。

  • テナント間の操作はサポートされていません。
  • データベース レベルのマネージド ID は、インポート操作とエクスポート操作ではサポートされていません。
  • プレビュー期間中は、一部のAzure ポータル エクスペリエンスが制限される場合があります。
  • システム割り当てマネージド ID はサポートされていません。
  • Azure ポータルを使用する場合、共有キー アクセスを無効にしたストレージ アカウントへのインポートとエクスポートはサポートされていません。 共有キー アクセスが無効になっているストレージ アカウントにインポートまたはエクスポートするには、Azure CLI、PowerShell、または REST API を使用します。