生成 AI ユースケースの Cloud Storage コントロール

このドキュメントでは、 Google Cloudを使用する生成 AI ワークロードを実行する際の Cloud Storage のベスト プラクティスとガイドラインについて説明します。Vertex AI で Cloud Storage を使用して、トレーニング データ、モデル アーティファクト、本番環境データを保存します。

Vertex AI での Cloud Storage のユースケースは次のとおりです。

  • トレーニング データのストレージを保存する: Vertex AI では、トレーニング データセットを Cloud Storage バケットに保存できます。Cloud Storage を使用すると、次のようなメリットがあります。
    • Cloud Storage はあらゆるサイズのデータセットを処理できるため、ストレージの制限を気にすることなく、大量のデータでモデルをトレーニングできます。
    • Cloud Storage バケットにきめ細かいアクセス制御と暗号化を設定して、機密性の高いトレーニング データを保護できます。
    • Cloud Storage では、変更を追跡してデータの以前のバージョンに戻すことができるため、貴重な監査証跡が提供され、再現可能なトレーニングが容易になります。
    • Vertex AI は Cloud Storage とシームレスに統合されているため、プラットフォーム内でトレーニング データにアクセスできます。
  • モデル アーティファクトを保存する: モデルファイル、ハイパーパラメータ構成、トレーニング ログなどのトレーニング済みモデル アーティファクトを Cloud Storage バケットに保存できます。Cloud Storage を使用すると、次のことができます。
    • 一元化されたリポジトリとして Cloud Storage にすべてのモデル アーティファクトを保存し、簡単にアクセスして管理できるようにします。
    • モデルのさまざまなバージョンを追跡して管理し、必要に応じて比較やロールバックを容易にします。
    • チームメンバーや共同編集者に特定の Cloud Storage バケットへのアクセス権を付与して、モデルを効率的に共有します。
  • 本番環境データを保存する: 本番環境で使用されるモデルの場合、予測のためにモデルに供給されるデータを Cloud Storage に保存できます。たとえば、Cloud Storage を使用して次の操作を行うことができます。
    • ユーザーデータとインタラクションを保存して、パーソナライズされた推奨事項をリアルタイムで提供します。
    • モデルを使用してオンデマンド処理と分類を行うために画像を保持します。
    • モデルを使用して、リアルタイムの不正行為検出用のトランザクション データを維持します。
  • 他のサービスとの統合: Cloud Storage は、Vertex AI ワークフローで使用される他の Google Cloud サービス(次のようなサービス)とシームレスに統合されます。
    • Dataflow。データの前処理と変換のパイプラインを合理化します。
    • BigQuery。モデルのトレーニングと推論のために BigQuery に保存されている大規模なデータセットにアクセスします。
    • Cloud Run functions。モデル予測または Cloud Storage バケットのデータ変更に基づくアクションを実行します。
  • 費用を管理する: Cloud Storage は従量課金制モデルを採用しているため、使用したストレージに対してのみ料金が発生します。このため、特に大規模なデータセットで費用対効果が高くなります。
  • 高可用性と耐久性を有効にする: Cloud Storage は、データの高可用性を確保し、障害や停止からデータを保護します。これにより、信頼性と ML アセットへの堅牢なアクセスが保証されます。
  • マルチリージョン サポートを有効にする: ユーザーまたはアプリケーションの地理的位置に近い複数の Cloud Storage リージョンにデータを保存することで、パフォーマンスを向上させ、データアクセスとモデル予測のレイテンシを短縮します。

必要な Cloud Storage コントロール

Cloud Storage を使用する場合は、次のコントロールを実装することを強くおすすめします。

Cloud Storage バケットへのパブリック アクセスをブロックする

Google コントロール ID GCS-CO-4.1
カテゴリ 必須
説明

storage.publicAccessPrevention ブール値制約により、既存のリソースと将来のリソースにインターネット経由でアクセスできなくなります。具体的には、allUsersallAuthenticatedUsers へのアクセス権を付与するアクセス制御リスト(ACL)と Identity and Access Management(IAM)権限を無効にして、ブロックします。

対象プロダクト
  • 組織ポリシー サービス
  • Cloud Storage
パス constraints/storage.publicAccessPrevention
演算子 ==
  • True
ブール値
関連する NIST-800-53 コントロール
  • AC-3
  • AC-17
  • AC-20
関連する CRI プロファイル コントロール
  • PR.AC-3.1
  • PR.AC-3.2
  • PR.AC-4.1
  • PR.AC-4.2
  • PR.AC-4.3
  • PR.AC-6.1
  • PR.PT-3.1
  • PR.PT-4.1
関連情報

均一なバケットレベルのアクセスの使用

Google コントロール ID GCS-CO-4.2
カテゴリ 必須
説明

storage.uniformBucketLevelAccess ブール型制約では、バケットで均一なバケットレベルのアクセスを使用する必要があります。均一なバケットレベルのアクセスを使用すると、バケットレベルの Identity and Access Management(IAM)権限のみを使用して Cloud Storage リソースへのアクセス権を付与できます。

対象プロダクト
  • 組織ポリシー サービス
  • Cloud Storage
パス constraints/storage.uniformBucketLevelAccess
演算子 ==
  • True
ブール値
関連する NIST-800-53 コントロール
  • AC-3
  • AC-17
  • AC-20
関連する CRI プロファイル コントロール
  • PR.AC-3.1
  • PR.AC-3.2
  • PR.AC-4.1
  • PR.AC-4.2
  • PR.AC-4.3
  • PR.AC-6.1
  • PR.PT-3.1
  • PR.PT-4.1
関連情報

サービス アカウントの HMAC キーを保護する

Google コントロール ID GCS-CO-6.9
カテゴリ 必須
説明

HMAC キーは、Cloud Storage のサービス アカウントまたはユーザー アカウントに関連付けられた有効期間の長い認証情報です。HMAC キーを使用して、Cloud Storage に対するリクエストに含まれる署名を作成します。署名により、ユーザーまたはサービス アカウントがリクエストを承認したことが証明されます。

有効期間が短い認証情報(OAuth 2.0 トークン)とは異なり、HMAC キーは自動的に有効期限が切れることはなく、手動で取り消されるまで有効です。HMAC キーはリスクの高い認証情報です。不正使用されると、リソースへの永続的なアクセスが可能になります。この点を保護する適切なメカニズムが導入されていることを確認する必要があります。

対象プロダクト
  • Cloud Storage
パス storage.projects.hmacKeys/id
演算子 Exists
  • []
文字列
関連する NIST-800-53 コントロール
  • SC-12
  • SC-13
関連する CRI プロファイル コントロール
  • PR.DS-1.1
  • PR.DS-1.2
  • PR.DS-2.1
  • PR.DS-2.2
  • PR.DS-5.1
関連情報

サービス アカウントによる Cloud Storage バケットの列挙を検出する

Google コントロール ID GCS-CO-7.2
カテゴリ 必須
説明

サービス アカウントは、アプリケーション用に設計された人間以外の ID であり、その動作は予測可能で自動化されています。通常、サービス アカウントはすでにマッピングされているため、バケットを項目化する必要はありません。したがって、すべての Cloud Storage バケットのリストを取得しようとしているサービス アカウントを検出した場合は、直ちに調査する必要があります。偵察列挙は、サービス アカウントにアクセスした悪意のある行為者が偵察手法としてよく使用する手口です。

対象プロダクト
  • Cloud Storage
  • Cloud Audit Logs
演算子 ==
  • storage.bucket.list
文字列
関連する NIST-800-53 コントロール
  • AU-2
  • AU-3
  • AU-8
  • AU-9
関連する CRI プロファイル コントロール
  • DM.ED-7.1
  • DM.ED-7.2
  • DM.ED-7.3
  • DM.ED-7.4
  • PR.IP-1.4
関連情報

サービス アカウントによる Cloud Storage バケットの Identity and Access Management(IAM)ポリシーの変更を検出する

Google コントロール ID GCS-CO-7.3
カテゴリ 必須
説明

Cloud Storage バケットの IAM ポリシーが変更され、公開アクセス権が付与されたときに検出するアラートを構成します。このアラートは、allUsers プリンシパルまたは allAuthenticatedUsers プリンシパルがバケットの IAM ポリシーに追加されたときに発生します。このアラートは、バケット内のすべてのデータが公開される可能性があるため、重大度の高い重大なイベントです。このアラートを直ちに調査して、変更が承認されたものか、構成ミスや悪意のある行為者によるものかを確認します。

アラートで、data.protoPayload.serviceData.policyData.bindingDeltas.member JSON 属性を allUsers または allAuthenticatedUsers に設定し、アクションを ADD に設定します。

対象プロダクト
  • Cloud Storage
  • Cloud Audit Logs
関連する NIST-800-53 コントロール
  • AU-2
  • AU-3
  • AU-8
  • AU-9
関連する CRI プロファイル コントロール
  • DM.ED-7.1
  • DM.ED-7.2
  • DM.ED-7.3
  • DM.ED-7.4
  • PR.IP-1.4
関連情報

生成 AI に関するユースケースに応じて、追加のコントロールを使用することをおすすめします。これらのコントロールには、データ保持コントロールや、企業ポリシーに基づくポリシー駆動型のコントロールが含まれます。

Cloud Storage バケットの保持ポリシーでバケットロックが使用されていることを確認する

Google コントロール ID GCS-CO-6.1
カテゴリ 推奨
説明

規制要件に応じて、各 Cloud Storage バケットの保持ポリシーがロックされていることを確認します。要件を満たす期間を保持期間に設定します。

対象プロダクト
  • Cloud Storage
パス storage.buckets/retentionPolicy.isLocked
演算子 !=
  • True
ブール値
関連する NIST-800-53 コントロール
  • SI-12
関連する CRI プロファイル コントロール
  • PR.IP-2.1
  • PR.IP-2.2
  • PR.IP-2.3
関連情報

SetStorageClass アクションのライフサイクル ルールを設定する

Google コントロール ID GCS-CO-6.11
カテゴリ 推奨
説明

SetStorageClass アクション タイプを持つ各 Cloud Storage バケットにライフサイクル ルールを適用します。

対象プロダクト
  • Cloud Storage
パス storage.buckets/lifecycle.rule.action.type
演算子 ==
  • SetStorageClass
文字列
関連する NIST-800-53 コントロール
  • SI-12
関連する CRI プロファイル コントロール
  • PR.IP-2.1
  • PR.IP-2.2
  • PR.IP-2.3
関連情報

ストレージ クラスの許可リージョンを設定する

Google コントロール ID GCS-CO-6.12
カテゴリ 推奨
説明
ライフサイクル構成のストレージ クラスが、許可されているリージョン分類に含まれていないことを確認します。
対象プロダクト
  • Cloud Storage
パス storage.buckets/lifecycle.rule.action.storageClass
演算子 nin
  • MULTI_REGIONAL
  • REGIONAL
文字列
関連する NIST-800-53 コントロール
  • SI-12
関連する CRI プロファイル コントロール
  • PR.IP-2.1
  • PR.IP-2.2
  • PR.IP-2.3
関連情報

Cloud Storage バケットのライフサイクル管理を有効にする

Google コントロール ID GCS-CO-6.13
カテゴリ 推奨
説明

Cloud Storage のライフサイクル管理が有効になっていて、構成されていることを確認します。ライフサイクル コントロールには、ストレージ ライフサイクルの構成が含まれています。この設定のポリシーが要件と一致していることを確認します。

対象プロダクト
  • Cloud Storage
パス storage.buckets/lifecycle
演算子 Exists
  • []
オブジェクト
関連する NIST-800-53 コントロール
  • SI-12
関連する CRI プロファイル コントロール
  • PR.IP-2.1
  • PR.IP-2.2
  • PR.IP-2.3
関連情報

Cloud Storage バケットのライフサイクル管理ルールを有効にする

Google コントロール ID GCS-CO-6.14
カテゴリ 推奨
説明

Cloud Storage のライフサイクル管理ルールが有効になっていて、構成されていることを確認します。ルール コントロールには、ストレージ ライフサイクルの構成が含まれています。この設定のポリシーが要件と一致していることを確認します。

対象プロダクト
  • Cloud Storage
パス storage.buckets/lifecycle.rule
演算子 Empty
  • []
配列
関連する NIST-800-53 コントロール
  • SI-12
関連する CRI プロファイル コントロール
  • PR.IP-2.1
  • PR.IP-2.2
  • PR.IP-2.3
関連情報

アクティブなオブジェクトの一時保留を確認して評価する

Google コントロール ID GCS-CO-6.16
カテゴリ 推奨
説明

temporaryHold が TRUE に設定されているすべてのオブジェクトを特定し、調査と検証のプロセスを開始します。この評価は、次のユースケースに適しています。

  • 訴訟のための記録保持: データの保存に関する法的要件を遵守するため、一時保留を使用して、進行中の調査や訴訟に関連する可能性のある機密データの削除を防ぐことができます。
  • データ損失防止: 重要なデータが誤って削除されないように、一時保留を安全対策として使用して、ビジネスに不可欠な情報を保護できます。
  • コンテンツのモデレーション: 公開される前に潜在的に機密性の高いコンテンツや不適切なコンテンツをレビューするには、Cloud Storage にアップロードされたコンテンツに一時保留を適用して、さらなる検査とモデレーションの決定を行います。
対象プロダクト
  • Cloud Storage
パス storage.objects/temporaryHold
演算子 ==
  • TRUE
ブール値
関連する NIST-800-53 コントロール
  • SI-12
関連する CRI プロファイル コントロール
  • PR.IP-2.1
  • PR.IP-2.2
  • PR.IP-2.3
関連情報

Cloud Storage バケットに保持ポリシーを適用する

Google コントロール ID GCS-CO-6.17
カテゴリ 推奨
説明

すべての Cloud Storage バケットに保持ポリシーが設定されていることを確認します。

対象プロダクト
  • Cloud Storage
パス storage.buckets/retentionPolicy.retentionPeriod
演算子 agesmaller
  • [90,"DAY","AFTER","yyyy-MM-dd'T'HH:mm:ss'Z'"]
int64
関連する NIST-800-53 コントロール
  • SI-12
関連する CRI プロファイル コントロール
  • PR.IP-2.1
  • PR.IP-2.2
  • PR.IP-2.3
関連情報

Cloud Storage バケットの分類タグを適用する

Google コントロール ID GCS-CO-6.18
カテゴリ 推奨
説明

データ分類は、あらゆるデータ ガバナンス プログラムとセキュリティ プログラムの基盤となるコンポーネントです。各バケットに、公開、内部、機密、制限付きなどの値を持つ分類ラベルを適用することが不可欠です。

google_storage_bucket.labels に分類の式があることを確認し、ない場合は違反を作成します。

対象プロダクト
  • Cloud Storage
パス storage.buckets/labels.classification
演算子 notexists
  • []
拡張
関連する NIST-800-53 コントロール
  • SI-12
関連する CRI プロファイル コントロール
  • PR.IP-2.1
  • PR.IP-2.2
  • PR.IP-2.3
関連情報

Cloud Storage バケットのログバケットを適用する

Google コントロール ID GCS-CO-6.3
カテゴリ 推奨
説明

すべての Cloud Storage バケットにログバケットが含まれていることを確認します。

対象プロダクト
  • Cloud Storage
パス storage.buckets/logging.logBucket
演算子 notexists
  • []
文字列
関連する NIST-800-53 コントロール
  • AU-2
  • AU-3
  • AU-8
  • AU-9
関連する CRI プロファイル コントロール
  • DM.ED-7.1
  • DM.ED-7.2
  • DM.ED-7.3
  • DM.ED-7.4
  • PR.IP-1.4
関連情報

Cloud Storage バケットの削除ルールを構成する

Google コントロール ID GCS-CO-6.5
カテゴリ 推奨
説明

Cloud Storage では、storage.buckets/lifecycle.rule.action.type は、バケット内のライフサイクル ルールに基づいて特定のオブジェクトに対して実行されるアクションのタイプを指します。この構成は、クラウドに保存されたデータの管理とライフサイクルの自動化に役立ちます。

オブジェクトがバケットから完全に削除されるように storage.buckets/lifecycle.rule.action.type を構成します。

対象プロダクト
  • Cloud Storage
パス storage.buckets/lifecycle.rule.action.type
演算子 ==
  • Delete
文字列
関連する NIST-800-53 コントロール
  • SI-12
関連する CRI プロファイル コントロール
  • PR.IP-2.1
  • PR.IP-2.2
  • PR.IP-2.3
関連情報

削除ルールの isLive 条件が False であることを確認する

Google コントロール ID GCS-CO-6.6
カテゴリ 推奨
説明

削除ルールの場合、ルールの isLive 条件が false に設定されていることを確認します。

Cloud Storage では、storage.buckets/lifecycle.rule.condition.isLive はライフサイクル ルールで使用されるブール値の条件で、オブジェクトがライブと見なされるかどうかを判断するために使用されます。このフィルタを使用すると、ライフサイクル ルール内のアクションが、ライブ ステータスに基づいて目的のオブジェクトにのみ適用されるようになります。

ユースケース:

  • 履歴バージョンをアーカイブする: オブジェクトの非現行バージョンのみをアーカイブして、最新バージョンにすぐにアクセスできるようにしながら、ストレージ費用を節約します。
  • 削除されたオブジェクトをクリーンアップする: ユーザーによって削除されたオブジェクトの完全削除を自動化し、バケット内のスペースを解放します。
  • ライブデータを保護する: 一時保留の設定などのアクションがライブ オブジェクトにのみ適用され、アーカイブされたバージョンや削除されたバージョンが誤って変更されないようにします。
対象プロダクト
  • Cloud Storage
パス storage.buckets/lifecycle.rule.condition.isLive
演算子 ==
  • False
ブール値
関連する NIST-800-53 コントロール
  • SI-12
関連する CRI プロファイル コントロール
  • PR.IP-2.1
  • PR.IP-2.2
  • PR.IP-2.3
関連情報

Cloud Storage バケットのバージョニングを適用する

Google コントロール ID GCS-CO-6.7
カテゴリ 推奨
説明

すべての Cloud Storage バケットでバージョニングが有効になっていることを確認します。ユースケースには、次のようなものがあります。

  • データ保護と復元: 上書きを防ぎ、削除または変更されたデータの復元を可能にすることで、データを偶発的な損失から保護します。
  • コンプライアンスと監査: 規制コンプライアンスや内部監査の目的で、すべてのオブジェクト編集の履歴を保持します。
  • バージョン管理: ファイルとデータセットの変更を追跡し、共同作業を可能にします。必要に応じて、以前のバージョンにロールバックできます。
対象プロダクト
  • Cloud Storage
パス storage.buckets/versioning.enabled
演算子 !=
  • True
ブール値
関連する NIST-800-53 コントロール
  • SI-12
関連する CRI プロファイル コントロール
  • PR.IP-2.1
  • PR.IP-2.2
  • PR.IP-2.3
関連情報

Cloud Storage バケットのオーナーを適用する

Google コントロール ID GCS-CO-6.8
カテゴリ 推奨
説明

google_storage_bucket.labels にオーナー用の式があることを確認します。

対象プロダクト
  • Cloud Storage
パス storage.buckets/labels.owner
演算子 notexists
  • []
拡張
関連する NIST-800-53 コントロール
  • SI-12
関連する CRI プロファイル コントロール
  • PR.IP-2.1
  • PR.IP-2.2
  • PR.IP-2.3
関連情報

Cloud Storage の主なアクティビティのロギングを有効にする

Google コントロール ID GCS-CO-7.4
カテゴリ 推奨
説明

ユースケースに基づいて、特定のストレージ オブジェクトに関する追加のロギングを有効にします。たとえば、機密データバケットへのアクセスをログに記録して、誰がいつアクセスしたかを追跡できるようにします。追加のロギングを有効にする場合は、生成される可能性のあるログの量を考慮してください。

対象プロダクト
  • Cloud Storage
関連する NIST-800-53 コントロール
  • AU-2
  • AU-3
  • AU-8
  • AU-9
関連する CRI プロファイル コントロール
  • DM.ED-7.1
  • DM.ED-7.2
  • DM.ED-7.3
  • DM.ED-7.4
  • PR.IP-1.4
関連情報

次のステップ