Sto utilizzando tkinter
per creare un'applicazione GUI che restituisce i gruppi di sicurezza. Attualmente, se desideri modificare le tue credenziali (ad es. Se hai inserito per sbaglio quelle sbagliate) dovresti riavviare l'applicazione altrimenti boto3
continuerà a utilizzare le vecchie credenziali.Boto3 utilizza vecchie credenziali
Non sono sicuro del motivo per cui continua a utilizzare le vecchie credenziali perché sto eseguendo di nuovo tutto utilizzando le credenziali attualmente immesse.
Questo è uno snippet del codice che imposta le variabili di ambiente e avvia boto3
. Funziona perfettamente se inserisci le credenziali giuste la prima volta.
os.environ['AWS_ACCESS_KEY_ID'] = self.accessKey
os.environ['AWS_SECRET_ACCESS_KEY'] = self.secretKey
self.sts_client = boto3.client('sts')
self.assumedRoleObject = self.sts_client.assume_role(
RoleArn=self.role,
RoleSessionName="AssumeRoleSession1"
)
self.credentials = self.assumedRoleObject['Credentials']
self.ec2 = boto3.resource(
'ec2',
region_name=self.region,
aws_access_key_id=credentials['AccessKeyId'],
aws_secret_access_key=credentials['SecretAccessKey'],
aws_session_token=credentials['SessionToken'],
)
Le credenziali variabili sono impostate utilizzando:
self.accessKey = str(self.AWS_ACCESS_KEY_ID_Form.get())
self.secretKey = str(self.AWS_SECRET_ACCESS_KEY_Form.get())
self.role = str(self.AWS_ROLE_ARN_Form.get())
self.region = str(self.AWS_REGION_Form.get())
self.instanceID = str(self.AWS_INSTANCE_ID_Form.get())
C'è un modo per utilizzare credenziali diverse in boto3
senza riavviare il programma?
Questo è un modo errato per assegnare un accesso mutevole per il modulo boto3. Perché l'API boto assumerà e utilizzerà la chiave di accesso memorizzata nella cache @Vor answer è il modo esplicito per dire al boto. – mootmoot
@mootmoot Se ricarico il modulo usando 'importlib.reload', si dovrebbe 'cancellare' la cache giusto? –