当我从S3存储桶请求对象时,我会收到一些奇怪的403错误。这似乎是间歇性的,并且仅在快速连续发生时才会发生。
如果我稍后尝试访问相同的对象,通常可以无问题检索它们。
我的直觉是,这些错误发生是因为某种速率限制约束,但我在文档中找不到任何东西。速率限制是否可能导致403错误?
当我从S3存储桶请求对象时,我会收到一些奇怪的403错误。这似乎是间歇性的,并且仅在快速连续发生时才会发生。
如果我稍后尝试访问相同的对象,通常可以无问题检索它们。
我的直觉是,这些错误发生是因为某种速率限制约束,但我在文档中找不到任何东西。速率限制是否可能导致403错误?
我的问题是我请求的对象不存在。我不确定我们是否做了任何特殊的配置,使其成为403而不是404,但到今天为止,如果我尝试从我们的存储桶请求一个我确定不存在的对象,我会得到一个403。
403的原因可能是安全方面的考虑;如果有人正在钓鱼并且有时得到403,因为他们不能访问一个存在的对象,有时得到404,因为对象确实不存在,他们可能会获得一些敏感信息。
如果您将S3存储桶用作静态内容网站,则必须附加一个策略,其中包含操作s3:GetObject
和arn:aws:s3:::your-bucket/*
。以下是使用Cloudformation模板的示例:
StaticWebsite:
Type: AWS::S3::Bucket
Properties:
AccessControl: PublicRead
BucketName: your-bucket
WebsiteConfiguration:
IndexDocument: index.html
StaticWebsitetPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket: !Ref StaticWebsite
PolicyDocument:
Statement:
- Effect: Allow
Action:
- s3:GetObject
Resource:
- arn:aws:s3:::your-bucket/*
Principal: "*"