Google Maps Platform 제품은 API 호출을 적절한 사용자 인증 정보를 제공하는 API 호출로 제한하여 무단 사용으로부터 보호합니다. 이러한 사용자 인증 정보는 Google 결제 계정을 프로젝트, 특정 API나 SDK와 연결하는 고유한 영숫자 문자열인 API 키 형태입니다.
이 가이드에서는 Google Maps Platform에서 API 키를 생성, 제한 및 사용하는 방법을 설명합니다.
시작하기 전에
Maps JavaScript API를 사용하려면 결제 계정이 있고 Maps JavaScript API가 사용 설정된 프로젝트가 필요합니다. 자세한 내용은 Cloud 콘솔에서 설정하기를 참고하세요.
API 키 만들기
API 키는 사용 및 결제 목적으로 프로젝트와 관련된 요청을 인증하는 고유 식별자입니다. 프로젝트에 연결된 API 키가 하나 이상 있어야 합니다.
API 키를 만들려면 다음 단계를 따르세요.
콘솔
-
Google Maps Platform > 사용자 인증 정보 페이지로 이동합니다.
-
사용자 인증 정보 페이지에서 사용자 인증 정보 만들기 > API 키를 클릭합니다.
API 키 생성 완료 대화상자에 새로 만든 API 키가 표시됩니다. -
닫기를 클릭합니다.
새 API 키는 사용자 인증 정보 페이지의 API 키 아래 나열됩니다.
(프로덕션에 사용하기 전에 API 키를 제한하세요.)
Cloud SDK
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
Google Cloud SDK, Cloud SDK 설치 및 다음 명령어에 대해 자세히 알아보세요.
API 키 제한
API 키를 애플리케이션에 필요한 API에서만 사용하도록 제한하는 것이 좋습니다. API 키를 제한하면 불필요한 요청으로부터 애플리케이션이 보호되어 애플리케이션의 보안이 강화됩니다. API 보안 권장사항에서 자세한 내용을 확인하세요.
API 키를 제한하는 방법은 다음과 같습니다.
콘솔
-
Google Maps Platform > 사용자 인증 정보 페이지로 이동합니다.
- 제한을 설정할 API 키를 선택합니다. API 키 속성 페이지가 나타납니다.
- 키 제한사항에서 다음 제한사항을 설정합니다.
- 애플리케이션 제한:
- 제공하는 웹사이트의 요청을 수락하려면 애플리케이션 제한사항 목록에서 HTTP 리퍼러(웹사이트)를 선택합니다.
- 리퍼러 웹사이트를 하나 이상 지정합니다. 와일드 카드 문자를 사용하여
모든 하위 도메인에 권한을 부여할 수 있습니다(예를 들어
https://*.google.com
은 HTTPS를 통해 액세스할 때.google.com
으로 끝나는 모든 사이트를 허용함). www.domain.com을 지정하면 와일드 카드 www.domain.com/* 역할을 하며 해당 호스트 이름의 하위 경로를 승인합니다.https://
및http://
리퍼러 스키마를 있는 그대로 지정하세요. 다른 URL 프로토콜의 경우 특별한 표현을 사용해야 합니다. 예를 들어file:///path/to/
형식은__file_url__//path/to/*
형식으로 지정해야 합니다. 웹사이트를 사용 설정한 후에는 사용량을 모니터링하여 예상과 일치하는지 확인해야 합니다. 다음과 같은 프로토콜이 지원됩니다.about://
,app://
,applewebdata://
,asset://
,chrome://
,content://
,file://
,ftp://
,ionic://
,local://
,ms-appx://
,ms-appx-web://
,ms-local-stream://
,prism://
,qrc://
,res://
,saphtmlp://
- API 제한:
- 키 제한을 클릭합니다.
- API 선택 드롭다운에서 Maps JavaScript API를 선택합니다. Maps JavaScript API가 표시되지 않으면 사용 설정해야 합니다.
- 프로젝트에서 장소 라이브러리를 사용하는 경우 Places API도 선택합니다. 마찬가지로 프로젝트에서 JavaScript API의 다른 서비스(Directions Service, Distance Matrix Service, Elevation Service 또는 Geocoding Service)를 사용하는 경우 이 목록에서 해당 API를 사용 설정하고 선택해야 합니다.
- 변경을 완료하려면 저장을 클릭합니다.
Cloud SDK
기존 키를 나열합니다.
gcloud services api-keys list --project="PROJECT"
기존 키에 대한 기존 제한을 삭제합니다.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --clear-restrictions
기존 키에 새로운 제한을 설정합니다.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --api-target="maps-backend.googleapis.com" --allowed-referrers="referer"
Google Cloud SDK, Cloud SDK 설치 및 다음 명령어에 대해 자세히 알아보세요.
요청에 API 키 추가
모든 Maps JavaScript API 요청에 API 키를 포함해야 합니다.
다음 예에서 YOUR_API_KEY
를 API 키로 바꾸세요.
<script> (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({ key: "YOUR_API_KEY", v: "weekly", // Use the 'v' parameter to indicate the version to use (weekly, beta, alpha, etc.). // Add other bootstrap parameters as needed, using camel case. }); </script>