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''