GCP - Storage Enum
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
Google Cloud Platform (GCP) 存储是一个 基于云的存储解决方案,提供高耐久性和可用性的对象存储,用于非结构化数据。它提供 多种存储类别,基于性能、可用性和成本,包括标准、近线、冷线和归档。GCP 存储还提供高级功能,如 生命周期策略、版本控制和访问控制,以有效管理和保护数据。
存储桶可以存储在一个区域、两个区域或 多区域(默认)。
标准存储:这是默认的存储选项,提供高性能、低延迟的访问频繁访问的数据。适用于广泛的用例,包括提供网站内容、流媒体和托管数据分析管道。
近线存储:此存储类别提供 较低的存储成本 和 略高的访问成本,与标准存储相比。它针对不常访问的数据进行了优化,最小存储期限为 30 天。非常适合备份和归档目的。
冷线存储:此存储类别针对 长期存储不常访问的数据 进行了优化,最小存储期限为 90 天。它提供 比近线存储更低的存储成本,但 访问成本更高。
归档存储:此存储类别专为 非常不常访问的冷数据 设计,最小存储期限为 365 天。它提供 所有 GCP 存储选项中最低的存储成本,但 访问成本最高。适合需要因合规或监管原因长期保留的数据。
自动分类:如果您 不知道将访问多少数据,可以选择自动分类,GCP 将 自动为您更改存储类型以最小化成本。
默认情况下,建议通过 IAM 控制访问,但也可以 启用 ACL 的使用。 如果您选择仅使用 IAM(默认),并且 经过 90 天,您 将无法为存储桶启用 ACL。
可以启用版本控制,这将 保存存储桶内文件的旧版本。可以配置 要保留的版本数量,甚至 非当前 版本(旧版本)希望保留的 时间。推荐的保留时间为 标准类型的 7 天。
非当前版本的元数据会被保留。此外,非当前版本的 ACL 也会被保留,因此旧版本可能与当前版本具有不同的 ACL。
在 文档 中了解更多信息。
指示您希望 禁止删除存储桶内对象的时间(至少对合规性非常有用)。 版本控制或保留策略只能同时启用一个。
默认情况下,对象是 使用 Google 管理的密钥加密,但您也可以使用 来自 KMS 的密钥。
可以给予 外部用户(无论是否登录 GCP) 访问存储桶内容的权限。 默认情况下,当创建存储桶时,它将 禁用公开暴露存储桶的选项,但在足够的权限下可以更改。
访问存储桶的 URL 格式 为 https://storage.googleapis.com/<bucket-name>
或 https://<bucket_name>.storage.googleapis.com
(两者均有效)。
HMAC 密钥是一种 凭证,可以 与 Cloud Storage 中的服务帐户或用户帐户关联。您使用 HMAC 密钥创建 签名,然后将其包含在对 Cloud Storage 的请求中。签名表明 给定请求已获得用户或服务帐户的授权。
HMAC 密钥有两个主要部分,一个 访问 ID 和一个 密钥。
访问 ID:与特定服务或用户帐户关联的字母数字字符串。当与服务帐户关联时,字符串长度为 61 个字符;当与用户帐户关联时,字符串长度为 24 个字符。以下是访问 ID 的示例:
GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA
密钥:与特定访问 ID 关联的 40 字符的 Base-64 编码字符串。密钥是一个预共享密钥,只有您和 Cloud Storage 知道。您使用密钥创建签名,作为身份验证过程的一部分。以下是密钥的示例:
bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ
访问 ID 和密钥唯一标识一个 HMAC 密钥,但密钥是更敏感的信息,因为它用于 创建签名。
如果您在列出存储桶时遇到权限被拒绝错误,您仍然可能可以访问内容。因此,现在您知道存储桶的命名约定后,可以生成可能名称的列表并尝试访问它们:
使用权限 storage.objects.list
和 storage.objects.get
,您应该能够枚举存储桶中的所有文件夹和文件,以便下载它们。您可以使用以下 Python 脚本实现:
在以下页面中,您可以查看如何滥用存储权限以提升权限:
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)