Secrets Manager 轮换中的计划表达式 - AWS Secrets Manager

Secrets Manager 轮换中的计划表达式

在启用自动轮换时,可以使用 cron()rate() 表达式来设置轮换密钥的计划。使用 rate 表达式,可以创建以小时或天为间隔重复的轮换计划。使用 cron 表达式,可以创建比轮换间隔更详细的轮换计划。Secrets Manager 轮换计划使用 UTC 时区。您可以每四小时轮换一次密钥。Secrets Manager 将在轮换时段内随时轮换密钥。

要启用轮换,请参阅:

Rate 表达式

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

rate(Value Unit)

您可以每四小时轮换一次密钥。示例:

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

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

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

对于以小时为单位的费率,默认轮换时段从午夜开始,并在一小时后关闭。您可以设置 Window duration(时段持续时间)以更改轮换时段。该轮换时段不得延伸到下一个轮换时段。对此进行检查的一种方法是确认轮换时段小于或等于两次轮换之间的小时数。

对于以为单位的费率,默认轮换时段从午夜开始,并在一天结束时关闭。您可以设置 Window duration(时段持续时间)以更改轮换时段。该轮换时段不得延伸到下一个 UTC 日。对此进行检查的一种方法是确认开始时间加上时段持续时间是否小于或等于 24 小时。

Cron 表达式

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 时区。

对于以小时为单位的计划,默认轮换时段将在一小时后关闭。您可以设置 Window duration(时段持续时间)以更改轮换时段。该轮换时段不得进入下一个轮换时段。您可以每四小时轮换一次密钥。

示例计划 表达式

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

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 *)

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 指定一周的最后一天。

年份

必须是 *