Использование ключей API с Distance Matrix API (Legacy)

Продукты платформы Google Карт защищены от несанкционированного использования, поскольку принимают только те вызовы API, которые содержат действительные учетные данные для аутентификации. Эти учетные данные предоставляются в виде ключа API – уникальной строки из букв и цифр, которая связывает платежный аккаунт Cloud с проектом и с определенным API или SDK.

В этом руководстве показано, как создать и использовать ключ API платформы Google Карт, а также ограничить его использование.

Подготовка

Чтобы начать работу, вам потребуется создать проект с платежным аккаунтом и включенным Distance Matrix API (Legacy). Инструкции вы можете найти в статье Как настроить проект Google Cloud.

Как создать ключи API

Ключ API – это уникальный идентификатор, с помощью которого выполняется аутентификация запросов, связанных с вашим проектом. Он нужен для учета использования API и оплаты. С вашим проектом должен быть связан хотя бы один ключ API. Чтобы создать ключ или добавить API или SDK к существующему ключу, следуйте инструкциям ниже.

Консоль

  1. Откройте страницу Google Maps Platform > Keys & Credentials (Платформа Google Карт > Ключи и учетные данные).

    Перейти на страницу "Ключи и учетные данные"

  2. Если появится запрос, выберите проект.
  3. Выполните одно из следующих действий:

    • Создайте ключ.

      1. Нажмите Создать учетные данные > Ключ API.
      2. На панели Create API key (Создать ключ API) откройте список Select API restrictions (Выбрать ограничения API).
      3. Удалите все API, которые не нужны для этого ключа, и убедитесь, что Distance Matrix API выбран.
      4. Нажмите Создать. На панели появится новый ключ API.
    • Использовать существующий ключ:

      1. Нажмите на название ключа.
      2. В списке Select API restrictions (Выбрать ограничения API) выберите Distance Matrix API.
      3. Нажмите Сохранить.

    Выбор API не означает его включение. Убедитесь, что Distance Matrix API включен на странице библиотеки API.

  4. Чтобы посмотреть строку ключа позже, перейдите на страницу Ключи и учетные данные и нажмите Показать ключ.

Если консоль выглядит иначе, чем описано в этих шагах, ознакомьтесь с разделами Создание ключа API и Добавление ограничений API в документации Google Cloud.

gcloud

В следующих командах замените PROJECT_ID идентификатором своего проекта.

  • Создайте новый ключ. Выполните следующую команду, заменив DISPLAY_NAME на название ключа.

    gcloud services api-keys create \
        --project="PROJECT_ID" \
        --display-name="DISPLAY_NAME" \
        --api-target=service=distance-matrix-backend.googleapis.com

    Прочитайте статьи о Google Cloud SDK, установке Cloud SDK и следующих командах:

  • Использовать существующий ключ. Выполните следующую команду, заменив KEY_ID идентификатором ключа. Флаг --append сохраняет API, которые уже разрешены ключом. Если его не указать, команда заменит их.

    gcloud services api-keys update KEY_ID \
        --project="PROJECT_ID" \
        --append \
        --api-target=service=distance-matrix-backend.googleapis.com

    Прочитайте статьи о Google Cloud SDK, установке Cloud SDK и следующих командах:

    Идентификатор ключа – это не строка ключа и не отображаемое название. Чтобы найти его, выполните команду gcloud services api-keys list --project="PROJECT_ID". Идентификатор – это последняя часть поля name: projects/PROJECT_NUMBER/locations/global/keys/KEY_ID.

Чтобы посмотреть строку ключа, выполните команду gcloud services api-keys get-key-string KEY_ID --project="PROJECT_ID".

Как ограничить использование ключей API

Мы настоятельно рекомендуем ограничить использование ключей API только теми API, которые необходимы для работы вашего приложения. Ограничение ключей API повышает безопасность вашего приложения, защищая его от нежелательных запросов. Вы несете финансовую ответственность за расходы, вызванные злоупотреблением ключами API без ограничений. Подробную информацию вы найдете в Рекомендациях по обеспечению безопасности доступа к API.

Чтобы задать ограничение для ключа API, выполните следующие действия:

Консоль

  1. Откройте страницу Google Maps Platform > Keys & Credentials (Платформа Google Карт > Ключи и учетные данные).

    Перейти на страницу "Ключи и учетные данные"

  2. Выберите нужный ключ API. Откроется страница со свойствами ключа API.
  3. В разделе Key restrictions (Ограничения для ключа) установите следующие ограничения:
    • Ограничения для приложений:
      1. Чтобы принимать запросы от веб-серверов, входящих в составленный вами список IP-адресов, выберите IP addresses (IP-адреса) в разделе Application restrictions (Допустимый тип приложений). Укажите один или несколько адресов IPv4 или IPv6 или подсеть в формате бесклассовой адресации (CIDR). IP-адреса должны совпадать с исходными адресами, определенными серверами платформы Google Карт. Если вы используете преобразование сетевых адресов (NAT), это, как правило, будет публичный IP-адрес вашей машины.
    • Ограничения для API:
      1. В разделе Выбрать ограничения API убедитесь, что выбран вариант Distance Matrix API. Если его нет в списке, его необходимо включить.
  4. Внеся все изменения, нажмите Сохранить.

gcloud

Выполните указанную ниже команду, Замените KEY_ID идентификатором ключа, а PROJECT_ID – идентификатором проекта. Чтобы найти идентификатор ключа, выполните команду gcloud services api-keys list --project="PROJECT_ID". Идентификатор – это последняя часть поля name.

gcloud services api-keys update KEY_ID \
    --project="PROJECT_ID" \
    --append \
    --api-target=service=distance-matrix-backend.googleapis.com \
    --allowed-ips="IP_ADDRESS"

Прочитайте статьи о Google Cloud SDK, установке Cloud SDK и следующих командах:

Как добавить ключ API в запрос

Каждый запрос к Distance Matrix API (Legacy) должен содержать ключ API. Укажите свой ключ API вместо YOUR_API_KEY в следующем примере:

https://maps.googleapis.com/maps/api/distancematrix/json?origins=Seattle&destinations=San+Francisco&key=YOUR_API_KEY

Протокол HTTPS является обязательным для запросов с ключом API.