alibaba / alibaba/acm-sdk-python

Bug in AcmClient with ram_role_name as auth

Aperta
#16 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
59
Fork
26
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

When I'm trying to do following:

```
import acm

ENDPOINT = ''
NAMESPACE = ''
RAM_ROLE = ''
DATA_ID = ''
GROUP = ''

c = acm.ACMClient(ENDPOINT, NAMESPACE, AK, SK)
c.set_options(kms_enabled=True, region_id="cn-beijing")
print(c.get(DATA_ID, GROUP))
```

I get following error:
```
print(c.get(DATA_ID, GROUP))
File "/usr/local/lib/python3.8/dist-packages/acm/client.py", line 397, in get
return self.decrypt(content)
File "/usr/local/lib/python3.8/dist-packages/acm/client.py", line 897, in decrypt
resp = json.loads(self.kms_client.do_action_with_exception(req).decode("utf8"))
File "/usr/local/lib/python3.8/dist-packages/aliyunsdkcore/client.py", line 473, in do_action_with_exception
status, headers, body, exception = self._implementation_of_do_action(acs_request)
File "/usr/local/lib/python3.8/dist-packages/aliyunsdkcore/client.py", line 308, in _implementation_of_do_action
return self._handle_retry_and_timeout(endpoint, request, signer)
File "/usr/local/lib/python3.8/dist-packages/aliyunsdkcore/client.py", line 376, in _handle_retry_and_timeout
status, headers, body, exception = self._handle_single_request(endpoint,
File "/usr/local/lib/python3.8/dist-packages/aliyunsdkcore/client.py", line 398, in _handle_single_request
http_response = self._make_http_response(endpoint, request, read_timeout, connect_timeout,
File "/usr/local/lib/python3.8/dist-packages/aliyunsdkcore/client.py", line 264, in _make_http_response
header, url = signer.sign(self._region_id, request)
File "/usr/local/lib/python3.8/dist-packages/aliyunsdkcore/auth/signers/ecs_ram_role_signer.py", line 42, in sign
self._check_session_credential()
File "/usr/local/lib/python3.8/dist-packages/acm/client.py", line 74, in _check_session_credential_patch
expiration = self._expiration if isinstance(self._expiration, (float, int)) \
AttributeError: 'EcsRamRoleSigner' object has no attribute '_expiration'
```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia in acm/client.py, in get(), decrypt() e _check_session_credential_patch(), quindi confronta lo stato previsto delle credenziali con il traceback di EcsRamRoleSigner. Riproduci la configurazione ACMClient mostrata con kms_enabled e region_id impostati; il lavoro è concluso quando l’autenticazione tramite ruolo RAM non genera più l’AttributeError dovuto all’assenza di _expiration durante get().

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
authentication, cloud
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
38/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.