시크릿 매니저 활용하기

시크릿 매니저 활용하기

LiteLLM은 여러 모델 프로바이더의 API 키 같은 시크릿(비밀값) 을 별도 장소에 보관했다가 필요할 때 읽어 쓰는 걸 돕는 도구예요. 이 장에서는 시크릿 매니저가 왜 필요한지, 그리고 LiteLLM이 어떤 식으로 시크릿을 읽고 쓸 수 있는지를 하나씩 짚어볼게요.

출처: 공식문서

시크릿 매니저란

시크릿 매니저는 API 키 같은 비밀값을 코드나 설정 파일에 평문으로 두지 않고, 별도의 안전한 저장소에 보관해 주는 서비스예요. LiteLLM은 이런 시크릿 매니저에서 시크릿을 읽고(예: OPENAI_API_KEY) 쓸 수도 있어요(예: 가상 키 저장).

지원하는 시크릿 매니저로는 다음과 같은 것들이 있어요:

  • AWS Key Management Service
  • AWS Secret Manager
  • Azure Key Vault
  • CyberArk Conjur
  • Google Secret Manager
  • Google Key Management Service
  • Hashicorp Vault

시크릿 매니저 설정의 핵심 값

시크릿 관리를 위한 설정은 general_settings 아래에 모여요.

  • key_management_system: 사용할 시크릿 매니저를 지정하는 필수 값이에요(예: aws_secret_manager).
  • key_management_settings: 시크릿 매니저 동작을 세밀하게 조정하는 옵션들이 담겨 있어요.
    • store_virtual_keys: true로 두면 가상 키를 시크릿 매니저에 저장해요. 기본값은 false예요.
    • prefix_for_stored_virtual_keys: 시크릿 매니저에 저장되는 가상 키에 붙는 접두사를 지정해요(예: litellm/).
    • access_mode: 접근 방식을 정하는데, read_only, write_only, read_and_write 중 하나를 써요. 기본값은 read_only예요.
    • hosted_keys: 어떤 환경변수 키를 외부 시크릿 매니저에 보관했는지 나열해요(예: litellm_master_key).
    • primary_secret_name: 하나의 JSON 시크릿에서 여러 키를 읽고 싶을 때 그 시크릿 이름을 지정해요.

팀별 시크릿 매니저 설정

팀 단위로 각자 자신만의 키 관리 설정을 가져갈 수도 있어요. 이 설정은 해당 팀에 묶인 가상 키를 만들 때 사용돼요.

  1. 팀 만들기: Teams 페이지에서 Create Team을 눌러 모달을 엽니다.
  2. 고급 설정 펼치기: Additional Settings 토글을 켜 고급 구성 패널을 엽니다.
  3. 시크릿 매니저 구성: Secret Manager Settings 패널에 프로바이더별 JSON을 붙여 넣습니다.
  4. 팀 저장: 입력을 확인하고 Create Team으로 저장하면, LiteLLM이 이후 이 구성을 사용합니다.

지원되는 프로바이더별 키 값은 각 프로바이더 페이지(AWS, Azure, Google, Hashicorp 등)에서 확인할 수 있어요. 지금은 JSON 형식만 지원하지만, 더 편한 UI 편집기는 계획 중이에요.

더 알아보기

  • 시크릿 관리는 Enterprise 기능이므로 라이선스가 필요해요.
  • 어떤 시크릿 매니저를 쓸지에 따라 각 프로바이더 페이지를 참고하세요.
  • 관련해서 마스터 키 회전과 가상 키 문서도 함께 보면 전체 그림이 잡혀요.