

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ローテーションスケジュール
<a name="rotate-secrets_schedule"></a>

Secrets Manager は、設定したローテーションウィンドウ中にスケジュールに従ってシークレットをローテーションします。スケジュールとウィンドウを設定するには、ウィンドウ期間とともに **[cron()]** または **[rate()]** 式を使用します。Secrets Manager は、ローテーションウィンドウ中の任意の時刻にシークレットをローテーションします。シークレットは 4 時間ごとに、1 時間単位でローテーションさせることができます。

ローテーションの有効化については、以下を参照してください。
+ [AWS Secrets Manager シークレットのマネージドローテーション](rotate-secrets_managed.md)
+ [Amazon RDS、Amazon Aurora、Amazon DocumentDB、Amazon Redshift のシークレットで自動ローテーションを設定にする](rotate-secrets_turn-on-for-db.md)
+ [データベース以外の AWS Secrets Manager シークレットの自動ローテーションを設定する](rotate-secrets_turn-on-for-other.md)

Secrets Manager のローテーションスケジュールでは、UTC タイムゾーンが使用されます。

## ローテーションウィンドウ
<a name="rotate-secrets_rotation-windows"></a>

Secrets Manager のローテーションウィンドウは、メンテナンスウィンドウに似ています。シークレットをローテーションするタイミングをローテーションウィンドウに設定し、Secrets Manager はローテーションウィンドウ中にシークレットをローテーションします。

Secrets Manager のローテーションウィンドウは、常に正時に開始されます。日数で `rate()` 式を使用するローテーションスケジュールの場合、ローテーションウィンドウは午前 0 時に開始されます。`cron()` 式を使用して、ローテーションウィンドウの開始時刻を設定できます。例については、[cron 式](#rotate-secrets_schedule-cron) を参照してください。

デフォルトでは、ローテーションウィンドウは、*時間*単位のローテーションスケジュールの場合は 1 時間後に閉じ、*日*単位のローテーションスケジュールの場合は 1 日の最後に閉じます。

**[ウィンドウ期間]** を設定して、ローテーションウィンドウの長さを変更できます。ローテーションウィンドウは最低 1 時間で設定できます。ローテーションウィンドウが次のローテーションウィンドウに重ならないようにしてください。つまり、*時間*単位のローテーションスケジュールの場合、ローテーションウィンドウがローテーション間の時間数以下であることを確認します。*日*単位のローテーションスケジュールの場合、開始時刻とウィンドウ期間の合計時間が 24 時間以下であることを確認します。

## rate 式
<a name="rotate-secrets_schedule-rate"></a>

Secrets Manager の Rate 式は、次のような形式です。{{Value}} は正の整数で、{{Unit}} は `hour`、`hours`、`day`、または `days` にできます。

```
rate({{Value}} {{Unit}})
```

シークレットが 4 時間ごとにローテーションされるように設定できます。最大ローテーション期間は 999 日です。例:
+ `rate(4 hours)` は、シークレットが 4 時間ごとにローテーションされることを意味します。
+ `rate(1 day)` は、シークレットが毎日ローテーションされることを意味します。
+ `rate(10 days)` は、シークレットが 10 日ごとにローテーションされることを意味します。

## cron 式
<a name="rotate-secrets_schedule-cron"></a>

Secrets Manager の Cron 式の形式は次のようになります。

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

時間の増分を含む cron 式は、毎日リセットされます。例えば、`cron(0 4/12 * * ? *)` は午前 4 時、および午後 4 時、次いで翌日の午前 4 時、および午後 4 時を意味します。Secrets Manager のローテーションスケジュールでは、UTC タイムゾーンが使用されます。


| スケジュールの例 | 式 | 
| --- | --- | 
| 8 時間ごと、午前 0 時から開始。 | `cron(0 /8 * * ? *)` | 
| 8 時間ごと、午前 8 時から開始。 | `cron(0 8/8 * * ? *)` | 
| 10 時間ごと、午前 2 時から開始。<br />ローテーションウィンドウは 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 * ? *)` | 
| 3 か月ごとに第 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 * ? *)` | 
| 毎月第 1 日曜日の午前 0:00。 | `cron(0 0 ? * SUN#1 *)` | 
| 1 月に開始され、最初の月曜日の午前 0 時から 11 か月ごと。 | `cron(0 0 ? 1/11 2#1 *)` | 

### Secrets Manager の cron 式要件
<a name="rotate-secrets_schedule-cron-ASM"></a>

Secrets Manager では、cron 式に使用できる設定値にはいくつかの制限があります。Secrets Manager の cron 式では、分フィールドに **0** が必要です。これは、Secrets Manager のローテーションウィンドウが正時に開始されるためです。年フィールドには、**\*** が必要です。これは、Secrets Manager では 1 年以上離れているローテーションスケジュールがサポートされていないためです。次の表に、使用できるオプションを示します。


| **フィールド** | **値** | **ワイルドカード** | 
| --- | --- | --- | 
| 分 | 0 を指定 | なし | 
| 時間 | 0～23 | **/** (フォワードスラッシュ) を使用して増分を指定します。例えば、`2/10` は午前 2 時から 10 時間ごとを意味します。シークレットが 4 時間ごとにローテーションされるように設定できます。 | 
| 日 | 1～31 | **,** (カンマ) を使用して追加の値を含めます。例えば、`1,15` は月の 1 日と 15 日を意味します。<br />**–** (ダッシュ) を使用して範囲を指定します。例えば、`1–15` は月の 1 日から 15 日までの日を意味します。<br />**\*** (アスタリスク) を使用してフィールド内のすべての値を含めます。例えば、`*` は月のすべての日を意味します。<br />**[?]** (疑問符) のワイルドカードは、任意を意味します。Cron 式の `Day-of-month` フィールドと `Day-of-week` フィールドを同時に指定することはできません。一方のフィールドに値を指定する場合、もう一方のフィールドで **[?]** (疑問符) を使用する必要があります。<br />**/** (フォワードスラッシュ) を使用して増分を指定します。例えば、`1/2` は 1 日目から 2 日おき、つまり 1 日目、3 日目、5 日目などを意味します。<br />**L** を使用して月の最終日を指定します。<br />**{{DAY}}L** を使用して、月の最終曜日を指定します。例えば、`SUNL` は月の最終日曜日を意味します。 | 
| 月 | 1～12 または JAN～DEC | **,** (カンマ) を使用して追加の値を含めます。例えば、`JAN,APR,JUL,OCT` は 1 月、4 月、7 月、および 10 月を意味します。<br />**–** (ダッシュ) を使用して範囲を指定します。例えば、`1–3` とは1 年の 1 か月目から 3 か月目までを意味します。<br />**\*** (アスタリスク) を使用してフィールド内のすべての値を含めます。例えば、`*` はすべての月を意味します。<br />**/** (フォワードスラッシュ) を使用して増分を指定します。例えば、`1/3` は、1 か月目から 3 か月おき、つまり 1 か月目、4 か月目、7 か月目、10 か月目などを意味します。 | 
| 曜日 | 1～7 または SUN～SAT | **\#** を使用して月内の曜日を指定します。例えば、`TUE#3` は月の第 3 火曜日を意味します。<br />**,** (カンマ) を使用して追加の値を含めます。例えば、`1,4` は 1 日目の曜日と 4 日目の曜日を意味します。<br />**–** (ダッシュ) を使用して範囲を指定します。例えば、`1–4` は 1 日目から 4 日目までの曜日を意味します。<br />**\*** (アスタリスク) を使用してフィールド内のすべての値を含めます。例えば、`*` はすべての曜日を意味します。<br />**[?]** (疑問符) のワイルドカードは、任意を意味します。Cron 式の `Day-of-month` フィールドと `Day-of-week` フィールドを同時に指定することはできません。一方のフィールドに値を指定する場合、もう一方のフィールドで **[?]** (疑問符) を使用する必要があります。<br />**/** (フォワードスラッシュ) を使用して増分を指定します。例えば、`1/2` は 1 日目の曜日から 2 日おき、つまり 1 日目、3 日目、5 日目、7 日目などの曜日を意味します。<br />**L** を使用して最終曜日を指定します。 | 
| 年 | \* を指定してください | なし | 