文档

批量密钥轮换

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

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

keyrotate 批处理作业类型循环 MinIO 部署上加密对象的 sse-s3 或 sse-kms 密钥

YAML 配置支持过滤器,以根据创建日期、标签、元数据或 kms 密钥将密钥轮换限制为特定的一组对象。您还可以定义重试次数或设置通知端点和令牌。

密钥轮换批量作业参考

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

使用 keyrotate 作业类型创建循环 sse-s3 或 sse-kms 密钥 的加密对象的批处理作业。

必填字段

类型

可以是 sse-s3sse-kms

密钥

仅适用于 sse-kms 类型。用于解锁密钥库的密钥。

上下文

仅适用于 sse-kms 类型。执行操作的上下文。

可选字段

对于**基于标志的过滤器**

newerThan

#d#h#s 格式表示一段时间的字符串。

仅对较于指定时间段内创建的对象进行密钥轮换。例如,7d24h5d12h30s 是有效的字符串。

olderThan

#d#h#s 格式表示一段时间的字符串。

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

createdAfter

YYYY-MM-DD 格式表示的日期。

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

createdBefore

YYYY-MM-DD 格式表示的日期。

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

tags

仅对具有与指定 key:value: 相匹配的标签的对象进行密钥轮换。

metadata

仅对具有与指定 key:value: 相匹配的元数据的对象进行密钥轮换。

kmskey

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

对于**通知**

endpoint

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

token

用于访问 endpoint 的可选 JSON Web 令牌 (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 "date"
      createdBefore: "date" # match objects created before "date"
      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