OpenAI

API 키 안전을 위한 모범 사례

마지막 수정: 7 hours ago

1. 계정에서 팀 멤버마다 항상 고유한 API 키를 사용하세요.

API 키는 API 요청을 식별하는 고유한 코드입니다. API 키는 사용자 본인이 사용해야 하며, API 키를 공유하는 것은 이용약관에 위배됩니다.

실험을 시작하면서 팀에 API 액세스 권한을 확장하고 싶으실 수 있습니다. 하지만 OpenAI는 API 키 공유를 지원하지 않습니다. 멤버 페이지에서 새 멤버를 계정에 초대하세요. 그러면 초대 받은 멤버는 로그인 시 고유한 를 빠르게 받을 수 있습니다. 개별 API 키에 권한을 할당할 수도 있습니다.

2. 브라우저나 모바일 앱 등 클라이언트 측 환경에서 키를 배포하지 마세요.

브라우저나 모바일 앱과 같은 클라이언트 측 환경에서 OpenAI API 키를 노출하면 악의적인 사용자가 해당 키를 가져가 사용자를 대신하여 요청을 수행할 수 있습니다. 이로 인해 예상치 못한 요금이 부과되거나 특정 계정 데이터가 손상될 수 있습니다. 요청은 항상 API 키를 안전하게 보관할 수 있는 자체 백엔드 서버를 통해 라우팅해야 합니다.

3. 키를 리포지토리에 커밋하지 마세요.

API 키를 소스 코드에 커밋하는 것은 자격 증명이 유출되는 일반적인 경로입니다. 공개 리포지토리를 사용하는 경우, 인터넷에 키를 무의식적으로 공유하게 될 가능성이 높습니다. 비공개 리포지토리는 더 안전하지만 데이터 침해가 발생하면 키가 유출될 수 있습니다. 이러한 이유로 환경 변수를 적극적인 키 안전 조치로 사용하기를 강력히 권장합니다.

4. API 키 대신 환경 변수를 사용하세요.

환경 변수는 애플리케이션이 아닌 운영 체제에서 설정되는 변수입니다. 이 변수는 이름과 값으로 구성되며, 이름은 OPENAI_API_KEY로 설정하는 것이 좋습니다. 이 변수 이름을 팀 전체에서 일관되게 유지하면 API 키가 노출될 위험 없이 코드를 커밋하고 공유할 수 있습니다.

Windows 설정

옵션 1: cmd 프롬프트를 통해 ‘OPENAI_API_KEY’ 환경 변수 설정하기

다음 명령을 cmd 프롬프트에서 실행한 후 <yourkey>를 API 키로 바꿉니다.

setx OPENAI_API_KEY "<yourkey>"

이렇게 하면 향후 cmd 프롬프트 창에 적용되므로 cURL을 통해 해당 변수를 사용하려면 새 창을 열어야 합니다. 새 cmd 프롬프트 창을 열고 입력을 시작하면 이 변수가 설정되었는지 확인할 수 있습니다.

echo %OPENAI_API_KEY%

옵션 2: 제어판을 통해 ‘OPENAI_API_KEY’ 환경 변수 설정하기

1. 시스템 속성을 열고 고급 시스템 설정을 선택합니다.

Windows 10 System settings with Advanced system settings highlighted in Control Panel

2. 환경 변수...를 선택합니다.

Windows System Properties Advanced tab with Environment Variables button highlighted

3. 사용자 변수 섹션(상단)에서 새로 만들기… 를 선택합니다. 이름/키 값 쌍을 추가하여 <yourkey>를 API 키로 바꿉니다.

변수 이름: OPENAI_API_KEY
변수 값: <yourkey>

Linux/MacOS 설정

옵션 1: zsh를 사용하여 ‘OPENAI_API_KEY’ 환경 변수 설정하기

1. 터미널에서 다음 명령을 실행한 후 yourkey를 API 키로 바꿉니다.

echo "export OPENAI_API_KEY='yourkey'" >> ~/.zshrc

2. 새 변수로 셸을 업데이트합니다.

source ~/.zshrc

3. 다음 명령어를 사용하여 환경 변수를 설정했는지 확인합니다.

echo $OPENAI_API_KEY

API 키의 값이 결과로 출력이 됩니다.

옵션 2: bash를 사용하여 ‘OPENAI_API_KEY’ 환경 변수 설정하기

옵션 1의 지침에 따라 .zshrc.bash_profile로 바꿉니다.

모든 준비가 완료되었습니다! 이제 cURL에서 키를 참조하거나 Python에서 로딩할 수 있습니다.

import os
import openai

openai.api_key = os.environ["OPENAI_API_KEY"]

5. 키 관리 서비스를 사용합니다.

비밀 API 키를 안전하게 관리할 수 있는 다양한 제품이 있습니다. 이러한 도구는 키에 대한 액세스를 제어하고 전반적인 데이터 보안을 향상시킵니다. 애플리케이션에 데이터 침해가 발생하더라도 해당 키는 완전히 독립된 별도의 위치에서 암호화되어 관리되므로 손상되지 않습니다.

애플리케이션을 프로덕션에 배포하는 팀은 이러한 서비스 중 하나를 사용해 보시기를 권장합니다.

6. 계정 사용량을 모니터링하고 필요할 때 키를 바꿉니다.

손상된 API 키를 통해 다른 사람이 사용자의 동의 없이 해당 계정 할당량에 액세스할 수 있습니다. 이로 인해 데이터 손실, 예상치 못한 요금 부과, 월 할당량 소진, API 액세스 중단이 발생할 수 있습니다.

팀의 사용량은 사용량 페이지에서 추적할 수 있습니다. 오용이 우려되는 경우 계정을 보호하기 위해 취할 수 있는 몇 가지 조치가 있습니다.

  • 사용량을 검토하여 팀의 업무와 일치하는지 확인합니다. 여러 조직에 속한 사용자의 경우(예: 기업 및 개인 사용자) 해당 사용자가 추적 기능을 활성화했고 기본 조직의 사용량 및 추적을 설정했는지 확인하세요.

  • 키가 유출되었다고 생각되면 API 키 페이지에서 즉시 키를 바꾸세요. 프로덕션 환경에서 애플리케이션을 사용하는 고객은 키 값을 적절히 업데이트해야 합니다.

  • 추가적인 조사가 필요하면 help.openai.com을 통해 문의하세요.

7. IP 허용 목록을 사용해 API 액세스를 제한합니다.

IP 허용 목록을 사용하면 OpenAI API에 액세스할 수 있는 IP 주소를 제한할 수 있습니다. 이를 활성화하면 구성된 IP 주소 또는 IP 범위에서 들어오는 요청만 허용되며, 그 외 모든 요청은 유효한 API 키가 포함되어 있더라도 거부됩니다.

이 기능은 백엔드 서버나 클라우드 환경처럼 신뢰할 수 있는 인프라에서만 API에 액세스할 수 있도록 하여 보호 계층을 추가합니다.

자세한 내용은 OpenAI API의 IP 허용 목록 문서를 참조하세요.

이 문서가 도움이 되었나요?