VNet とファイアウォールの背後にあるストレージ アカウントに対して監査を書き込む
適用対象: Azure SQL Database Azure Synapse Analytics
Azure SQL Database および Azure Synapse Analytics の監査では、仮想ネットワークとファイアウォールの背後にある Azure ストレージ アカウントへの、データベース イベントの書き込みがサポートされています。
この記事では、このオプション向けに Azure SQL Database と Azure ストレージ アカウントを構成する 2 つの方法について説明します。 最初のものは Azure portal を使用し、2 番目のものは REST を使用します。
バックグラウンド
Azure Virtual Network (VNet) は、Azure 内のプライベート ネットワークの基本的な構成要素です。 VNet により、Azure Virtual Machines (VM) などのさまざまな種類の Azure リソースが、他の Azure リソース、インターネット、およびオンプレミスのネットワークと安全に通信することができます。 VNet は、自社のデータ センターにおける従来のネットワークと似ていますが、スケール、可用性、分離性など、Azure インフラストラクチャのさらなる利点を提供します。
VNet の概念やベスト プラクティスなどの詳細については、「Azure Virtual Network とは」を参照してください。
仮想ネットワークの作成方法の詳細については、「クイック スタート:Azure portal を使用した仮想ネットワークの作成」を参照してください。
前提条件
監査により VNet またはファイアウォールの背後にあるストレージ アカウントに書き込むためには、次の前提条件が満たされている必要があります。
- 汎用 v2 ストレージ アカウント。 汎用 v1 または BLOB ストレージ アカウントを使用している場合は、汎用 v2 ストレージ アカウントにアップグレードします。 詳細については、「ストレージ アカウントの種類」を参照してください。
- BlockBlobStorage を使った Premium ストレージがサポートされています
- ストレージ アカウントは、論理 SQL サーバーと同じテナントで、かつ同じ場所にある必要があります (サブスクリプションは別でもかまいません)。
- Azure ストレージ アカウントには
Allow trusted Microsoft services to access this storage account
が必要です。 これをストレージ アカウントのファイアウォールと仮想ネットワークに設定します。 - 選択したストレージ アカウントに対する
Microsoft.Authorization/roleAssignments/write
アクセス許可が必要です。 詳細については、Azure の組み込みロールに関するページを参照してください。
注意
サーバーまたは db でストレージ アカウントに対する監査が既に有効になっており、ターゲット ストレージ アカウントがファイアウォールの内側に移動された場合、ストレージ アカウントへの書き込みアクセスが失われ、監査ログが書き込まれなくなります。監査を機能させるには、ポータルから監査設定を再保存する必要があります。
Azure Portal での構成
お使いのサブスクリプションで、Azure portal に接続します。 リソース グループとサーバーに移動します。
[セキュリティ] の見出しの下にある [監査] をクリックします。 [ON] を選択します。
[ストレージ] を選択します。 ログを保存するストレージ アカウントを選択します。 ストレージ アカウントは、前提条件に記載されている要件を満たしている必要があります。
[容量の詳細] を開きます
注意
選択したストレージ アカウントが VNet の背後にある場合は、次のメッセージが表示されます。
You have selected a storage account that is behind a firewall or in a virtual network. Using this storage requires to enable 'Allow trusted Microsoft services to access this storage account' on the storage account and creates a server managed identity with 'storage blob data contributor' RBAC.
このメッセージが表示されない場合、ストレージ アカウントは VNet の背後にはありません。
保持期間の日数を選択します。 次に、 [OK] をクリックします 保持期間よりも古いログは削除されます。
監査設定で [保存] を選択します。
VNet またはファイアウォールの背後にあるストレージ アカウントに書き込むように監査を構成できました。
REST コマンドによる構成
Azure portal を使用する代わりに REST コマンドを使用して、VNet とファイアウォールの背後にあるストレージ アカウントにデータベース イベントを書き込むように監査を構成することもできます。
このセクションのサンプル スクリプトでは、スクリプトを実行する前にそれを更新する必要があります。 スクリプト内の次の値を置き換えます。
値の例 | サンプルの説明 |
---|---|
<subscriptionId> |
Azure サブスクリプション ID |
<resource group> |
Resource group |
<logical SQL Server> |
サーバー名 |
<administrator login> |
[Administrator account] (管理者アカウント) |
<complex password> |
管理者アカウント用の複雑なパスワード |
VNet またはファイアウォールの背後にあるストレージ アカウントにイベントを書き込むように SQL 監査を構成するには、次のようにします。
Microsoft Entra ID (旧称 Azure Active Directory) でサーバーを登録する PowerShell または REST API を使用します。
PowerShell
Connect-AzAccount Select-AzSubscription -SubscriptionId <subscriptionId> Set-AzSqlServer -ResourceGroupName <your resource group> -ServerName <azure server name> -AssignIdentity
要求のサンプル
PUT https://management.azure.com/subscriptions/<subscription ID>/resourceGroups/<resource group>/providers/Microsoft.Sql/servers/<azure server name>?api-version=2015-05-01-preview
要求本文
{ "identity": { "type": "SystemAssigned", }, "properties": { "fullyQualifiedDomainName": "<azure server name>.database.windows.net", "administratorLogin": "<administrator login>", "administratorLoginPassword": "<complex password>", "version": "12.0", "state": "Ready" } }
先ほどの手順で Microsoft Entra ID に登録したデータベースをホストするサーバーに、ストレージ BLOB データ共同作成者ロールを割り当てます。
詳細な手順については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。
Note
所有者特権を持つメンバーのみが、この手順を実行できます。 さまざまな Azure の組み込みロールについては、「Azure 組み込みロール」を参照してください。
storageAccountAccessKey を指定せずに、サーバーの BLOB 監査ポリシーを構成します。
要求のサンプル
PUT https://management.azure.com/subscriptions/<subscription ID>/resourceGroups/<resource group>/providers/Microsoft.Sql/servers/<azure server name>/auditingSettings/default?api-version=2017-03-01-preview
要求本文
{ "properties": { "state": "Enabled", "storageEndpoint": "https://<storage account>.blob.core.windows.net" } }
Azure PowerShell の使用
Azure Resource Manager テンプレートの使用
次の例に示すように、Azure Resource Manager テンプレートを使用して、仮想ネットワークとファイアウォールの背後にあるストレージ アカウントにデータベース イベントを書き込むように監査を構成できます。
重要
仮想ネットワークとファイアウォールの背後でストレージ アカウントを使用するには、isStorageBehindVnet パラメーターを true に設定する必要があります。
Note
リンクされたサンプルは、外部の公開リポジトリにあり、保証なしに "手を加えず" に提供され、Microsoft サポート プログラム/サービスのサポート対象ではありません。