Google HTTP Load Balancer и Google Cloud Storage: по-видимому, случайная ошибка 403 в запросах PUT
В соответствии с документацией у меня настроено облачное хранилище Google с CNAME , поэтому в основном запросы обрабатывает мой балансировщик нагрузки Google. За почти 2 года использования этой конфигурации у меня не было проблем (трафик сейчас выше, поэтому проблема, вероятно, была запутана... Я не могу этого знать). Я использую подписанные URL-адреса.
У меня начали появляться случайные ответы 403 при операции PUT в хранилище, то есть, в основном, при операции загрузки файла.Очевидно, случайно, потому что это работает большую часть времени (я бы сказал, 99%), но проблемы становятся очевидными в программе просмотра журналов и, конечно же, в запросах поддержки от наших пользователей.
Вот запись в журнале (некоторые детали запутаны):
{
"insertId": "<id_here>",
"jsonPayload": {
"@type": "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry",
"statusDetails": "response_sent_by_backend"
},
"httpRequest": {
"requestMethod": "PUT",
"requestUrl": "https://storage.mydomain.it/path/2/2021-06-18/m_808/2_2021-06-18-09-09-24_m808_bdb6b3.png?GoogleAccessId=ocr-account%40mydomain.iam.gserviceaccount.com&Expires=1624000464&Signature=<signature_here>",
"requestSize": "1188472",
"status": 403,
"responseSize": "658",
"userAgent": "Apache-CXF/3.2.5",
"remoteIp": "88.86.183.XXX",
"latency": "0.107676s"
},
"resource": {
"type": "http_load_balancer",
"labels": {
"backend_service_name": "",
"forwarding_rule_name": "mydomain-balancer-1-forwarding-rule-2",
"url_map_name": "mydomain-balancer-1",
"target_proxy_name": "mydomain-balancer-1-target-proxy-2",
"project_id": "my_project_id",
"zone": "global"
}
},
"timestamp": "2021-06-18T07:09:25.037700Z",
"severity": "WARNING",
"logName": "projects/myproject/logs/requests",
"trace": "projects/myproject/traces/cc8123c2a42e70d8d002c84efe15e5de",
"receiveTimestamp": "2021-06-18T07:09:25.668260183Z",
"spanId": "e4b4a200767c9de0"
}
response_sent_by_backend , вероятно, указывает на то, что само хранилище отправило ошибку 403. Существует множество возможных причин ошибки 403 , но программа просмотра журналов не предоставляет никакой другой информации.
Как я могу подойти к этой проблеме, чтобы понять, что происходит?