Boto3 erreur: botocore.exception.NoCredentialsError: impossible de localiser les justificatifs d'identité
quand j'exécute simplement le code suivant, j'obtiens toujours cette erreur.
s3 = boto3.resource('s3')
bucket_name = "python-sdk-sample-%s" % uuid.uuid4()
print("Creating new bucket with name:", bucket_name)
s3.create_bucket(Bucket=bucket_name)
j'ai sauvegardé mon fichier de justificatifs dans
<!-D'où Boto devrait lire mes lettres de créance.
Est-ce que mon réglage est mauvais?
Voici la sortie de boto3.set_stream_logger('botocore', level='DEBUG')
.
2015-10-24 14:22:28,761 botocore.credentials [DEBUG] Skipping environment variable credential check because profile name was explicitly set.
2015-10-24 14:22:28,761 botocore.credentials [DEBUG] Looking for credentials via: env
2015-10-24 14:22:28,773 botocore.credentials [DEBUG] Looking for credentials via: shared-credentials-file
2015-10-24 14:22:28,774 botocore.credentials [DEBUG] Looking for credentials via: config-file
2015-10-24 14:22:28,774 botocore.credentials [DEBUG] Looking for credentials via: ec2-credentials-file
2015-10-24 14:22:28,774 botocore.credentials [DEBUG] Looking for credentials via: boto-config
2015-10-24 14:22:28,774 botocore.credentials [DEBUG] Looking for credentials via: iam-role
6 réponses
essayez de spécifier les clés manuellement
s3 = boto3.resource('s3',
aws_access_key_id=ACCESS_ID,
aws_secret_access_key= ACCESS_KEY)
assurez-vous de ne pas inclure votre ACCESS_ID et votre ACCESS_KEY dans le code pour des raisons de sécurité. Envisagez d'utiliser les configs d'environnement et de les injecter dans le code comme suggéré par @Tiger_Mike.
pour les environnements Prod envisager d'utiliser des clés d'accès rotatives: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey
j'ai eu le même problème et a trouvé que le format de mon ~/.aws/credentials
le fichier a été mauvais.
il a fonctionné avec un fichier contenant:
[default]
aws_access_key_id=XXXXXXXXXXXXXX
aws_secret_access_key=YYYYYYYYYYYYYYYYYYYYYYYYYYY
Notez que le nom du profil doit être "[default]
". Certains documents officiels font référence à un profil nommé "