轮换计划 - AWS Secrets Manager

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

轮换计划

Secrets Manager 会在您设置的轮换时段内按照计划轮换您的密钥。要设置计划和时段,请使用 cron()rate() 表达式以及时段持续时间。Secrets Manager 将在轮换时段内随时轮换密钥。您可以在短至一小时的轮换时段内每四小时轮换一次密钥。

要启用轮换,请参阅:

Secrets Manager 轮换计划使用 UTC 时区。

轮换时段

Secrets Manager 轮换时段与维护时段类似。当您想要轮换密钥时,可以设置轮换时段,Secrets Manager 会在轮换时段内的某个时间轮换您的密钥。

Secrets Manager 轮换时段总是按小时开始。对于使用 rate() 表达式(以天为单位)的轮换计划,轮换时段从午夜开始。您可以使用 cron() 表达式设置轮换时段的开始时间。有关示例,请参阅Cron 表达式

默认情况下,对于按小时计算的轮换计划,轮换时段在一小时后关闭;对于按计算的轮换计划,轮换时段在一天结束时关闭。

要更改轮换时段的长度,请设置时段持续时间。您可以将轮换时段设置为短至一小时。该轮换时段不得延伸到下一个轮换时段。换句话说,对于以小时为单位的轮换计划,请确认轮换时段小于或等于轮换之间的小时数。对于以为单位的轮换计划,请确认起始小时数加上时段持续时间小于或等于 24 小时。

Rate 表达式

Secrets Manager rate 表达式采用以下格式,其中是正整数,单位可以是 hourhoursdaydays

rate(Value Unit)

您可以每四小时轮换一次密钥。最长轮换周期为 999 天。示例:

  • rate(4 hours) 意味着密钥每四小时轮换一次。

  • rate(1 day) 意味着密钥每天轮换一次。

  • rate(10 days) 意味着密钥每 10 天轮换一次。

Cron 表达式

Secrets Manager cron 表达式具有以下格式:

cron(Minutes Hours Day-of-month Month Day-of-week Year)

包含小时增量的 cron 表达式每天都会重置。例如,cron(0 4/12 * * ? *) 表示凌晨 4:00、下午 4:00,然后是第二天凌晨 4:00、下午 4:00。Secrets Manager 轮换计划使用 UTC 时区。

示例计划 Expression

每八小时一次,从午夜开始。

cron(0 /8 * * ? *)

每八小时一次,从早上 8:00 开始。

cron(0 8/8 * * ? *)

每十小时一次,从凌晨 2:00 开始。

轮换时段将从 2:00、12:00 和 22:00 开始,然后在第二天的 2:00、12:00 和 22:00 进行。

cron(0 2/10 * * ? *)

每天上午 10:00。

cron(0 10 * * ? *)

每星期六下午 6:00。

cron(0 18 ? * SAT *)

每月第 1 天上午 8:00。

cron(0 8 1 * ? *)

每三个月第一个星期日凌晨 1:00。

cron(0 1 ? 1/3 SUN#1 *)

每月最后一天下午 5:00。

cron(0 17 L * ? *)

星期一到星期五上午 8:00。

cron(0 8 ? * MON-FRI *)

每月第 1 天和第 15 天下午 4:00。

cron(0 16 1,15 * ? *)

每月第一个星期日午夜。

cron(0 0 ? * SUN#1 *)

从一月份开始,每 11 个月的第一个星期一的午夜。

cron(0 0 ? 1/11 2#1 *)

Secrets Manager 中的 Cron 表达式要求

Secrets Manager 对可以用于 cron 表达式的内容有一些限制。Secrets Manager 的 cron 表达式的分钟字段必须填写 0,因为 Secrets Manager 轮换时段在整点开始。其年份字段必须填写 *,因为 Secrets Manager 不支持相隔一年以上的轮换计划。下表显示了可以使用的选项。

字段 通配符

分钟

必须为 0

小时

0–23

使用 /(正斜杠)指定增量。例如,2/10 意味着从凌晨 2:00 开始每 10 小时一次。您可以每四小时轮换一次密钥。

日期

1-31

使用 ,(逗号)包含其他值。例如,1,15 当前当月的第 1 天和第 15 天。

使用 -(短划线)指定范围。例如,1–15 表示当月的第 1 天到第 15 天。

使用 *(星号)包含该字段中的所有值。例如,* 表示当月的每一天。

?(问号)通配符用于指定一个或另一个。您无法在同一 cron 表达式中为 Day-of-monthDay-of-week 字段同时指定值。如果您在其中一个字段中指定了值,则必须在另一个字段中使用 ?(问号)。

使用 /(正斜杠)指定增量。例如,1/2 表示从第 1 天开始每两天一次,换句话说,第 1 天、第 3 天、第 5 天,依此类推。

使用 L 指定当月的最后一天。

使用 DAYL 指定当月的最后一个命名日期。例如,SUNL 表示当月的最后一个星期日。

月份

1-12 或 JAN-DEC

使用 ,(逗号)包含其他值。例如,JAN,APR,JUL,OCT 表示一月、四月、七月和十月。

使用 -(短划线)指定范围。例如,1–3 表示一年的第 1 个月至第 3 个月。

使用 *(星号)包含该字段中的所有值。例如,* 表示每个月。

使用 /(正斜杠)指定增量。例如,1/3 表示每三个月一次,从第 1 个月开始,即第 1、4、7 和 10 个月。

星期几

1-7 或 SUN-SAT

使用 # 指定某个月内一周的星期几。例如,TUE#3 表示该月的第三个星期二。

使用 ,(逗号)包含其他值。例如,1,4 表示一周的第一天和第四天。

使用 -(短划线)指定范围。例如,1–4 表示一周的第 1 天到第 4 天。

使用 *(星号)包含该字段中的所有值。例如,* 表示一周的每一天。

?(问号)通配符用于指定一个或另一个。您无法在同一 cron 表达式中为 Day-of-monthDay-of-week 字段同时指定值。如果您在其中一个字段中指定了值,则必须在另一个字段中使用 ?(问号)。

使用 /(正斜杠)指定增量。例如,1/2 表示一周的每隔一天,从第一天开始,即第 1 天、第 3 天、第 5 天和第 7 天。

使用 L 指定一周的最后一天。

必须是 *