このドキュメントでは、 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 |
|---|---|
| カテゴリ | 必須 |
| 説明 |
|
| 対象プロダクト |
|
| パス | constraints/storage.publicAccessPrevention |
| 演算子 | == |
| 値 |
|
| 型 | ブール値 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
均一なバケットレベルのアクセスの使用
| Google コントロール ID | GCS-CO-4.2 |
|---|---|
| カテゴリ | 必須 |
| 説明 |
|
| 対象プロダクト |
|
| パス | constraints/storage.uniformBucketLevelAccess |
| 演算子 | == |
| 値 |
|
| 型 | ブール値 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
サービス アカウントの HMAC キーを保護する
| Google コントロール ID | GCS-CO-6.9 |
|---|---|
| カテゴリ | 必須 |
| 説明 | HMAC キーは、Cloud Storage のサービス アカウントまたはユーザー アカウントに関連付けられた有効期間の長い認証情報です。HMAC キーを使用して、Cloud Storage に対するリクエストに含まれる署名を作成します。署名により、ユーザーまたはサービス アカウントがリクエストを承認したことが証明されます。 有効期間が短い認証情報(OAuth 2.0 トークン)とは異なり、HMAC キーは自動的に有効期限が切れることはなく、手動で取り消されるまで有効です。HMAC キーはリスクの高い認証情報です。不正使用されると、リソースへの永続的なアクセスが可能になります。この点を保護する適切なメカニズムが導入されていることを確認する必要があります。 |
| 対象プロダクト |
|
| パス | storage.projects.hmacKeys/id |
| 演算子 | Exists |
| 値 |
|
| 型 | 文字列 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
サービス アカウントによる Cloud Storage バケットの列挙を検出する
| Google コントロール ID | GCS-CO-7.2 |
|---|---|
| カテゴリ | 必須 |
| 説明 | サービス アカウントは、アプリケーション用に設計された人間以外の ID であり、その動作は予測可能で自動化されています。通常、サービス アカウントはすでにマッピングされているため、バケットを項目化する必要はありません。したがって、すべての Cloud Storage バケットのリストを取得しようとしているサービス アカウントを検出した場合は、直ちに調査する必要があります。偵察列挙は、サービス アカウントにアクセスした悪意のある行為者が偵察手法としてよく使用する手口です。 |
| 対象プロダクト |
|
| 演算子 | == |
| 値 |
|
| 型 | 文字列 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
サービス アカウントによる Cloud Storage バケットの Identity and Access Management(IAM)ポリシーの変更を検出する
| Google コントロール ID | GCS-CO-7.3 |
|---|---|
| カテゴリ | 必須 |
| 説明 | Cloud Storage バケットの IAM ポリシーが変更され、公開アクセス権が付与されたときに検出するアラートを構成します。このアラートは、 アラートで、 |
| 対象プロダクト |
|
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
生成 AI のユースケースに基づく推奨コントロール
生成 AI に関するユースケースに応じて、追加のコントロールを使用することをおすすめします。これらのコントロールには、データ保持コントロールや、企業ポリシーに基づくポリシー駆動型のコントロールが含まれます。
Cloud Storage バケットの保持ポリシーでバケットロックが使用されていることを確認する
| Google コントロール ID | GCS-CO-6.1 |
|---|---|
| カテゴリ | 推奨 |
| 説明 | 規制要件に応じて、各 Cloud Storage バケットの保持ポリシーがロックされていることを確認します。要件を満たす期間を保持期間に設定します。 |
| 対象プロダクト |
|
| パス | storage.buckets/retentionPolicy.isLocked |
| 演算子 | != |
| 値 |
|
| 型 | ブール値 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
SetStorageClass アクションのライフサイクル ルールを設定する
| Google コントロール ID | GCS-CO-6.11 |
|---|---|
| カテゴリ | 推奨 |
| 説明 |
|
| 対象プロダクト |
|
| パス | storage.buckets/lifecycle.rule.action.type |
| 演算子 | == |
| 値 |
|
| 型 | 文字列 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
ストレージ クラスの許可リージョンを設定する
| Google コントロール ID | GCS-CO-6.12 |
|---|---|
| カテゴリ | 推奨 |
| 説明 | ライフサイクル構成のストレージ クラスが、許可されているリージョン分類に含まれていないことを確認します。 |
| 対象プロダクト |
|
| パス | storage.buckets/lifecycle.rule.action.storageClass |
| 演算子 | nin |
| 値 |
|
| 型 | 文字列 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
Cloud Storage バケットのライフサイクル管理を有効にする
| Google コントロール ID | GCS-CO-6.13 |
|---|---|
| カテゴリ | 推奨 |
| 説明 | Cloud Storage のライフサイクル管理が有効になっていて、構成されていることを確認します。ライフサイクル コントロールには、ストレージ ライフサイクルの構成が含まれています。この設定のポリシーが要件と一致していることを確認します。 |
| 対象プロダクト |
|
| パス | storage.buckets/lifecycle |
| 演算子 | Exists |
| 値 |
|
| 型 | オブジェクト |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
Cloud Storage バケットのライフサイクル管理ルールを有効にする
| Google コントロール ID | GCS-CO-6.14 |
|---|---|
| カテゴリ | 推奨 |
| 説明 | Cloud Storage のライフサイクル管理ルールが有効になっていて、構成されていることを確認します。ルール コントロールには、ストレージ ライフサイクルの構成が含まれています。この設定のポリシーが要件と一致していることを確認します。 |
| 対象プロダクト |
|
| パス | storage.buckets/lifecycle.rule |
| 演算子 | Empty |
| 値 |
|
| 型 | 配列 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
アクティブなオブジェクトの一時保留を確認して評価する
| Google コントロール ID | GCS-CO-6.16 |
|---|---|
| カテゴリ | 推奨 |
| 説明 | temporaryHold が TRUE に設定されているすべてのオブジェクトを特定し、調査と検証のプロセスを開始します。この評価は、次のユースケースに適しています。
|
| 対象プロダクト |
|
| パス | storage.objects/temporaryHold |
| 演算子 | == |
| 値 |
|
| 型 | ブール値 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
Cloud Storage バケットに保持ポリシーを適用する
| Google コントロール ID | GCS-CO-6.17 |
|---|---|
| カテゴリ | 推奨 |
| 説明 | すべての Cloud Storage バケットに保持ポリシーが設定されていることを確認します。 |
| 対象プロダクト |
|
| パス | storage.buckets/retentionPolicy.retentionPeriod |
| 演算子 | agesmaller |
| 値 |
|
| 型 | int64 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
Cloud Storage バケットの分類タグを適用する
| Google コントロール ID | GCS-CO-6.18 |
|---|---|
| カテゴリ | 推奨 |
| 説明 | データ分類は、あらゆるデータ ガバナンス プログラムとセキュリティ プログラムの基盤となるコンポーネントです。各バケットに、公開、内部、機密、制限付きなどの値を持つ分類ラベルを適用することが不可欠です。
|
| 対象プロダクト |
|
| パス | storage.buckets/labels.classification |
| 演算子 | notexists |
| 値 |
|
| 型 | 拡張 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
Cloud Storage バケットのログバケットを適用する
| Google コントロール ID | GCS-CO-6.3 |
|---|---|
| カテゴリ | 推奨 |
| 説明 | すべての Cloud Storage バケットにログバケットが含まれていることを確認します。 |
| 対象プロダクト |
|
| パス | storage.buckets/logging.logBucket |
| 演算子 | notexists |
| 値 |
|
| 型 | 文字列 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
Cloud Storage バケットの削除ルールを構成する
| Google コントロール ID | GCS-CO-6.5 |
|---|---|
| カテゴリ | 推奨 |
| 説明 | Cloud Storage では、 オブジェクトがバケットから完全に削除されるように |
| 対象プロダクト |
|
| パス | storage.buckets/lifecycle.rule.action.type |
| 演算子 | == |
| 値 |
|
| 型 | 文字列 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
削除ルールの isLive 条件が False であることを確認する
| Google コントロール ID | GCS-CO-6.6 |
|---|---|
| カテゴリ | 推奨 |
| 説明 | 削除ルールの場合、ルールの Cloud Storage では、 ユースケース:
|
| 対象プロダクト |
|
| パス | storage.buckets/lifecycle.rule.condition.isLive |
| 演算子 | == |
| 値 |
|
| 型 | ブール値 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
Cloud Storage バケットのバージョニングを適用する
| Google コントロール ID | GCS-CO-6.7 |
|---|---|
| カテゴリ | 推奨 |
| 説明 | すべての Cloud Storage バケットでバージョニングが有効になっていることを確認します。ユースケースには、次のようなものがあります。
|
| 対象プロダクト |
|
| パス | storage.buckets/versioning.enabled |
| 演算子 | != |
| 値 |
|
| 型 | ブール値 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
Cloud Storage バケットのオーナーを適用する
| Google コントロール ID | GCS-CO-6.8 |
|---|---|
| カテゴリ | 推奨 |
| 説明 |
|
| 対象プロダクト |
|
| パス | storage.buckets/labels.owner |
| 演算子 | notexists |
| 値 |
|
| 型 | 拡張 |
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |
Cloud Storage の主なアクティビティのロギングを有効にする
| Google コントロール ID | GCS-CO-7.4 |
|---|---|
| カテゴリ | 推奨 |
| 説明 | ユースケースに基づいて、特定のストレージ オブジェクトに関する追加のロギングを有効にします。たとえば、機密データバケットへのアクセスをログに記録して、誰がいつアクセスしたかを追跡できるようにします。追加のロギングを有効にする場合は、生成される可能性のあるログの量を考慮してください。 |
| 対象プロダクト |
|
| 関連する NIST-800-53 コントロール |
|
| 関連する CRI プロファイル コントロール |
|
| 関連情報 |