文档

批量密钥轮换

New in version MinIO: RELEASE.2023-04-07T05-28-58Z

MinIO Batch Framework 允许你使用 YAML 格式的作业定义文件(“批处理文件”)来创建、管理、监控和执行作业。 批处理作业直接在 MinIO 部署上运行,以利用服务端处理能力,而不受运行 MinIO Client 的本地机器限制。

keyrotate 批处理作业类型会为 MinIO 部署上的加密对象轮换 sse-s3 or sse-kms keys

YAML 配置支持按创建日期、标签、元数据或 kms key 进行过滤,将密钥轮换限制在特定对象集合上。 你还可以定义重试次数,或设置通知 endpoint 和 token。

密钥轮换批处理作业参考

New in version MinIO: RELEASE.2023-04-07T05-28-58Z

使用 keyrotate 作业类型创建批处理作业,以轮换加密对象的 sse-s3 or sse-kms keys

必填字段

type:

sse-s3sse-kms 之一。

key:

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

可选字段

对于**基于标志的过滤条件**

newerThan:

#d#h#s 格式表示时长的字符串。

仅为比指定时长更新的对象轮换密钥。 例如,7d24h5d12h30s 都是有效字符串。

olderThan:

#d#h#s 格式表示时长的字符串。

仅为比指定时长更旧的对象轮换密钥。

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 key-id 与指定值匹配的对象轮换密钥。 这仅适用于 sse-kms 类型。

对于**通知**

endpoint:

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

token:

用于访问 endpoint 的可选 JSON Web Token (JWT)。

对于**重试**

如果作业被中断,你可以定义最大重试次数。 对于每次重试,你还可以定义两次尝试之间的等待时间。

attempts:

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

delay:

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

keyrotate 作业类型的 YAML 描述文件示例

使用 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