API Key 관리
본 메뉴얼은 사용자가 서비스를 안전하고 효율적으로 이용할 수 있도록 API Key 생성, 중지, 삭제 및 보안 관리에 대한 표준 절차를 안내합니다.
API Key ?
클라우드 시스템이 "우리 서비스를 사용할 자격이 있는 안전한 사용자가 맞구나" 하고 알아볼 수 있도록 인프라 시스템이 발급해 주는 디지털 신분증 입니다.
우리가 웹사이트에 로그인할 때 아이디와 비밀번호를 입력하듯, 클라우드 인프라에 접근할 때는 이 API Key를 제시하고 인증을 받게 됩니다.
API Key 구조
iwinv에서는 보안 강화를 위해 쌍(Pair)으로 이루어진 구조를 사용합니다.
Access Key ID: 신원 확인을 위한 아이디 역할을 합니다.Secret Key ID: 절대 외부에 노출되어서는 안 되는 비밀번호 역할을 합니다.
iwinv에서는 HMAC-SHA256 알고리즘을 활용한 디지털 서명(Signature) 방식을 이용하고 있습니다.
디지털 서명(Signature) 방식
iwinv API는 보안을 위해 Secret Key를 네트워크로 직접 전송하지 않습니다. 요청을 보낼 때마다 호출 데이터와 Secret Key를 조합하고, 재전송 공격(Replay Attack)을 방지하기 위해 [Timestamp] 값을 결합합니다. 이를 HMAC-SHA256 알고리즘으로 암호화하여 일회성 디지털 서명인 Signature를 생성한 후 요청 헤더에 포함해 전송합니다.
인증
https://iwinv-common.readme.io/reference/api-request
API Key 발급
메뉴위치 : Console 로그인 > 계정관리 > 인증관리 > API 인증 키 관리
https://console.iwinv.kr/member/apikey

생성하기
생성하기 버튼을 클릭하면 Access Key와 Secret Key가 생성됩니다.
관리 목적에 따라 중지 삭제 사용 버튼을 활용하여 이용하면 됩니다.

보안설정
Key 자체가 유출되거나 무방비하게 노출되면 클라우드 인프라 전체의 제어권이 위협받을 수 있습니다. 데이터를 안전하게 보호하기 위해 다음에 필수 보안 설정을 반드시 준수하여 시스템을 구축해야 합니다.
1. API 요청 IP 대역 제한
- 해당 Key를 사용할 서버의 공인 IP(또는 NAT 게이트웨이 IP) 또는 접근 사무실 IP 대역(CIDR)을 반드시 지정해야 합니다.
- 허용되지 않은 IP 주소에서 API 호출 시, 올바른 Signature를 전송하더라도 서버는 403 Forbidden (Unauthorized IP) 에러를 반환하고 요청을 차단합니다.
2. 소스코드 하드코딩 방지 및 환경변수 설정
-
하드코딩 절대 금지: 소스코드 파일(.py, .php, .js 등) 내부에 API Key나 Secret Key 문자열을 직접 기입하는 행위를 금지합니다.
-
환경변수 분리: 서버의 OS 환경변수 또는 프로젝트 루트의 .env 파일(버전 관리에서 제외 필수)에 Key를 저장하고, 프로그램 실행 시 메모리에 로드하여 사용합니다.
3. 주기적인 KEY 변경
- 교체 주기: 모든 운영 및 개발용 API Key는 최소 90일(분기별 1회) 주기로 재발급 및 기존 키 폐기를 수행합니다.