カスタマー マネージド キーを使用した Transparent Data Encryption 用のマネージド ID

適用対象:Azure SQL データベースAzure SQL Managed Instance

Microsoft Entra ID 以前の Azure Active Directory は、コード内の資格情報を公開することなく、Azure Key Vault などの Microsoft Entra 認証をサポートする任意の Azure サービスに対して認証を行うための、自動的に管理される ID を提供します。 詳細については、Azure の「マネージド ID の種類」を参照してください。

マネージド ID には、次の 2 種類があります。

  • システム割り当て
  • ユーザー割り当て

詳細については、「Azure SQL 用 Azure AD のマネージド ID」を参照してください。

Azure SQL でカスタマー マネージド キー (CMK) を使用する TDE では、サーバー上のマネージド ID を使用して、キー コンテナー上のサーバーへのアクセス権を提供します。 たとえば、サーバーで CMK を使用した TDE を有効にする前に、サーバーのシステム割り当てマネージド ID にキー コンテナーのアクセス許可を付与する必要があります。

CMK を使用した TDE で既にサポートされているシステム割り当てマネージド ID に加えて、サーバーに割り当てられているユーザー割り当てマネージド ID (UMI) を使用すると、サーバーがキー コンテナーにアクセスできます。 キー コンテナーへのアクセスを有効にするための前提条件は、ユーザー割り当てマネージド ID にキー コンテナーに対する「取得」、「キーを折り返す」、および「キーの折り返しを解除」のアクセス許可が付与されていることを確認することです。 ユーザー割り当てマネージド ID は、キー コンテナーへのアクセスを作成して許可できるスタンドアロン リソースです。このため、カスタマー マネージド キーを持つ TDE を、サーバーまたはデータベースの作成時に有効にできるようになりました

Note

ユーザー割り当てマネージド ID を論理サーバーまたはマネージド インスタンスに割り当てるには、ユーザーが Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action アクションを含む他の Azure RBAC の役割と共に、SQL Server 共同作成者またはSQL Managed Instance 共同作成者の Azure RBAC の役割を持っている必要があります。

カスタマー マネージド TDE に UMI を使用する利点

  • ユーザー割り当てマネージド ID を作成し、サーバーまたはデータベースが作成される前でもキー コンテナーへのアクセスを許可することで、Azure SQL 論理サーバーまたはマネージド インスタンスのキー コンテナー アクセスを事前に承認する機能を有効にする

  • TDE と CMK が有効になっている Azure SQL 論理サーバーを作成できる

  • 同じユーザー割り当てマネージド ID を複数のサーバーに割り当てることができるので、Azure SQL 論理サーバーまたはマネージド インスタンスごとにシステム割り当てマネージド ID を個別に有効にし、キー コンテナーへのアクセスを提供する必要がなくなる

  • 使用可能な組み込みの Azure ポリシーを使用して、サーバー作成時に CMK を適用する機能がある

カスタマー マネージド TDE に UMI を使用する場合の考慮事項

  • 既定では、Azure SQL での TDE は、キー コンテナーへのアクセスにサーバー上のプライマリ ユーザー割り当てマネージド ID のセットを使用します。 ユーザー割り当て ID がサーバーに割り当てられていない場合は、サーバーのシステム割り当てマネージド ID がキー コンテナーへのアクセスに使用されます。
  • CMK で TDE にユーザー割り当てマネージド ID を使用する場合は、その ID をサーバーに割り当て、サーバーのプライマリ ID として設定する
  • プライマリ ユーザー割り当てマネージド ID には、キー コンテナーへの継続的なアクセス (取得、キーを折り返す、キーの折り返しを解除する アクセス許可) が必要です。 ID のキー コンテナーへのアクセスが取り消された場合、または十分なアクセス許可が付与されていない場合、データベースは "アクセス不可" 状態に移行する
  • プライマリ ユーザー割り当てマネージド ID を別のユーザー割り当てマネージド ID に更新する場合は、プライマリを更新する前に、キー コンテナーに必要なアクセス許可を新しい ID に付与する必要がある
  • サーバーをユーザー割り当てからシステム割り当てのマネージド ID に切り替えてキー コンテナーにアクセスするには、必要なキー コンテナーのアクセス許可を持つシステム割り当てマネージド ID を指定し、サーバーからすべてのユーザー割り当てマネージド ID を削除する

重要

CMK で TDE に使用されているプライマリ ユーザー割り当てマネージド ID は、Azure から削除することはできません。 この ID を削除すると、サーバーがキー コンテナーとデータベースへアクセスできなくなり、アクセス不可になります。

制限事項と既知の問題

  • キー コンテナーがファイアウォールを使う VNet の内側にある場合で、ユーザー割り当てマネージド ID またはシステム割り当てマネージド ID を使う場合は、キー コンテナーの [ネットワーク] メニューで [信頼された Microsoft サービスがこのファイアウォールをバイパスすることを許可する] オプションを有効にする必要があります。 このオプションを有効にすると、使用可能なキーは、Azure portal の SQL サーバーの TDE メニューに一覧表示されません。 個々の CMK を設定するには、"キー識別子" を使用する必要があります。 信頼された Microsoft サービスにこのファイアウォールのバイパスを許可するオプションが有効になっていない場合、次のエラーが返されます。
    • Failed to save Transparent Data Encryption settings for SQL resource: <ServerName>. Error message: The managed identity with ID '/subscriptions/subsriptionID/resourcegroups/resource_name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/umi_name' requires the following Azure Key Vault permissions: 'Get, WrapKey, UnwrapKey' to the key 'https://keyvault_name/keys/key_name'. Please grant the missing permissions to the identity. Additionally ensure the key is not expired and is not disabled. For expired key, please extend the key expiry time so that SQL can use it to perform wrap and unwrap operations. If your key vault is behind a virtual network or firewall, ensure you select the 'Allow trusted Microsoft services to bypass this firewall' option. (https://aka.ms/sqltdebyokcreateserver).
    • 上記のエラーが発生した場合は、キー コンテナーが仮想ネットワークまたはファイアウォールの背後にあるかどうかを確認し、[信頼された Microsoft サービスにこのファイアウォールのバイパスを許可する] オプションが有効になっていることを確認します。
  • SQL マネージド インスタンスのユーザー割り当てマネージド ID は、現在、すべてのネットワークからのパブリック アクセスが有効になっているキー コンテナーでのみサポートされています。 AKV ファイアウォールが特定の仮想ネットワークと IP アドレスをフィルター処理している場合、またはプライベート エンドポイント接続を使用している場合はサポートされません。
  • 複数のユーザー割り当てマネージド ID がサーバーまたは Managed Instance に割り当てられる際、Azure Portal の[ID]ウィンドウを使用してサーバーから単一の ID が削除された場合、操作は正常に実行されますが、ID はサーバーから削除されません。 Azure portal からすべてのユーザー割り当てマネージド ID を一緒に削除すると、正常に機能します。
  • サーバーまたはマネージド インスタンスがカスタマー マネージド TDE で構成され、システム割り当てマネージド ID とユーザー割り当てマネージド ID の両方がサーバーで有効になっている場合、最初にシステム割り当てマネージド ID にキー コンテナーへのアクセスを許可せずに、サーバーからユーザー割り当てマネージド ID を削除すると、予期しないエラーが発生しましたというメッセージが表示されます。 プライマリ ユーザー割り当てマネージド ID (および他のユーザー割り当てマネージド ID) をサーバーから削除する前に、システム割り当てマネージド ID にキー コンテナーのアクセス権が与えられていることを確認します。

次のステップ

関連項目