IBM Cloud Docs
シークレット・バージョンの管理

シークレット・バージョンの管理

IBM Cloud® Secrets Manager でシークレットをローテーションさせると、その値の新しいバージョンが作成されます。 IBM Cloud® Secrets Manager を使用して、バージョン履歴を表示し、シークレットのバージョン・メタデータを更新することができます。 誤ってシークレットを置換または上書きした場合は、前のバージョンに復元することもできます。

開始前に

開始する前に、必要なレベルのアクセス権限を持っていることを確認してください。 シークレット・バージョンのメタデータを更新したり、シークレットを前のバージョンに復元したりするには、 ライター 以上のサービス役割 が必要です。 シークレットのバージョン履歴を表示するには、 リーダー 以上のサービス役割 が必要です。

シークレットのバージョン・ヒストリーの表示

IBM Cloud® Secrets Manager でシークレットをローテーションさせると、その値の新しいバージョンが作成されます。 UI または API を使用すると、シークレットのバージョン・ヒストリーをすばやく調べることができます。

Secrets Manager は、秘密のメタデータを含め、監査目的で最大50バージョンの秘密を保持する。 ただし、シークレットデータが含まれているのは現在とその直前のバージョンだけで、それ以前のバージョンには含まれていない。

UI でのバージョン・ヒストリーの表示

シークレットのバージョン・ヒストリーを監査している場合は、Secrets Manager UI を使用すると、各ローテーションの一般的な特性を表示できます。

  1. コンソールで、**「メニュー」**アイコン「メニュー」アイコン **>「リソース・リスト」**をクリックします。
  2. サービスのリストから、Secrets Manager のインスタンスを選択します。
  3. Secrets Manager UI で、**「シークレット」**リストに移動します。
  4. 検査するシークレットの行で、**「アクション」**メニュー「アクション」アイコン **>「バージョン履歴」**をクリックします。
  5. オプション: 表示しているシークレットの特定のバージョンのメタデータを更新します。
    1. シークレット・バージョンのメタデータを更新するには、ファイルをアップロードするか、メタデータとバージョン・メタデータを JSON 形式で入力します。
    2. 更新 をクリックします。

CLI からのシークレット・バージョンの一覧表示

シークレットのバージョン・ヒストリーを監査している場合は、Secrets Manager CLI プラグインを使用すると、各ローテーションの一般的な特性を表示できます。

シークレットに関連付けられているすべてのバージョンをリストするには、 ibmcloud secrets-manager secret-versions コマンドを実行します。 SECRET_TYPE のオプションは次のとおりです: arbitrary iam_credentialsimported_certkvprivate_certpublic_certservice_credentialscustom_credentialsusername_password

ibmcloud secrets-manager secret-versions --secret-id SECRET-ID

このコマンドは、現行バージョンと以前のバージョンに関する情報を出力します。 例えば、各バージョンが作成された日付などです。 コマンド・オプションについては、ibmcloud secrets-manager secret-versions を参照してください。

API によるシークレット・バージョンの一覧表示

シークレットのバージョン・ヒストリーを監査している場合は、Secrets Manager API を使用すると、各ローテーションの一般的な特性を表示できます。

次の要求例では、各バージョンのメタデータ・プロパティーが一覧表示されます。 API を呼び出す場合は、ID 変数と IAM トークンを、ご使用の Secrets Manager インスタンス固有の値で置き換えます。 {secret_type} のオプションは次のとおりです: arbitrary iam_credentialsimported_certkvprivate_certpublic_certservice_credentialscustom_credentialsusername_password

curl -X GET
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/versions"

正常な応答では、各シークレット・バージョンに関するメタデータの詳細が返されます。

{
  "versions": [
    {
      "created_at": "2022-06-27T11:58:15Z",
      "created_by": "iam-ServiceId-e4a2f0a4-3c76-4bef-b1f2-fbeae11c0f21",
      "expiration_date": "2023-10-05T11:49:42Z",
      "id": "bc656587-8fda-4d05-9ad8-b1de1ec7e712",
      "payload_available": true,
      "secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
      "secret_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
      "secret_name": "example-imported-certificate",
      "secret_type": "imported_cert",
      "serial_number": "38:eb:01:a3:22:e9:de:55:24:56:9b:14:cb:e2:f3:e3:e2:fb:f5:18",
      "validity": {
        "not_after": "2023-10-05T11:49:42Z",
        "not_before": "2022-06-27T11:58:15Z"
      },
      "version_custom_metadata": {
        "custom_version_key": "custom_version_value"
      }
    }
  ],
  "total_count": 1
}

downloadedプロパティーは、各シークレット・バージョンのデータが既に読み取られたか、アクセスされたかを示します。 payload_available フィールドの値がtrueの場合は、そのバージョンのシークレット・データを復元するにアクセスできることを意味します。 必須およびオプションの要求パラメーターについて詳しくは、API リファレンスをチェックしてください。

version_custom_metadata 要求パラメーターを使用して、組織のニーズに関連するメタデータを保管できます。 あなたの秘密のカスタムメタデータは、他のすべてのメタデータと同様に保存されます。 必須およびオプションのリクエスト・パラメータの詳細については、 APIリファレンスを 参照してください。

UI でのシークレット・バージョン・メタデータの更新

Secrets Manager UI を使用して、シークレットの特定のバージョンのメタデータを更新できます。

シークレットバージョンのメタデータを更新するには、以下の手順を実行する。

  1. コンソールで、**「メニュー」**アイコン「メニュー」アイコン **>「リソース・リスト」**をクリックします。

  2. サービスのリストから、Secrets Manager のインスタンスを選択します。

  3. Secrets Manager UI で、**「シークレット」**リストに移動します。

  4. 検査するシークレットの行で、**「アクション」**メニュー「アクション」アイコン **>「バージョン履歴」**をクリックします。

    シークレットが以前にローテーションしていた場合は、そのページに現在のバージョンと以前のバージョンに関する情報、例えば各バージョンが作成された日付などが表示されます。

  5. ファイルをアップロードするか、メタデータとバージョン・メタデータを JSON 形式で入力します。

  6. 更新 をクリックします。

CLI からのシークレット・バージョン・メタデータの更新

Secrets Manager CLI プラグインを使用して、シークレットの特定のバージョンのメタデータを更新できます。

シークレットのメタデータを更新するには、 ibmcloud secrets-manager secret-metadata-update コマンドを実行します。

以下の例は、 ibmcloud secrets-manager secret-metadata-update コマンドのフォーマットを示しています。

ibmcloud secrets-manager secret-version-metadata-update --secret-id SECRET-ID --id VERSION-ID --version-custom-metadata='{"anyKey": "anyValue"}'

API を使用したシークレット・バージョン・メタデータの更新

シークレット・バージョンのメタデータを更新する場合は、 Secrets Manager API を使用できます。

以下のリクエスト例は、各バージョンのメタデータプロパティを更新する。 API を呼び出す場合は、ID 変数と IAM トークンを、ご使用の Secrets Manager インスタンス固有の値で置き換えます。 {secret_type} のオプションは次のとおりです: arbitrary iam_credentialsimported_certkvprivate_certpublic_certservice_credentialscustom_credentialsusername_password

curl -X PATCH  
  -H "Authorization: Bearer {iam_token}" \
  -H "Accept: application/json" \
  --H "Content-Type: application/merge-patch+json" \
  -d '{ "version_custom_metadata": { "version_special_id" : "someString" } }' \
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/versions/{version_id}/metadata"

正常な応答では、各シークレット・バージョンに関するメタデータの詳細が返されます。

{
  "alias": "current",
  "created_at": "2022-06-27T11:58:15Z",
  "created_by": "iam-ServiceId-e4a2f0a4-3c76-4bef-b1f2-fbeae11c0f21",
  "expiration_date": "2023-10-05T11:49:42Z",
  "id": "bc656587-8fda-4d05-9ad8-b1de1ec7e712",
  "payload_available": true,
  "secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
  "secret_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
  "secret_name": "example-arbitrary-secret",
  "secret_type": "arbitrary",
  "version_custom_metadata": {
    "custom_version_key": "custom_version_value"
  }
}

downloadedプロパティーは、各シークレット・バージョンのデータが既に読み取られたか、アクセスされたかを示します。 payload_available フィールドの値がtrueの場合は、そのバージョンのシークレット・データを復元するにアクセスできることを意味します。

version_custom_metadata 要求パラメーターを使用して、組織のニーズに関連するメタデータを保管できます。 あなたの秘密のカスタムメタデータは、他のすべてのメタデータと同様に保存されます。 必須およびオプションのリクエスト・パラメータの詳細については、 APIリファレンス

以前のバージョンのシークレットへのリストア

既存のシークレットを誤って置き換えたか、上書きされましたか。 IBM Cloud® Secrets Manager を使用すると、以前のバージョンに即時にロールバックできます。

シークレットを以前のバージョンにリストアすると、そのシークレットの新しいバージョンが作成されます。 例えば、シークレットの現在のバージョンが 3 で、バージョン 2 にロールバックすると、バージョン 2 からリストアされたデータはバージョン 4 になります。

1 つのバージョンを サポートされているシークレット・タイプ に復元することができます。 このサービスでは監査目的で各シークレットに最大 50 バージョンのメタデータが保存されますが、シークレットの バージョン・ヒストリーの一部としてレビューできます。

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

IAM 資格情報 については、前のバージョンへのリストアがサポートされています。

UI での以前のバージョンのリストア

Secrets Manager UI を使用すると、以前のバージョンのシークレットをリストアできます。

  1. コンソールで、**「メニュー」**アイコン「メニュー」アイコン **>「リソース・リスト」**をクリックします。

  2. サービスのリストから、Secrets Manager のインスタンスを選択します。

  3. Secrets Manager UI で、**「シークレット」**リストに移動します。

  4. 検査するシークレットの行で、**「アクション」**メニュー「アクション」アイコン **>「バージョン履歴」**をクリックします。

    シークレットが以前にローテーションされていた場合は、そのページに現在のバージョンと以前のバージョンに関する情報が表示されます。

  5. 復元するシークレットのバージョンの横にある**「アクション」**メニュー「アクション」アイコン **>「リストア」**をクリックします。

    現在、IAM 資格情報のシークレット・タイプについては、1 つのバージョンのみを復元できます。 秘密バージョンは、定義されたTTL(time-to-live)またはリース期間に達しなかった場合にのみ復元できる。 使用できるオプションが表示されない場合は、バージョンのリストアはサポートされていません。

CLI からの前のバージョンのリストア

Secrets Manager CLIを使用して、シークレットを以前のバージョンに復元できます。

次のコマンド例は、秘密の前のバージョンを復元する。 コマンドを呼び出すときに、SECRET_ID 変数を、ご使用の Secrets Manager インスタンスに固有の値に置き換えます。

ibmcloud sm secret-version-create --secret-d SECRET_ID --secret-version-restore-from-version "previous"

現在、IAM 認証情報とインポートされた証明書シークレットについては、1 つのバージョンしかリストアできない。 秘密バージョンは、定義されたTTL(time-to-live)またはリース期間に達しなかった場合にのみ復元できる。

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

APIを使用した以前のバージョンの復元

Secrets Manager UI を使用すると、以前のバージョンのシークレットをリストアできます。

以下の要求例では、以前のバージョンのシークレットがリストアされます。 API を呼び出す場合は、ID 変数と IAM トークンを、ご使用の Secrets Manager インスタンス固有の値で置き換えます。 {secret_type} に使用できる値は、 iam_credentials です。

シークレットのバージョンを一覧表示して、各バージョンの ID を取得するには、リスト・バージョン API を使用します。

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

現在、IAM 認証情報とインポートされた証明書シークレットについては、1 つのバージョンしかリストアできない。 秘密バージョンは、定義されたTTL(time-to-live)またはリース期間に達しなかった場合にのみ復元できる。

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