この記事では、コードとしてのインフラストラクチャ (IaC) テンプレート、PowerShell、またはAzure Policyを使用して、Storage のMicrosoft Defenderを有効にして構成します。 サブスクリプション レベルまたはストレージ アカウント レベルで有効にすることができます。 ストレージのDefenderとその機能の概要については、「ストレージのMicrosoft Defender」を参照してください。
インフラストラクチャをコードとして使用してストレージのDefenderを有効にする
サブスクリプション レベルで Microsoft Defender for Storage を有効にすることをお勧めします。 そうすることで、サブスクリプションに現在存在するすべてのストレージ アカウントが確実に保護されます。 サブスクリプション レベルで Defender for Storage を有効にした後に作成するストレージ アカウントの保護は、作成から最大 24 時間後に開始されます。
ヒント
サブスクリプション レベルで 構成された 設定とは異なるカスタム設定を使用して、常に特定のストレージ アカウントを構成できます。 つまり、サブスクリプション レベルの設定をオーバーライドできます。
Terraform テンプレート
Terraform を使用してサブスクリプション レベルで Defender for Storage を有効にして構成するには、次のコード スニペットを使用できます。
resource "azurerm_security_center_subscription_pricing" "DefenderForStorage" {
tier = "Standard"
resource_type = "StorageAccounts"
subplan = "DefenderForStorageV2"
extension {
name = "OnUploadMalwareScanning"
additional_extension_properties = {
CapGBPerMonthPerStorageAccount = "10000"
BlobScanResultsOptions = "BlobIndexTags"
}
}
extension {
name = "SensitiveDataDiscovery"
}
}
このコードをカスタマイズすると、次のことができます。
-
マルウェア スキャンの月次上限を変更する:
CapGBPerMonthPerStorageAccountパラメーターを任意の値に調整します。 このパラメーターでは、ストレージ アカウントごとに毎月マルウェアをスキャンできる最大データの上限を設定します。 無制限のスキャンを許可する場合は、値を-1割り当てます。 既定値は -1 です。 - アップロード時のマルウェア スキャンまたは機密データの脅威検出機能を無効にする: Terraform コードから対応する拡張機能ブロックを削除します。
-
Defender for Storage プラン全体を無効にする:
tierプロパティの値を"Free"に設定し、subPlanプロパティとextensionプロパティを削除します。
azurerm_security_center_subscription_pricingリソースの詳細については、Terraformのドキュメントを参照してくださいazurerm_security_center_subscription_pricing。 Terraform AzureRM ドキュメントでは、Azure 用 Terraform プロバイダーに関する包括的な詳細も確認できます。
Bicep テンプレート
Bicep を使用してサブスクリプション レベルで Defender for Storage を有効にして構成するには、ターゲット スコープが subscription に設定されていることを確認します。 Bicep テンプレートに次のコードを追加します。
targetScope = 'subscription'
resource StorageAccounts 'Microsoft.Security/pricings@2023-01-01' = {
name: 'StorageAccounts'
properties: {
pricingTier: 'Standard'
subPlan: 'DefenderForStorageV2'
extensions: [
{
name: 'OnUploadMalwareScanning'
isEnabled: 'True'
additionalExtensionProperties: {
CapGBPerMonthPerStorageAccount: '10000'
BlobScanResultsOptions: 'BlobIndexTags'
}
}
{
name: 'SensitiveDataDiscovery'
isEnabled: 'True'
}
]
}
}
このコードをカスタマイズすると、次のことができます。
-
マルウェア スキャンの月次上限を変更する:
CapGBPerMonthPerStorageAccountパラメーターを任意の値に調整します。 このパラメーターでは、ストレージ アカウントごとに毎月マルウェアをスキャンできる最大データの上限を設定します。 無制限のスキャンを許可する場合は、値を-1割り当てます。 既定値は -1 です。 -
アップロード時のマルウェア スキャンまたは機密データの脅威検出機能をオフにする:
isEnabledの値を [False] でSensitiveDataDiscoveryに変更します。 -
Defender for Storage プラン全体を無効にする:
pricingTierプロパティの値をFreeに設定し、subPlanプロパティとextensionsプロパティを削除します。
Bicep テンプレートの詳細については、 Microsoft.Security の価格に関するドキュメントを参照してください。
Azure Resource Manager テンプレート
Azure Resource Manager テンプレート (ARM テンプレート) を使用してサブスクリプション レベルで Defender for Storage を有効にして構成するには、ARM テンプレートの resources セクションに次の JSON スニペットを追加します。
{
"type": "Microsoft.Security/pricings",
"apiVersion": "2023-01-01",
"name": "StorageAccounts",
"properties": {
"pricingTier": "Standard",
"subPlan": "DefenderForStorageV2",
"extensions": [
{
"name": "OnUploadMalwareScanning",
"isEnabled": "True",
"additionalExtensionProperties": {
"CapGBPerMonthPerStorageAccount": "10000",
"BlobScanResultsOptions": "BlobIndexTags"
}
},
{
"name": "SensitiveDataDiscovery",
"isEnabled": "True"
}
]
}
}
このコードをカスタマイズすると、次のことができます。
-
マルウェア スキャンの月次上限を変更する:
CapGBPerMonthPerStorageAccountパラメーターを任意の値に調整します。 このパラメーターでは、ストレージ アカウントごとに毎月マルウェアをスキャンできる最大データの上限を設定します。 無制限のスキャンを許可する場合は、値を-1割り当てます。 既定値は -1 です。 -
アップロード時のマルウェア スキャンまたは機密データの脅威検出機能をオフにする:
isEnabledの値を [False] でSensitiveDataDiscoveryに変更します。 -
Defender for Storage プラン全体を無効にする:
pricingTierプロパティの値をFreeに設定し、subPlanプロパティとextensionプロパティを削除します。
ARM テンプレートの詳細については、 Microsoft.Security の価格に関するドキュメントを参照してください。
ヒント
次の場合にスキャン結果を送信するようにマルウェア スキャンを構成できます。
- Azure Event Grid カスタム トピック: すべてのスキャン結果に基づくほぼリアルタイムの自動応答。
- Log Analytics ワークスペース: すべてのスキャン結果をコンプライアンスと監査のために一元化されたログ リポジトリに格納します。
PowerShell を使用して大規模に有効にする
複数のサブスクリプションに対して Storage のDefenderを有効にする必要がある場合は、PowerShell を使用します。
開始する前に、 Az.Security モジュールをインストールします。
Install-Module -Name Az.Security
1 つのサブスクリプションで Storage のDefenderを有効にするには、次のコマンドを使用します。
Set-AzSecurityPricing -Name "StorageAccounts" -PricingTier "Standard" -SubPlan "DefenderForStorageV2"
テナント内のすべてのサブスクリプションで Storage のDefenderを有効にするには、次のスクリプトを使用します。
$subscriptions = Get-AzSubscription
foreach ($sub in $subscriptions) {
Set-AzContext -SubscriptionId $sub.Id
Write-Host "Enabling Defender for Storage on subscription: $($sub.Name)"
Set-AzSecurityPricing -Name "StorageAccounts" -PricingTier "Standard" -SubPlan "DefenderForStorageV2"
}
注
更新する各サブスクリプションで、セキュリティ管理者または所有者ロールが必要です。
構成を確認するには、次を実行します。
Get-AzSecurityPricing -Name "StorageAccounts"
Azure Policyで自動的に有効にする
Azure Policyを使用して、新しいサブスクリプションが自動的にカバーされるようにし、構成のずれを防ぐことができます。
組み込みのポリシー定義を使用して、記憶域を有効にするMicrosoft Defenderを構成します。
Azure ポータルでポリシーを割り当てるには:
- [ポリシー] に移動します。
- [定義] を選択します。
- Defender for Storage を検索します。
- [ストレージを有効にするMicrosoft Defenderの構成] を選択します。
- [割り当て]を選択します。
サポートされているリソースを自動的に修復するには、 DeployIfNotExists 効果を使用します。
対象とすべきではない特定のストレージ アカウントまたはサブスクリプションに対してポリシーの除外を作成できます。
注
Azure Policy割り当てが有効になるまでに最大 30 分かかることがあります。 既存の非準拠リソースには修復タスクが必要です。
詳細については、Azure Policyドキュメントを参照してください。
デプロイを検証する
Defender for Storage をデプロイした後、次のチェックリストを使用して構成を検証します。
- Azure ポータルで、Microsoft Defender for Cloud>Environment 設定に移動し>サブスクリプションを選択>ストレージのDefenderが [オン] と表示されたことを確認します。
- ストレージ アカウントが [インベントリ] の下に保護済みとして表示されていることを確認します。
- テスト アップロードを実行して、マルウェア スキャンがアクティブであることを確認します。 EICAR テスト ファイルを BLOB コンテナーにアップロードします。
- ロールの割り当てを確認します。 Defender for Storage では、Defender for Cloud のサービス プリンシパルに、ストレージ アカウント上で
StorageBlobDataReaderロールが必要です。 - IaC デプロイの場合は、テンプレートを再実行し、べき等性を確認して、構成の誤差がないことを確認します。
一般的な問題のトラブルシューティング
以下の表は、一般的な展開問題、原因、推奨される解決策を示しています。
| 問題点 | 考えられる原因 | Resolution |
|---|---|---|
| プランのアクティブ化がサブスクリプション レベルで失敗する | アクセス許可が不十分です | サブスクリプションに対するセキュリティ管理者または所有者ロールがあることを確認します。 |
| サブスクリプション レベルの有効化後にストレージ アカウントが保護されない | 伝達遅延 | 保護は、既存のアカウントに適用されるまでに最大 24 時間かかる場合があります。 |
| ARM/Bicep のデプロイ後の構成ドリフト | リソース レベルの設定の競合 |
overrideSubscriptionLevelSettingsを使用して、リソース レベルのオーバーライドを確認します。 サブスクリプション設定を継承するには、ストレージ アカウント レベルで false に設定します。 |
| 新しいサブスクリプションで自動プロビジョニングが有効にならない | Azure Policy割り当てられない | ストレージの構成Microsoft Defenderを有効にする組み込みポリシーを管理グループに割り当てます。 |
| マルウェア スキャンが実行されない | プランを有効にしたが拡張機能が無効になっている |
OnUploadMalwareScanning拡張機能がテンプレートにisEnabled: Trueされていることを確認します。 |