始める前に
まず、開始する前にの6つのチェックをすべて完了してください。特に、C1FSSが複数のプロジェクトにまたがって実行されている場合は開始しないでください。また、各バケットリスナーが保護するバケットと、各バケットのC1FSS通知
idおよびtopicを記録していることを確認してください。これらの詳細はロールバックする際に必要です。このゼロダウンタイムプロセスに従って、TrendAI Cloud One File Storage Security (C1FSS) からTrendAI Vision One™ File Security Storage (V1FSS) へのGoogle Cloud Platformでの更新を行うことができます。この方法では、V1FSSを設定して検証する間、既存のC1FSSスタックをアクティブにしてオブジェクトをスキャンし続けます。
重複期間中、両方の製品はすべてのオブジェクトイベントを受け取り、独立して検索を行います。promote-or-quarantineプラグインを使用しない場合、重複は重複検索と一部の表面的なメタデータの変動を意味し、オブジェクトを失ったり誤配置したりすることはありません。プラグインを使用し、その設定を引き継いでいる場合、重複は両方の製品が同じオブジェクトを移動することを意味し、競合状態のリスクを引き起こします。そのリスクが許容できない場合は、短時間のダウンタイムパスを使用してください。
手順
- V1FSSをインストールしてバケットスキャンをオンにします。
- TrendAI Vision Oneコンソールで、に移動し、[インベントリ]ページの[ストレージ]の下で[GCP]を選択します。
- [Add a single Google Cloud Project]をクリックし、[単一のGoogle Cloudプロジェクト]を選択して、[一般情報]ページで必要なフィールドを入力してください。
- [機能と権限]ページで[File Security Storage]を有効にし、File Securityスキャナーを展開する地域を選択してください。

重要
[Before you begin]に記録したC1FSSが実行されるすべてのリージョンを選択します。完全なデプロイ手順については、Google Cloud PlatformにFile Security Storageをデプロイするを参照してください。
重要
このプロジェクトがすでに別の機能のためにTrendAI Vision Oneに接続されている場合、新しい接続を作成しないでください。既存の接続にFile Security Storageを追加し、再生成されたパッケージがプロジェクトがすでに持っていたすべての機能を引き続き保持するようにしてください。 - Google Cloud コンソールで[Cloud Shell]を開き、TrendAI Vision One コンソールの[Google Cloud プロジェクトを追加]ページに表示される手順に従って、デプロイメントパッケージをアップロードして抽出します。
- プロモートまたは隔離プラグインを使用する場合は、インストールする前にプロモートと隔離の設定を今すぐ構成してください。プロモートと隔離の設定を更新するを参照してください。

注意
このパスでは、目的地を今設定すると、両方の製品が重複中にオブジェクトを移動します。これが許容できない場合は、短時間のダウンタイムパスを使用するか、V1FSSの目的地を空のままにしてV1FSSがオブジェクトにタグを付けるだけにし、C1FSSが解体された後に目的地を設定してください。 - 作成される内容を確認します。このコマンドは何も変更しません。
./deploy.sh precheck
このコマンドはTerraformプランであり、権限チェックではありません。 - V1FSSをデプロイします。
./deploy.sh install
このスクリプトは、プロジェクト内にTerraformステートバケットを作成し、クラウドアカウント管理モジュールとFile Security Storageモジュールを適用し、プロジェクトをTrendAI Vision Oneに自動的に登録します。別途登録手順はありません。出力はdeploy_gcp.logに書き込まれます。Cloud Shellが途中でタイムアウトした場合は、再接続してデプロイメントディレクトリに戻り、同じコマンドを再度実行してください。進行状況はシェルではなくTerraformのリモートステートに記録されるため、コマンドは中断したところから続行されます。 - デプロイが完了した後、プロジェクトが[インベントリ]ページの[GCP]に表示されることを確認してください。
- プロジェクト内のバケットがすべて表示され、保護されていないことを確認してください。

注意
バケットをTrendAI Vision Oneに同期するには時間がかかる場合があります。 - スキャンをオンにするには、[Before you begin]で記録したバケットを使用します。
- 同じリージョン内でC1FSSが保護していない1つのバケットのスキャンも有効にします。このバケットは手順2でのテスト対象であり、空のバケットで十分です。手順2では、C1FSSが保護するバケットではなく、ここで検証する理由を説明します。
チェックポイント-
プロジェクトは[インベントリ]ページの[GCP]に表示されます。
-
プロジェクトの下にバケットが一覧表示されます。
-
C1FSSが保護する各バケットには現在2つの通知設定があり、テストバケットには1つの通知設定があります。
Google Cloudコンソールには通知設定が表示されないため、Cloud Shellで確認してください。gcloud storage buckets notifications list gs://<bucket>
両方の製品は現在、すべてのオブジェクトイベントを受信し、独立して検索を行います。これがゼロダウンタイムの重複です。 - V1FSSが正常に動作していることを確認してください。

重要
この手順のすべてのチェックを、C1FSSが保護していないバケットに対して実行します。これは手順1で有効にしたものです。C1FSSが保護するバケットに対しては実行しないでください。重複があると、どの製品が結果を生成したのか判断できないためです。- バケットに新しいファイルをアップロードします。Google Cloudコンソールで、に移動し、バケットを開いて[ファイルをアップロード]をクリックします。
- TrendAI Vision One File Securityページで検索アクティビティを確認してください。これがV1FSSがファイルをスキャンしたことを証明します。
- 検索結果がオブジェクトにあることを確認してください。クラウドストレージにはタグではなくオブジェクトメタデータがあります。クラウドストレージブラウザでオブジェクトをクリックしてカスタムメタデータを確認するか、Cloud Shellで読み取ってください。
gcloud storage objects describe gs://<bucket>/<object> --format="value(custom_fields)"
fss-scan-resultが問題なしであることを期待します。 - EICARテストファイルをバケットにアップロードしてください。Cloud Shellで次のコマンドを実行し、最後の行のバケット名のみを変更してください。
curl -sSL https://secure.eicar.org/eicar.com.txt -o eicar.com.txt && \ gcloud storage cp eicar.com.txt gs://<bucket>/v1fss-verify-eicar.com.txt

注意
EICARは標準的な不正プログラム対策テスト文字列であり、実際の不正プログラムではありません。 - 検索結果が同期され、不正プログラムの検出がTrendAI Vision Oneに表示されるのを待ちます。これはV1FSSがファイルを検出したことを証明します。
- オブジェクトメタデータを確認してください。
fss-scan-resultがmaliciousであることを予期します。

注意
V1FSSのプロモートまたは隔離先が設定されている場合、またはC1FSSのプロモートまたは隔離プラグインが使用されている場合、競合状態が発生する可能性があります。並行処理中に、V1FSSがオブジェクトを移動または隔離する際に、C1FSSスキャナーがまだ処理中であることがあります。その結果、C1FSSがアクセスしようとしたときにオブジェクトが利用できなくなり、C1FSSスキャナーログに予期されたエラーが発生する可能性があります。逆の場合も同様で、どちらの製品が最初にオブジェクトを移動しても、もう一方は何も見つけられません。V1FSSの宛先を空のままにしておくと、プラグインが唯一オブジェクトを移動する製品となり、競合は発生しませんが、V1FSSがプラグインによってすでに移動されたオブジェクトに到達し、失敗した検索を記録する可能性があります。これは無害であり、プラグインが削除されると停止します。プラグインを使用していて、C1FSS検索を削除せずにダブルムーブを早く終了したい場合は、手順4に記載されているようにプラグイン機能のみを削除してください。C1FSSは引き続きオブジェクトを検索してタグ付けします。ロールバックする可能性がある場合は、最初にプラグイン設定を記録してください。 - バケットに新しいファイルをアップロードします。
- C1FSSバケット通知を削除します。これが切り替えです。この手順の後、V1FSSのみがそのバケットをスキャンします。通知を削除すると、C1FSSへのイベント配信が即座に停止されますが、C1FSSの関数、トピック、サービスアカウント、およびIAM構成はそのまま残るため、何も再デプロイせずに切り替えを元に戻すことができます。
- バケットの通知設定を一覧表示し、C1FSSのものを特定します。これに関するコンソールページはありません。
gcloud storage buckets notifications list gs://<bucket>
2つの構成が表示されています。次のように区別してください。通知設定を特定しています
製品idトピックC1FSScloud-functions-<project>-<tenant>-tpGoogle管理のテナントプロジェクト内のトピックは、projects/<name>-tp/topics/cloud-functions-…の形式ですV1FSS143のような短い番号projects/<your-project>/topics/v1fss-…-scanner、custom_attributes.creatorをV1 FSS_V1_FILESECURITYに設定
重要
構成を削除する前に、完全なC1FSSidとtopicを記録してください。ロールバック再展開後に同じ構成が戻ってきたことを確認するために使用します。 - C1FSS通知設定を削除します。
gcloud storage buckets notifications delete \ projects/_/buckets/<bucket>/notificationConfigs/<c1-notification-id>
- V1FSS構成のみが残っていることを確認してください。
gcloud storage buckets notifications list gs://<bucket>
1つのエントリがあり、…-scannerトピックを指していることを期待してください。 - このリージョン内のすべてのバケットに対して繰り返します。
ここで重複は終了します。この時点から、これらのバケットはV1FSSのみでスキャンされます。C1FSSインフラストラクチャは依然として存在しますが、イベントは受信しません。チェックポイント-
各バケットには
…-scanner通知設定のみが一覧表示されます。 -
C1FSSで保護されたバケットにファイルを1つアップロードし、検索されたことを確認します。手順2のいずれかのケースを使用してください。TrendAI Vision One検索アクティビティとオブジェクトメタデータの両方に結果が表示されるはずです。
これは、C1FSSが保護したバケットに関するエンドツーエンドの確認です。この時点ではC1FSSリソースはまだ存在しているため、チェックが失敗した場合は、手順4に進む前にC1FSSバケットリスナーファンクションを再デプロイすることでロールバックできます。 - バケットの通知設定を一覧表示し、C1FSSのものを特定します。これに関するコンソールページはありません。
- 古いC1FSSスタックを削除してください。
- プロモートまたは隔離プラグインを使用している場合は、削除してください。スタックを削除する前にこれを行ってください。そうすることで、プラグインのトリガーサブスクリプションが削除されたトピックを指したままではなく、そのコンシューマーと共に削除されます。C1FSSスタックを解体する間、プラグインをそのままにしておかないでください。そうしないと、V1FSSが現在唯一スキャンしている製品であるオブジェクトを移動し続けてしまいます。プラグインのTerraform状態がまだある場合は、プラグインのディレクトリで次のコマンドを各インスタンスごとに1回実行してください。
terraform destroy
それ以外の場合は、名前でリソースを削除します。トピックを消費しているものがないように、最初に関数を削除してください。gcloud functions delete <plugin-function-name> gcloud storage rm -r gs://artifacts-promote-and-quarantine-plugin-<suffix> gcloud iam service-accounts delete qua-pro-plugin-sa-<suffix>@<project-id>.iam.gserviceaccount.com gcloud iam roles delete plugin_storage_bucket_write_<suffix> --project="$(gcloud config get-value project)" gcloud iam roles delete plugin_storage_bucket_access_<suffix> --project="$(gcloud config get-value project)"
次に、プラグインがバケットにアクセスする権限を持っていないことを確認してください。qua-pro-plugin-sa-に一致するメンバーがいないことを確認してください。gcloud storage buckets get-iam-policy gs://<scanning-or-destination-bucket>

重要
プラグインのサービスアカウントはC1FSSスタックの一部ではないため、スタックの解体でそれを削除することはありません。このサブステップをスキップすると、スキャン、プロモート、隔離バケットへの削除および書き込みアクセスを持つライブアイデンティティが残り、プロセスの監視や監査が行われません。このリージョン内のすべてのプラグインインスタンスに対して繰り返します。 - C1FSSスタックを削除します。GCPスタックの削除の手順に従い、[Before you begin]で特定したC1FSS生成のためのteardownコマンドを使用してください。
- プロモートまたは隔離プラグインを使用している場合は、削除してください。
次のステップ
更新が完了しました。V1FSSがバケットをスキャンしており、C1FSSは廃止されました。
ゼロダウンタイムアップデートのロールバック
C1FSSからV1FSSへの更新中に問題が発生した場合、次の手順に従ってC1FSSにロールバックすることができます。V1FSSを有効にしてもC1FSSには何も変更がないため、ほとんどの場合、復元するものはなく、V1FSSをオフにするだけです。
手順
- C1FSSバケット通知をすでに削除している場合は、V1FSSをオフにする前に、まず元に戻してください。C1FSS Bucket Listener関数を再デプロイします。Google Cloudコンソールで[Cloud Functions]に移動し、
…-bucket-listener関数を開き、[編集]をクリックし、何も変更せずに[配信]をクリックします。
重要
gcloud storage buckets notifications createを使用して通知設定を直接再作成しないでください。ターゲットトピックはGoogle管理プロジェクト内にあり、IAMの表面にアカウントが到達できないため、idやtopicを記録してもコマンドはPERMISSION_DENIEDで失敗します。関数を再デプロイすることで、Cloud Functionsがトピックを再度プロビジョニングし、通知設定を再作成します。通知設定が元に戻り、記録した内容と一致していることを確認してください。gcloud storage buckets notifications list gs://<bucket>
- プラグイン機能を早期に削除して二重移動を終了した場合、記録した設定を使用してプラグインディレクトリで
terraform applyを使用して再作成してください。
注意
新しいdeployment_name値は新しいリソース名のサフィックスを生成するため、再作成されたインスタンスは削除したものと同じ名前にはなりません。 - TrendAI Vision Oneコンソールで、File Security[インベントリ]ページに移動し、バケットのスキャンをオフにしてください。これはV1FSS通知設定のみを削除します。TrendAI Vision Oneの削除パスはトピック名でフィルタリングされるため、C1FSS設定には影響を与えません。C1FSSは更新前と同様にバケットをスキャンします。
次のステップ
重要ロールバックは、C1FSSスタックを削除する前にのみ可能です。それらが削除された後にロールバックするには、C1FSSをゼロから再展開する必要があります。
|
