檢視次數:
本指南將引導您將您的AWS帳戶從TrendAI™雲端One File Storage Security (C1FSS)更新至TrendAI Vision One™ File Security Storage (V1FSS)。此更新基於共存且零停機:該工具會在您現有的C1FSS旁建立V1FSS,確認新的掃描功能正常運作,然後逐個區域停用C1FSS,確保您的儲存桶始終受到保護。
At a glance:
  1. Dry run執行預覽每個變更而不影響任何內容。
  2. 執行run --execute 部署 V1FSS 於 C1FSS 旁(兩者同時平行掃瞄)。
  3. Verify & tear down, per region:證明 V1FSS 有效,然後刪除該區域的 C1FSS。
您可以在拆除之前隨時使用還原退出。

先決條件

  • 一個具有操作員角色(或具有等效權限和範圍的自訂角色)的TrendAI Vision One™ API 金鑰。該工具使用它來啟用 File Security 並將 CAM 模板部署到您的 AWS 帳戶中。
  • 用於部署 C1FSS 的帳戶的 AWS 憑證,能夠同時部署 TrendAI Vision One™ CAM 連接器 / File Security 儲存功能堆疊並執行更新的發現/拆除/驗證操作。管理員等同角色是最簡單的;如需範圍政策,請參閱 AWS 所需權限
  • 存取 AWS CloudShell(推薦)。它提供 AWS 憑證環境,因此不需要本地設置。若要在其他地方執行,請參閱 CloudShell 常見問題

執行更新

  1. 開啟 CloudShell 並設定您的 API 金鑰。
    在部署 C1FSS 的 AWS 帳戶中,打開 CloudShell 並設定:
    export V1_API_KEY="您的-vision-one-api-key"
  2. 下載工具並進行模擬運行。
    curl -sSL https://v1-file-security-storage.s3.amazonaws.com/aws/tools/v1fss-migrate.zip \
      -o v1fss-migrate.zip
    unzip -q v1fss-migrate.zip
    python3 -m v1fss_migrate run
    每個變異步驟是「dry-run by default」:沒有任何創建、更改或刪除。這會列印出發現的 C1FSS 堆疊、它們掃瞄的儲存桶,以及工具將採取的確切操作,依次進行預檢 → 發現 → 上線 → 同步 → 啟用 → 驗證。
  3. 檢查計劃,然後執行。
    python3 -m v1fss_migrate resume --run-id <run-id> --execute
    每次執行都會獲得一個 run-id(在開始時列印並檢查點至 ~/.v1fss-migrate/state-<run-id>.json)。如果 CloudShell 的閒置超時中斷了您,請在不重複已完成階段的情況下繼續:
    python3 -m v1fss_migrate resume --run-id <run-id> --execute
    run --execute 期間,您可能會被問到兩個問題(兩者都需要互動式終端機,CloudShell 也算在內):
    • SWP instance selection:如果您的租戶有多個 Server & Workload Protection 實例,onboard 會暫停並列出它們以供選擇。使用 --workload-instance-id <id> 跳過提示(在 TrendAI Vision One™ 控制台的 Server & Workload Protection 下找到)。
    • Verify bucketverify 每個區域執行一次,並要求一個不受 C1FSS 保護且位於該區域的儲存桶,以便證明 V1FSS 在該處進行掃描。輸入儲存桶名稱,或留空以跳過該區域的驗證(跳過是可以的;請參閱驗證常見問題)。受 C1FSS 保護的儲存桶或位於不同區域的儲存桶會立即被拒絕並重新要求。
  4. 逐一區域進行驗證和拆解。
    在步驟3之後,每個區域都已經執行verify(通過,或如果您將提示留空則標記為跳過),因此所有區域都已準備好拆除。拆除的條件是V1FSS已確認您的儲存桶受到保護,而不是依賴verify。
    注意
    注意
    「Verify is optional.」 僅獨立執行以獲得區域的明確端到端掃瞄證明,或重新驗證驗證失敗的區域。使用不在 C1FSS 下且位於 --regions 區域中的儲存桶:
    python3 -m v1fss_migrate verify \
      --run-id <run-id> --regions us-east-1 \
      --verify-bucket <bucket-not-under-c1fss> --execute
    「Tear down」 該區域的 C1FSS 堆疊:
    python3 -m v1fss_migrate teardown \
      --run-id <run-id> --regions us-east-1 --execute
拆解是按區域進行的。它會在某個區域的驗證通過或被跳過後刪除該區域的 C1FSS 堆疊;如果驗證實際運行並失敗,則會阻止該區域,直到您修復原因並重新運行。無論如何,拆解僅刪除 V1FSS 確認為受保護的桶的堆疊,且一個區域的狀態永遠不會阻止另一個區域。(在 run --execute 之後,工具會打印出精確的 teardown … --execute 命令供您複製。)
「If your C1FSS is deployed in a VPC, teardown takes noticeably longer.」 刪除附加至 VPC 的掃描器(或儲存)Lambda 會等待 AWS 網路介面(ENI)清理,這通常需要 「10–40 minutes per stack」,而非 VPC 堆疊則只需一兩分鐘。堆疊會並行刪除(因此此階段受最慢的影響,而非總和),每次刪除預設最多等待 「1 小時」;如有需要,可使用 --teardown-timeout <seconds> 增加時間。這是預期的;讓它運行。請參閱拆除常見問題。
如果 C1FSS 跨越多個區域,請對每個剩餘的區域重複這兩個命令:
python3 -m v1fss_migrate verify \
  --run-id <run-id> --regions us-west-2 \
  --verify-bucket <another-bucket-not-under-c1fss> --execute

python3 -m v1fss_migrate teardown \
  --run-id <run-id> --regions us-west-2 --execute
每個teardown都會要求您輸入DELETE C1FSS以確認永久刪除該區域的C1FSS堆疊。執行非互動操作時,傳遞--yes以跳過提示。
一旦每個區域被拆除,更新即完成:V1FSS 正在掃描您的儲存桶,C1FSS 已退役。

未更新的內容

該工具會保留具有直接 V1FSS 對應的設定:SSE-KMS Key ARNs、掃瞄結果標籤格式、掃瞄器臨時儲存大小、VPC Subnets/安全群組/Proxy、提升/隔離目的地桶,以及(附有警告)IAM 權限邊界。其他設定則會以明確的 onboard 警告丟棄或完全未被發現。在依賴完全相同之前請先檢查此內容:
  • Account-Scanner topology:不支援。如果discover發現其中一個,將立即中止;請改用手動操作手冊更新該帳戶。
  • Org (CAM organizational) accounts:不支援,即使您尚未在該帳戶上更新 C1FSS。它們的 CAM 連接器堆疊是由您組織的管理帳戶透過 StackSet 推送的,而不是每個帳戶創建或更新。
  • 「C1 settings with no V1 equivalent」(在onboard期間記錄為「未繼承」):ReportObjectKeyScanOnGetObjectExclusiveBucketListEnableCrossAccountScanningAdditionalIAMPoliciesObjectFilterPrefixObjectCreatedEventFilter。即使只有一個 C1 儲存桶設置了物件鍵前綴篩選器,該篩選器也不會被繼承;V1FSS 的對應篩選器是針對整個帳戶的,而不是針對每個儲存桶的,因此應用它會錯誤地縮小對其他從未在 C1 下設置過篩選器的儲存桶的掃描範圍。
  • 「Promote/quarantine in」「複製」「mode」:V1FSS 的掃描後中毒處理行動僅「moves」已掃描的物件;沒有對應的複製模式。如果您的 C1 插件運行 PromoteMode/QuarantineMode = copy(原始物件保留在來源儲存區),onboard 會記錄一個警告:切換後來源物件是「deleted」,而非保留。在拆除 C1 之前,請確認這是可以接受的。
  • Plugin object ACLs:C1 插件會在移動物件時重新套用自訂 ACL;V1FSS 的操作則不會,因此插件的 ACL 設定無法被保留(onboard 發現時會記錄一個 WARNING)。
  • Conflicting per-region values:如果同一區域中的兩個或多個 C1 堆疊報告不同的 VPC Subnets/安全群組/Proxy,或不同區域報告不同的 IAM 權限邊界,則不會保留任何衝突的值(onboard 日誌會記錄一個警告,列出受影響的區域);之後請在連接器堆疊上手動設置它們。
  • Conflicting scan-result tag formats:掃瞄結果標籤格式(分離標籤 / 合併標籤 / 無標籤)在 V1FSS 中為 「account-wide」,因此不同於上述的值,當 C1 堆疊不一致時不能簡單地丟棄。如果您的 C1 堆疊在各地區使用 「different」 標籤格式,onboard 會選擇 「majority」 格式,並在整個帳戶中應用,並記錄一個警告,列出找到的格式和選擇的格式。使用不同格式的 C1 堆疊的桶在切換後將被標記為選擇的格式,這與其 C1 行為有所不同。如果需要不同的格式,請在連接器堆疊上設置 FileSecurityStorageScanResultTagFormat
  • IAM permissions boundary:預設會被繼承,但被標記為警告:C1 和 V1 使用不同的 CFN 資源/IAM 角色,因此適用於 C1 的邊界可能會封鎖 V1 的部署。傳遞 --skip-permission-boundary 以排除它。

疑難排解與常見問題

Can I run it outside AWS CloudShell?
是的。建議使用 CloudShell 只是因為它可以提供 AWS 憑證。任何具有 Python 3、boto3 庫、C1FSS 帳戶的 AWS 憑證(環境變數、命名配置檔或 SSO)以及 export V1_API_KEY=… 的主機都可以正常運作。SSO/SAML 會話可能在運行中途過期;請刷新它們並使用 resume --run-id <run-id> --execute
What if my account spans multiple regions?
run 預設會掃描所有已啟動的區域,並將每個區域一起進行上線/同步/啟用。只有 verifyteardown 是針對每個區域(步驟 4),因此您可以獨立驗證和切換每個區域。
How do I resume an interrupted run?
檢查停止的位置,然後繼續;已完成的階段將被跳過:
python3 -m v1fss_migrate status --run-id <run-id>
python3 -m v1fss_migrate resume --run-id <run-id> --execute
Is there downtime during the switch?
否。零停機是預設設定。啟用 V1FSS 會將 EventBridge 通知與 C1FSS 現有的 Lambda 通知合併在同一個儲存桶上;C1FSS 會持續掃描和標記物件,直到其堆疊在最後一步被拆除。
How do I back out (rollback)?
python3 -m v1fss_migrate rollback --run-id <run-id> --execute
還原會逆轉 V1FSS 的上線:它會關閉其開啟的 V1 掃描(移除 EventBridge 通知),並刪除其創建的 V1 連接器或將其還原至更新前的狀態。它絕不會影響 C1FSS(您 C1 的堆疊、通知和推廣/隔離插件始終保持不變),因此還原僅僅是將您返回到「僅 C1FSS」。這在拆除之前才有意義(刪除 C1 堆疊是不可逆的),並且故意不會在已經開始拆除的區域關閉 V1(這會使那些存儲桶既沒有 C1 也沒有 V1)。
「Do I have to run」驗證?
不。這是可選的。拆除僅在 V1FSS 確認其桶已受保護後才刪除區域的 C1FSS 堆疊,因此即使不進行切換也是安全的。verify 是一個額外的端到端驗證:它會將一個乾淨的物件和一個 EICAR 物件上傳到不在 C1FSS 下的桶中,並檢查掃瞄標籤。如果您跳過它,teardown 仍會繼續,但會記錄該區域在沒有該驗證的情況下被停用。若驗證運行並失敗,則會封鎖該區域的拆除。如果驗證無法上傳其測試物件(物件鎖定、限制性桶策略或呼叫者無法使用的必要 KMS Key),它會報告並跳過:請在 V1 控制台中手動確認掃瞄,或選擇不同的驗證桶。(EICAR 是標準的惡意程式防護測試字串,並非真正的惡意程式。)
What happens to my promote/quarantine rules?
onboard 會讀取您的 C1FSS promote/隔離 插件配置,並將其映射到等效的 V1FSS 操作參數,因此在切換後,儲存桶會保持相同的清理/隔離行為。(複製模式和物件 ACL 是例外:請參閱「未更新的內容」。)
How long does teardown take, and can a slow stack fail it?
通常每個堆疊需要幾分鐘,但如果您的 C1FSS 部署在 VPC 中,預期會需要更長的時間。刪除附加到 VPC 的掃描器(或存儲)Lambda 主要受 AWS 網路介面(ENI)清理影響,通常每個堆疊需要 10–40 分鐘。拆除過程會並行刪除堆疊(先刪除存儲/插件堆疊,然後是掃描器),因此此階段受限於最慢的單一堆疊而非總和,且每次刪除預設最多等待 1 小時;若堆疊異常緩慢,可使用 --teardown-timeout <seconds> 提高等待時間。若某個堆疊仍未完成,將報告並停止此階段,其他已拆除的堆疊不受影響;重新執行相同的 teardown 命令以重試該堆疊。
What happens to my Scanner stacks at teardown?
一個捆綁在全能型堆疊中的掃描器會被父堆疊的級聯刪除移除。獨立的掃描器堆疊(分離儲存 + 掃描器拓撲)是共享基礎設施(一個掃描器可以服務多個儲存堆疊),因此工具僅在能證明沒有其他需求時自動刪除它:每個指向它的儲存堆疊(匹配於 ScannerSQSURL → 掃描器的 ScannerQueueURL)在此運行中被拆除,發現覆蓋了您的整個帳戶(沒有 --regions),且掃描器的 SQS Queue 政策不授予其他 AWS 帳戶。如果無法確認其中任何一項(最重要的是本次運行中無法看到的跨帳戶/中央掃描器服務儲存堆疊),工具會保留掃描器堆疊並記錄一個備註,精確解釋原因(在跨帳戶情況下命名其他帳戶 ID),以便您在確認沒有其他使用後手動刪除。
Can I run individual phases?
是的。preflightdiscoveronboardsyncenableverify 每個都可以獨立運行(與 run 使用相同的標誌),如果您希望手動進行更新。