Google Cloud Storage

このドキュメントでは、Cloud Storage を Google Security Operations の SOAR モジュールと統合する方法について説明します。

統合バージョン: 9.0

この統合では、1 つ以上のオープンソース コンポーネントを使用します。この統合のソースコードのコピーは、Cloud Storage バケットからダウンロードできます。

ユースケース

Google SecOps SOAR プラットフォームでは、Google Cloud Storage の統合により、次のユースケースが解決されます。

  • インシデントの証拠の保存: プレイブックは、ログやマルウェア サンプルなどのインシデント関連の証拠を Cloud Storage バケットに自動的に収集して保存し、証拠の保存のための改ざん防止リポジトリを提供できます。

  • 脅威インテリジェンスの共有: セキュリティ チームは、Cloud Storage を使用して、悪意のある IP アドレスやドメインのリストなどの脅威インテリジェンス フィードを他のチームや組織と安全に共有できます。フィードを共有することで、脅威対策の連携と対応時間の短縮が可能になります。

  • マルウェア分析サンドボックスの統合: プレイブックは、インシデントからクラウドベースのマルウェア分析サンドボックスに不審なファイルを自動的に送信できます。分析結果を Cloud Storage に保存して、効率的でスケーラブルなマルウェア分析を行うことができます。

  • セキュリティ構成のバックアップ: Google SecOps の SOAR 機能を使用して、ファイアウォール ルールや侵入検知システムのシグネチャなどの重要なセキュリティ構成の定期的なバックアップを Cloud Storage に自動化します。バックアップを自動化すると、ビジネスの継続性が確保され、誤った変更や悪意のある変更が発生した場合に迅速な復元が可能になります。

  • フィッシング キャンペーンのアーティファクト ストレージ: Google SecOps の SOAR 機能を使用して、フィッシング キャンペーンの調査中にフィッシング メール、添付ファイル、その他のアーティファクトを Cloud Storage に保存します。アーティファクト ストレージを使用すると、潜在的な法的措置に備えて証拠の一元的な分析と保存を行うことができます。

始める前に

この統合を使用するには、 Google Cloud サービス アカウントが必要です。既存のサービス アカウントを使用することも、新しいサービス アカウントを作成することもできます。

サービス アカウントを作成する

  1. サービス アカウントの作成については、サービス アカウントを作成するをご覧ください。

  2. [このサービス アカウントにプロジェクトへのアクセスを許可する] で、サービス アカウントに次のロールを付与します。

    • Storage Admin
  3. Google Cloudでワークロードを実行しない場合は、サービス アカウントの作成後に JSON でサービス アカウント キーを作成する必要があります。Workload Identity Federation for GKE のメールアドレスを使用しない場合は、統合パラメータを構成するときに、ダウンロードした JSON ファイルの内容を指定する必要があります。

    セキュリティ上の理由から、サービス アカウントの JSON キーではなく、Workload Identity Federation for GKE のメールアドレスを使用することをおすすめします。ワークロード ID の詳細については、ワークロードの ID をご覧ください。

Cloud Storage を Google SecOps と統合する

統合には次のパラメータが必要です。

パラメータ 説明
Service Account Optional

サービス アカウント キーの JSON ファイルの内容。

このパラメータまたは Workload Identity Email パラメータのいずれかを構成できます。

このパラメータを構成するには、サービス アカウントの作成時にダウンロードしたサービス アカウントの JSON ファイルの内容をすべて指定します。

Workload Identity Email Optional

サービス アカウントのクライアント メールアドレス。

このパラメータまたは Service Account パラメータのいずれかを構成できます。

Workload Identity Federation for GKE のメールアドレスでサービス アカウントを偽装するには、サービス アカウントに Service Account Token Creator ロールを付与します。ワークロード ID とその使用方法の詳細については、ワークロードの ID をご覧ください。

Project ID Optional

Cloud Storage の統合に使用するプロジェクト ID。このパラメータに値を設定しない場合、プロジェクト ID は Service Account パラメータで指定された JSON ファイルのコンテンツから取得されます。

Quota Project ID Optional

Google Cloud API と課金に使用する Google Cloud プロジェクト ID。このパラメータを使用するには、サービス アカウントに Service Usage Consumer ロールを付与する必要があります。

このパラメータに値を設定しない場合、プロジェクト ID は Service Account パラメータで指定された JSON ファイルのコンテンツから取得されます。

Google SecOps で統合を構成する手順については、統合を構成するをご覧ください。

必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスの構成とサポートの詳細については、複数のインスタンスのサポートをご覧ください。

操作

アクセス制御リスト(ACL)を操作するアクションでは、バケットと個々のオブジェクトの両方に対してアクセス権を指定して適用できます。詳細については、アクセス制御リスト(ACL)をご覧ください。

バケットからオブジェクトをダウンロードする

このアクションを使用すると、Cloud Storage バケットから特定のオブジェクト(ファイル)をダウンロードできます。

このアクションはエンティティに対しては実行されません。

アクション入力

[Download an Object From a Bucket] アクションには、次のパラメータが必要です。

パラメータ 説明
Bucket Name 必須

ダウンロードするオブジェクトを含む Cloud Storage バケットの名前。

Object Name 必須

ダウンロードするオブジェクトのフルネーム。

オブジェクトがバケット内のフォルダにある場合は、folderA/mydocument.pdf などのフォルダパスを含めます。

Download Path 必須

ダウンロードしたオブジェクトの絶対パス。既存のディレクトリを指します(例: /tmp/downloads/)。

アクションの出力

[バケットからオブジェクトをダウンロードする] アクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用可能
出力メッセージ 利用可能
スクリプトの結果 利用可能
JSON の結果

次の例は、[Download an Object From a Bucket] アクションを使用した場合に受信する JSON 結果の出力を示しています。

{
"object_name": "123.txt"
"download_path": "/usr/bin/share/download.txt"
}
出力メッセージ

ケースウォールで、[バケットからオブジェクトをダウンロードする] アクションは次の出力メッセージを提供します。

出力メッセージ メッセージの説明

OBJECT_NAME successfully downloaded to DESTINATION_PATH.

Action wasn't able to download OBJECT_NAME. Reason: Bucket BUCKET_NAME not found.

Action wasn't able to download OBJECT_NAME. Reason: No such object.

アクションが成功しました。
Error executing action "Download an Object From a Bucket". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、バケットからオブジェクトをダウンロードするアクションを使用した場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

バケットのアクセス制御リストを取得する

[Get a Bucket's Access Control List] アクションを使用して、指定した Cloud Storage バケットの ACL を取得して表示します。

このアクションはエンティティに対しては実行されません。

アクション入力

バケットのアクセス制御リストを取得するアクションには、次のパラメータが必要です。

パラメータ 説明
Bucket Name 必須

ACL を取得する Cloud Storage バケットの名前。複数のバケットの ACL を取得するには、バケット名をカンマ区切りの文字列(bucket1,bucket2,bucket3 など)として入力します。

アクションの出力

バケットのアクセス制御リストを取得するアクションでは、次の出力が提供されます。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用不可
出力メッセージ 利用可能
スクリプトの結果 利用可能
JSON の結果
[
  {"BucketName": "ziv",
   "BucketACLs": [
                  {"Entity": "project-owners-ID",
                   "Role": "OWNER"}
                 ]
  }
]
出力メッセージ

ケースウォールで、[Get a Bucket's Access Control List] アクションは次の出力メッセージを提供します。

出力メッセージ メッセージの説明

Successfully retrieved the access control list (ACL) for the Cloud Storage buckets BUCKET_NAMES

Action wasn't able to return the access control list(ACL) for the Cloud Storage buckets BUCKET_NAMES. Reason: Cannot get legacy ACL for a bucket that has uniform bucket-level access. Read more at https://cloud.google.com/storage/docs/uniform-bucket-level-access

Action wasn't able to return the access control list(ACL) for the Cloud Storage buckets BUCKET_NAMES.

アクションが成功しました。
Error executing action "Get a Bucket's Access Control List". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、バケットのアクセス制御リストを取得するアクションを使用した場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

バケット オブジェクトを一覧表示する

Cloud Storage バケットに保存されているオブジェクトを一覧表示するには、バケット オブジェクトのリスト アクションを使用します。

このアクションはエンティティに対しては実行されません。

アクション入力

バケット オブジェクトのリスト取得アクションには、次のパラメータが必要です。

パラメータ 説明
Bucket Name 必須

オブジェクトの取得元となるバケットの名前。

Max Objects to Return Optional

返すオブジェクトの数。

デフォルトでは、アクションはアクション実行ごとに 50 個のオブジェクトを返します。

Retrieves the Access Control List of an object Optional

選択すると、アクションはオブジェクト ACL を取得します。

デフォルトでは選択されていません。

アクションの出力

バケット オブジェクトのリスト取得アクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用可能
出力メッセージ 利用可能
スクリプトの結果 利用可能
JSON の結果

次の例は、List Bucket Objects アクションを使用した場合に受信する JSON 結果の出力を示しています。

  • Retrieves the Access Control List of an object パラメータが選択されていない場合:

    {
        "Objects": [
            {
                "ObjectName": "test.txt",
            "Bucket":
            "ContentType":
                "TimeCreated": " ",
                "TimeUpdated": " ",
                "Size": 18,
                "MD5": "7CjVfQ+Oz/C0pI08IKRdvQ==",
                "Owner": "",
                "CR32c": "RQEqxA==",
                "id": "siemplify-tip/test.txt/1604926667310271"
            }
        ]
    }
    
  • Retrieves the Access Control List of an object パラメータが選択されている場合:

    {
        "Objects": [
            {
                "ObjectName": "test.txt",
            "Bucket": "BUCKET_NAME",
            "ContentType": "text/plain"
                "TimeCreated": " ",
                "TimeUpdated": " ",
                "Size": 18,
                "MD5": "7CjVfQ+Oz/C0pI08IKRdvQ==",
                "Owner": "",
                "CR32c": "RQEqxA==",
                "id": "BUCKET_NAME/test.txt/1604926667310271",
                "ObjectACL": [
                    {
                        "entity": "user@example.com",
                        "role": "OWNER"
                    }]
            },
        ]
    }
    
出力メッセージ

ケースウォールで、List Bucket Objects アクションは次の出力メッセージを提供します。

出力メッセージ メッセージの説明

Successfully returned objects of the BUCKET_NAME bucket in Google Cloud Storage.

Action wasn't able to return objects of the BUCKET_NAME bucket in Google Cloud Storage.

アクションが成功しました。
Error executing action "List Bucket Objects". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、List Bucket Objects アクションを使用する場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

バケットの一覧表示

バケットの一覧取得アクションを使用して、Cloud Storage からバケットの一覧を取得します。

このアクションはエンティティに対しては実行されません。

アクション入力

バケットのリスト取得アクションには、次のパラメータが必要です。

パラメータ 説明
Max Results Optional

返すバケットの最大数。

デフォルトでは、このアクションは 50 個のバケットを返します。

アクションの出力

バケットのリスト取得アクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用可能
出力メッセージ 利用可能
スクリプトの結果 利用可能
JSON の結果

次の例は、List Buckets アクションを使用した場合に受信する JSON 結果の出力を示しています。

{
    "Buckets": [
        {
            "CreationDate": "2020-11-09T12:57:03.981Z",
            "ModificationDate": "2020-11-09T12:57:03.981Z",
            "Name": "testexample",
            "Owner": "testexample"
        }]
}
出力メッセージ

ケースウォールで、List Buckets アクションは次の出力メッセージを提供します。

出力メッセージ メッセージの説明

Successfully listed available buckets in Google Cloud Storage.

Action wasn't able to list available buckets in Google Cloud Storage.

アクションが成功しました。
Error executing action "List Buckets". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、List Buckets アクションを使用した場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

Ping

Ping アクションを使用して、Cloud Storage への接続をテストします。

このアクションはエンティティに対しては実行されません。

アクション入力

なし

アクションの出力

このアクションでは、次の出力が提供されます。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用不可
出力メッセージ 利用可能
スクリプトの結果 利用可能
出力メッセージ

ケースウォールで Ping アクションを実行すると、次の出力メッセージが表示されます。

出力メッセージ メッセージの説明
Successfully connected to the Google Cloud Storage server with the provided connection parameters! アクションが成功しました。
Failed to connect to the Google Cloud Storage server! Error is ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、Ping アクションを使用した場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

バケットから公開アクセスを削除する

[バケットから公開アクセスを削除] アクションを使用して、Cloud Storage バケットから公開アクセスを削除します。

この操作を行うには、インテグレーションで使用するサービス アカウントに Storage Admin ロールを付与する必要があります。

このアクションはエンティティに対しては実行されません。

アクション入力

バケットから公開アクセスを削除するアクションには、次のパラメータが必要です。

パラメータ 説明
Resource Name 必須

バケットのリソース名。

Prevent Public Access From Bucket 必須

選択すると、このアクションは公開アクセスを防止するようにバケットを構成します。

アクションの出力

バケットから公開アクセスを削除するアクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用不可
出力メッセージ 利用可能
スクリプトの結果 利用可能
出力メッセージ

ケースウォールで、[Remove Public Access From Bucket] アクションは次の出力メッセージを提供します。

出力メッセージ メッセージの説明
Successfully removed public access from bucket using Google Cloud Storage: RESOURCE_NAME アクションが成功しました。
Error executing action "Remove Public Access From Bucket". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、バケットからパブリック アクセスを削除するアクションを使用した場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

バケットの ACL エントリを更新する

[バケットの ACL エントリを更新] アクションを使用して、指定された Cloud Storage バケットの ACL エントリを更新します。

アクション入力

[バケットの ACL エントリを更新] アクションには、次のパラメータが必要です。

パラメータ 説明
Bucket Name 必須

ACL を変更するバケットの名前。

Entity 必須

権限を保持するエンティティ。

指定できる値は次のとおりです。

  • user-userId
  • user-emailAddress
  • group-groupId
  • group-emailAddress
  • allUsers
  • allAuthenticatedUsers

エンティティの詳細については、リソースの表現をご覧ください。

Role 必須

エンティティに必要なアクセス権限。

次の値を指定できます。

  • OWNER
  • READER
  • WRITER

アクションの出力

[Update an ACL entry on Bucket] アクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用不可
出力メッセージ 利用可能
スクリプトの結果 利用可能
出力メッセージ

ケースウォールで [Update an ACL entry on Bucket] アクションを実行すると、次の出力メッセージが表示されます。

出力メッセージ メッセージの説明

Action wasn't able to update the ACL entity: ENTITY to role: ROLE in bucket BUCKET_NAME. Reason: OWNERs are WRITERs.

Action wasn't able to update the ACL entity: ENTITY to role: ROLE in bucket BUCKET_NAME. Reason: OWNERs are WRITERs.

アクションが成功しました。既存のロールが Role パラメータ値と一致しません。Role パラメータの値を確認します。
Successfully updated ACL entity: ENTITY to role: ROLE in bucket BUCKET_NAME. アクションが成功しました。

Error executing action "Update an ACL entry on Bucket". Reason: Entity ENTITY does not exist in the ACL of bucket BUCKET_NAME.

Action wasn't able to update the ACL entity: ENTITY to role: ROLE in bucket BUCKET_NAME. The entity holding the permission can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.

Error executing action "Update an ACL entry on Bucket". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、バケットの ACL エントリを更新するアクションを使用する場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

バケットにオブジェクトをアップロードする

[Upload an Object To a Bucket] アクションを使用して、Cloud Storage バケットにオブジェクトをアップロードします。

このアクションはエンティティに対しては実行されません。

アクション入力

[Upload an Object To a Bucket] アクションには、次のパラメータが必要です。

パラメータ 説明
Bucket Name 必須

オブジェクトをアップロードするバケットの名前。

Source File Path 必須

アップロードするファイルの絶対パス(/local/path/to/filename など)。

Object Name 必須

バケットにアップロードされたオブジェクトの名前。

アクションの出力

[バケットにオブジェクトをアップロード] アクションでは、次の出力が提供されます。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用可能
出力メッセージ 利用可能
スクリプトの結果 利用可能
JSON の結果
{
   "object_id":"BUCKET_NAME/errorlog.txt/1610616919132517",
   "Object_name":"errorlog.txt",
   "md5_hash":"PTdL8D6pBwIKyMfIXR/H9A==",
   "object_path":"/b/BUCKET_NAME/o/errorlog.txt"
}
出力メッセージ

ケースウォールで、[Upload an Object To a Bucket] アクションは次の出力メッセージを提供します。

出力メッセージ メッセージの説明

Successfully uploaded SOURCE_PATH to bucket: BUCKET_NAME.

Action wasn't able to upload SOURCE_PATH to Google Cloud Storage. Reason:No such file or directory: SOURCE_PATH.

アクションが成功しました。
Error executing action "Upload an Object To a Bucket". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、オブジェクトをバケットにアップロードするアクションを使用する場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。