ビュー:
TrendAI Cloud One File Storage Security (C1FSS) からTrendAI Vision One™ File Security Storage (V1FSS) にGoogle Cloudプロジェクトを更新するには、TrendAI Vision OneコンソールとGoogle Cloudコンソールを使用します。このトピックでは、両方の更新パスに適用される準備、設定、および動作の変更について説明します。
注意
注意
このアップデートの3つの部分には、どちらのコンソールにもページがありません。クラウドストレージの通知設定はGoogle Cloudコンソールのどこにも表示されず、V1FSSデプロイメントパッケージはTerraformを使用してシェルから適用する必要があります。また、プロモートと隔離の宛先は、どちらのコンソールでもなく、そのパッケージのmain.tfファイルで設定されます。Cloud Shellで両方のコンソールと一緒に作業することを期待してください。

更新パスを選択

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

パスを更新する

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

始める前に

何かを変更する前に、以下の6つのチェックをすべて実行してください。これらは両方の更新パスに適用されます。
  1. Confirm that V1FSS can replace your C1FSS layout.
    2つのC1FSSレイアウトにはV1FSSの同等物がありません。何かを計画する前に両方を確認してください。

    サポートされているC1FSSレイアウト

    C1FSSレイアウト
    アップデートはサポートされていますか?
    オールインワン (スキャナースタックとストレージスタックを一緒に)
    はい
    同じプロジェクト内でスキャナースタックのみ、またはストレージスタックのみ
    はい
    1つのプロジェクトに複数のストレージスタック
    はい。それらは1つのV1FSSスタックに統合されます。
    プロジェクト間で、バケットがあるプロジェクトとスキャナーがあるプロジェクト
    No
    マルチリージョンまたはデュアルリージョンバケット
    いいえ。GCP用のV1FSSは単一リージョンのバケットのみを保護します。
    重要
    重要
    プロジェクト間レイアウトは、全体の計画を変更します。すべてのV1FSSリソースは単一のプロジェクトにスコープされ、バケットはそのプロジェクト内のスキャナーによってのみ提供されます。C1FSSがハブアンドスポークで動作する場合、バケットを保持する各プロジェクトに対して1つのV1FSSデプロイメントが必要であり、ハブスキャナープロジェクトはなくなります。Cloud Oneコンソールを確認して、現在の設定がプロジェクト間であるかどうかを確認し、そうであれば、何かを変更する前にプロジェクトごとの分割を計画してください。
  2. Check whether you use the promote-or-quarantine plugin.
    C1FSSは、クリーンまたは悪意のあるオブジェクトを他のバケットに移動できますが、スキャンバケットごとに一度展開される別のプラグインを通じてのみ可能です。V1FSSにはこの機能が組み込まれていますが、設定は自動的に引き継がれず、デフォルトの1つが異なるため、ファイルの配置場所が変わります。このプラグインはC1FSSスタックの一部ではないため、このアップデートではそれを見つけたり削除したりすることはありません。
    Cloud Shellで次のコマンドを実行してください。
    gcloud functions list --filter="name~promote-and-quarantine" --format="value(name,region)"
    コマンドが何かを返す場合、開始する前にプロモートと隔離の設定を更新するを読み、現在のプラグイン設定を記録してください。これらはV1FSSをインストールする前に必要です。
  3. [Record what C1FSS protects, and how.] これを最初に行ってから、変更を加えてください。
    C1FSS Bucket Listenerはgoogle.storage.object.finalizeトリガーを持つCloud Functions (第1世代) 関数です。Cloud Functionsは、これらのイベントを配信するためにバケットに通知設定を作成し、その通知設定をカットオーバー時に削除します。今すぐその詳細を記録してください。それらはC1FSSがスキャンを停止したことを確認するための基準であり、ロールバックした場合に正しく復帰することを確認するための基準です。C1FSSスタックがなくなると、この情報の一部は読み取れなくなります。
    1. Cloud Oneコンソールで、[File Storage Security][Stacks]に移動し、各スタックの名前、タイプ (スキャナー、ストレージ、またはオールインワン)、およびリージョンをメモしてください。
    2. Cloud Shellで次のコマンドを実行して、各Bucket Listenerが保護するバケットと、カットオーバーに必要なその他すべての情報を見つけてください。
      OUTFILE="c1fss-inventory-$(date +%Y%m%d).csv"
      echo "function,region,bucket,c1_notification_id,c1_notification_topic,object_finalize_count" > "$OUTFILE"
      
      gcloud functions list --filter="name~bucket-listener" --format=json </dev/null \
      | jq -r '.[] | (.name | split("/")) | "\(.[5]),\(.[3])"' \
      | while IFS=, read -r fn region; do
          bucket=$(gcloud functions describe "$fn" --region="$region" \
            --format="value(eventTrigger.resource)" </dev/null | sed 's#.*/buckets/##')
      
          if [ -z "$bucket" ]; then
            echo "$fn,$region,,MISSING,MISSING,0" >> "$OUTFILE"
            continue
          fi
      
          notifs=$(gcloud storage buckets notifications list "gs://$bucket" --format=json </dev/null 2>/dev/null)
          id=$(echo "$notifs" | jq -r '[.[]."Notification Configuration" | select(.topic | test("cloud-functions-"))][0].id // "MISSING"')
          topic=$(echo "$notifs" | jq -r '[.[]."Notification Configuration" | select(.topic | test("cloud-functions-"))][0].topic // "MISSING"')
          count=$(echo "$notifs" | jq '[.[]."Notification Configuration" | select(.event_types == null or any(.event_types[]; . == "OBJECT_FINALIZE"))] | length')
          echo "$fn,$region,$bucket,$id,$topic,$count" >> "$OUTFILE"
        done
      
      column -s, -t "$OUTFILE"
      echo "Saved to: $(pwd)/$OUTFILE"
    3. Cloud ShellからCSVファイルをダウンロードし、最初の手順で取得したCloud Oneのスタック名とリージョンと一緒にアクセス可能な場所に保存してください。テキストファイルやチケットコメントで十分です。
    CSVファイルとスタックリストの間には、更新に必要なすべての情報があります。どの関数がどのバケットを保護するか、デプロイメントパッケージを生成する際に選択するリージョン、カットオーバー時に削除しロールバック時に確認するC1FSS通知idtopic、ロールバック時に再デプロイし、ティアダウン時に削除する関数名、そして以下の6番目のチェックの基準となるOBJECT_FINALIZEカウントです。
    注意
    注意
    バケットにCloud Functionsトピックを指す通知設定がない場合、C1FSSはそれをスキャンしません。そのバケットを更新から除外してください。
  4. Identify which C1FSS generation you have.
    C1FSSは2つのGCPデプロイメントメカニズムを提供しており、それらの間で削除方法が異なります。Cloud Shellで次のコマンドを実行してください。
    gcloud deployment-manager deployments list

    C1FSSデプロイメント世代

    結果
    生成
    Teardownコマンド
    <prefix>-scannerまたは<prefix>-storageという名前のデプロイメント
    デプロイメントマネージャ
    gcloud deployment-manager deployments delete
    デプロイメントが一覧表示されていません
    Terraform
    terraform destroy、指示されたディレクトリで実行してください
  5. Confirm that you have the required permissions and tools.
    • Permissions on the Google Cloud project: 完全なリストについては、Google Cloud の必要な権限を参照してください。
    • Terraform in Cloud Shell: Cloud Shellはgcloudgsutiljqを提供しますが、Terraformは事前インストールされなくなりました。deploy.shはTerraformなしでは実行されないため、自分でTerraformをインストールしてください。
    注意
    注意
    いずれかの更新パスの手順1では、./deploy.sh precheckを実行します。このコマンドはTerraformプランであり、作成されるものを示します。これは権限チェックではないため、権限は別途確認してください。
  6. [Check the notification slots on each bucket.] このチェックはGCPにのみ適用されます。
    バケットは、単一のイベントタイプに対して最大10の通知設定を保持できます。C1FSSは1つ使用し、V1FSSはもう1つ必要です。バケットにすでに9つ以上のOBJECT_FINALIZE設定がある場合、V1FSSでそれをオンにすると、失敗が静かに発生します: TrendAI Vision Oneは内部で失敗をログに記録し続け、バケットはコンソールにエラーが表示されずに保護されないままになります。
    for b in <bucket-1> <bucket-2>; do
      n=$(gcloud storage buckets notifications list "gs://$b" 2>/dev/null | grep -c 'OBJECT_FINALIZE' || true)
      echo "$b: $n OBJECT_FINALIZE notification(s)"
    done
    9以上のバケットは、オンにする前にスロットを解放する必要があります。

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

gcloud functions list --filter="name~promote-and-quarantine"が何も返さない場合は、このセクションをスキップしてください。プラグインがない場合、C1FSSはオブジェクトメタデータのみを書き込み、V1FSSも同様です。
C1FSSでは、プロモートと隔離は検索バケットごとにデプロイされた別のプラグインであり、独自のTerraformステートを持っていました。V1FSSでは、これらはポスト検索アクションサービスに組み込まれ、デプロイメントパッケージのmain.tfファイル内のmodule "file-storage-security"ブロックで設定されます。V1FSSは宛先が空の状態で出荷され、オブジェクトにタグを付けるため、インストール前にパッケージ内で設定します。
最初にプラグイン設定を記録してください
すべてのプラグインインスタンスは、共有の10文字のサフィックスでリソースに名前を付けており、関数名に表示されます。Cloud Shellで次のコマンドを実行して、各インスタンスとそのリージョンを一覧表示します。
gcloud functions list --filter="name~promote-and-quarantine" --format=json </dev/null \
| jq -r '.[] | (.name | split("/")) | "\(.[5])\t\(.[3])"' | column -t
プラグインの全体設定は4つの環境変数です。Google Cloudコンソールで、[Cloud Functions][the plugin function][Variables]に移動するか、次を実行してください。
gcloud functions describe <plugin-function-name> --format="value(environmentVariables)"

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

設定
それが意味すること
PROMOTE_STORAGE_BUCKET
クリーンオブジェクトの宛先。空の値はプロモートがオフになっていることを意味します。
PROMOTE_MODE
moveは元のオブジェクトを削除し、copyはそのまま残します
QUARANTINE_STORAGE_BUCKET
悪意のあるオブジェクトの保存先。空の値は隔離がオフになっていることを意味します。
QUARANTINE_MODE
移動またはコピー
失敗や隔離先はありません。プラグインは常にクリーンまたは悪意のある結果に対してのみ動作します。また、各インスタンスがどのバケットで動作するかに注意してください。それは、プラグインが展開されたC1FSSストレージスタックの検索バケットであり、プラグインがトリガーされる検索結果のPub/Subトピックによって一致させることができます。
main.tfで値を設定してください
解凍したパッケージ内のmain.tfを開きます。Cloud Shellにはエディタが含まれており、cloudshell edit main.tfで開きます。module "file-storage-security"ブロックを見つけ、次の3つの値を設定します。
  1. [Where objects go.] 各宛先はJSON文字列であり、カスタム、リージョナル、グローバルの順に解決されます。
    # If every protected bucket used the same destination:
    clean_bucket      = jsonencode({ global = "my-clean-bucket" })
    quarantine_bucket = jsonencode({ global = "my-quarantine-bucket" })
    
    # If destinations differed per source bucket:
    quarantine_bucket = jsonencode({
      custom = {
        "source-bucket-1" = { destBucket = "quarantine-bucket-1", destRegion = "us-east1" }
        "source-bucket-2" = { destBucket = "quarantine-bucket-2", destRegion = "us-west1" }
      }
    })
    
    # Or per region, keyed by region name, with an optional global fallback:
    quarantine_bucket = jsonencode({ "us-east1" = "quarantine-use1", global = "quarantine-fallback" })
    アクションがオフになっている場合、変数をjsonencode ({})のままにしてください。それらのオブジェクトは、以前とまったく同じようにその場でタグ付けされます。
    重要
    重要
    すべての保護対象バケットにそのアクションのプラグインがある場合にのみglobalを使用してください。global値は、プラグインがなかったバケットやC1FSSのタグが付けられただけのバケットを含め、すべてに適用されます。宛先を指定すると、V1FSSはそれらのオブジェクトの移動を開始します。一部のバケットにのみプラグインがある場合は、custom形式を使用し、指定したソースバケットにのみ影響を与えます。
  2. [Where objects land inside the destination.] この値を変更する必要があります。
    use_source_bucket_as_folder = false
    パッケージはtrueと共に出荷されます。これは新規デプロイメントには正しいデフォルトですが、更新には適していません。

    宛先パス

    設定
    オブジェクトの着地点をパスする
    C1FSSプラグイン
    <destination>/<object>
    V1FSSはfalse
    <destination>/<object>、C1FSSと同じ
    V1FSSをtrueに設定
    <destination>/<source-bucket>/<object>、これは異なります
    何かが隔離されたオブジェクトや昇格されたオブジェクトをパスで読み取る場合、trueはカットオーバー時にそれを中断します。この設定が存在するトレードオフに注意してください。falseの場合、同じ名前のオブジェクトを保持する2つのソースバケットが宛先で互いに上書きします。C1FSSも同様に動作していたため、falseは現在の動作に一致します。各プラグインインスタンスが独自の宛先バケットを持っていたために安全だった場合は、1つのglobal宛先に統合するのではなく、custom形式でその配置を維持してください。
  3. [Leave the failure destination empty]、C1FSSに一致させるため。
    failure_bucket = jsonencode({})
    C1FSSプラグインには失敗時の移動先がなかったため、検索に失敗したオブジェクトはそのままの場所に留まっていました。V1FSSではそれらを別の場所に移動できるようになり、これは新しい機能ですが、現在の動作ではありません。
V1FSSの宛先バケットに関する詳細は、GCPでカスタマイズされた宛先バケットを参照してください。
引き継ぐことができない2つの動作
  • [Copy mode.] PROMOTE_MODEまたはQUARANTINE_MODEcopyの場合、プラグインは元のオブジェクトをそのままにします。V1FSSは常にオブジェクトを移動します: オブジェクトを宛先にコピーしてから元のオブジェクトを削除します。元のオブジェクトがソースバケットに残ることに依存しているものがないことを確認してください。
  • [Destinations in another project.] V1FSSは、Terraform適用の一環として、検索後のアクションサービスアカウントに各宛先バケットでroles/storage.objectAdminを付与します。そのため、deploy.shを実行する際のアイデンティティには、そのバケットでIAMを設定する権限が必要です。宛先が別のプロジェクトにあり、その権限を付与できない場合、バインディングで適用が失敗します。バケットをこのプロジェクトに移動するか、他のプロジェクトの管理者にデプロイ後に…-action-tagサービスアカウントへのアクセスを付与するよう依頼してください。
重要
重要
プラグインは、オブジェクトを宛先にコピーする直前に、fss-キーだけでなく、オブジェクトのメタデータ全体を置き換えます。プラグインが作用するオブジェクトについては、V1FSSキーと独自のカスタムメタデータの両方が宛先のコピーから欠落しています。これは既存のC1FSSの動作であり、アップデートによって変更されることはありません。

アップデート後の変更点

V1FSSはC1FSSと完全に一致する機能ではありません。何かを削除する前に、以下を確認してください。
何が異なるのか
  • [Bucket selection is a console setting, not a deployment parameter.] C1FSSはスタックをデプロイした際にスキャンバケットを固定し、1スタックにつき1バケットです。V1FSSは各プロジェクトごとにデプロイされ、TrendAI Vision Oneコンソールでバケットのオンとオフを切り替えます。
  • [Only one V1FSS stack is supported for each project.] V1FSSは、固定名のシークレットにデプロイメントメタデータを記録するため、同じプロジェクト内で2番目のスタックを適用することはできません。複数のC1FSSストレージスタックは1つのV1FSSスタックに統合されますが、これは通常望ましい結果ですが、選択肢はありません。
  • [V1FSS grants itself project-wide access to Cloud Storage.] バケットごとのIAMバインディングの代わりに、プロジェクト内のすべてのバケットをカバーする2つのプロジェクトレベルのカスタムロールを作成します。個々のバケットへのアクセスをスコープするオプションはありません。C1FSSのバケットごとのモデルが依存していた制御である場合、更新する前にこれを確認してください。
  • [V1FSS uses Cloud Run v2 instead of Cloud Functions (1st gen)]は、Cloud Build、Cloud Functions、またはデプロイメントマネージャAPIに依存しません。
  • [Promote and quarantine always move objects, never copy them]は、各バケットごとに個別のプラグインで設定するのではなく、デプロイメントパッケージで一度設定されます。
  • [The scan-result Pub/Sub topic changed]とそのメッセージの形式。独自のサブスクライバーがC1FSS …-scan-result-topicトピックにある場合、それをV1FSSトピックにサブスクライブし、パーサーを更新してください。
  • [Scan history stays in Cloud One.] TrendAI Vision Oneは切り替え時に新たに開始されます。Cloud Oneテナントが削除される前に、必要なものをエクスポートしてください。
引き継がれないもの
  • A cross-project scanner: V1FSSデプロイメントは1つのプロジェクトに限定されます。ハブアンドスポークC1FSSレイアウトは、バケットを保持する各プロジェクトに対して1つのV1FSSデプロイメントになります。
  • [Object prefix filtering] (objectFilterPrefix): V1FSSのTerraformはこれをサポートしていますが、TrendAI Vision Oneが管理するデプロイメントで使用されるパスは設定できません。C1FSSがバケットのプレフィックスのみをスキャンした場合、V1FSSはバケット全体をスキャンします。まずオブジェクトのボリュームを確認してください。大きなバケットの一部のみをカバーするプレフィックスの場合、スキャンされる量が大幅に変わります。
  • [Per-bucket IAM scoping] (disableScanningBucketIAMBinding): V1FSSには同等のものがありません。
  • [Reporting object keys to the backend] (reportObjectKey): V1FSSには同等のものがありません。オブジェクトキーは常にテレメトリでハッシュ化されます。
  • Multi-region and dual-region buckets: どちらの製品のV1FSSパスでも保護されていません。常に未展開として報告されます。
得られるものと、その後に設定したいこと
  • [Detections in TrendAI Vision One XDR]とWorkbenchの可視性、その他のセキュリティデータと共に。
  • [Object moving without a separate plugin]はV1FSSに組み込まれており、各バケットごとではなく一度設定するだけで、独自のサービスアカウントやカスタムロールを管理する必要はありません。
  • [A destination for failed scans] (failure_bucket)。C1FSSプラグインはそれらのオブジェクトをそのままにしました。
  • [Better failure handling]、1つのキューの代わりに3つのデッドレターキューと指数バックオフを使用し、認証情報の自動日次ローテーションを行います。
  • A configurable metadata format: 分離されたキー (デフォルトでC1FSSに一致)、単一のマージされたキー、またはメタデータなし。

一般的な質問

Which update path should I use?
スキャンを一時停止できない場合は、ゼロダウンタイムを使用してください。スキャンを一時停止できる場合は、短時間のダウンタイムを使用し、特にプロモートまたは隔離プラグインを使用してその設定を引き継ぐ場合はそうしてください。このプラグインは、重複作業だけでなく、実際の問題を引き起こす唯一のケースです。
How long is the brief downtime?
C1FSSバケット通知の削除とTrendAI Vision Oneコンソールでのスキャンの有効化の間のギャップのみです。どちらも単一のアクションであるため、通常は数分です。期間は、展開手順ではなく、あなた次第です。
In the zero-downtime path, why not remove the C1FSS bucket notification before validating?
重複期間中に検証を行うと結果の帰属が難しくなるため、代わりにC1FSSが保護したことのないバケットで検証を行います。そのバケットには重複がないため、重複ウィンドウを開いたままにするものはなく、すべての結果はV1FSSに帰属します。C1FSSの通知を先に削除しても更新が短縮されることはありません。なぜなら、V1FSSはどちらの順序でもすでにオンになっているからです。それはリスクを早めるだけです。もしV1FSSが誤って構成されていた場合、実際のバケットがすでに保護されていない状態でそれを発見することになります。C1FSSの通知が消えた後、他のリソースが削除される前に、手順3の終わりのチェックポイントでC1FSSが保護したバケットでエンドツーエンドの確認を行います。その時点で帰属は明確であり、ロールバックも可能です。
Which buckets does C1FSS actually protect?
Cloud Oneコンソールの[File Storage Security][Stacks]ページは、各ストレージスタックの背後にあるスキャンバケットを命名します。gcloud storage buckets notifications list gs://<bucket>を使用して、バケット自体と照合してください。Cloud Functionsトピックを指す通知設定がない場合、C1FSSはそのバケットをスキャンしていません。
Why are my objects being scanned twice?
ゼロダウンタイムパスでは、重複期間中に両方の製品がオンになります。これによりダウンタイムを回避し、C1FSSバケット通知を削除すると停止します。
My fss- object metadata keeps changing, or keys keep disappearing.
これは重複時に予想される動作です。C1FSSは各検索でfss-メタデータセット全体を置き換え、V1FSSが書き込む余分なキーを削除しますが、V1FSSはそのキーをマージします。C1FSSが終了するとすぐに停止します。それまではfss-メタデータに依存しないでください。
I turned on a bucket, the console accepted it, but nothing is being scanned.
gcloud storage buckets notifications list gs://<bucket>を使用して通知数を確認します。クラウドストレージは各イベントタイプに対して通知を10に制限しており、その制限に達すると、TrendAI Vision Oneは内部で失敗を記録し続行するため、バケットはエラーが表示されずに保護されないままになります。スロットを解放してバケットを再度有効にしてください。開始する前にを参照してください。
My buckets do not appear on the Inventory page.
TrendAI Vision Oneは、デプロイメントが登録されるとプロジェクトを調査してバケットを発見し、その後おおよそ1時間ごとにスケジュールを実行します。待機して更新してください。
A bucket shows as not deployed and will not turn on.
そのバケットのリージョンには登録されたV1FSSスキャナーがありません。リージョンがサポートされていないか、デプロイメントパッケージを生成する際に選択しなかったか、プローブが追いついていない可能性があります。また、複数リージョンまたはデュアルリージョンのバケットの場合も、まったく保護できません。
The deploy.sh script fails immediately, saying that Terraform is not a real binary.
Cloud ShellにはTerraformが事前インストールされなくなりました。インストールしてコマンドを再実行してください。開始する前にを参照してください。
The deploy.sh install command failed. Can I run it again?
はい。このスクリプトは、あなた自身のプロジェクト内でクラウドストレージバックエンドの背後にあるTerraformです。そのため、再度実行すると最初からではなく記録された状態から続行します。報告された問題を修正し、同じコマンドを再度実行してください。試行の間に状態バケットを削除せず、deploy_gcp.logで何が起こったかを確認してください。
The Terraform apply failed on a disabled API.
deploy.shスクリプトは、V1FSSが必要とするAPIの一部のみを有効にします。最も不足しているのは、通常run.googleapis.comまたはcloudscheduler.googleapis.comです。完全なリストを有効にして、./deploy.sh installを再度実行してください。
The Terraform apply failed, saying that the secret exists.
このプロジェクトにはすでにV1FSSスタックがあり、サポートされているのは1つのみです。既存のスタックを使用するか、再度デプロイする前にパッケージディレクトリから./deploy.sh uninstallを使用して削除してください。
The Terraform destroy command refuses to delete the C1FSS custom roles.
これは予期された動作です。C1FSS gcp-configurationモジュールでロールがprevent_destroyとしてマークされているためです。Google Cloudコンソールの[IAM & Admin][役割]からロールを直接削除するか、gcloud iam roles deleteを使用して削除し、gcp-configurationには手を加えないでください。
How do I remove the V1FSS deployment?
パッケージディレクトリからbash ./deploy.sh uninstallを実行します。このプロジェクトに他のTrendAI Vision One機能が接続されている場合は注意が必要です。このコマンドはクラウドアカウント管理Terraformの状態全体を破壊するため、File Security Storageだけでなく、パッケージが展開したすべての機能に影響を与えます。File Security Storageのみを削除するには、TrendAI Vision Oneコンソールでそれをクリアし、再生成されたパッケージをダウンロードして、./deploy.sh installを再度実行します。uninstallコマンドは、--delete_cloud_accountを追加しない限り、TrendAI Vision Oneクラウドアカウントの記録をそのままにします。
Teardown left buckets, roles, or APIs behind. Is that a problem?
trend_micro_fss_*カスタムロールとappspotサービスアカウントのバインディングはCloud Oneサービスアカウントへの古い付与なので、削除してください。Artifact、pattern-update、gcf-sources-*バケットは無害であり、保持したくない場合は削除できます。有効化されたAPIは無害です。残されたqua-pro-plugin-sa-…サービスアカウントは無害ではありません。なぜなら、それはバケット内のオブジェクトを削除できるからです。
I already installed V1FSS, and now I want to set the promote and quarantine destinations.
パッケージディレクトリ内のmain.tfを編集し、bash ./deploy.sh installを再度実行してください。これは更新であり、新しいデプロイメントではありません。パッケージがない場合は、TrendAI Vision Oneコンソールから再度ダウンロードしてください。再生成されたパッケージは宛先が空の状態で提供されるため、インストール前に再度編集を適用してください。
Objects are moving, but landing at a different path than they did under C1FSS.
これはuse_source_bucket_as_folder設定です。パッケージはtrueで出荷され、送信先パスの前にソースバケット名が付加されますが、C1FSSプラグインはそうではありません。これをfalseに設定し、./deploy.sh installを再度実行してください。プロモートと隔離の設定を更新するを参照してください。
Can I do this without Cloud Shell?
はい、gcloudjq、Terraformがインストールされており、gcloud auth loginで認証され、正しいプロジェクトを指しているマシンであればどれでも可能です。Cloud Shellは、これらのほとんどが既にインストールされており、環境認証情報があるため推奨されます。
Can I update several projects at once?
各プロジェクトは独立した更新であり、独自のデプロイメントパッケージ、独自の登録、独自のバケットを持っています。パッケージにはorg_deploy.shも含まれており、deploy.shを組織またはフォルダ内のすべてのプロジェクトに対して実行します。これは多数のプロジェクトに対して有用ですが、ここで説明されているプロジェクトごとのプロセスを変更するものではありません。