檢視次數:
您可以使用 TrendAI Vision One 控制台和 Azure 入口網站,將 Azure Subscription 從 TrendAI 雲端 One File Storage Security (C1FSS) 更新至 TrendAI Vision One™ File Security Storage (V1FSS)。本主題涵蓋適用於兩種更新路徑的準備、設定和行為變更。

選擇更新路徑

有兩種更新路徑可用。兩者執行相同的工作,只是兩個動作的順序不同:啟用 V1FSS 掃描和移除 C1FSS 事件訂閱。

更新路徑

路徑
順序
結果
零停機時間
先開啟 V1FSS,再移除 C1FSS
重疊的情況是兩個產品都會掃瞄每個新的 blob
短暫停機
先移除 C1FSS,再開啟 V1FSS
兩個產品都未掃描的間隙
  • Zero downtime:選擇此路徑以避免掃描中斷。請注意,在 C1FSS 掃描停止之前的間隔期間,可能會有新上傳的 blob 同時被 C1FSS 和 V1FSS 掃描。如果使用 promote-or-quarantine 插件,可能會導致競爭條件,進而導致標籤不一致、檔案狀態不一致(其中一個產品移動 blob 而另一個仍在讀取),或重複處理(兩個產品嘗試相同的移動,贏的一方刪除來源,而另一方記錄失敗)。
  • Brief downtime:如果您能容忍掃描的短暫中斷,請選擇此路徑。掃描僅在刪除 C1FSS 事件訂閱和在 TrendAI Vision One 控制台中開啟掃描之間暫停,通常只需幾分鐘。此路徑在更新過程中出現問題的機率最小,如果您使用 promote-or-quarantine 插件,這是更好的選擇。

在您開始之前

在您更改任何內容之前,請先完成以下五項檢查。這些檢查適用於兩種更新路徑。
  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 可以將乾淨或惡意的 blob 移動到其他儲存帳戶,但只能透過每個掃描儲存帳戶部署一次的單獨插件來實現。V1FSS 內建此功能,但設定不會自動攜帶,且有一個預設值不同,會影響到您的檔案存放位置。
    前往「Azure portal」「Resource groups」,尋找包含pqfunction…儲存帳戶的資源群組。每一個都是插件實例。如果找到任何,請參閱更新促銷和隔離設定
  3. Record the C1FSS event subscription details.
    C1FSS 會在每個已掃描的儲存帳戶上建立一個事件網格事件訂閱,當有 blob 上傳時會觸發其 Blob Listener 功能。您在更新期間會刪除此訂閱,因此請先記錄它。如果您需要回滾到 C1FSS,這些資訊是必需的。
    對 C1FSS 保護的每個儲存帳戶執行以下操作:
    1. 移至「Azure portal」「Storage accounts」,然後開啟儲存帳戶。
    2. 在左側導航中,選擇「事件」,然後打開「Event Subscriptions」標籤。
    3. 尋找名為 tmbl0…-trigger 的訂閱。這是 C1FSS 創建的訂閱。
    4. Open the subscription and note down the subscription name, event types, endpoint type, endpoint, and any filters.
    5. 將此資訊儲存到易於存取的地方,例如文字檔或工單評論。

    C1FSS 事件訂閱詳情

    名稱
    事件類型
    過濾器
    端點類型
    端點
    tmbl0<uid>-trigger
    Microsoft.Storage.BlobCreated, Microsoft.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… (函數應用程式), tmsbq0… (Service Bus)
    掃描器資源群組,每個地區一個
    掃描器-TM-檔案儲存安全
    tmbl0…tmat0…(功能應用程式)
    儲存資源群組,每個受保護的儲存帳戶一個
    Storage-TM-檔案存儲安全
  5. Confirm that you have the required permissions.
    您需要在兩個層面上擁有權限,僅有訂閱「擁有者」是不夠的。
    • Microsoft Entra ID (your directory):TrendAI Vision One 會在您的租戶中建立應用程式註冊和服務主體,因此您需要「Application Administrator」角色或同等角色。
    • The Azure subscription:您需要獲得建立資源群組、儲存帳戶、金鑰保存庫、Service Bus 命名空間、函數應用程式、受管理的身分識別,以及事件網格主題和訂閱的許可權,還有角色定義和角色指派的許可權。
    您還需要在每個目標區域擁有足夠的配額。最常遇到的限制是彈性高級 App Service 計劃,因為 V1FSS 使用 EP1。如需詳細資訊,請參閱 將 File Security 儲存部署到 Azure
    注意
    注意
    您不需要手動檢查權限和配額。無論選擇哪種更新路徑,步驟1都會執行./deploy.sh preflight,這是一個只讀檢查,會在創建任何內容之前準確報告缺少的項目。

更新提升和隔離設定

如果您未找到任何 pqfunction… 儲存帳戶,請跳過此部分。沒有插件的情況下,C1FSS 只標記您的 blob,V1FSS 也是如此。
在 C1FSS 中,提升和隔離是獨立的插件,每次掃描儲存帳戶時部署一次,並為每個目的地提供連接字串。在 V1FSS 中,它們被內建到掃描後行動功能應用程式中,並在部署包的 main.tf 文件中的 module "file-storage-security" 區塊中進行配置。
先記錄插件設定
對於每個 pqfunction… 儲存體帳戶,開啟相同資源群組中的函數應用程式,前往 「設定」「Environment variables」,並記錄以下內容。

插件設定以進行記錄

設定
要記錄什麼
PROMOTEMODE
移動複製
隔離模式
移動複製
PROMOTE_STORAGE_CONNECTION_STRING
只有 AccountName= 部分,即目標帳號名稱
QUARANTINE_STORAGE_CONNECTION_STRING
僅限AccountName=部分
重要
重要
這些連接字串包含儲存帳號金鑰。僅複製帳號名稱,切勿將整個值貼到任何地方。
空白的連接字串表示該操作已關閉。另請注意每個插件作用於哪個儲存帳戶。它是與插件一起部署的儲存資源群組的掃描儲存帳戶。
在 main.tf 中設定值
在解壓縮的套件中打開 main.tf。雲端 Shell 包含一個編輯器,您可以使用 code main.tf 打開它。找到 module "file-storage-security" 封鎖並設定以下三個值。
  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({})。這些數據塊會在原地標記,與之前完全相同。
    重要
    重要
    僅在您保護的每個儲存帳戶都有該操作的插件時使用globalglobal值適用於所有儲存帳戶,包括任何從未有過插件的儲存帳戶,以及僅在 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 相同
    V1FSS 與 true
    <destination>/<source-account>/<source-container>/<blob>,這是不同的
    如果有任何東西透過路徑讀取您隔離或提升的數據塊,true會在切換時中斷它。
  3. 「Leave the failure destination empty」,以符合 C1FSS。
    failure_storage_account = jsonencode({})
    C1FSS留下掃瞄失敗的blob。V1FSS可以將它們移動到其他地方,這是一項新功能,但不是您目前的行為。
無法延續的兩種行為
  • 「Copy mode.」 如果 PROMOTEMODEQUARANTINEMODEcopy,C1FSS 會保留原始 blob。在 V1FSS 中,blob 總是被移動:它會將 blob 複製到目的地,然後刪除原始檔案。請確保沒有任何依賴於原始檔案留在來源存儲帳戶。
  • 「Destinations in another subscription.」 C1FSS 使用了儲存帳戶金鑰,因此目的地可以是任何地方。V1FSS 使用其自己的受管理身分,範圍限定於此訂閱。如果目的地在不同的訂閱中,請將其移至此訂閱,或在部署後請您的 Azure 管理員授予 v1fss-…-function-identity 身分存取權限。

更新後的變更內容是什么

V1FSS 並非 C1FSS 的精確功能對應。請在刪除任何內容之前檢查以下內容。
有何不同
  • 「Scan results are always written to both metadata and index tags.」 C1FSS 讓您可以使用 UpdateScanResultToBlobMetadata = No 關閉元數據。V1FSS 則不行:每個掃描的 blob 都會獲得 fss- 索引標籤以及 fssScannedfssScanResultfssScanDatefssScanDetailCodefssScanDetailMessage 元數據。如果您在 C1FSS 中關閉了元數據,請在更新之前檢查任何讀取或比較 blob 元數據的內容。
  • 「Your Azure bill profile changes」 如果 C1FSS 在消耗計劃上運行。V1FSS 使用始終分配的彈性高級 (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 在切換時重新開始。在您的雲端 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 已將這些 blob 保留在原處。
  • 「Detections in TrendAI Vision One XDR」,以及您其他的安全資料。

常見問題

Which update path should I use?
如果您無法暫停掃描,請使用零停機時間。如果可以,請使用短暫停機時間,尤其是在使用 promote-or-quarantine 插件時。該插件是唯一一個重疊會導致實際問題而不僅僅是重複工作的情況。
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,不是訂閱。您需要目錄權限:「Application Administrator」 角色或同等角色。如果您沒有這些權限,請詢問您的 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 的機器上,並且已登入正確的訂閱,即可使用。建議使用雲端 Shell,因為它已經具備所有這些工具。請注意,macOS 附帶的 Bash 版本是 3.2,這個版本太舊了。