Я понимаю, что это распространенный вопрос, но мне не удалось их решения.
У меня есть два веб-сайта, размещенных на S3:
- bucket.ca (Позволяет
*.bucket.ca
) - dev.bucket.ca (Позволяет
dev.bucket.ca
)
Они общедоступны, но я не хочу, чтобы кто-либо имел доступ к их URL-адресу S3.Поэтому я отредактировал политику сегментов с помощью StringEquals
.
По одному для каждого из сегментов:
arn:aws:s3:::bucket.ca/*
arn:aws:s3:::dev.bucket.ca/*
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::dev.bucket.ca/*",
"Condition": {
"StringEquals": {
"aws:UserAgent": "random-hash"
}
}
}
]
}
Вот часть, котораярасстраиваетсяКаждый раз, когда я изменяю Cloudfront или изменяю содержимое корзины, это поведение крайне противоречиво.
dev.bucket.ca
, кажется, работает так, как задумано, где его URL-адрес S3 приводит к отказу в доступе, и я могу получить доступлюбой из его дочерних путей dev.bucket.ca/*
.Поэтому я скопировал эту конфигурацию для bucket.ca
, но результат всегда равен 403.
Возвращаясь к dev.bucket.ca
, я больше не могу получить доступ к его дочерним путям.dev.bucket.ca/404
результат - 403.
Есть ли надежный способ тестирования конфигураций S3 и Cloudfront?Каждый раз, когда Cloudfront редактируется, изменения медленно обновляются.Стоит ли стирать кеш браузера и каждый раз открывать режим инкогнито, чтобы получить более надежный результат?