Je souhaite que Boto3 obtienne l'accès et la clé secrète d'un fichier de configuration au lieu de les coder en dur. Sur mon serveur Linux, j'ai défini la variable d'environnement suivante AWS_SHARED_CREDENTIALS_FILE
avec la valeur /app/.aws/credentials
. En /app/.aws/ je mets un fichier avec les informations d'identification de nom avec le contenu suivant:Boto3 n'utilise pas les clés du fichier de configuration
[default]
aws_access_key_id = abcd
aws_secret_access_key = abcd
Bien sûr, j'utilisé les touches réelles au lieu de ABCD.
Python:
import boto3
conn = boto3.client('s3',
region_name="eu-west-1",
endpoint_url="endpoint",
aws_access_key_id=aws_access_key_id,
aws_secret_access_key=aws_secret_access_key,
config=Config(signature_version="s3", s3={'addressing_style': 'path'}))
Cependant, il dit name'aws_access_key_id' is not defined
. Comment puis-je le réparer? Merci
Edit:
>>> os.environ['AWS_SHARED_CREDENTIALS_FILE']
'/app/.aws/credentials'
Ne pas stocker les informations d'identification à long terme sur serveurs si vous pouvez l'éviter. Utilisez un rôle IAM pour accorder des autorisations via des informations d'identification temporaires (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html). – jarmod
Merci pour le conseil mais j'utilise un service S3 qui n'est pas hébergé par Amazon. – user3080315