복구 키 관리
OpenBao의 비상 자격 증명인 복구 키를 저장, 조회, 생성하고 루트 토큰을 발급하는 방법을 설명합니다.
복구 키는 OpenBao의 비상 자격 증명입니다. 기본 JWT 인증 방식을 사용할 수 없게 되었을 때 임시 루트 토큰을 생성하는 데 사용합니다. 복구 키는 시크릿 조회나 네임스페이스 프로비저닝 같은 일반적인 운영 작업에는 사용되지 않습니다. 높은 권한을 가진 자격 증명으로 취급하고 안전하게 보관하세요. 복구 키로는 OpenBao 데이터베이스에 저장된 데이터를 복호화할 수 없습니다. OpenBao의 모든 데이터는 구성된 언실(unseal) 메커니즘, 즉 gitlab-openbao-unseal 쿠버네티스 시크릿에 저장된 정적 키 또는 외부 KMS에 의해 보호됩니다. 언실 메커니즘은 복구 키와 별도로 백업하세요. 이 페이지의 명령을 실행하려면 toolbox pod의 이름이 필요합니다. 확인하려면 다음을 실행하세요: kubectl get pods -n gitlab -lapp=toolbox 이후 명령에서 <toolbox-pod-name> 자리에 해당 pod 이름을 사용하세요. 복구 키 저장 # 인시던트 발생 전, 초기 설정 단계에서 이 명령을 한 번 실행하세요: kubectl exec -n gitlab -it -c toolbox <toolbox-pod-name> -- \ gitlab-rake "gitlab:secrets_management:openbao:recovery_key:store" 이 명령은 OpenBao에서 복구 키를 생성하고 GitLab 데이터베이스에 암호화하여 저장합니다. 복구 키는 한 번만 생성할 수 있습니다. recovery_key:store 를 두 번 실행하거나 recovery_key:fetch 를 실행한 후에는 다시 실행할 수 없습니다. 이 명령을 실행하기 전까지, OpenBao는 pod를 재시작할 때마다 다음 경고를 로그에 기록합니다: [WARN] core: post-unseal upgrade seal keys failed: error="no recovery key found" . 키를 저장하면 경고가 사라집니다. 저장된 복구 키 조회 # GitLab 데이터베이스에서 복구 키를 가져와 확인하려면 다음을 실행하세요: kubectl exec -n gitlab -it -c toolbox <toolbox-pod-name> -- \ gitlab-rake "gitlab:secrets_management:openbao:recovery_key:show" 이 명령은 키를 평문으로 표시하기 전에 확인을 요청합니다. 출력 결과를 안전하게 보관하세요. 로그에 기록하거나 보안 채널 외부에서 공유하지 마세요. 복구 키를 저장하지 않고 가져오기 # recovery_key:fetch 를 사용하면 복구 키를 생성하여 GitLab 데이터베이스에 저장하지 않고 터미널에 표시합니다. 비밀번호 관리자나 하드웨어 보안 모듈 같은 외부 시스템에 키를 저장할 때 이 작업을 사용하세요. 복구 키는 한 번만 생성할 수 있습니다. recovery_key:fetch 를 두 번 실행하거나 recovery_key:store 를 실행한 후에는 다시 실행