Voici mon code Java:com.amazonaws.services.s3.model.AmazonS3Exception: Accès refusé
AmazonS3 conn = new AmazonS3Client();
AmazonS3URI uri = new AmazonS3URI(s3uri);
ObjectListing objects = conn.listObjects(uri.getBucket(), uri.getKey());
Une tâche très simple, j'essaie d'utiliser le client Java pour accéder AmazonS3 S3, mais cette ligne conn.listObjects
garde à défaut et m'a donné l'exception suivante:
Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: XXXXXXXX), S3 Extended Request ID: xxxxxxxxx
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1389)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:902)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:607)
at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:376)
at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:338)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:287)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3826)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3778)
at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:610)
at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:588)
Un code d'erreur très évidente: 403 qui indique mes lettres de créance de SSFE ont tort, cependant, c'est exactement les mêmes informations d'identification que mes collègues utilisent pour ac Pour éviter la faute de frappe, j'ai littéralement effacé la précédente et utilisé la même que celle que mes collègues m'ont envoyée sous ~/.aws/
I J'ai aussi étudié d'autres raisons possibles, on pourrait penser que ce seau S3 ne donne pas les permissions à mon rôle IAM, apparemment ce n'est pas mon cas non plus.
Une aide s'il vous plaît? Quel pourrait être le coupable?
L'exécutez-vous à partir d'une instance Amazon EC2 ou de votre propre ordinateur? Pouvez-vous utiliser [AWS Command-Line Interface (CLI)] (http://aws.amazon.com/cli/) sur la même machine pour accéder à Amazon S3 via le 'aws s3 ls s3: // nom-du-bucket' ? –
Je cours sur mon propre MacBook Pro. Oui, c'est la partie étrange. Je suis capable d'exécuter cette commande: 'aws s3 ls s3: // MON-BUCKET', donc je suis si confus comment est-ce possible. – FisherCoder