次の方法で共有


カスタマー マネージド キーを使用した 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 は、キー コンテナーまたはマネージド HSM 上のサーバーへのアクセス権を提供するために使用されます。 たとえば、サーバーで TDE と CMK を有効にする前に、サーバーのシステム割り当てマネージド ID に Azure Key Vault のアクセス許可 を付与する必要があります。

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

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

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

  • ユーザー割り当てマネージド ID を作成し、サーバーまたはデータベースが作成される前であっても、キー コンテナーまたはマネージド HSM へのアクセスを許可することで、Azure SQL 論理サーバーまたは Azure SQL Managed Instances のキー コンテナーまたはマネージド HSM アクセスを事前に認証できるようにします。

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

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

  • 利用できる組み込みの Azure ポリシーを使って、サーバーの作成時に CMK を適用できるようになります。

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

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

重要

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

制限事項と既知の問題

  • キー コンテナーまたはマネージド HSM がファイアウォールを使用する仮想ネットワークの背後にある場合、ユーザー割り当てマネージド ID またはシステム割り当てマネージド ID を使用する場合は、キー コンテナーまたはマネージド HSM の [ネットワーク] メニューで [信頼された 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/subscriptionID/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).
    • 上記のエラーが発生した場合は、キー コンテナーまたはマネージド HSM が仮想ネットワークまたはファイアウォールの内側にあるかどうかを確認し、[ 信頼された Microsoft サービスによるこのファイアウォールのバイパスを許可する ] オプションが有効になっていることを確認します。
  • 複数のユーザー割り当てマネージド ID がサーバーまたは Managed Instance に割り当てられる際、Azure Portal の[ID]ウィンドウを使用してサーバーから単一の ID が削除された場合、操作は正常に実行されますが、ID はサーバーから削除されません。 Azure portal からすべてのユーザー割り当てマネージド ID を一緒に削除すると、正常に機能します。
  • サーバーまたはマネージド インスタンスがカスタマー マネージド TDE で構成されていて、システム割り当てマネージド ID とユーザー割り当てマネージド ID の両方がサーバーで有効になっている場合、最初にシステム割り当てマネージド ID にキー コンテナーまたはマネージド HSM へのアクセス権を付与せずに、サーバーからユーザー割り当てマネージド ID を削除すると 、予期しないエラーが発生しました 。 プライマリ ユーザー割り当てマネージド ID (およびその他のユーザー割り当てマネージド ID) をサーバーから削除する前に、システム割り当てマネージド ID にキー コンテナーまたはマネージド HSM アクセスが提供されていることを確認します。

次のステップ