API 키를 사용하여 인증

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

이 페이지에서는 API 키를 사용하여 Google Cloud API 및 서비스를 인증하는 방법을 설명합니다.

API 키를 사용하여 Google Maps Platform을 인증하는 방법은 Google Maps Platform 문서를 참조하세요.

API 키 API에 대한 자세한 내용은 API 키 API 문서를 참조하세요.

API 키 소개

API 키에는 키 관리 및 사용을 위해 사용되는 다음과 같은 구성요소가 포함되어 있습니다.

문자열
API 키 문자열은 AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe와 같은 암호화된 문자열입니다. API 키를 사용하여 인증할 때는 항상 키 문자열을 사용합니다. API 키에는 연결된 JSON 파일이 포함되지 않습니다.
ID
API 키 ID는 Google Cloud 관리 도구에서 키를 고유하게 식별하기 위해 사용됩니다. 키 ID는 인증에 사용될 수 없습니다. 키 ID는 프로젝트의 키 나열을 위해 Google Cloud Console 또는 Google Cloud CLI를 사용하여 키 수정 페이지 URL에서 찾을 수 있습니다.
표시 이름
표시 이름은 키를 만들거나 업데이트할 때 설정할 수 있는 키에 대한 선택적인 설명 이름입니다.

API 키를 사용하여 API를 인증할 때 API 키는 주 구성원을 식별하거나 승인 정보를 제공하지 않습니다. API 키는 청구 및 할당 목적으로 요청을 Google Cloud 프로젝트와 연결합니다. API 키가 호출자를 식별하지 않기 때문에 일반적으로 공개 데이터 또는 리소스에 액세스하는 데 사용됩니다.

많은 Google Cloud API가 인증용으로 API 키를 수락하지 않습니다. API 키 지원 여부를 확인하기 위해 사용하려는 서비스 또는 API에 대해 인증 문서를 검토하세요.

API 키를 관리하려면 프로젝트에 대해 API 키 관리자 역할(roles/serviceusage.apiKeysAdmin)이 있어야 합니다.

API 키 만들기

API 키를 만들려면 다음 옵션 중 하나를 사용합니다.

Console

  1. Google Cloud Console에서 사용자 인증 정보 페이지로 이동합니다.

    사용자 인증 정보로 이동

  2. 사용자 인증 정보 만들기를 클릭한 후 드롭다운 메뉴에서 API 키를 선택합니다.

    API 키 생성 완료 대화상자에 새로 생성된 키의 문자열이 표시됩니다.

gcloud

gcloud alpha services api-keys create 명령어를 사용하여 API 키를 만듭니다.

DISPLAY_NAME을 키의 설명 이름으로 바꿉니다.

gcloud alpha services api-keys create --display-name=DISPLAY_NAME

REST

keys.create 메서드를 사용하여 API 키를 만듭니다. 이 요청은 장기 실행 작업을 반환합니다. 새 키에 대한 정보를 가져오려면 작업을 폴링해야 합니다.

다음 값을 바꿉니다.

  • DISPLAY_NAME: 선택사항. 키에 대한 설명 이름입니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID 또는 이름입니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d {'"displayName" : "DISPLAY_NAME"'} \
"https://apikeys.googleapis.com/v2/projects/PROJECT/locations/global/keys"

REST API를 사용하여 API 키 만들기에 대한 자세한 내용은 API 키 API 문서에서 API 키 만들기를 참조하세요.

키 문자열을 복사하여 안전하게 보호해야 합니다. 테스트 키를 사용 중이고 나중에 이를 삭제하려는 경우가 아니면 애플리케이션 및 API 키 제한사항을 추가하세요.

API 키 사용

REST 요청 및 이를 지원하는 클라이언트 라이브러리에 API 키를 사용할 수 있습니다.

REST에 API 키 사용

다음 형식에 따라 API 키를 REST API 호출에 쿼리 매개변수로 전달할 수 있습니다. API_KEY를 API 키의 키 문자열로 바꿉니다.

예를 들어 documents.analyzeEntities Cloud Natural Language API 요청에 API 키를 전달하려면 다음 명령어를 입력합니다.

POST https://language.googleapis.com/v1/documents:analyzeEntities?key=API_KEY

또는 x-goog-api-key 헤더를 사용하여 키를 전달할 수 있습니다. 이 헤더는 gRPC 요청에 사용해야 합니다.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "X-goog-api-key: API_KEY" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://translation.googleapis.com/language/translate/v2"

클라이언트 라이브러리에 API 키 사용

서비스의 API가 API 키를 지원할 때 이 서비스의 클라이언트 라이브러리는 일반적으로 API 키를 지원합니다. 클라이언트 라이브러리 문서에서 클라이언트 만들기 메서드에 API 키가 수락되는지 확인합니다.

API 키 보호

애플리케이션에서 API 키를 사용하는 경우 저장 및 전송 중에 안전하게 보호되도록 해야 합니다. API 키를 공개적으로 노출하면 계정에 예상치 않은 비용이 부과될 수 있습니다. API 키를 안전하게 보호하기 위해서는 다음 권장사항을 따르세요.

  • API 키 제한사항을 키에 추가합니다.

    제한사항을 추가하면 API 키 사용 방법을 제한하여 손상된 API 키로 인한 영향을 줄일 수 있습니다.

  • 공격에 노출되는 것을 최소화하기 위해 불필요한 API 키는 삭제합니다.

  • API 키를 주기적으로 다시 만듭니다.

    새 API 키를 주기적으로 만들고, 이전 키를 삭제하고, 새 API 키를 사용하도록 애플리케이션을 업데이트해야 합니다.

API 키 제한사항 적용

API 키는 기본적으로 무제한 상태입니다. 무제한 키는 어디서나 사용할 수 있으므로 안전하지 않습니다. 프로덕션 애플리케이션의 경우 애플리케이션 제한사항API 제한사항을 모두 설정해야 합니다.

애플리케이션 제한사항 추가

애플리케이션 제한사항은 API 키를 사용할 수 있는 웹사이트, IP 주소 또는 앱을 지정합니다.

애플리케이션 제한사항 유형은 한 번에 하나만 적용할 수 있습니다. 애플리케이션 유형을 기반으로 제한사항 유형을 선택합니다.

옵션 애플리케이션 유형 참고
HTTP 리퍼러 웹 애플리케이션 키를 사용할 수 있는 웹사이트를 지정합니다.
IP 주소 특정 서버에서 호출되는 애플리케이션 키를 사용할 수 있는 서버 또는 크론 작업을 지정합니다.
Android 앱 Android 애플리케이션 키를 사용할 수 있는 Android 애플리케이션을 지정합니다.
iOS 앱 iOS 애플리케이션 키를 사용할 수 있는 iOS 번들을 지정합니다.

HTTP 리퍼러

API 키를 사용할 수 있는 웹사이트를 제한하려면 하나 이상의 HTTP 리퍼러 제한사항을 추가합니다.

하위 도메인 또는 경로를 와일드 카드 문자(*)로 대체할 수 있지만 URL 중간에 와일드 카드 문자를 삽입할 수는 없습니다. 예를 들어 *.google.com은 유효하고 .google.com으로 끝나는 모든 사이트를 허용합니다. 그러나 mysubdomain*.google.com은 유효한 제한사항이 아닙니다.

HTTP 리퍼러 제한사항에 포트 번호를 포함할 수 있습니다. 포트 번호를 포함하면 해당 포트를 사용하는 요청만 일치합니다. 포트 번호를 지정하지 않으면 모든 포트 번호의 요청이 일치합니다.

API 키에는 최대 1,200개까지 HTTP 리퍼러를 추가할 수 있습니다.

다음 표에서는 일부 예시 시나리오 및 브라우저 제한사항을 보여줍니다.

시나리오 제한사항
특정 URL을 허용합니다. 정확한 경로를 가진 URL을 추가합니다. 예를 들면 다음과 같습니다.
www.example.com/path
www.example.com/path/path
사이트의 모든 URL 허용 `allowedReferers` 목록에 2개의 URL을 설정해야 합니다.
  1. 하위 도메인이 없고 경로에 와일드 카드가 사용된 도메인의 URL입니다. 예를 들면 다음과 같습니다.
    example.com/*
  2. 하위 도메인에 대한 와일드 카드 및 경로에 대한 와일드 카드가 포함된 두 번째 URL입니다. 예를 들면 다음과 같습니다.
    *.example.com/*
단일 하위 도메인 또는 네이키드 도메인의 모든 URL을 허용합니다.

전체 도메인을 허용하도록 `allowedReferers` 목록에 2개의 URL을 설정해야 합니다.

  1. 후행 슬래시가 없는 도메인의 URL입니다. 예를 들면 다음과 같습니다.
    www.example.com
    sub.example.com
    example.com
  2. 경로에 대한 와일드 카드가 포함된 도메인의 두 번째 URL입니다. 예를 들면 다음과 같습니다.
    www.example.com/*
    sub.example.com/*
    example.com/*

특정 웹사이트로 API 키를 제한하려면 다음 옵션 중 하나를 사용합니다.

Console

  1. Google Cloud Console에서 사용자 인증 정보 페이지로 이동합니다.

    사용자 인증 정보로 이동

  2. 제한하려는 API 키의 이름을 클릭합니다.

  3. 애플리케이션 제한사항에서 HTTP 리퍼러를 선택합니다.

  4. 추가할 각 제한사항에 대해 항목 추가를 클릭하고 제한사항을 입력하고, 완료를 클릭합니다.

  5. 저장을 클릭하여 변경사항을 저장하고 API 키 목록으로 돌아갑니다.

gcloud

  1. 제한하려는 키의 ID를 가져옵니다.

    ID는 표시 이름 또는 키 문자열과 같지 않습니다. gcloud services api-keys list 명령어를 사용하여 프로젝트의 키를 나열해서 ID를 가져올 수 있습니다.

  2. gcloud alpha services api-keys update 명령어를 사용하여 API 키에 HTTP 리퍼러 제한사항을 추가합니다.

    다음 값을 바꿉니다.

    • KEY_ID: 제한하려는 키의 ID입니다.
    • ALLOWED_REFERRER_1: HTTP 리퍼러 제한사항입니다.

      필요한 수만큼 제한사항을 추가할 수 있습니다. 쉼표를 사용해서 제한사항을 구분합니다. 업데이트 명령어로 모든 리퍼러 제한사항을 제공해야 합니다. 제공된 리퍼러 제한사항은 키에서 기존 리퍼러 제한사항을 바꿉니다.

    gcloud alpha services api-keys update KEY_ID \
     --allowed-referrers="ALLOWED_REFERRER_1"
    

REST

  1. 제한하려는 키의 ID를 가져옵니다.

    ID는 표시 이름 또는 키 문자열과 같지 않습니다. keys.list 메서드를 사용하여 ID를 가져올 수 있습니다. ID는 응답의 uid 필드에 나열됩니다.

    PROJECT_ID를 Google Cloud 프로젝트 ID 또는 이름으로 바꿉니다.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
    
  2. keys.patch 메서드를 사용하여 HTTP 리퍼러 제한을 API 키에 추가합니다.

    이 요청은 장기 실행 작업을 반환합니다. 작업이 완료되는 시간을 확인하고 작업 상태를 가져오려면 작업을 폴링해야 합니다.

    다음 값을 바꿉니다.

    • ALLOWED_REFERRER_1: HTTP 리퍼러 제한사항입니다.

      필요한 수만큼 제한사항을 추가할 수 있습니다. 쉼표를 사용해서 제한사항을 구분합니다. 요청에 모든 리퍼러 제한사항을 제공해야 합니다. 제공된 리퍼러 제한사항은 키에서 기존 리퍼러 제한사항을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트 ID 또는 이름입니다.

    • KEY_ID: 제한하려는 키의 ID입니다.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data '{
    "restrictions" : {
    "browserKeyRestrictions": {
      "allowedReferrers": ["ALLOWED_REFERRER_1"]
    }
    }
    }' \
    "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
    

REST API를 사용하여 키에 HTTP 리퍼러 제한사항을 추가하는 방법은 API 키 API 문서에서 브라우저 제한사항 추가를 참조하세요.

IP 주소

API 키 사용이 허용된 웹 서버 또는 크론 작업과 같이 호출자에 대해 하나 이상의 IP 주소를 지정할 수 있습니다. 다음 형식으로 IP 주소를 지정할 수 있습니다.

  • IPv4(198.51.100.1)
  • IPv6(2001:db8::1)
  • CIDR 표기법을 사용하는 서브넷(198.51.100.0/24, 2001:db8::/64)

서버 제한사항에는 localhost 사용이 지원되지 않습니다. 외부 IP 주소를 지정해야 합니다.

특정 IP 주소로 API 키를 제한하려면 다음 옵션 중 하나를 사용합니다.

Console

  1. Google Cloud Console에서 사용자 인증 정보 페이지로 이동합니다.

    사용자 인증 정보로 이동

  2. 제한하려는 API 키의 이름을 클릭합니다.

  3. 애플리케이션 제한사항에서 IP 주소를 선택합니다.

  4. 추가하려는 각 IP 주소에 대해 항목 추가를 클릭하고 주소를 입력하고 완료를 클릭합니다.

  5. 저장을 클릭하여 변경사항을 저장하고 API 키 목록으로 돌아갑니다.

gcloud

  1. 제한하려는 키의 ID를 가져옵니다.

    ID는 표시 이름 또는 키 문자열과 같지 않습니다. gcloud services api-keys list 명령어를 사용하여 프로젝트의 키를 나열해서 ID를 가져올 수 있습니다.

  2. gcloud alpha services api-keys update 명령어를 사용하여 API 키에 서버(IP 주소) 제한사항을 추가합니다.

    다음 값을 바꿉니다.

    • KEY_ID: 제한하려는 키의 ID입니다.
    • ALLOWED_IP_ADDR_1: 허용되는 IP 주소입니다.

      필요한 수만큼 IP 주소를 추가할 수 있습니다. 쉼표를 사용하여 주소를 구분합니다.

    gcloud alpha services api-keys update KEY_ID \
    --allowed-ips="ALLOWED_IP_ADDR_1"
    

REST

  1. 제한하려는 키의 ID를 가져옵니다.

    ID는 표시 이름 또는 키 문자열과 같지 않습니다. keys.list 메서드를 사용하여 ID를 가져올 수 있습니다. ID는 응답의 uid 필드에 나열됩니다.

    PROJECT_ID를 Google Cloud 프로젝트 ID 또는 이름으로 바꿉니다.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
    
  2. keys.patch 메서드를 사용하여 API 키에 서버(IP 주소) 제한사항을 추가합니다.

    이 요청은 장기 실행 작업을 반환합니다. 작업이 완료되는 시간을 확인하고 작업 상태를 가져오려면 작업을 폴링해야 합니다.

    다음 값을 바꿉니다.

    • ALLOWED_IP_ADDR_1: 허용되는 IP 주소입니다.

      필요한 수만큼 IP 주소를 추가할 수 있습니다. 쉼표를 사용하여 제한사항을 구분합니다. 요청에 모든 IP 주소를 제공해야 합니다. 제공된 리퍼러 제한사항은 키에서 기존 IP 주소 제한사항을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트 ID 또는 이름입니다.

    • KEY_ID: 제한하려는 키의 ID입니다.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data '{
    "restrictions" : {
      "serverKeyRestrictions": {
        "allowedIps": ["ALLOWED_IP_ADDR_1"]
      }
    }
    }' \
    "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
    

REST API를 사용하여 키에 IP 주소를 추가하는 방법은 API 키 API 문서에서 서버 제한사항 추가를 참조하세요.

Android 앱

API 키 사용을 특정 Android 앱으로 제한할 수 있습니다. 각 앱에 대해 패키지 이름과 20바이트 SHA-1 인증서 지문을 제공해야 합니다.

API 키를 하나 이상의 Android 앱으로 제한하려면 다음 옵션 중 하나를 사용합니다.

Console

  1. Google Cloud Console에서 사용자 인증 정보 페이지로 이동합니다.

    사용자 인증 정보로 이동

  2. 제한하려는 API 키의 이름을 클릭합니다.

  3. 애플리케이션 제한사항에서 Android 앱을 선택합니다.

  4. 추가하려는 각 Android 앱에 대해 항목 추가를 클릭하고 패키지 이름과 SHA-1 인증서 지문을 입력한 후 완료를 클릭합니다.

  5. 저장을 클릭하여 변경사항을 저장하고 API 키 목록으로 돌아갑니다.

gcloud

  1. 제한하려는 키의 ID를 가져옵니다.

    ID는 표시 이름 또는 키 문자열과 같지 않습니다. gcloud services api-keys list 명령어를 사용하여 프로젝트의 키를 나열해서 ID를 가져올 수 있습니다.

  2. gcloud alpha services api-keys update 명령어를 사용하여 API 키를 사용할 수 있는 Android 앱을 지정합니다.

    다음 값을 바꿉니다.

    • KEY_ID: 제한하려는 키의 ID입니다.
    • SHA1_FINGERPRINTPACKAGE_NAME: 키를 사용할 수 있는 Android 앱에 대한 앱 정보입니다.

      필요한 수만큼 앱을 추가할 수 있습니다. 추가 --allowed-application 플래그를 사용하세요.

    gcloud alpha services api-keys update KEY_ID \
    --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_1,package_name=PACKAGE_NAME_1 \
    --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_2,package_name=PACKAGE_NAME_2
    

REST

  1. 제한하려는 키의 ID를 가져옵니다.

    ID는 표시 이름 또는 키 문자열과 같지 않습니다. keys.list 메서드를 사용하여 ID를 가져올 수 있습니다. ID는 응답의 uid 필드에 나열됩니다.

    PROJECT_ID를 Google Cloud 프로젝트 ID 또는 이름으로 바꿉니다.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
    
  2. keys.patch 메서드를 사용하여 API 키를 사용할 수 있는 Android 앱을 지정합니다.

    이 요청은 장기 실행 작업을 반환합니다. 작업이 완료되는 시간을 확인하고 작업 상태를 가져오려면 작업을 폴링해야 합니다.

    다음 값을 바꿉니다.

    • SHA1_FINGERPRINT_1PACKAGE_NAME_1: 키를 사용할 수 있는 Android 앱에 대한 앱 정보입니다.

      필요한 수만큼 앱에 대한 정보를 추가할 수 있습니다. 쉼표를 사용하여 AndroidApplication 객체를 구분합니다. 요청에 모든 애플리케이션을 제공해야 합니다. 제공된 애플리케이션은 키에서 기존 허용되는 애플리케이션을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트 ID 또는 이름입니다.

    • KEY_ID: 제한하려는 키의 ID입니다.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data '{
    "restrictions" : {
    "androidKeyRestrictions": {
      "allowedApplications": [
        {
          "sha1Fingerprint": "SHA1_FINGERPRINT_1",
          "packageName": "PACKAGE_NAME_1"
        },
     ]
    }
    }
    }' \
    "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
    

REST API를 사용하여 키에 Android 앱 제한사항을 추가하는 방법은 API 키 API 문서에서 Android 제한사항 추가를 참조하세요.

iOS 앱

각 앱의 번들 ID를 제공하여 API 키 사용을 특정 iOS 앱으로 제한할 수 있습니다.

API 키를 하나 이상의 iOS 앱으로 제한하려면 다음 옵션 중 하나를 사용합니다.

Console

  1. Google Cloud Console에서 사용자 인증 정보 페이지로 이동합니다.

    사용자 인증 정보로 이동

  2. 제한하려는 API 키의 이름을 클릭합니다.

  3. 애플리케이션 제한사항에서 iOS 앱을 선택합니다.

  4. 추가하려는 각 iOS 앱에 대해 항목 추가를 클릭하고 번들 ID를 입력한 후 완료를 클릭합니다.

  5. 저장을 클릭하여 변경사항을 저장하고 API 키 목록으로 돌아갑니다.

gcloud

  1. 제한하려는 키의 ID를 가져옵니다.

    ID는 표시 이름 또는 키 문자열과 같지 않습니다. gcloud services api-keys list 명령어를 사용하여 프로젝트의 키를 나열해서 ID를 가져올 수 있습니다.

  2. gcloud alpha services api-keys update 메서드를 사용하여 키를 사용할 수 있는 iOS 앱을 지정합니다.

    다음 값을 바꿉니다.

    • KEY_ID: 제한하려는 키의 ID입니다.
    • ALLOWED_BUNDLE_ID: 이 API 키를 사용할 수 있게 하려는 iOS 앱의 번들 ID입니다.

      필요한 수만큼 번들 ID를 추가할 수 있습니다. 쉼표를 사용하여 ID를 구분합니다.

    gcloud alpha services api-keys update KEY_ID \
    --allowed-bundle-ids=ALLOWED_BUNDLE_ID_1,ALLOWED_BUNDLE_ID_2
    

REST

  1. 제한하려는 키의 ID를 가져옵니다.

    ID는 표시 이름 또는 키 문자열과 같지 않습니다. keys.list 메서드를 사용하여 ID를 가져올 수 있습니다. ID는 응답의 uid 필드에 나열됩니다.

    PROJECT_ID를 Google Cloud 프로젝트 ID 또는 이름으로 바꿉니다.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
    
  2. keys.patch 메서드를 사용하여 API 키를 사용할 수 있는 iOS 앱을 지정합니다.

    이 요청은 장기 실행 작업을 반환합니다. 작업이 완료되는 시간을 확인하고 작업 상태를 가져오려면 작업을 폴링해야 합니다.

    다음 값을 바꿉니다.

    • ALLOWED_BUNDLE_ID: 키를 사용할 수 있는 iOS 앱의 번들 ID입니다.

      필요한 수만큼 앱에 대한 정보를 추가할 수 있습니다. 쉼표를 사용하여 번들 ID를 구분합니다. 요청에 모든 번들 ID를 제공해야 합니다. 제공된 번들 ID는 키에서 기존 허용되는 애플리케이션을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트 ID 또는 이름입니다.

    • KEY_ID: 제한하려는 키의 ID입니다.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data '{
    "restrictions" : {
    "iosKeyRestrictions": {
      "allowedBundleIds": ["ALLOWED_BUNDLE_ID_1","ALLOWED_BUNDLE_ID_2"]
    }
    }
    }' \
    "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
    

REST API를 사용하여 키에 iOS 앱 제한사항을 추가하는 방법은 API 키 API 문서에서 iOS 제한사항 추가를 참조하세요.

API 제한사항 추가

API 제한사항은 API 키를 사용해서 호출할 수 있는 API를 지정합니다.

API 제한사항을 추가하려면 다음 옵션 중 하나를 사용합니다.

Console

  1. Google Cloud Console에서 사용자 인증 정보 페이지로 이동합니다.

    사용자 인증 정보로 이동

  2. 제한하려는 API 키의 이름을 클릭합니다.

  3. API 제한사항 섹션에서 키 제한을 클릭합니다.

  4. 드롭다운에서 API 키가 액세스하는 데 사용될 모든 API를 선택합니다.

  5. 저장을 클릭하여 변경사항을 저장하고 API 키 목록으로 돌아갑니다.

gcloud

  1. 제한하려는 키의 ID를 가져옵니다.

    ID는 표시 이름 또는 키 문자열과 같지 않습니다. gcloud services api-keys list 명령어를 사용하여 프로젝트의 키를 나열해서 ID를 가져올 수 있습니다.

  2. gcloud alpha services api-keys update 명령어를 사용하여 API 키를 인증에 사용할 수 있는 서비스를 지정합니다.

    다음 값을 바꿉니다.

    • KEY_ID: 제한하려는 키의 ID입니다.
    • SERVICE_1, SERVICE_2...: 키를 액세스에 사용할 수 있는 API의 서비스 이름입니다.

      업데이트 명령어에 모든 서비스 이름을 제공해야 합니다. 제공된 서비스 이름은 키에서 기존 서비스를 대체합니다.

    API 대시보드에서 API를 검색하여 서비스 이름을 찾을 수 있습니다. 서비스 이름은 bigquery.googleapis.com과 같은 문자열입니다.

    gcloud alpha services api-keys update KEY_ID \
    --api-target=service=SERVICE_1 --api-target=service=SERVICE_2
    

REST

  1. 제한하려는 키의 ID를 가져옵니다.

    ID는 표시 이름 또는 키 문자열과 같지 않습니다. keys.list 메서드를 사용하여 ID를 가져올 수 있습니다. ID는 응답의 uid 필드에 나열됩니다.

    PROJECT_ID를 Google Cloud 프로젝트 ID 또는 이름으로 바꿉니다.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
    
  2. keys.patch 메서드를 사용하여 API 키를 인증에 사용할 수 있는 서비스를 지정합니다.

    이 요청은 장기 실행 작업을 반환합니다. 작업이 완료되는 시간을 확인하고 작업 상태를 가져오려면 작업을 폴링해야 합니다.

    다음 값을 바꿉니다.

    • SERVICE_1, SERVICE_2...: 이 키를 사용할 수 있게 하려는 API의 서비스 이름입니다.

      요청에 모든 서비스 이름을 제공해야 합니다. 제공된 서비스 이름은 키에서 기존 서비스를 바꿉니다.

      API 대시보드에서 API를 검색하여 서비스 이름을 찾을 수 있습니다. 서비스 이름은 bigquery.googleapis.com과 같은 문자열입니다.

    • PROJECT_ID: Google Cloud 프로젝트 ID 또는 이름입니다.

    • KEY_ID: 제한하려는 키의 ID입니다.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data '{
    "restrictions" : {
    "apiTargets": [
      {
        "service": "SERVICE_1"
      },
      {
        "service" : "SERVICE_2"
      },
    ]
    }
    }' \
    "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
    

REST API를 사용하여 키에 API 제한사항을 추가하는 방법은 API 키 API 문서에서 API 제한사항 추가를 참조하세요.

키 문자열에서 프로젝트 정보 가져오기

키 문자열이 있고 연결된 Google Cloud 프로젝트를 확인하려면 키 문자열에서 키에 대한 정보를 가져올 수 있습니다.

KEY_STRING을 프로젝트 정보가 필요한 키 문자열로 바꿉니다.

gcloud

gcloud alpha services api-keys lookup 명령어를 사용하여 키 문자열에서 프로젝트 ID를 가져옵니다.

gcloud alpha services api-keys lookup KEY_STRING

REST

lookupKey 메서드를 사용하여 키 문자열에서 프로젝트 ID를 가져옵니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://apikeys.googleapis.com/v2/keys:lookupKey?keyString=KEY_STRING"

장기 실행 작업 폴링

API 키 API 메서드에는 장기 실행 작업이 사용됩니다. REST API를 사용하여 API 키를 만들고 관리하는 경우 초기 메서드 요청에서 작업 객체가 반환됩니다. 작업 이름을 사용하여 장기 실행 작업을 폴링합니다. 장기 실행 요청이 완료될 때 작업을 폴링하면 장기 실행 요청에서 데이터가 반환됩니다.

장기 실행 API 키 API 작업을 폴링하려면 operations.get 메서드를 사용합니다.

OPERATION_NAME을 장기 실행 작업으로 반환된 작업 이름으로 바꿉니다. 예를 들면 operations/akmf.p7-358517206116-cd10a88a-7740-4403-a8fd-979f3bd7fe1c입니다.

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    "https://apikeys.googleapis.com/v2/OPERATION_NAME"

API 키 제한

프로젝트당 최대 300개까지 API 키를 만들 수 있습니다. 이는 시스템 한도이며 할당량 증가 요청을 사용하여 변경될 수 없습니다.

API 키가 더 필요하면 하나를 초과하는 프로젝트를 사용해야 합니다.

다음 단계