本页面就适用于 Cloud Storage 的组织政策限制条件提供补充信息。使用限制条件可在整个项目或组织中实施存储桶和对象行为。组织政策限制条件可以是布尔值限制条件或列表限制条件。
Cloud Storage 限制条件
以下限制条件可应用于组织政策并与 Cloud Storage 相关:
强制执行禁止公开访问设置
限制条件名称:constraints/storage.publicAccessPrevention
限制条件类型:boolean
对资源应用 publicAccessPrevention
限制条件时,系统会对该资源下的所有存储桶和对象(包括新对象和现有对象)限制公共访问权限。
请注意,启用或停用 publicAccessPrevention
最多可能需要 10 分钟才能生效。
软删除保留时长
限制条件名称:constraints/storage.softDeletePolicySeconds
限制条件类型:list
应用 softDeletePolicySeconds
限制条件时,请指定一个或多个时长作为其中一项限制。设置完成后,存储桶软删除政策必须包含一个指定的时长。softDeletePolicySeconds
在创建新存储桶以及添加或更新现有存储桶的软删除保留时长 (softDeletePolicy.retentionDuration
) 时是必需的;但是,在其他情况下该限制条件不会影响现有存储桶。
如果您在不同资源级层设置多个 softDeletePolicySeconds
限制条件,则这些限制条件会被分层执行。因此,我们建议您将 inheritFromParent
字段设置为 true
,以确保更高层级的政策也得到考虑。
存储桶保留政策时长(以秒为单位)
限制条件名称:constraints/storage.retentionPolicySeconds
限制条件类型:list
应用 retentionPolicySeconds
限制条件时,请指定一个或多个时长作为其中一项限制。设置完成后,存储桶保留政策中必须包含一个指定的时长。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))时,建议将此限制条件与存储桶锁定和对象保留锁定结合使用。
记录的信息包括查询参数、路径参数和请求正文参数。日志不包括与敏感信息关联的请求和响应的某些部分。例如,日志不包括:
- 凭据,例如
Authorization
、X-Goog-Signature
或upload-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 访问。
- 默认情况下,Cloud Storage XML API 允许未加密的 HTTP 访问。
CNAME
重定向仅支持未加密的 HTTP 访问。
其他限制
以下组织政策限制条件在 Google Cloud 中更普遍,但通常应用于 Cloud Storage 服务:
constraints/gcp.restrictNonCmekServices
:要求使用客户管理的加密密钥加密新的和重写的对象,并需要新的存储桶,将 Cloud KMS 密钥设置为默认加密密钥。constraints/gcp.restrictCmekCryptoKeyProjects
:如果请求包含客户管理的加密密钥并且该密钥不属于项目,则拒绝对 Cloud Storage 的请求由约束指定。同样,如果对象将由存储桶的默认加密密钥加密并且该密钥不属于约束指定的项目,则拒绝创建或重写对象的请求。constraints/gcp.restrictTLSVersion
:阻止使用传输层安全性 (TLS) 1.0 或 1.1 发出的请求访问 Cloud Storage。
有条件地允许或拒绝组织政策限制条件
标记提供了一种有条件地允许或拒绝组织政策的方法,具体取决于 Cloud Storage 存储桶是否具有特定的标记。如需查看详细说明,请参阅使用标记设置组织政策。
后续步骤
- 了解适用于组织政策的资源层次结构。
- 如需了解如何在 Google Cloud 控制台中使用限制条件和组织政策,请参阅创建和管理组织政策。
- 如需了解如何在 gcloud CLI 中使用限制条件和组织政策,请参阅使用限制条件。
- 了解 Cloud Storage 的自定义约束条件。
- 如需了解相关 API 方法,例如
projects.setOrgPolicy
,请参阅 Resource Manager API 参考文档。