Không có mục tiêu khả dụng khi cố gắng đặt mục tiêu bí danh từ Tuyến 53 đến S3


21

Tôi đang cố gắng thiết lập một trang web dựa trên Amazon AWS S3 đơn giản, như được giải thích ở đây .

Tôi đã thiết lập nhóm S3 (simples3websitetest.com), cấp cho nó quyền (hy vọng) quyền:

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

Tôi đã tải lên index.html, thiết lập quyền truy cập trang web và có thể truy cập thông qua http://simples3websitetest.com.s3-website-us-west-2.amazonaws.com/index.html

Cho đến nay rất tốt, bây giờ tôi muốn thiết lập quyền truy cập Amazon Route53 và đây là nơi tôi gặp khó khăn.

Tôi đã thiết lập một vùng được lưu trữ trên một tên miền mà tôi sở hữu (resourcebox.net) và nhấp vào "tạo bộ bản ghi" và đến bước "thiết lập bí danh", nhưng tôi nhận được "Không có mục tiêu" trong các điểm cuối của trang web S3 khi tôi cố gắng đặt mục tiêu bí danh.

Tôi đã bỏ lỡ cái gì??


Bắt đầu từ tháng 10 năm 2012, Amazon đã giới thiệu một chức năng để xử lý các chuyển hướng (HTTP 301) cho các thùng S3. Bạn có thể đọc phản hồi trước đây của tôi ở đây. stackoverflow.com/a/24218895/1160780
Alberto Spelta

Câu trả lời:


33

Bí danh A-record mà bạn tạo phải giống với tên của nhóm, vì lưu trữ ảo của các nhóm trong S3 yêu cầu Host:tiêu đề được gửi bởi trình duyệt khớp với tên nhóm. Không thực sự có một cách thực tế nào khác trong đó việc lưu trữ ảo các thùng có thể được thực hiện ... thùng phải được xác định bởi một số cơ chế và cơ chế đó là các tiêu đề http.

Để tạo bí danh cho nhóm trong tên miền "example.com", tên nhóm sẽ phải là tên máy chủ mà bạn có thể khai báo hợp pháp trong tên miền đó ... testbucket.example của Tuyến 53 .com, "chẳng hạn, chỉ có thể được đặt bí danh cho một nhóm có tên là" testbucket.example.com "... và không có nhóm nào khác.

Trong câu hỏi của bạn, bạn đang phá vỡ ràng buộc này ... nhưng bạn chỉ có thể tạo bí danh cho một nhóm có tên "simples3websitetest.com" bên trong (và ở đỉnh của) tên miền "simples3websitetest.com".

Đây là do thiết kế, và không chính xác là giới hạn của Tuyến 53 cũng như của S3. Họ chỉ ngăn bạn làm điều gì đó không thể làm việc. Các máy chủ web không biết về bất kỳ bí danh hoặc CNAME hoặc bất kỳ điều gì khác được thực hiện trong DNS - họ chỉ nhận được tên máy chủ ban đầu mà trình duyệt tin rằng nó đang cố gắng kết nối, trong các tiêu đề http được gửi bởi trình duyệt ... và S3 sử dụng điều này thông tin để xác định tên của nhóm mà yêu cầu lưu trữ ảo áp dụng.

Amazon S3 yêu cầu bạn cung cấp cho nhóm của mình cùng tên với tên miền của bạn. Điều này là để Amazon S3 có thể giải quyết chính xác các tiêu đề máy chủ được gửi bởi trình duyệt web khi người dùng yêu cầu nội dung từ trang web của bạn. Do đó, chúng tôi khuyên bạn nên tạo các nhóm cho trang web của mình trong Amazon S3 trước khi bạn trả tiền để đăng ký tên miền.

http://docs.aws.amazon.com/gettingstarted/latest/swh/getting-started-create-bucket.html#bucket-requirements

Tuy nhiên, lưu ý rằng hạn chế này chỉ áp dụng khi bạn không sử dụng CloudFront trước nhóm của mình.

Với CloudFront, sẽ linh hoạt hơn, bởi vì Host:tiêu đề có thể được viết lại (bởi chính CloudFront) trước khi yêu cầu được chuyển qua S3. Bạn định cấu hình "máy chủ gốc" trong bản phân phối CloudFront của mình vì your-bucket.s3-website-xx-yyyy-n.amazonaws.comxx-yyyy-n là vùng AWS của S3 nơi nhóm của bạn được tạo. Điểm cuối này được hiển thị trong bảng điều khiển S3 cho mỗi nhóm.


1
Đây thực sự là một vấn đề, tôi đã tạo ra một cái xô có tên là resourcebox.net và nó đã xuất hiện. Cảm ơn bạn! Câu hỏi tiếp theo nhanh: Điều này có nghĩa là gì nếu tôi muốn có các nhóm khác nhau cho tên miền đó, tôi phải có tên miền phụ phù hợp với từng nhóm phải không? Không có cách nào xung quanh nó?
Amir Zucker

Tôi không chắc chính xác ý bạn là gì bởi "Tôi phải có tên miền phụ." Bạn cần tạo một bản ghi A trong Tuyến đường 53 với tên máy chủ khớp với từng nhóm mà bạn muốn sử dụng để lưu trữ một trang web trong S3, vâng.
Michael - sqlbot

1
@oberstet câu hỏi này là về aliascác bản ghi Tuyến 53 được chỉ vào các thùng S3 có bật lưu trữ trang web, điều này khiến DNS giải quyết đến điểm cuối của trang web, chứ không phải điểm cuối REST. Các điểm cuối của trang web hoàn toàn không hỗ trợ SSL ; chỉ các điểm cuối REST làm. Ngoài ra, tất cả các ký tự đại diện chỉ hỗ trợ tối đa một * và nó chỉ có thể xuất hiện trong thành phần tên máy chủ ngoài cùng bên trái, vì vậy đó không thực sự là giới hạn S3.
Michael - sqlbot

1
@oberstet 6.4.3.1 Khách hàng KHÔNG NÊN tìm cách khớp với số nhận dạng được trình bày trong đó ký tự đại diện bao gồm một nhãn khác với nhãn ngoài cùng bên trái. Vì vậy, không có thứ gọi là ký tự đại diện nhiều tầng. Ở bất cứ giá nào, vấn đề boto của bạn một vấn đề của tùy chọn "định dạng cuộc gọi" rõ ràng được triển khai không chính xác. Mỗi thùng có thể được truy cập qua https với tên xô là người đầu tiên con đường yếu tố theo URL S3 cho khu vực chính xác của xô ví dụ https://s3-us-west-2.amazonaws.com/my-bucket.with-dots.in-us-west-2/key. Sai điểm cuối khu vực = lỗi chuyển hướng.
Michael - sqlbot

1
@MartinLyne cảm ơn. Tôi đã thêm một tham chiếu đến tài liệu S3, về tên nhóm và tên miền cần giống nhau, cũng như đề cập đến cách giải quyết cho tên nhóm đã sử dụng, sử dụng CloudFront. Ở khu vực us-East-1 và us-west-2 và có thể ở các khu vực khác, chi phí sử dụng CloudFront là không đáng kể và thậm chí có thể tiết kiệm được một chút, vì tải xuống CF rẻ hơn 0,005 / GB băng thông so với S3 trực tiếp ở một số cạnh địa điểm.
Michael - sqlbot

0

Giả sử bạn có một vùng lưu trữ abc.com. và bạn tạo một nhóm abc.com (không hiển thị trong danh sách trong các bí danh tuyến đường) - bạn có thể nghĩ đó là. theo tên - mà bạn không thể đặt tên cho các thùng với

Hãy thử điều này là tốt. Bởi vì lần đầu tiên tôi tạo ra cái xô với tên chính xác và vẫn không hoạt động. Hãy tin tôi rằng tôi bị OCD vì vậy tôi đã không bỏ lỡ dấu chấm hết hoặc dấu phẩy.

  1. Tạo một vùng lưu trữ khác có cùng tên abc.com
  2. Bây giờ bạn sẽ thấy 2 khu vực được lưu trữ tương tự (abc.com. Và abc.com.)
  3. Xóa cái mới
  4. Quay trở lại khu vực lưu trữ cũ abc.com
  5. Bạn có thể thấy các điểm cuối s3 sắp xuất hiện - đây có thể là một vấn đề trong Route53

Điều này làm việc cho tôi khi thử hầu hết mọi thứ - Một số gợi ý tôi thấy là đăng xuất và đăng nhập cho một số loại bộ nhớ cache rõ ràng - không chắc chắn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.