IBM Cloud Docs
シークレットの自動ローテーション

シークレットの自動ローテーション

IBM Cloud® Secrets Manager を使用して、シークレットの自動ローテーションをスケジューリングできます。

サービス・インスタンスのシークレットをローテーションすると、その値の新規バージョンが作成されます。 通常の間隔でシークレットの自動ローテーションをスケジューリングすると、セキュリティー侵害のの可能性を低減し、資格情報の有効期限切れが起こらないように保証できます。

自動ローテーションは、Secrets Manager によって生成されるシークレットに対してのみ使用可能です。 シークレットが初回インポートされた場合は、新しいシークレット・データを指定して、ローテーションさせる必要があります。 詳細については、シークレットの手動ローテーションを参照してください。

開始前に

開始する前に、必要なレベルのアクセス権限を持っていることを確認してください。 シークレットをローテーションさせるには、ライター・サービス・ロールまたはそれ以上が必要です。

サポート対象シークレット・タイプ

自動ローテーションは、 プライベート証明書パブリック証明書ユーザー資格情報、および IAM 資格情報 でサポートされます。 秘密の種類によって、自動ローテーションは設定した日時に即座に行われますが、秘密の新しいバージョンを作成する前に、いくつかの追加ステップを完了する必要があるかもしれません。

Secrets Manager、秘密のタイプ別に手動回転を評価する方法について説明する。
タイプ ローテーションの説明
プライベート証明書 既存のcertificate値は、新しい証明書の内容に置き換えられます。 更新された証明書の存続時間 (TTL) は、証明書が最初に作成されたときに選択された証明書テンプレートに従って設定されます。 プライベート証明書のTTL(time-to-live)または有効期間が、発行した認証局の有効期間を超えると、証明書は自動的にローテーションされなくなるので注意すること。
パブリック証明書 パブリック証明書は**「アクティブ、ローテーション保留中」ステータスに変わり、証明書を更新する要求が処理中であることが示されます。Secrets Manager は DNS 検証を使用して、証明書の一部としてリストされているドメインをユーザーが所有していることを検証します。 このプロセスが完了するまでに数分かかることがあります。 検証が正常終了すると、新しい証明書が発行され、ステータスは「アクティブ」に戻ります。 検証に失敗すると、証明書のステータスは「アクティブ、ローテーション失敗」**に変わります。
ユーザー資格情報 既存のpassword値は、大文字、小文字、数字および記号を含む、ランダムに生成された32文字のパスワードに置き換えられます。 username値は変更されません。
IAM 資格情報 サービス ID の API キー値は、新しい API キーに置き換えられます。 前の API キーは、定義された TTL 内の残りの時間は使用可能なままです。
サービス資格情報 Service credentials secret は新しいものに置き換えられる。 前の秘密は、定義されたTTLの残り時間利用可能なままである。
カスタム資格情報 カスタム・クレデンシャル・シークレットは新しいものに置き換えられる。 前の秘密は、定義されたTTLの残り時間利用可能なままである。

データベース用に作成されたサービス資格情報の場合、資格情報に加えて、作成された資格情報のデータベース権限も変更すると、サービス資格情報がローテーションされた後にそれらは同期されないことに注意してください。 データベース・サービス資格情報をローテーションする場合、これは ID ローテーションと見なされます。

UI での自動ローテーションのスケジューリング

Secrets Manager UI を使用して、シークレットの自動ローテーションをスケジューリングできます。

ユーザー資格情報の自動ローテーション・ポリシーの設定

パスワードが定期的に自動ローテーションされるようにスケジュールする場合は、ユーザー資格情報の作成時に自動ローテーションを有効にすることができます。 既存のシークレットの詳細を編集して、自動ローテーションを有効にすることもできます。

シークレットのローテーション頻度をさらに制御する必要がある場合は、Secrets ManagerAPIを使用して、dayまたはmonthの時間単位を使用してカスタム間隔を設定できます。 詳細については、API リファレンスを参照してください。

  1. シークレットを追加する 場合は、ローテーション・オプションを有効にします。
  2. 既存のシークレットを編集する場合は、その詳細を更新して、自動ローテーションを有効にします。
    1. **「シークレット」**テーブルで、既存のシークレットのリストを表示します。
    2. 編集するシークレットの行で、**「アクション」**メニュー「アクション」アイコン **>「詳細の編集」**をクリックします。
    3. 自動ローテーション・オプションを使用して、シークレットの自動ローテーションを有効または無効にします。

シークレットのローテーション設定を更新すると、即時ローテーションがトリガーされます。

パブリック証明書の自動ローテーション・ポリシーの設定

公開 SSL/TLS 証明書が自動的に更新されるようにスケジュールする場合は、証明書の注文時に証明書の自動ローテーションを有効にすることができます。 既存の証明書の詳細を編集して、自動ローテーションを有効にすることもできます。 証明書の次のローテーション・サイクルでは、 Secrets Manager、有効期限の31日前から証明書の再発注を試みる。 サービスは、証明書が正常に更新されるまで、毎日証明書の更新を試行し続けます。

  1. パブリック証明書の注文の場合は、回転オプションを有効にします。

    1. 証明書を自動ローテーションさせるには、ローテーション・トグルを**「オン」**に切り替えます。 証明書は有効期限が切れる 31 日前に自動的に再オーダーされます。
    2. 各ローテーションで証明書の新しいシークレットを要求するには、キー再設定トグルを**「オン」**に切り替えます。
  2. 既存のパブリック証明書を編集する場合は、その詳細を更新して自動ローテーションをスケジューリングします。

    1. **「シークレット」**テーブルで、既存のパブリック証明書のリストを表示します。
    2. 編集する証明書の行で、**「アクション」**メニュー「アクション」アイコン **>「詳細の編集」**をクリックします。
    3. **「自動ローテーション」**オプションを使用して、シークレットのローテーション・ポリシーを追加または削除します。

プライベート証明書の自動ローテーション・ポリシーの設定

プライベート SSL または TLS 証明書が自動的に更新されるようにスケジュールする場合は、証明書の作成時に証明書の自動ローテーションを有効にするか、既存の証明書の詳細を編集することができます。 証明書は、

  1. プライベート証明書を作成する 場合は、ローテーション・オプションを有効にします。

    1. 証明書を自動ローテーションさせるには、ローテーション・トグルを**「オン」**に切り替えます。

    2. スケジュールされたローテーションの間の日数を指定する間隔と単位を選択します。

      プライベート証明書に関連付けられている証明書テンプレートによっては、証明書のローテーション間隔に関するいくつかの制限が適用される場合があります。 例えば、ローテーション間隔は、テンプレートで定義されている存続時間 (TTL) を超えることはできません。 詳しくは、証明書テンプレートを参照してください。

  2. 既存のプライベート証明書を編集する場合は、詳細を更新して自動ローテーションをスケジュールします。

    1. シークレットテーブルで、既存のプライベート証明書のリストを表示します。
    2. 編集する証明書の行で、**「アクション」**メニュー「アクション」アイコン **>「詳細の編集」**をクリックします。
    3. **「自動ローテーション」**オプションを使用して、シークレットのローテーション・ポリシーを追加または削除します。

IAM資格情報の自動ローテーションポリシーの設定

API キーが定期的に自動ローテーションされるようにスケジュールする場合は、作成時に IAM 資格情報の自動ローテーションを有効にすることができます。 既存のシークレットの詳細を編集して、自動ローテーションを有効にすることもできます。 ローテーション間隔を、30 日、60 日、または 90 日の中から選択します。

シークレットのローテーション頻度をさらに制御する必要がある場合は、Secrets ManagerAPIを使用して、dayまたはmonthの時間単位を使用してカスタム間隔を設定できます。 詳細については、API リファレンスを参照してください。

  1. シークレットを追加する場合は、30 日、60 日、90 日のいずれかをローテーション間隔に選択して、ローテーション・オプションを有効にします。
  2. 既存のシークレットを編集する場合は、その詳細を更新して、自動ローテーションを有効にします。
    1. **「シークレット」**テーブルで、既存のシークレットのリストを表示します。
    2. 編集するシークレットの行で、**「アクション」**メニュー「アクション」アイコン **>「詳細の編集」**をクリックします。
    3. 自動ローテーション・オプションを使用して、シークレットの自動ローテーションを有効または無効にします。

ローテーションは、再使用鍵が true に設定されている IAM 資格情報に対してのみ使用可能です。 定義されたローテーション間隔を、定義された存続時間 (TTL) より大きくすることはできません。 minute 時間単位を使用してシークレットの TTL を設定できますが、それらのシークレットのローテーションは使用できません。

サービス資格情報の自動ローテーションポリシーの設定

サービス資格情報の秘密が定期的に自動的にローテーションされるようにスケジュールしたい場合は、サービス資格情報の作成時に自動ローテーションを有効にすることができます。 既存のシークレットの詳細を編集して、自動ローテーションを有効にすることもできます。 ローテーション間隔を、30 日、60 日、または 90 日の中から選択します。

シークレットのローテーション頻度をさらに制御する必要がある場合は、Secrets ManagerAPIを使用して、dayまたはmonthの時間単位を使用してカスタム間隔を設定できます。 詳細については、API リファレンスを参照してください。

  1. シークレットを追加する場合は、30 日、60 日、90 日のいずれかをローテーション間隔に選択して、ローテーション・オプションを有効にします。
  2. 既存のシークレットを編集する場合は、その詳細を更新して、自動ローテーションを有効にします。
    1. **「シークレット」**テーブルで、既存のシークレットのリストを表示します。
    2. 編集するシークレットの行で、**「アクション」**メニュー「アクション」アイコン **>「詳細の編集」**をクリックします。
    3. 自動ローテーション・オプションを使用して、シークレットの自動ローテーションを有効または無効にします。

カスタム資格情報の自動ローテーションポリシーの設定

カスタム資格情報セカートを定期的に自動ローテーションするようにスケジュールしたい場合、カスタム資格情報セカートの作成時に自動ローテーションを有効にすることができます。 既存のシークレットの詳細を編集して、自動ローテーションを有効にすることもできます。 ローテーション間隔を、30 日、60 日、または 90 日の中から選択します。

シークレットのローテーション頻度をさらに制御する必要がある場合は、Secrets ManagerAPIを使用して、dayまたはmonthの時間単位を使用してカスタム間隔を設定できます。 詳細については、API リファレンスを参照してください。

  1. シークレットを追加する場合は、30 日、60 日、90 日のいずれかをローテーション間隔に選択して、ローテーション・オプションを有効にします。
  2. 既存のシークレットを編集する場合は、その詳細を更新して、自動ローテーションを有効にします。
    1. **「シークレット」**テーブルで、既存のシークレットのリストを表示します。
    2. 編集するシークレットの行で、**「アクション」**メニュー「アクション」アイコン **>「詳細の編集」**をクリックします。
    3. 自動ローテーション・オプションを使用して、シークレットの自動ローテーションを有効または無効にします。

CLI からの自動ローテーションのスケジューリング

Secrets Manager CLI プラグインを使用して、シークレットの自動ローテーションをスケジュールできます。

ユーザー資格情報の自動ローテーション・ポリシーの設定

ibmcloud secrets-manager secret-metadata-update を使用して、ユーザー資格情報の自動ローテーションをスケジュールします。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

ポリシーを削除するには、リソース・ブロックを空のままにします。

パブリック証明書の自動ローテーション・ポリシーの設定

ibmcloud secrets-manager secret-metadata-update を使用して、パブリック証明書の自動ローテーションをスケジュールします。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true, "rotate_keys": true}'

プライベート証明書の自動ローテーション・ポリシーの設定

ibmcloud secrets-manager secret-metadata-update を使用して、プライベート証明書の自動ローテーションをスケジュールします。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

IAM資格情報の自動ローテーションポリシーの設定

ibmcloud secrets-manager secret-metadata-update を使用して、IAM 資格情報の自動ローテーションをスケジュールします。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

ポリシーを削除するには、リソース・ブロックを空のままにします。

サービス資格情報の自動ローテーションポリシーの設定

ibmcloud secrets-manager secret-metadata-update を使用して、サービス資格情報の自動ローテーションをスケジュールします。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

ポリシーを削除するには、リソース・ブロックを空のままにします。

カスタム資格情報の自動ローテーションポリシーの設定

カスタム認証情報の自動ローテーションをスケジュールするには ibmcloud secrets-manager secret-metadata-update.

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

ポリシーを削除するには、リソース・ブロックを空のままにします。

API を使用した自動ローテーションのスケジューリング

IBM Cloud® Secrets Manager を使用して、シークレットの自動ローテーションをスケジューリングできます。

ユーザー資格情報の自動ローテーション・ポリシーの設定

以下のサンプル・リクエストでは、ユーザー資格情報(username_password)シークレットの自動ローテーション・ポリシーを作成します。 API を呼び出す場合は、ID 変数と IAM トークンを、ご使用の Secrets Manager インスタンス固有の値で置き換えます。

curl -X PATCH
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H 'Content-Type: application/merge-patch+json' \
   -d '{
            "rotation": {
               "auto_rotate": true,
               "interval": 1,
               "unit": "month"
            }
         }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/metadata"

成功すると、シークレットの ID 値が他のメタデータとともに応答で返されます。 必須およびオプションの要求パラメーターについて詳しくは、API リファレンスをチェックしてください。

ポリシーを削除するには、リソース・ブロックを空のままにします。

パブリック証明書の自動ローテーション・ポリシーの設定

証明書が自動的に更新されるようにスケジュールする場合は、証明書の注文時に、または既存の証明書の詳細を編集することで、証明書の自動ローテーションを有効にできます。 証明書の次のローテーション・サイクルでは、Secrets Manager は有効期限日付の 31 日前に証明書を再オーダーします。

自動的に更新されるパブリック証明書のオーダー

以下の要求例では、自動ローテーションを有効にして証明書を注文します。 APIを呼び出す際に、auto_rotateプロパティーをtrueに設定します。 オプションで、ローテーションのたびに証明書の新しいシークレットキーをリクエストすることで、rotate_keystrueに設定できます。

curl -X POST
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -d '{
         "custom_metadata": {
            "metadata_custom_key": "metadata_custom_value"
         },
         "rotation": {
            "auto_rotate": true,
            "rotate_keys": true
         },
         "version_custom_metadata": {
            "custom_version_key": "custom_version_value"
         }
      }' \
   "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

成功すると、証明書の ID 値が他のメタデータとともに応答で返されます。 必須およびオプションの要求パラメーターについて詳しくは、API リファレンスをチェックしてください。

IAM資格情報の自動ローテーションポリシーの設定

以下のリクエスト例では、IAM資格情報(iam_credentials)シークレットの自動ローテーションポリシーを作成します。 API を呼び出す場合は、ID 変数と IAM トークンを、ご使用の Secrets Manager インスタンス固有の値で置き換えます。

curl -X PATCH
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H 'Content-Type: application/merge-patch+json' \
   -d '{
          "rotation": {
            "auto_rotate": true,
            "interval": 30,
            "unit": "day"
          }
         }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/metadata"

ポリシーを削除するには、リソース・ブロックを空のままにします。

成功すると、シークレットの ID 値が他のメタデータとともに応答で返されます。 必須およびオプションの要求パラメーターについて詳しくは、API リファレンスをチェックしてください。

定義されたローテーション間隔は、定義された存続時間より大きくすることはできません。 ローテーションは、「鍵の再使用」が true に設定されている IAM 資格情報に対してのみ使用できます。 minute 時間単位を使用してシークレットの TTL を設定できますが、それらのシークレットのローテーションは使用できません。

サービス資格情報の自動ローテーションポリシーの設定

以下のリクエスト例では、サービス・クレデンシャル(service_credentials)シークレットの自動ローテーション・ポリシーを作成します。 API を呼び出す場合は、ID 変数と IAM トークンを、ご使用の Secrets Manager インスタンス固有の値で置き換えます。

curl -X PATCH
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H 'Content-Type: application/merge-patch+json' \
   -d '{
          "rotation": {
            "auto_rotate": true,
            "interval": 30,
            "unit": "day"
          }
         }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/metadata"

ポリシーを削除するには、リソース・ブロックを空のままにします。

成功すると、シークレットの ID 値が他のメタデータとともに応答で返されます。 必須およびオプションの要求パラメーターについて詳しくは、API リファレンスをチェックしてください。

定義されたローテーション間隔は、定義された存続時間より大きくすることはできません。

カスタム資格情報の自動ローテーションポリシーの設定

以下のリクエスト例では、カスタム資格情報(custom_credentials)秘密の自動ローテーションポリシーを作成します。 API を呼び出す場合は、ID 変数と IAM トークンを、ご使用の Secrets Manager インスタンス固有の値で置き換えます。

curl -X PATCH
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H 'Content-Type: application/merge-patch+json' \
   -d '{
          "rotation": {
            "auto_rotate": true,
            "interval": 30,
            "unit": "day"
          }
         }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/metadata"

ポリシーを削除するには、リソース・ブロックを空のままにします。

成功すると、シークレットの ID 値が他のメタデータとともに応答で返されます。 必須およびオプションの要求パラメーターについて詳しくは、API リファレンスをチェックしてください。

定義されたローテーション間隔は、定義された存続時間より大きくすることはできません。