中文文档

Batch Key Rotation

在 MinIO 版本加入: RELEASE.2023-04-07T05-28-58Z

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

keyrotate 批处理作业类型用于在 MinIO 部署上循环更替 SSE-S3 或 SSE-KMS 密钥,以便对加密对象进行密钥轮换。

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

键轮换批处理作业参考

在 MinIO 版本加入: RELEASE.2023-04-07T05-28-58Z

使用 keyrotate 作业类型来创建一个批处理作业,该作业将循环更替 SSE-S3 或 SSE-KMS 密钥,以便对加密对象进行密钥轮换。

必填字段

type:

sse-s3 o或r sse-kms .

key:

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

可选字段

对于 基于标志的过滤器

newerThan:

表示时间长度的字符串,格式为 #d#h#s

密钥仅对比指定时间长度更新的对象进行轮换。 例如, 7d , 24h , 5d12h30s 都是有效的字符串。

olderThan:

表示时间长度的字符串,格式为 #d#h#s

密钥仅对于比指定时间长度旧的的对象进行轮换。

createdAfter:

格式为 THH:MM:SSZ`` RFC3339 日期和时间。

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

createdBefore:

格式为 THH:MM:SSZ`` RFC3339 日期和时间。

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

context:

Only for use with the sse-kms type. The context within which to perform actions.

tags:

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

metadata:

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

kmskey:

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

对于 notifications

endpoint:

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

token:

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

对于 retry attempts

如果任务被打断,您可以定义最大的重试次数。 对于每次重试,您还可以定义每次尝试之间等待的时间。

attempts:

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

delay:

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

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

使用 mc batch generate 创建一个基本的 keyrotate 批处理作业以进行进一步的自定义:

keyrotate:
  apiVersion: v1
  bucket: bucket
  prefix: 
  encryption:
    type: sse-kms # valid values are sse-s3 and sse-kms
    
    # The following encryption values only apply for sse-kms type.
    # For sse-s3 key types, MinIO uses the key provided by the MINIO_KMS_KES_KEY_FILE environment variable.
    # The following two values are ignored if type is set to sse-s3.
    key: my-new-keys2 # valid only for sse-kms
    context: <new-kms-key-context> # valid only for sse-kms

  # optional flags based filtering criteria
  flags:
    filter:
      newerThan: "84h" # match objects newer than this value (e.g. 7d10h31s)
      olderThan: "80h" # match objects older than this value (e.g. 7d10h31s)
      createdAfter: "2023-03-02T15:04:05Z07:00" # match objects created after "date"
      createdBefore: "2023-03-02T15:04:05Z07:00" # 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)
  
  # optional entries to add notifications for the job
  notify:
    endpoint: "https://notify.endpoint" # notification endpoint to receive job status events
    token: "Bearer xxxxx" # optional authentication token for the notification endpoint
  
  # optional entries to add retry attempts if the job is interrupted
  retry:
    attempts: 10 # number of retries for the job before giving up
    delay: "500ms" # least amount of delay between each retry
Join Slack 商业支持购买咨询