Google Storage API Запрещена ошибка ipRefererBlocked
Я получаю следующую ошибку при использовании JSON API Google Storage:
$ curl -v 'https://www.googleapis.com/storage/v1/b/MY-BUCKET/o?key=MY_API_KEY'
* Hostname was NOT found in DNS cache
* Trying 64.233.186.95...
* Connected to www.googleapis.com (64.233.186.95) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
* Server certificate: *.storage.googleapis.com
* Server certificate: Google Internet Authority G2
* Server certificate: GeoTrust Global CA
> GET /storage/v1/b/MY-BUCKET/o?key=MY_API_KEY HTTP/1.1
> User-Agent: curl/7.37.1
> Host: www.googleapis.com
> Accept: */*
>
< HTTP/1.1 403 Forbidden
< Vary: X-Origin
< Content-Type: application/json; charset=UTF-8
< Date: Tue, 31 Mar 2015 16:57:40 GMT
< Expires: Tue, 31 Mar 2015 16:57:40 GMT
< Cache-Control: private, max-age=0
< X-Content-Type-Options: nosniff
< X-Frame-Options: SAMEORIGIN
< X-XSS-Protection: 1; mode=block
* Server GSE is not blacklisted
< Server: GSE
< Alternate-Protocol: 443:quic,p=0.5
< Accept-Ranges: none
< Vary: Origin,Accept-Encoding
< Transfer-Encoding: chunked
<
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "ipRefererBlocked",
"message": "There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed.",
"extendedHelp": "https://console.developers.google.com"
}
],
"code": 403,
"message": "There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed."
}
}
Но, похоже, все настроено правильно. Ключ, который я использую, указан как разрешающий любой IP:
Сами API активны:
И проект имеет правильно настроенную платежную информацию:
Я пытался включить и отключить API и обновить информацию для выставления счетов. Ничего не помогает. Каковы следующие шаги? Попробуйте AWS?
1 ответ
Для потомков вот что произошло:
Я запускал другую виртуальную машину в том же центре обработки данных (Линод в Ньюарке / Нью-Джерси), и она работала отлично, поэтому проблема, похоже, была не в моем ключе, а в самом моем IP.
Чтобы разобраться в этом, мне пришлось заплатить Google Cloud 150 долларов США, чтобы они могли позволить мне открыть заявку в службу поддержки и описать проблему.
Следующие два дня я провожу, споря с сотрудником службы поддержки, который, будучи очень вежливым, всегда полагал, что ошибка была в моем конце, а не в их.
После написания 6000-символьного ответа с очень конкретными деталями он, наконец, решил проверить кого-то и обнаружил, что мой IP-адрес был заблокирован системой автоматизации трафика Google, потому что он ошибочно обнаружил, что мой IP-адрес пришел из запрещенной страны (Иран).
Учитывая, что ВМ была в Нью-Джерси - и это было очень легко увидеть через traceroute
- они сказали мне, что им придется вручную перезаписать систему и вернуть мой IP в США. Это займет три дня, поэтому я ждал.
Три дня спустя я получил электронное письмо с просьбой проверить все, и я так и сделал. Это не сработало. После еще нескольких писем и ожидания еще одного дня они наконец исправили это.
Вершиной всего этого беспорядка было то, что сотрудник службы поддержки Google обвинил мою компанию в том, что она ведет бизнес с ограниченными странами, и выступила в качестве посредника для трафика, прибывающего из Ирана. Это было нелепо, и это действительно оскорбляло нас, потому что даже после ошибки они все еще хотели обвинить нас в том, что мы не сделали ничего плохого.
Мы сказали двум инженерам повернуть эту ВМ назад и посмотреть, смогут ли они найти какие-либо доказательства того, что она была взломана и, конечно, они не смогли. Это был полностью исправленный сервер Ubuntu 14.04, в котором можно было использовать только SSH через свой закрытый ключ, а удаленный вход в систему был отключен.
И так заканчивается история, ребята. Тратите 150 долларов США на то, чтобы уведомить Google о своей собственной ошибке и о том, что вам нужно найти решение.
Да, и еще одна вещь: мы переходим на AWS.