Cloud Storage の組織のポリシーに関する制約

このページでは、Cloud Storage に適用される組織のポリシーの制約に関する補足情報について説明します。制約を使用して、プロジェクト全体または組織全体にバケットおよびオブジェクトの動作を適用します。組織のポリシーの制約は、ブール型制約またはリスト型制約のいずれかです。

Cloud Storage の制約

次の制約を組織のポリシーに適用して、Cloud Storage に関連付けることが可能です。

公開アクセスの防止を適用する

制約名: constraints/storage.publicAccessPrevention 制約タイプ: boolean

リソースに publicAccessPrevention 制約を適用すると、そのリソースに含まれるすべてのバケットとオブジェクト(新規と既存の両方)で公開アクセスが制限されます

publicAccessPrevention の有効化または無効化が反映されるまでに 10 分ほどかかることがあります。

削除(復元可能)の保持期間

制約名: constraints/storage.softDeletePolicySeconds 制約タイプ: list

softDeletePolicySeconds 制約を適用する場合は、制約の一部として 1 つ以上の期間を指定します。設定したバケットの削除(復元可能)ポリシーには、指定された期間のいずれかを含める必要があります。新しいバケットを作成する場合や、既存のバケットの削除(復元可能)の保持期間(softDeletePolicy.retentionDuration)を追加または更新する場合は、softDeletePolicySeconds が必要です。ただし、それ以外の場合、既存のバケットには影響しません。

異なるリソースレベルで複数の softDeletePolicySeconds 制約を設定すると、これらの制約は階層的に適用されます。このため、上位層のポリシーも考慮されるように、inheritFromParent フィールドを true に設定することをおすすめします。

バケット保持ポリシーの期間(秒)

制約名: constraints/storage.retentionPolicySeconds 制約タイプ: list

retentionPolicySeconds 制約を適用する場合は、制約の一部として 1 つ以上の期間を指定します。設定したバケットの保持ポリシーには、指定された期間のいずれかを含める必要があります。retentionPolicySeconds は新しいバケットを作成する場合に必要です。既存のバケットに対しては、保持期間の追加または更新を行う場合には必要ですが、それ以外の場合は必要ありません。

異なるリソースレベルで複数の retentionPolicySeconds 制約を設定すると、これらの制約は階層的に適用されます。このため、上位層のポリシーも考慮されるように、inheritFromParent フィールドを true に設定することをおすすめします。

均一なバケットレベルのアクセスを必須にする

制約名: constraints/storage.uniformBucketLevelAccess 制約タイプ: boolean

uniformBucketLevelAccess 制約を適用する場合は、新しいバケット均一なバケットレベルのアクセス機能を有効にする必要があります。この機能を有効にしている既存のバケットではこの機能を無効にすることはできません。均一なバケットレベルのアクセスが無効になっている既存のバケットを有効にする必要はありません。

詳細な監査ロギングモード

制約名: constraints/gcp.detailedAuditLoggingMode 制約タイプ: boolean

detailedAuditLoggingMode 制約を適用する場合は、Cloud Storage オペレーションに関連する Cloud Audit Logs のログには、詳細なリクエスト情報とレスポンス情報が含まれます。この制約は、SEC Rule 17a-4(f)、CFTC Rule 1.31(c)-(d)、FINRA Rule 4511(c) などのさまざまなコンプライアンスが目標である場合は、バケットロックおよびオブジェクト保持ロックと組み合わせて使用することをおすすめします。

ログに記録される情報には、クエリ パラメータ、パスパラメータ、リクエスト本文パラメータが含まれます。ログでは、リクエストとレスポンスで機密情報に関連する部分は除外されます。たとえば、以下のものが除外されます。

  • 認証情報(AuthorizationX-Goog-Signatureupload-id など)。
  • 暗号鍵の情報(x-goog-encryption-key など)。
  • 未加工のオブジェクト データ。

この制約を使用する場合は、次の点に注意してください。

  • 詳細なリクエスト情報とレスポンス情報が必ず返されるとは限りません。まれに、空のログが返されることがあります。
  • detailedAuditLoggingMode を有効にすると、監査ログに保存されるデータ量が増加し、それがデータアクセス ログの Cloud Logging の料金に影響する可能性があります。
  • detailedAuditLoggingMode の有効化または無効化が実施されるまでに 10 分程度かかります。

  • ログに記録されたリクエストとレスポンスは、JSON API のフィールド名と一致する汎用形式で記録されます。

認証タイプを制限する

制約名: constraints/storage.restrictAuthTypes 制約タイプ: list

restrictAuthTypes 制約を適用すると、制限付き認証タイプを使用して Cloud Storage リソースにアクセスするリクエストは、リクエストが有効であるかどうかにかかわらず失敗します。restrictAuthTypes 制約を使用して HMAC キーを制限し、規制要件を満たしたり、データのセキュリティを強化したりできます。

リスト制約は、特定の認証タイプを明示的に拒否し、他のすべての認証タイプを許可します。これを行うには、制限付き認証タイプを restrictAuthTypes 制約の rules 内の deniedValues キーに指定する必要があります。allowedValues キーで制限付きの認証タイプを一覧表示しようとすると、エラーが発生します。

制限できる認証タイプは次のとおりです。

  • SERVICE_ACCOUNT_HMAC_SIGNED_REQUESTS: サービス アカウントの HMAC キーで署名されたリクエストを制限します。

  • USER_ACCOUNT_HMAC_SIGNED_REQUESTS: ユーザー アカウントの HMAC キーで署名されたリクエストを制限します。

  • in:ALL_HMAC_SIGNED_REQUESTS: HMAC キーで署名されたリクエストを制限します。データ主権の要件を満たす必要がある場合は、HMAC で署名されたすべてのリクエストを制限することをおすすめします。

この制約を有効にすると、次のようになります。

  • Cloud Storage では、制限付き認証タイプで認証されるリクエストへのアクセスは制限されます。リクエストはエラー 403 Forbidden で失敗します。

  • リクエストの実行を事前に承認されたエンティティには、認証タイプが無効になっていることを示すエラー メッセージが表示されます。

  • HMAC キーが制限されている場合:

    • 制約が適用された HMAC キーを、制約が適用されるリソースで作成したり、有効にすることはできません。HMAC キーの作成または有効化のリクエストは、エラー 403 Forbidden で失敗します。

    • 既存の HMAC キーは残りますが、使用できなくなります。無効化または削除は可能ですが、再度有効にすることはできません。

restrictAuthTypes 制約を使用する場合は、HMAC 認証に依存する既存のリソースに注意してください。たとえば、Amazon Simple Storage Service(Amazon S3)から移行した場合、アプリケーションは HMAC キーを使用して Cloud Storage へのリクエストを認証する可能性があります。Cloud Monitoring の指標 storage.googleapis.com/authn/authentication_count を使用すると、リクエストの認証に HMAC キーが使用された回数を追跡できます。

暗号化されていない HTTP リクエストを制限する

制約名: constraints/storage.secureHttpTransport 制約タイプ: boolean

secureHttpTransport 制約を適用すると、Cloud Storage リソースに対する暗号化されていない HTTP アクセスがすべて拒否されます。

追加の制約

次の組織のポリシーの制約は、Google Cloud 全体でより一般的に適用されますが、多くの場合、Cloud Storage サービスに適用されます。

  • constraints/gcp.restrictNonCmekServices: 新しいオブジェクトと書き換えられたオブジェクトを顧客管理の暗号鍵を使用して暗号化する必要があり、新しいバケットで Cloud KMS 鍵をデフォルトの暗号鍵として設定する必要があります。

  • constraints/gcp.restrictCmekCryptoKeyProjects: Cloud Storage へのリクエストは、リクエストに顧客管理の暗号鍵が含まれ、その鍵が制約で指定されたプロジェクトに属していない場合、拒否されます。同様に、オブジェクトの作成または書き換えのリクエストは、オブジェクトがバケットのデフォルトの暗号鍵で暗号化され、その鍵が制約で指定されたプロジェクトに属していない場合、拒否されます。

  • constraints/gcp.restrictTLSVersion: Transport Layer Security(TLS)1.0 または 1.1 を使用して行われたリクエストによる Cloud Storage へのアクセスは阻止されます。

組織のポリシーの制約を条件付きで許可または拒否する

タグを使用すると、Cloud Storage バケットに特定のタグがあるかどうかに基づいて、組織のポリシーを条件付きで許可または拒否できます。詳しい手順については、タグを使用した組織のポリシーの設定をご覧ください。

次のステップ