【问题标题】:Adding proper permissions to AWS S3 bucket to allow SEO向 AWS S3 存储桶添加适当的权限以允许 SEO
【发布时间】:2016-09-26 01:15:56
【问题描述】:

我正在尝试使用https://www.google.com/webmasters/tools/home?hl=en 验证我的网站是否符合 Google 的 SEO 目的。我使用 AWS S3 来托管我的内容,并使用 AWS Cloudfront 通过 CDN 提供服务。我正在关注这个清单:http://www.wikihow.com/Get-Your-Website-Indexed-by-Google 并且正在执行第 4 步。

Google 列出的验证步骤如下:

  1. 下载此 HTML 验证文件。 [googlelongstringofcharacters.html]
  2. 上传文件到https://www.dynamicdentaledu.com/
  3. 在浏览器中访问https://www.dynamicdentaledu.com/googlelongstringofcharacters.html 确认上传成功。
  4. 单击下面的验证。 要保持验证状态,即使验证成功,也不要删除 HTML 文件。

我已将 HTML 文件添加到我网站的根目录。当我在第 3 步中单击确认时,我得到:

所以我跳过了那个并在第 4 步中点击了Verify 按钮。谷歌说:

使用 https://www.dynamicdentaledu.com/ 验证失败 HTML 文件方法(不到一分钟前)。我们无法连接 到您的服务器。

我认为这是由于我拥有 S3 存储桶的权限和存储桶策略。它们分别是:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::dynamicdentaledu.com/*"
        }
    ]
}

我怎样才能让 Google 访问它需要的东西?


编辑:在AWS's bucket policies之后,我将政策更改为:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::dynamicdentaledu.com/*"
        }
    ]
}

现在得到:

<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>google*longstringofcharacters*.html</Key>
<RequestId>42DD1F1F0D5E06F7</RequestId>
<HostId>
zbmsLAEMz3ed2zKx3gKCHjrtHxeWmaLl16JJs6012zFcLQdnMH48mFJY1YOETD3WMS/8NwkU3SY=
</HostId>
</Error>

【问题讨论】:

    标签: search amazon-s3 seo google-search


    【解决方案1】:

    你有三个问题。

    • 默认情况下,CloudFront 会在您解决问题后 5 分钟内将错误返回给浏览器。当源服务器返回错误时,通常 CloudFront 没有理由不断重试。在这种情况下,您可能希望在 CloudFront 中将 403 和 404 错误的错误缓存 TTL 重新配置为 0 秒。请参阅我对Amazon CloudFront Latency 的回复以了解更多说明。

    • 您无需更改存储桶策略。如果您的网站以其他方式正常工作,并且您在选择“公开所有内容”选项的情况下上传了这个新对象(如果使用 API,则相当于设置 x-amz-acl: public-read),那么这应该就足够了,尽管上面提到的 5 分钟计时器可能很复杂您的故障排除过程。另请注意,在您的存储桶权限中,您允许所有人列出您的存储桶的内容。这并不是实际上导致了问题,但这是一个可能过于宽松且需要提及的配置。此选项允许任何人下载您所有文件的完整列表,但在大多数情况下,这似乎是个坏主意。

    • 您没有使用正确的名称上传文件。 &lt;Code&gt;NoSuchKey&lt;/Code&gt; 从不返回任何原因,只是简单地说,桶中没有具有此键 (path/filename.ext) 的对象。它不是由策略、权限、ACL 等引起的。在 S3 控制台中检查:该文件未按您的预期命名,或者不在存储桶根目录的正确位置。据我所知,长字符串不是一个秘密值——只是一个模糊/不可预测的值——所以如果这里的信息不能帮助你解决这个问题,显示控制台的屏幕截图,包括这个对象及其属性不应给您带来任何安全问题。如果需要,这可能是进一步故障排除所必需的。

    【讨论】:

      猜你喜欢
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 2012-02-22
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      相关资源
      最近更新 更多