Puncte:0

Google HTTP Load Balancer și Google Cloud Storage: 403 aparent aleatoriu în solicitările PUT

drapel in

Am Google Cloud Storage configurat cu un CNAME conform documentație, așa că practic am Google Load Balancer care se ocupă de solicitări. In aproape 2 ani cu aceasta configuratie nu am avut nicio problema (traficul este mai mare acum, asa ca probabil problema a fost obscucata...nu pot sti asta). Folosesc URL-uri semnate.

Am început să am niște răspunsuri 403 aparent aleatorii cu operația PUT pe stocare, deci practic cu operația de încărcare a fișierelor. Aparent aleatoriu pentru că funcționează de cele mai multe ori (aș spune 99%), dar problemele devin evidente în vizualizatorul de jurnal și bineînțeles în solicitările de asistență de la utilizatorii noștri.

Iată o intrare în jurnal (unele detalii sunt ascunse):

{
  "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%40mydomainiam. .gserviceaccount.com&Expires=1624000464&Signature=<signature_here>",
    "requestSize": "1188472",
    „starea”: 403,
    "responseSize": "658",
    "userAgent": "Apache-CXF/3.2.5",
    "remoteIp": "88.86.183.XXX",
    „latență”: „0,107676s”
  },
  "resursa": {
    "type": "http_load_balancer",
    „etichete”: {
      "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",
      "zona": "global"
    }
  },
  „stamp”: „2021-06-18T07:09:25.037700Z”,
  "severity": "AVERTISMENT",
  "logName": "proiecte/myproject/logs/requests",
  "trace": "proiecte/myproject/traces/cc8123c2a42e70d8d002c84efe15e5de",
  „receiveTimestamp”: „2021-06-18T07:09:25.668260183Z”,
  „spanId”: „e4b4a200767c9de0”
}

răspuns_trimis_de_backend este probabil un indiciu că stocarea în sine a trimis o eroare 403. Acum, sunt multe posibile motive pentru o eroare 403, dar vizualizatorul de jurnal nu oferă alte informații.

Cum pot aborda această problemă pentru a înțelege ce se întâmplă?

John Hanley avatar
drapel cn
1) Timpul de expirare este prea scurt.În exemplul dvs. de jurnal, adresa URL expiră în cinci minute de la intrarea în jurnal. Ar trebui să puteți obține mai multe detalii în jurnalele Cloud Storage. 2) Agentul utilizator este Apache. Acesta este serviciul tău? Dacă da, asigurați-vă că data, ora și fusul orar sunt setate corect.
Lorenzo S avatar
drapel in
Bună @JohnHanley, mulțumesc pentru răspuns. Pentru problema de expirare, văd că marcajul de timp al jurnalului este „Vineri, 18 iunie 2021 09:09:25 GMT+0200”, iar data de expirare a adresei URL este „Vineri, 18 iunie 2021 09:14:24 GMT+0200 (Central Ora de vară europeană)” așa că cred că suntem buni în acest sens. Pentru agentul utilizator: aceasta poate fi o observație interesantă. Voi întreba partenerul care folosește serviciul (de fapt, este singurul partener care are această problemă). Mulțumiri!
John Hanley avatar
drapel cn
Comentariul tău mă face să cred că ora de sistem a partenerului tău este incorectă. Data/ora dintr-o solicitare trebuie să fie corectă pentru adresele URL semnate. Care este timpul de expirare pentru URL-urile dvs. semnate (timpul de la emitere)? Google rotește cheile private, așa că limitează timpul total valabil la mai puțin de 12 ore. https://cloud.google.com/storage/docs/access-control/signed-urls#signing-iam

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.