本页面介绍了如何创建 Google Distributed Cloud (GDC) 网闸隔离配置存储 WORM 存储桶。
准备工作
存储桶是限定于特定项目的资源。项目充当容器,对存储桶进行分组,并支持通过 Management API 服务器对其进行管理。您必须先创建一个新项目,或选择一个您拥有足够权限的现有项目,然后才能执行本页面上的操作。
所需 IAM 角色
请与您的 IAM 项目管理员联系,请求在项目命名空间中授予以下角色:
- Bucket Project Admin (
project-bucket-admin):创建、更新和删除存储桶。 - Bucket Object Project Viewer (
project-bucket-object-viewer):查看和检查存储桶和对象的详细信息。
如需了解详情,请参阅授予存储桶访问权限。
准备环境
如需针对管理 API 服务器或全局 API 服务器运行命令,请执行以下操作:
- 如果您没有可用区级管理 API 服务器的 kubeconfig 文件,请登录并生成该文件。
- 对于双可用区存储桶,请执行以下操作:
- 请与您的基础架构运维人员 (IO) 确认,是否已为您的配对可用区创建
BucketLocationConfig自定义资源。 - 为全局 API 服务器生成 kubeconfig 文件。
- 请与您的基础架构运维人员 (IO) 确认,是否已为您的配对可用区创建
创建 WORM 存储桶
WORM 存储桶可确保没有其他内容覆盖对象,并将其保留最短时间。审核日志记录是 WORM 存储桶的一个用例示例。
请按照以下步骤创建 WORM 存储桶:
在创建存储桶时设置保留期限。保留期限定义了每个对象版本在多少天内无法删除或修改。此保留期限不同于存储类别最短存储时长(例如
Standard存储类别的最短存储时长为 30 天)。例如,以下存储桶设置了 365 天的保留期限。如果您需要超出保留政策限制,请与您的基础架构运营商 (IO) 联系。apiVersion: object.gdc.goog/v1 kind: Bucket metadata: name: foo-logging-bucket namespace: foo-service spec: description: "Audit logs for foo" storageClass: Standard bucketPolicy: lockingPolicy: defaultObjectRetentionDays: 365向所有需要只读权限的用户授予
project-bucket-object-viewer角色:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: namespace: foo-service name: object-readonly-access roleRef: kind: Role name: project-bucket-object-viewer apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount namespace: foo-service name: foo-log-processor - kind: User name: bob@example.com apiGroup: rbac.authorization.k8s.io向需要将内容写入存储桶的用户授予
project-bucket-object-admin角色:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: namespace: foo-service name: object-write-access roleRef: kind: Role name: project-bucket-object-admin apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount namespace: foo-service name: foo-service-account