ビュー:
TrendAI Cloud One File Storage Security (C1FSS) からTrendAI Vision One™ File Security Storage (V1FSS) にAzure Subscriptionを更新するには、TrendAI Vision OneコンソールとAzureポータルを使用します。このトピックでは、両方の更新パスに適用される準備、設定、および動作の変更について説明します。

更新パスを選択してください

2つの更新パスが利用可能です。どちらも同じ作業を行いますが、V1FSSスキャンの有効化とC1FSSイベントサブスクリプションの削除という2つのアクションの順序が異なるだけです。

パスを更新

パス
順序
結果
ダウンタイムゼロ
まずV1FSSをオンにしてからC1FSSを取り外してください
両方の製品がすべての新しいブロブを検索する重複
短時間のダウンタイム
最初にC1FSSを削除し、その後V1FSSをオンにしてください
どちらの製品もスキャンしないギャップ
  • Zero downtime: スキャンを中断してはならない場合はこのパスを選択してください。C1FSSスキャンが停止するまでの間に、新しくアップロードされたブロブがC1FSSとV1FSSの両方でスキャンされる可能性があることに注意してください。promote-or-quarantineプラグインが使用されている場合、競合状態が発生し、不一致のタグや不一致のファイル状態 (片方の製品がブロブを移動している間にもう片方がまだ読み込んでいる)、または重複処理 (両方の製品が同じ移動を試み、勝った方がソースを削除し、もう片方が失敗を記録する) を引き起こす可能性があります。
  • Brief downtime: スキャンの短い中断を許容できる場合はこのパスを選択してください。スキャンは、C1FSSイベントサブスクリプションの削除とTrendAI Vision Oneコンソールでのスキャンのオンの間のみ一時停止し、通常は数分です。このパスは更新中の問題の可能性が最も低く、promote-or-quarantineプラグインを使用している場合はより良い選択です。

始める前に

以下の5つのチェックをすべて確認してから変更を行ってください。これらは両方の更新パスに適用されます。
  1. Confirm that you are not using a VNet deployment.
    重要
    重要
    V1FSSはVNet展開をサポートしていません。C1FSSが仮想ネットワークに展開されている場合、更新しないでください。V1FSSには同等の構成がなく、更新するとスキャンがネットワーク隔離されたパイプラインからパブリックエンドポイントのものに移行します。

    サポートされているデプロイメントタイプ

    配信の種類
    アップデートはサポートされていますか?
    オールインワン (スキャナーおよびストレージスタック)
    はい
    ストレージスタックのみ
    はい
    スキャナースタックのみ
    はい
    VNetにデプロイされた任意のスタック
    No
  2. Check whether you use the promote-or-quarantine plugin.
    C1FSSは、クリーンまたは悪意のあるブロブを他のストレージアカウントに移動できますが、スキャンストレージアカウントごとに一度デプロイされる別のプラグインを通じてのみ可能です。V1FSSにはこの機能が組み込まれていますが、設定は自動的に引き継がれず、デフォルトの1つが異なるため、ファイルの配置場所が変わります。
    [Azure portal][Resource groups]に移動し、pqfunction…ストレージアカウントを含むリソースグループを探します。各リソースグループはプラグインインスタンスです。見つけた場合は、プロモートと隔離設定の更新を参照してください。
  3. Record the C1FSS event subscription details.
    C1FSSは、スキャンされた各ストレージアカウントにイベントグリッドのイベントサブスクリプションを作成し、ブロブがアップロードされるたびにそのBlob Listener関数をトリガーします。更新中にこのサブスクリプションを削除するため、最初に記録してください。この情報は、C1FSSにロールバックする必要がある場合に必要です。
    C1FSSが保護する各ストレージアカウントに対して次の操作を行ってください。
    1. [Azure portal][Storage accounts] の順に選択し、ストレージ アカウントを開きます。
    2. 左側のナビゲーションで[イベント]を選択し、[Event Subscriptions]タブを開きます。
    3. tmbl0…-triggerという名前のサブスクリプションを見つけてください。これはC1FSSによって作成されたサブスクリプションです。
    4. サブスクリプションを開き、サブスクリプション名、イベントタイプ、エンドポイントタイプ、エンドポイント、およびフィルターをメモしてください。
    5. この情報をアクセス可能な場所に保存してください。例えば、テキストファイルやチケットコメントなどです。

    C1FSSイベント購読の詳細

    名前
    イベントタイプ
    フィルタ
    エンドポイントの種類
    エンドポイント
    tmbl0<uid>-trigger
    Microsoft.Storage.BlobCreatedMicrosoft.Storage.BlobRenamed
    なし
    Azure Function
    tmbl0<uid> (Blobリスナー)
    更新中にこの[イベント]ページに何度か戻ります。ここで、V1FSSサブスクリプションがC1FSSの横に表示されていることを確認し、カットオーバー時にC1FSSサブスクリプションを削除し、ロールバックする場合はC1FSSサブスクリプションを再作成します。
    注意
    注意
    ストレージアカウントにtmbl0…-triggerサブスクリプションがない場合、C1FSSはそれをスキャンしません。そのストレージアカウントを更新から除外してください。
  4. Identify the C1FSS resource groups.
    C1FSSリソースにはタグが付いていないため、名前で識別します。デフォルトのリソースグループ名はScanner-TM-FileStorageSecurityStorage-TM-FileStorageSecurityですが、名前はデプロイ時に選択されており、変更されている可能性があります。C1FSSリソースグループ内のすべてのリソースは同じ生成された13文字のサフィックスを共有し、tm<role>0<suffix>という名前が付けられています。ここで<role>はコンポーネントを識別します。
    [Azure portal][Resource groups]に移動し、名前がtmで始まるリソースを含むグループを探してください。

    C1FSSリソースグループ

    含まれている場合
    それは
    一般的なデフォルト名
    tmsf0… (functionアプリケーション), tmsbq0… (Service Bus)
    スキャナーリソースグループ、地域ごとに1つ
    Scanner-TM-FileStorageSecurity
    tmbl0…およびtmat0…(機能アプリ)
    保護されたストレージアカウントごとに1つのストレージリソースグループ
    Storage-TM-FileStorageSecurity
  5. Confirm that you have the required permissions.
    2つのレベルでの権限が必要であり、サブスクリプション[所有者]だけでは不十分です。
    • Microsoft Entra ID (your directory): TrendAI Vision Oneは、テナント内にアプリ登録とサービスプリンシパルを作成するため、[アプリケーション管理者]ロールまたは同等の権限が必要です。
    • The Azure subscription: リソースグループ、ストレージアカウント、キーコンテナー、Service Bus名前空間、関数アプリ、マネージドID、イベントグリッドトピックとサブスクリプション、ロール定義およびロール割り当てを作成する権限が必要です。
    また、各対象地域で十分なクォータが必要です。最も重要な制限はElastic Premium App Serviceプランであり、V1FSSはEP1を使用します。詳細については、File Security StorageをAzureにデプロイするを参照してください。
    注意
    注意
    権限とクォータを手動で確認する必要はありません。いずれかの更新パスの手順1では、./deploy.sh preflightを実行します。これは、何も作成される前に不足しているものを正確に報告する読み取り専用のチェックです。

プロモートおよび隔離設定のアップデート

pqfunction…ストレージアカウントが見つからない場合は、このセクションをスキップしてください。プラグインがない場合、C1FSSはブロブにタグを付けるだけで、V1FSSも同様です。
C1FSSでは、プロモートと隔離は、各スキャンストレージアカウントごとにデプロイされた個別のプラグインであり、各宛先に対する接続文字列がありました。V1FSSでは、これらはポスト検索アクション機能アプリに組み込まれ、デプロイメントパッケージのmain.tfファイル内のmodule "file-storage-security"ブロックで設定されます。
最初にプラグイン設定を記録してください
pqfunction…ストレージアカウントについて、同じリソースグループ内の関数アプリを開き、[設定][Environment variables]に移動し、以下を記録します。

記録するためのプラグイン設定

設定
記録する内容
PROMOTEMODE
移動またはコピー
QUARANTINEMODE
移動またはコピー
PROMOTE_STORAGE_CONNECTION_STRING
AccountName=の部分のみ、つまり宛先のアカウント名
QUARANTINE_STORAGE_CONNECTION_STRING
AccountName=の部分のみ
重要
重要
これらの接続文字列にはストレージアカウントキーが含まれています。アカウント名のみをコピーし、値全体をどこにも貼り付けないでください。
空の接続文字列は、アクションがオフになっていることを意味します。また、各プラグインがどのストレージアカウントで動作するかを確認してください。それは、プラグインが一緒にデプロイされたストレージリソースグループのスキャンストレージアカウントです。
main.tfで値を設定してください
解凍されたパッケージ内のmain.tfを開きます。Cloud Shellにはエディタが含まれており、code main.tfで開きます。module "file-storage-security"ブロックを見つけ、次の3つの値を設定します。
  1. Where blobs go.
    # If every protected storage account used the same destination:
    clean_storage_account      = jsonencode({ global = "mycleanaccount" })
    quarantine_storage_account = jsonencode({ global = "myquarantineaccount" })
    
    # If destinations differed per storage account:
    quarantine_storage_account = jsonencode({
      custom = {
        "sourceaccount1" = { destAccount = "quarantineaccount1" }
        "sourceaccount2" = { destAccount = "quarantineaccount2" }
      }
    })
    そのアクションがオフになっている場合、変数をjsonencode ({})のままにしてください。それらのブロブは、以前とまったく同じようにその場でタグ付けされます。
    重要
    重要
    すべての保護対象ストレージアカウントにそのアクションのプラグインがある場合のみglobalを使用してください。global値は、プラグインがないものやC1FSSの下にタグ付けされたストレージアカウントを含むすべてに適用されます。宛先を指定すると、V1FSSがそれらのblobの移動を開始します。プラグインがあるストレージアカウントが一部のみの場合は、custom形式を使用し、リストしたアカウントのみに影響を与えます。
  2. [Where blobs land inside the destination.] この値を変更する必要があります。
    use_source_storage_account_as_container = false
    パッケージはtrueで出荷されます。これは新規デプロイメントには正しいデフォルトですが、更新には適していません。

    宛先パス

    設定
    パスにブロブが到達する
    C1FSSプラグイン
    <destination>/<source-container>/<blob>
    V1FSSはfalse
    <destination>/<source-container>/<blob>、C1FSSと同じ
    true付きのV1FSS
    <destination>/<source-account>/<source-container>/<blob>、これは異なります
    隔離または昇格されたブロブをパスで読み取るものがある場合、trueはカットオーバー時にそれを破壊します。
  3. [Leave the failure destination empty]、C1FSSに一致させる。
    failure_storage_account = jsonencode({})
    C1FSSは検索に失敗したブロブをそのまま残しました。V1FSSはそれらを別の場所に移動することができる新しい機能を持っていますが、現在の動作ではありません。
引き継げない2つの動作
  • [Copy mode.] PROMOTEMODEまたはQUARANTINEMODEcopyの場合、C1FSSは元のブロブをそのままにしていました。V1FSSは常にブロブを移動します: ブロブを宛先にコピーしてから元のものを削除します。元のブロブがソースストレージアカウントに残ることに依存しないようにしてください。
  • [Destinations in another subscription.] C1FSSはストレージアカウントキーを使用していたため、宛先はどこにでも設定できました。V1FSSは独自のマネージドIDを使用し、このサブスクリプションにスコープされています。宛先が異なるサブスクリプションにある場合は、このサブスクリプションに移動するか、Azure管理者に依頼して、デプロイ後にv1fss-…-function-identity IDにアクセス権を付与してください。

アップデート後の変更点

V1FSSはC1FSSと完全に一致する機能ではありません。何かを削除する前に以下を確認してください。
何が異なるのか
  • [Scan results are always written to both metadata and index tags.] C1FSSはUpdateScanResultToBlobMetadata = Noを使用してメタデータをオフにすることができます。V1FSSはできません: スキャンされたすべてのブロブにはfss-インデックスタグとともにfssScannedfssScanResultfssScanDatefssScanDetailCodefssScanDetailMessageメタデータが付加されます。メタデータをオフにしてC1FSSを実行した場合、更新する前にブロブメタデータを読み取ったり比較したりするものを確認してください。
  • [Your Azure bill profile changes]が消費プランでC1FSSを実行した場合。V1FSSは、従量課金制ではなく、常に割り当てられたElastic Premium (EP1) プランを使用します。これにより、コールドスタートが発生しない代わりに、地域ごとに固定のコストがかかります。これは設計上の意図です。
  • [Logs go to a new workspace.] V1FSSは、提供されたものではなく、独自のLog AnalyticsワークスペースとApplication Insightsインスタンス (v1fss-<region>-…) を作成します。保存済みクエリやアラートは新しいワークスペースを指すようにしてください。
  • Promote and quarantine always move blobs, never copy them.
  • [Scan history stays in Cloud One.] TrendAI Vision Oneは切り替え時に新たに開始されます。Cloud Oneテナントが削除される前に、保持する必要があるものをエクスポートしてください。
引き継がれないもの
  • VNet deployment: V1FSSではサポートされていないため、VNetデプロイメントを更新しないでください。
  • [Reporting object keys to the backend] (ReportObjectKey): V1FSSに相当するものはありません。
  • A custom Event Grid topic name: 無害。V1FSSは監視しているストレージアカウントによってトピックを見つけます。
得られるものと、その後に設定したいこと
  • [Blob moving without a separate plugin]はV1FSSに組み込まれており、ストレージアカウントごとにではなく一度設定するだけで、管理するストレージアカウントキーはありません。
  • [A destination for failed scans] (failure_storage_account)。C1FSSはそれらのブロブをそのままにしました。
  • [Detections in TrendAI Vision One XDR]、他のセキュリティデータと共に。

一般的な質問

Which update path should I use?
スキャンを一時停止できない場合は、ゼロダウンタイムを使用してください。スキャンを一時停止できる場合は、短時間のダウンタイムを使用し、特にプロモートまたは隔離プラグインを使用する場合はそうしてください。このプラグインは、重複作業だけでなく実際の問題を引き起こす唯一のケースです。
How long is the brief downtime?
C1FSSイベントサブスクリプションを削除してから、TrendAI Vision Oneコンソールでスキャンをオンにするまでの間のギャップのみです。どちらもコンソールでの単一のアクションであるため、通常は数分です。所要時間は、展開手順ではなく、あなた次第です。
In the zero-downtime path, why not delete the C1FSS event subscription before validating?
重複期間中に検証を行うと結果の帰属が難しくなるため、代わりに一度も保護されていないストレージアカウントC1FSSで検証を行います。そのストレージアカウントには重複がなく、テストアップロードと競合するものはなく、すべての結果はV1FSSに帰属します。C1FSSのサブスクリプションを先に削除しても更新が短縮されることはありません。なぜなら、V1FSSはすでに両方の順序でオンになっているからです。それはリスクを早めるだけであり、もしV1FSSが誤って構成されていた場合、実際のストレージアカウントがすでに保護されていない状態でそれを発見することになります。手順3の最後に、C1FSSがサブスクライブ解除されるがリソースが削除される前に、保護されたストレージアカウントC1FSSでエンドツーエンドの確認を行います。その時点で帰属は明確であり、ロールバックもまだ可能です。
Which storage accounts does C1FSS actually protect?
保護されていると思われる各ストレージアカウントを開き、[イベント][Event Subscriptions]tmbl0…-triggerエントリを確認してください。それが権威ある回答です: サブスクリプションが存在しない場合、C1FSSはそのストレージアカウントをスキャンしていません。Cloud Oneコンソールの[File Storage Security][Stacks]ページには、各スタックの背後にあるストレージアカウントの名前も表示されます。
Why are my blobs being scanned twice?
ゼロダウンタイムパスでは、重複期間中に両方の製品がオンになります。これによりダウンタイムを回避し、C1FSSイベントサブスクリプションを削除すると停止します。
The deploy.sh script failed. Can I run it again?
はい。このスクリプトは、パッケージではなく、あなた自身のサブスクリプションにおいて既に行ったことを記録します。そのため、再度実行すると最初からではなく続行されます。報告された問題を修正し、同じコマンドを再度実行してください。
It failed on something about an app registration.
それはMicrosoft Entra IDであり、サブスクリプションではありません。ディレクトリの権限が必要です: [アプリケーション管理者]ロールまたは同等のもの。持っていない場合は、Entra IDの管理者に問い合わせてください。
How do I remove the V1FSS deployment?
パッケージディレクトリから./deploy.sh uninstallを実行します。このサブスクリプションに他のTrendAI Vision One機能が接続されている場合は注意してください。このコマンドは、File Security Storageだけでなく、パッケージが展開したすべてを削除します。File Security Storageのみを削除するには、TrendAI Vision Oneコンソールでそれをクリアし、再生成されたパッケージをダウンロードして、./deploy.sh installを再度実行します。
Teardown left a system topic behind. Is that a problem?
いいえ、V1FSSにはそれが必要です。ただし、残ったFSS-…のカスタムロールは削除する必要があります。それらは自動的に削除されません。
Is my region supported?
ある地域がまだサポートされていない場合、./deploy.sh installは即座に失敗し、その地域の名前を示します。その地域からC1FSSを削除する前に、TrendAIサポートに問い合わせてください。
Can I do this without Cloud Shell?
はい、Bash 5以降、Azure CLI、jq、Terraformがインストールされており、正しいサブスクリプションにサインインしている任意のマシンから可能です。Cloud Shellはこれらがすべて揃っているため推奨されます。なお、macOSには古すぎるBash 3.2が搭載されています。