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
44
demandé sur d-_-b 2015-10-23 10:40:46

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

46
répondu SHASHANK MADHAV 2018-06-06 23:14:10

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é "