文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

批量密钥轮换

MinIO 版本新增功能:RELEASE.2023-04-07T05-28-58Z

MinIO批处理框架允许您使用YAML格式的作业定义文件(即“批处理文件”)来创建、管理、监控和执行作业。批处理作业直接在MinIO部署上运行,充分利用服务端处理能力,不受本地运行机器的资源限制。MinIO 客户端.

Thekeyrotate批处理作业类型循环SSE-S3 或 SSE-KMS 密钥对于MinIO部署中的加密对象。

YAML配置支持通过过滤器,依据创建日期、标签、元数据或KMS密钥来限定密钥轮换的对象范围。 您还可定义重试次数,或设置通知端点及令牌。

密钥轮换批处理作业参考

MinIO 版本新增功能:RELEASE.2023-04-07T05-28-58Z

使用keyrotate作业类型:创建一个循环执行的批处理作业SSE-S3 或 SSE-KMS 密钥对于加密对象。

必填字段

type:

要么sse-s3 or sse-kms.

key:

仅限与sse-kms类型。 用于解封密钥保管库的密钥。

可选字段

对于基于标志的过滤器

newerThan:

表示时间长度的字符串#d#h#sformat.

密钥仅对指定时长内新创建的对象进行轮换。 例如,7d, 24h, 5d12h30s是有效的字符串。

olderThan:

表示时间长度的字符串#d#h#sformat.

密钥仅对超过指定时长的对象进行轮换。

createdAfter:

一个日期在YYYY-MM-DDTHH:MM:SSZ RFC3339日期和时间格式。

密钥仅对在此日期之后创建的对象进行轮换。

createdBefore:

一个日期在YYYY-MM-DDTHH:MM:SSZ RFC3339日期和时间格式。

密钥仅对在此日期之前创建的对象进行轮换。

context:

仅限与sse-kms类型。 执行操作所处的上下文环境。

tags:

仅对标签与指定条件匹配的对象进行密钥轮换key:value:.

metadata:

仅对元数据匹配指定条件的对象进行密钥轮换key:value:.

kmskey:

仅对具有与指定值匹配的KMS密钥ID的对象进行密钥轮换。 这仅适用于sse-kmstype.

对于通知

endpoint:

用于发送通知事件的预定义端点。

token:

一个可选的JSON Web令牌(JWT)用于访问endpoint.

对于重试次数

如果任务执行被中断,您可以定义最大重试次数。 每次重试时,您还可以定义两次尝试之间的等待时长。

attempts:

在放弃前完成批处理作业的尝试次数。

delay:

每次尝试之间的等待时间。

一个示例 YAML 描述文件keyrotate职位类型

使用mc batch generate创建一个基本的keyrotate用于进一步定制的批处理作业:

keyrotate:
  apiVersion: v1
  bucket: BUCKET
  prefix: PREFIX
  encryption:
    type: sse-s3 # valid values are sse-s3 and sse-kms
    key: <new-kms-key> # valid only for sse-kms
    context: <new-kms-key-context> # valid only for sse-kms

  # optional flags based filtering criteria
  # for all objects
  flags:
    filter:
      newerThan: "7d" # match objects newer than this value (e.g. 7d10h31s)
      olderThan: "7d" # match objects older than this value (e.g. 7d10h31s)
      createdAfter: "date" # match objects created after this date and time in RFC3339 format
      createdBefore: "date" # match objects created before this date and time in RFC3339 format
      tags:
        - key: "name"
          value: "pick*" # match objects with tag 'name', with all values starting with 'pick'
      metadata:
        - key: "content-type"
          value: "image/*" # match objects with 'content-type', with all values starting with 'image/'
      kmskey: "key-id" # match objects with KMS key-id (applicable only for sse-kms)
    notify:
      endpoint: "https://notify.endpoint" # notification endpoint to receive job status events
      token: "Bearer xxxxx" # optional authentication token for the notification endpoint
    retry:
      attempts: 10 # number of retries for the job before giving up
      delay: "500ms" # least amount of delay between each retry