자동으로 시크릿 순환
IBM Cloud® Secrets Manager을 사용하여 시크릿에 대한 자동 순환을 스케줄링할 수 있습니다.
서비스 인스턴스에서 시크릿을 순환할 때 해당 값의 새 버전을 작성합니다. 정기적으로 시크릿의 자동 순환을 스케줄링하여 손상 가능성을 줄이고 인증 정보가 만료되지 않게 할 수 있습니다.
자동 순환은 Secrets Manager에서 생성하는 시크릿에만 사용할 수 있습니다. 시크릿을 처음 가져올 때 시크릿이 순환하도록 새 시크릿 데이터를 제공해야 합니다. 자세한 정보는 수동으로 시크릿 순환을 참조하십시오.
시작하기 전에
시작하기 전에 필수 액세스 레벨이 있는지 확인하십시오. 시크릿을 순환하려면 작성자 서비스 역할 이상이 필요합니다.
지원되는 시크릿 유형
개인용 인증서, 공용 인증서, 사용자 인증 정보 및 IAM 인증 정보 에 대해 자동 회전이 지원됩니다. 시크릿의 유형에 따라, 사용자가 설정한 날짜와 시간에 즉시 자동 로테이션이 진행되거나, 시크릿의 새 버전이 생성되기 전에 몇 가지 추가 단계를 거쳐야 할 수도 있습니다.
| 유형 | 순환 설명 |
|---|---|
| 개인 인증서 | 기존 certificate 값이 새 인증서 컨텐츠로 교체됩니다. 갱신된 인증서의 TTL(Time-To-Live)은 인증서가 처음 작성될 때 선택된 인증서 템플리트에 따라 설정됩니다. 비공개 인증서의 TTL(Time-to-Live)
또는 유효 기간이 해당 인증서를 발급한 인증 기관(CA)의 유효 기간을 초과하면, 해당 인증서는 더 이상 자동으로 갱신될 수 없음을 유의하십시오. |
| 공용 인증서 | 공용 인증서는 인증서 갱신 요청이 처리되고 있음을 표시하기 위해 활성, 순환 보류 중 상태로 이동합니다. Secrets Manager는 DNS 유효성 검증을 사용하여 인증서의 일부로 나열된 도메인을 소유하고 있는지 확인합니다. 이 프로세스는 완료 시까지 몇 분이 소요될 수 있습니다. 유효성 검증이 성공적으로 완료되면 새 인증서가 발행되고 해당 상태가 다시 활성으로 변경됩니다. 유효성 검증이 성공적으로 완료되지 않으면 인증서의 상태가 활성, 순환 실패로 변경됩니다. |
| 사용자 인증 정보 | 기존 password 값은 대문자, 소문자, 숫자 및 기호를 포함하는 임의로 생성된 32자 비밀번호로 바뀝니다. username 값은 변경되지 않습니다. |
| IAM 인증 정보 | 서비스 ID의 API키 값이 새 API키로 대체됩니다. 이전 API키는 정의된 TTL에서 나머지 시간 동안 사용 가능한 상태로 유지됩니다. |
| 서비스 인증 정보 | 서비스 자격 증명 비밀번호가 새 비밀번호로 바뀝니다. 이전 비밀은 정의된 TTL의 남은 시간 동안 계속 사용할 수 있습니다. |
| 사용자 정의 자격 증명 | 사용자 지정 자격 증명 비밀 번호가 새 비밀번호로 바뀝니다. 이전 비밀은 정의된 TTL의 남은 시간 동안 계속 사용할 수 있습니다. |
데이터베이스에 대해 작성된 서비스 신임 정보의 경우 신임 정보 외에 작성된 신임 정보에 대한 데이터베이스 권한도 변경하는 경우 서비스 신임 정보가 순환된 후에는 동기화되지 않습니다. 데이터베이스 서비스 신임 정보를 순환할 때 이는 ID 순환으로 간주됩니다.
UI에서 자동 순환 스케줄링
Secrets Manager UI를 사용하여 시크릿의 자동 순환을 스케줄링할 수 있습니다.
사용자 인증 정보의 자동 순환 정책 설정
정기적으로 비밀번호가 자동으로 순환되도록 스케줄하려는 경우 사용자 신임 정보를 작성할 때 사용자 신임 정보에 대해 자동 회전을 사용으로 설정할 수 있습니다. 기존 시크릿의 세부사항을 편집하여 자동 회전을 사용으로 설정할 수도 있습니다.
시크릿의 회전 빈도에 대한 추가 제어가 필요한 경우 day 또는 month 시간 단위를 사용하여 사용자 정의 간격을 설정하는 데 Secrets Manager API를 사용할 수 있습니다. 자세한 정보는 API 참조를 확인하십시오.
- 시크릿을 추가 하는 경우 회전 옵션을 사용으로 설정하십시오.
- 기존 시크릿을 편집하는 경우 해당 세부사항을 업데이트하여 자동 순환을 사용으로 설정하십시오.
- 시크릿 테이블에서 기존 시크릿 목록을 보십시오.
- 편집할 시크릿의 행에서 조치 메뉴
> 세부사항 편집을 클릭하십시오.
- 자동 순환 옵션을 사용하여 시크릿에 대한 자동 순환을 사용 또는 사용하지 않게 설정하십시오.
시크릿의 회전 설정을 업데이트할 때 즉시 회전을 트리거합니다.
공용 인증서에 대한 자동 순환 정책 설정
공개 SSL / TLS 인증서를 자동으로 갱신하도록 예약하려면 주문할 때 인증서 자동 로테이션을 사용 설정하면 됩니다. 기존 인증서의 세부사항을 편집하여 자동 회전을 사용으로 설정할 수도 있습니다. 인증서의 다음 갱신 주기에서, Secrets Manager 은 인증서 만료일 31일 전부터 인증서 재발급을 시도하기 시작합니다. 서비스는 성공할 때까지 매일 인증서 갱신을 계속 시도합니다.
-
공용 인증서를 주문하는 경우 순환 옵션을 사용으로 설정하십시오.
- 인증서를 자동으로 순환하려면 순환 토글을 켜짐으로 전환하십시오. 인증서는 만료되기 31일 전에 자동으로 재정렬됩니다.
- 각 로테이션 시마다 인증서에 대한 새로운 개인 키를 요청하려면, 키 재생성 토글을 ‘On’으로 설정하십시오.
-
기존 공용 인증서를 편집하는 경우 해당 세부사항을 업데이트하여 자동 순환을 스케줄링하십시오.
- 시크릿 표에서 기존 공용 인증서의 목록을 보십시오.
- 편집할 인증서의 행에서 조치 메뉴
> 세부사항 편집을 클릭하십시오.
- 자동 순환 옵션을 사용하여 시크릿의 순환 정책을 추가하거나 제거하십시오.
개인 인증서에 대한 자동 순환 정책 설정
개인 SSL 또는 TLS 인증서가 자동으로 갱신되도록 스케줄하려는 경우, 인증서를 작성할 때 또는 기존 인증서의 세부사항을 편집하여 인증서에 대해 자동 순환을 사용하도록 설정할 수 있습니다. 인증서는 다음을 충족해야 합니다.
-
개인용 인증서를 작성 하는 경우 순환 옵션을 사용으로 설정하십시오.
-
인증서를 자동으로 순환하려면 순환 토글을 켜짐으로 전환하십시오.
-
스케줄된 순환 사이의 일 수를 지정하는 간격 및 단위를 선택하십시오.
개인 인증서와 연관된 인증서 템플리트에 따라 인증서의 순환 간격에 대한 몇 가지 제한사항이 적용될 수 있습니다. 예를 들어, 순환 간격은 템플리트에 정의된 TTL(Time-To-Live)을 초과할 수 없습니다. 자세한 정보는 인증서 템플리트를 참조하십시오.
-
-
기존 개인 인증서를 편집하는 경우, 세부사항을 업데이트하여 자동 순환을 스케줄하십시오.
- 시크릿 테이블에서 기존 개인 인증서 목록을 보십시오.
- 편집할 인증서의 행에서 조치 메뉴
> 세부사항 편집을 클릭하십시오.
- 자동 순환 옵션을 사용하여 시크릿의 순환 정책을 추가하거나 제거하십시오.
IAM 자격 증명에 대한 자동 교체 정책 설정
API키가 정기적으로 자동으로 순환되도록 스케줄하려는 경우 작성 시 IAM 인증 정보에 대한 자동 회전을 사용으로 설정할 수 있습니다. 기존 시크릿의 세부사항을 편집하여 자동 회전을 사용으로 설정할 수도 있습니다. 30일, 60일 또는 90일 순환 간격 중에서 선택하십시오.
시크릿의 회전 빈도에 대한 추가 제어가 필요한 경우 day 또는 month 시간 단위를 사용하여 사용자 정의 간격을 설정하는 데 Secrets Manager API를 사용할 수 있습니다. 자세한 정보는 API 참조를 확인하십시오.
- 시크릿을 추가하는 경우 30, 60 또는 90일 순환 간격을 선택하여 순환 옵션을 사용으로 설정하십시오.
- 기존 시크릿을 편집하는 경우 해당 세부사항을 업데이트하여 자동 순환을 사용으로 설정하십시오.
- 시크릿 테이블에서 기존 시크릿 목록을 보십시오.
- 편집할 시크릿의 행에서 조치 메뉴
> 세부사항 편집을 클릭하십시오.
- 자동 순환 옵션을 사용하여 시크릿에 대한 자동 순환을 사용 또는 사용하지 않게 설정하십시오.
순환은 재사용 키가 true 로 설정된 IAM 인증 정보에만 사용할 수 있습니다. 정의된 회전 간격은 정의된 TTL (Time-to-Live) 보다 높을 수 없습니다. minute 시간 단위를 사용하여 시크릿에 대한 TTL을 설정할 수 있지만 해당 시크릿에 대해 회전을 사용할 수 없습니다.
서비스 자격 증명에 대한 자동 교체 정책 설정
서비스 자격증명 비밀이 일정한 간격으로 자동으로 순환되도록 예약하려면 서비스 자격증명 생성 시 자동 순환을 사용 설정하면 됩니다. 기존 시크릿의 세부사항을 편집하여 자동 회전을 사용으로 설정할 수도 있습니다. 30일, 60일 또는 90일 순환 간격 중에서 선택하십시오.
시크릿의 회전 빈도에 대한 추가 제어가 필요한 경우 day 또는 month 시간 단위를 사용하여 사용자 정의 간격을 설정하는 데 Secrets Manager API를 사용할 수 있습니다. 자세한 정보는 API 참조를 확인하십시오.
- 시크릿을 추가하는 경우 30, 60 또는 90일 순환 간격을 선택하여 순환 옵션을 사용으로 설정하십시오.
- 기존 시크릿을 편집하는 경우 해당 세부사항을 업데이트하여 자동 순환을 사용으로 설정하십시오.
- 시크릿 테이블에서 기존 시크릿 목록을 보십시오.
- 편집할 시크릿의 행에서 조치 메뉴
> 세부사항 편집을 클릭하십시오.
- 자동 순환 옵션을 사용하여 시크릿에 대한 자동 순환을 사용 또는 사용하지 않게 설정하십시오.
사용자 지정 자격 증명에 대한 자동 순환 정책 설정
custom_credentials 비밀번호가 일정한 간격으로 자동 회전되도록 예약하려면 custom_credentials 비밀번호를 만들 때 자동 회전을 사용 설정하면 됩니다. 기존 시크릿의 세부사항을 편집하여 자동 회전을 사용으로 설정할 수도 있습니다. 30일, 60일 또는 90일 순환 간격 중에서 선택하십시오.
시크릿의 회전 빈도에 대한 추가 제어가 필요한 경우 day 또는 month 시간 단위를 사용하여 사용자 정의 간격을 설정하는 데 Secrets Manager API를 사용할 수 있습니다. 자세한 정보는 API 참조를 확인하십시오.
- 시크릿을 추가하는 경우 30, 60 또는 90일 순환 간격을 선택하여 순환 옵션을 사용으로 설정하십시오.
- 기존 시크릿을 편집하는 경우 해당 세부사항을 업데이트하여 자동 순환을 사용으로 설정하십시오.
- 시크릿 테이블에서 기존 시크릿 목록을 보십시오.
- 편집할 시크릿의 행에서 조치 메뉴
> 세부사항 편집을 클릭하십시오.
- 자동 순환 옵션을 사용하여 시크릿에 대한 자동 순환을 사용 또는 사용하지 않게 설정하십시오.
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를 사용하여 자동 순환 스케줄링
Secrets Manager API를 사용하여 시크릿의 자동 순환을 스케줄링할 수 있습니다.
사용자 인증 정보의 자동 순환 정책 설정
다음 예제 요청은 사용자 신임 정보(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_keys을(를) true(으)로 설정하여 각 회전의 인증서에 대한 새로운 개인 키를 요청할 수 있습니다.
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 참조를 확인하십시오.
정의된 회전 간격은 정의된 TTL (Time-to-Live) 보다 높을 수 없습니다. 재사용 키가 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 참조를 확인하십시오.
정의된 회전 간격은 정의된 TTL (Time-to-Live) 보다 높을 수 없습니다.
사용자 지정 자격 증명에 대한 자동 순환 정책 설정
다음 예제 요청은 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 참조를 확인하십시오.
정의된 회전 간격은 정의된 TTL (Time-to-Live) 보다 높을 수 없습니다.
자동 회전 간격 업데이트
시크릿의 자동 교체 주기가 업데이트되면, Secrets Manager 은 현재 시크릿 버전이 다음 예정된 교체 시점까지 유효한 상태로 유지될 것임을 확인합니다.
이 유효성 검사는 TTL 기반의 만료 기간이 설정된 시크릿 유형에 적용됩니다:
현재 버전의 유효 기간이 다음 예정된 교체 시점 이전에 만료될 경우, 비밀이 교체되기 전에 유효 기간이 만료되는 상황을 방지하기 위해 자동 교체 주기 업데이트가 거부됩니다. 검증이 실패하면 Secrets Manager는 Error02009 오류를 반환하며, 이는 현재 시크릿 버전이 다음 예정된 교체 시기 이전에 만료될 것임을 나타냅니다.
예를 들어, 현재 버전의 유효 기간이 3일 남았고 자동 교체 주기를 60일로 설정한 경우, 다음 교체 시점이 되기 전에 버전의 유효 기간이 만료되므로 업데이트가 거부됩니다.
이 경우, 다음 순환이 이루어지기 전에 현재 버전의 유효 기간이 만료되므로 업데이트가 허용되지 않습니다.
자동 회전 간격 업데이트 충돌 해결
이 문제를 해결하려면, 현재 시크릿 버전이 다음 예정된 교체일 이후에도 유효한 상태인지 확인하십시오. 비밀 유형 및 구성에 따라 다음과 같은 작업을 수행할 수 있습니다:
- 시크릿을 회전시켜 만료일이 더 늦은 새 버전을 생성합니다.
- 필요한 경우 시크릿의 TTL을 업데이트하고, 현재 활성화된 버전이 다음 예정된 교체일 이후에도 유효하도록 시크릿을 교체하십시오.
현재 버전의 만료일이 다음 예정된 교체 일자를 지나면, 자동 교체 주기를 성공적으로 업데이트할 수 있습니다.