简体   繁体   English

com.amazonaws.services.s3.model.AmazonS3Exception:Forbidden(Service:Amazon S3; Status Code:403; Error Code:403 Forbidden; Request ID:XXXXXXXX)

[英]com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: XXXXXXXX)

From few days back i am receiving this exception when i try to push files to my S3Bucket. 从几天开始,当我尝试将文件推送到S3Bucket时,我收到此异常。 Ealier everything seems to work and i am sure there is no code changes from my side. Ealier一切似乎都有效,我相信我的代码没有任何代码变化。

com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden
(Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden;
Request ID: XXXXXXXXXXXX),
S3 Extended Request ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1077)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:725)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3699)
at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:999)
at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:977)

.... .... .... ....

I came across many such Q related to com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden following those 我遇到了许多与com.amazonaws.services.s3.model.AmazonS3异常相关的Q:禁止跟随这些

  1. I have installed NTP on my server to solve any time related issue. 我已经在我的服务器上安装了NTP来解决任何时间问题。
  2. I have also added endPointUrl for "AmazonS3Client" object to the code which i feel may solve my problem. 我还将“AmazonS3Client”对象的endPointUrl添加到我认为可以解决我的问题的代码中。

Anything else i can try to solve this issue 我还可以尝试解决这个问题

i am using aws-java-sdk:1.9.10 for pushing files to S3 Bucket. 我正在使用aws-java-sdk:1.9.10将文件推送到S3 Bucket。

Most likely your instance has not been launched with an IAM instance profile role that has access to S3. 很可能您的实例尚未使用可访问S3的IAM实例配置文件角色启动。

All access to AWS services must be signed with access key and secret. 必须使用访问密钥和机密签署对AWS服务的所有访问权限。 When you do this from your local machine the DefaultCredentialsProviderChain uses the access key and secret defined in your .aws/credentials file. 从本地计算机执行此操作时, DefaultCredentialsProviderChain使用.aws/credentials文件中定义的访问密钥和密钥。

When you launch an EC2 instance in AWS it also needs to sign the requests to services, like s3. 在AWS中启动EC2实例时,还需要对服务请求进行签名,例如s3。 However, it does this by retrieving it's credentials from an internal metadata service. 但是,它通过从内部元数据服务检索它的凭据来实现此目的。

So what you do is create an IAM instance profile that your instance will assume when it starts up. 因此,您所做的是创建一个IAM实例配置文件,您的实例在启动时将采用该配置文件。 This IAM instance profile, like other IAM profiles for user's for example, defines what the instance has access to. 与用户的其他IAM配置文件一样,此IAM实例配置文件定义了实例可以访问的内容。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html

在我的情况下,在android端的存储桶名称不同(存储桶名称在S3处为'a',我在android端输入'ab'),通过更改存储桶名称反之亦然,我解决了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何解决 AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: null) 使用 java - How to resolve AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: null) using java com.amazonaws.services.s3.model.AmazonS3Exception:访问被拒绝 - com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied 访问被拒绝(服务:Amazon S3;状态代码:403;错误代码:AccessDenied;请求 ID:xxxxxxxxxxxxx) - Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: xxxxxxxxxxxxx) com.amazonaws.services.s3.model.PutObjectRequest的PutObjectRequest.putObject()方法抛出com.amazonaws.services.s3.model.AmazonS3Exception - PutObjectRequest.putObject() method of com.amazonaws.services.s3.model.PutObjectRequest throws com.amazonaws.services.s3.model.AmazonS3Exception com.amazonaws.services.s3.model.AmazonS3Exception:必须指定用户密钥 - com.amazonaws.services.s3.model.AmazonS3Exception: User key must be specified AWS S3 Java 拒绝访问服务:Amazon S3; 状态码:403; 错误代码:拒绝访问; - AWS S3 Java Access Denied Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; AWS Lambda Java 到 S3 - com.amazonaws.services.s3.AmazonS3ClientBuilder 上的 java.lang.ClassNotFoundException - AWS Lambda Java to S3 - java.lang.ClassNotFoundException on com.amazonaws.services.s3.AmazonS3ClientBuilder AWS S3 Java:d​​osObjectExist结果为403:禁止 - AWS S3 Java: doesObjectExist results in 403: FORBIDDEN maven tomcat7:deploy失败,状态码为:403,ReasonPhrase:Forbidden - maven tomcat7:deploy fails with status code:403, ReasonPhrase:Forbidden java.lang.NoClassDefFoundError:Spark中的com / amazonaws / services / s3 / AmazonS3Client - java.lang.NoClassDefFoundError: com/amazonaws/services/s3/AmazonS3Client in Spark
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM