create python-3.x amazon-web-services boto3

python-3.x - create - s3.bucket python



Boto3: obtener credenciales dinamicamente? (2)

Estoy luchando para descubrir cómo puedo obtener mi aws_access_key_id y aws_secret_access_key dinámicamente de mi código.

En boto2 podría hacer lo siguiente: boto.config.get_value(''Credentials'', ''aws_secret_access_key'') pero parece que no puedo encontrar un método similar en boto3. Pude encontrar las claves si miro en boto3.Session()._session._credentials pero eso me parece que fue la madre de todos los hackers y preferiría no ir por ese camino.


En general, es una buena práctica usar solo credenciales temporales . Puede obtener credenciales temporales con STS.get_session_token .

EDITAR: A partir de este PR , puede acceder a las credenciales de la sesión actual de la siguiente manera:

import boto3 session = boto3.Session() credentials = session.get_credentials() # Credentials are refreshable, so accessing your access key / secret key # separately can lead to a race condition. Use this to get an actual matched # set. credentials = credentials.get_frozen_credentials() access_key = credentials.access_key secret_key = credentials.secret_key redshift = session.client(''redshift'') ...

Todavía recomendaría el uso de credenciales temporales con el objetivo de exactamente lo que necesita el desplazamiento al rojo.


Usar botocore

>>> import botocore.session >>> session = botocore.session.get_session() >>> session.get_credentials().access_key ''AKIAABCDEF6RWSGI234Q'' >>> session.get_credentials().secret_key ''abcdefghijkl+123456789+qbcd'' >>> session.get_config_variable(''region'') ''us-east-1''