시크릿 버전 관리

IBM Cloud® Secrets Manager에서 시크릿을 순환할 때 해당 값의 새 버전을 작성합니다. IBM Cloud® Secrets Manager 을 사용하여 비밀 번호의 버전 기록을 보고 버전 메타데이터를 업데이트할 수 있습니다. 실수로 시크릿을 대체하거나 겹쳐쓰는 경우 이전 버전으로 복원할 수도 있습니다.

시작하기 전에

시작하기 전에 필수 액세스 레벨이 있는지 확인하십시오. 시크릿 버전의 메타데이터를 업데이트하거나 시크릿을 이전 버전으로 복원하려면 Writer 서비스 역할 이상 이 필요합니다. 시크릿의 버전 히스토리를 보려면 독자 서비스 역할 이상 이 필요합니다.

시크릿의 버전 히스토리 보기

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_credentials, imported_cert, kv, private_cert, public_cert, service_credentials, custom_credentials, username_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_credentials, imported_cert, kv, private_cert, public_cert, service_credentials, custom_credentials, username_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_credentials, imported_cert, kv, private_cert, public_cert, service_credentials, custom_credentials, username_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가 됩니다.

지원되는 시크릿 유형 에서 한 버전을 다시 복원할 수 있습니다. 서비스에서는 감사 용도로 시크릿마다 최대 50개 버전의 메타데이터를 보존하여, 시크릿 버전 히스토리의 일부로 검토할 수 있습니다.

지원되는 시크릿 유형

IAM 인증 정보 에 대해 이전 버전으로의 복원이 지원됩니다.

UI에서 이전 버전 복원

Secrets Manager UI를 사용하여 이전 버전으로 시크릿을 복원할 수 있습니다.

  1. 콘솔에서 메뉴 아이콘 메뉴 아이콘 > 리소스 목록을 클릭하십시오.

  2. 서비스 목록에서 Secrets Manager의 인스턴스를 선택하십시오.

  3. Secrets Manager UI에서 시크릿 목록으로 이동하십시오.

  4. 검사할 시크릿의 행에서 조치 메뉴 조치 아이콘 > 버전 히스토리를 클릭하십시오.

    시크릿이 이전에 순환된 경우 페이지는 현재 및 이전 버전에 대한 정보를 표시합니다.

  5. 복원할 시크릿 버전 옆에 있는 조치 메뉴 조치 아이콘 > 복원을 클릭하십시오.

    현재 IAM 인증 정보 시크릿 유형에 대해 하나의 버전만 다시 복원할 수 있습니다. 비밀 버전은 정의된 TTL(타임 투 리브) 또는 임대 기간에 도달하지 않은 경우에만 복원할 수 있습니다. 사용 가능한 옵션이 표시되지 않으면 버전 복원은 지원되지 않습니다.

CLI에서 이전 버전 복원

Secrets Manager CLI를 사용하여 비밀번호를 이전 버전으로 복원할 수 있습니다.

다음 예제 명령은 이전 버전의 비밀을 복원합니다. 명령을 호출할 때 SECRET_ID 변수를 Secrets Manager 인스턴스에 특정한 값으로 대체하십시오.

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

현재 IAM 자격 증명 및 가져온 인증서 비밀에 대해 하나의 버전만 복원할 수 있습니다. 비밀 버전은 정의된 TTL(타임 투 리브) 또는 임대 기간에 도달하지 않은 경우에만 복원할 수 있습니다.

성공적 응답은 다른 메타데이터와 함께 시크릿의 값을 리턴합니다. 필수 및 선택적 요청 매개변수에 대한 자세한 정보는 API 참조를 확인하십시오.

API를 사용하여 이전 버전 복원

Secrets Manager API를 사용하여 이전 버전으로 시크릿을 복원할 수 있습니다.

다음 예제 요청은 이전 버전의 시크릿을 복원합니다. 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 자격 증명 및 가져온 인증서 비밀에 대해 하나의 버전만 복원할 수 있습니다. 비밀 버전은 정의된 TTL(타임 투 리브) 또는 임대 기간에 도달하지 않은 경우에만 복원할 수 있습니다.

성공적 응답은 다른 메타데이터와 함께 시크릿의 값을 리턴합니다. 필수 및 선택적 요청 매개변수에 대한 자세한 정보는 API 참조를 확인하십시오.