비밀 회전 및 잠금을 위한 모범 사례

IBM Cloud® Secrets Manager 를 사용하면 비밀 정보와 민감한 데이터를 순환적으로 관리하기 위한 전략을 수립할 수 있습니다. 시크릿 관리에 대한 우수 사례를 구현하기 위해 다음 제안된 가이드라인을 검토합니다.

로테이션 전략 정의

Secrets Manager를 사용하여 비밀 관리 전략을 설계할 때 조직의 내부 가이드라인에 따라 얼마나 자주 비밀을 교체할지 고려하세요. 애플리케이션 중단을 방지하기 위해 비밀을 회전하는 데 액세스 권한이 필요한 사용자 또는 서비스 ID와 이러한 비밀을 수동으로 회전하는 방법을 미리 결정하세요.

  1. 비밀의 회전 주기를 결정하세요.

    Secrets Manager에 비밀번호를 저장한 후에는 비밀번호의 순환 주기를 결정합니다. 인력 이직, 프로세스 오류 또는 조직의 내부 지침에 따라 비밀 정보를 주기적으로 변경해야 할 수도 있습니다. 예를 들어 90일마다 정기적으로 비밀을 교체하여 비밀 관리 모범 사례를 충족하세요.

  2. Secrets Manager에서 관리하는 각 유형의 비밀에 대한 로테이션 워크플로우를 테스트해 보세요.

    Secrets Manager가 비밀 회전 요청을 평가하는 방식은 비밀의 유형에 따라 달라집니다. 예를 들어, 일부 비밀은 로테이션 시 제공하는 데이터로 즉시 대체되는 반면, 공인 인증서와 같은 다른 비밀은 추가 유효성 검사 단계로 이동합니다. Secrets Manager가 회전 요청을 처리하는 방법에 대한 자세한 내용은 비밀번호 수동 회전 을 참조하세요.

  3. 애플리케이션에 최신 비밀 버전을 배포하는 자동화를 생성하세요.

    자동화된 흐름을 사용하여 시크릿이 회전된 후 최신 버전의 시크릿을 가져와 배포하세요. 자세한 내용은 비밀번호를 잠가 애플리케이션 중단을 방지하세요 를 참조하세요.

만료 예정인 시크릿에 대한 알림 설정

Event Notifications 서비스에 연결하여 비밀 또는 인증서가 만료될 때 미리 알려줄 수 있도록 Secrets Manager에 연결하세요.

  1. 이벤트 알림을 사용 설정하여 인스턴스에 대한 알림을 설정하세요. 인스턴스를 Event Notifications 서비스에 연결하려면 Secrets Manager UI > 설정 > Event Notifications 으로 이동합니다.
  2. Event Notifications에서 주제 및 구독을 만들어 알림을 전달하여 Slack 또는 이메일 등의 선택한 대상 으로 전달할 수 있도록 합니다.

알림 설정이 제대로 작동하는지 확인하려면, IBM Cloud Logs 인스턴스에서 알림을 생성하여 Event Notifications 와 Secrets Manager 간의 연동에 문제가 발생한 경우 알림이 전송되도록 하십시오. 또한 Secrets Manager 은 전송된 이벤트 알림을 기록합니다INFO 또는 ERROR 로그 중 하나로 기록합니다.

비밀 자동 회전 사용

자동 로테이션을 활성화하여 인스턴스에서 비밀을 로테이션하는 프로세스를 간소화하세요.

  1. 자동 로테이션을 사용하여 비밀이 활성 상태로 유지되는 기간을 제한할 수 있습니다.

    일정한 간격으로 비밀 번호의 자동 교체를 예약하면 자격 증명이 유출될 가능성을 줄일 수 있습니다. 지정한 회전 간격에 따라 비밀번호를 회전할 때가 되면 Secrets Manager가 자동으로 새 버전의 비밀번호를 만듭니다. 자세한 내용은 비밀 자동 회전하기 를 참조하세요.

  2. 비밀이 만료되도록 설정하기 전에 자동 로테이션을 예약하세요.

    애플리케이션이 중단되지 않도록 하려면 자동 회전과 만료일 사이의 최소 간격을 30일로 설정하는 것이 좋습니다.

비밀번호를 잠가 애플리케이션 중단을 방지하세요

잠금을 사용하여 주기적인 비밀 순환을 계획하세요. 자동화된 워크플로우의 일부로 비밀에 대한 잠금을 만들고 제거하는 경우, 최신 버전이 애플리케이션에 완전히 배포된 후에만 안전하게 비밀을 삭제할 수 있습니다.

  1. 비밀을 사용하는 애플리케이션이나 서비스를 나타내는 비밀에 잠금을 설정합니다. Secrets Manager UI에서 잠금을 만들려면 비밀 페이지로 이동하여 작업 메뉴 작업 아이콘 > 잠금를 클릭합니다.

    잠금은 비밀과 비밀을 사용하는 클라이언트 또는 애플리케이션 사이에 생성할 수 있는 일종의 매핑이라고 생각할 수 있습니다. 비밀에 잠금이 설정되어 있으면 현재 애플리케이션에서 사용 중이므로 수정해서는 안 된다는 뜻입니다.

    비밀번호가 걸린 파일은 관련된 모든 잠금이 해제된 후에만 잠금을 해제하거나 삭제 또는 수정할 수 있습니다.

  2. 애플리케이션이 최신 비밀 버전을 가져온 후에만 인스턴스에서 오래되거나 만료된 비밀을 안전하게 삭제할 수 있는 자동화된 흐름을 구축하세요. 예를 들어, 다음 시나리오를 고려하십시오.

    89일 후에 만료되고 90일 후에 자동으로 교체되도록 예약된 비밀을 만듭니다.

    비밀 잠금을 위한 자동화된 워크플로 예시.
    조치 설명
    1 Secrets Manager에서 시크릿을 가져오는 파이프라인을 실행하고 애플리케이션에서 사용할 수 있도록 Kubernetes 클러스터에 배포하세요.
    2 현재 버전의 비밀에 잠금을 생성합니다(비밀을 사용하는 각 애플리케이션 또는 서비스에 대해 하나의 잠금을 생성합니다).
    3 90일이 지나면 Event Notifications로부터 비밀이 로테이션되었다는 알림을 받습니다. 알림에 대한 응답으로 파이프라인을 실행하여 최신 비밀 버전을 가져와 클러스터에 배포합니다.
    4 다른 파이프라인을 실행하여 1) 클러스터의 서비스 파드에서 새 시크릿 버전이 선택되었는지 확인하고, 2) Secrets Manager에서 이전 버전의 시크릿에 대한 잠금을 모두 제거합니다.
    5 이틀이 지나면 이전 버전의 비밀이 만료되고 인스턴스에서 안전하게 삭제됩니다. 다음 주기적 순환 주기는 2~4단계를 반복합니다.