প্রশ্ন S3 সঙ্গে আমাজন Cloudfront। অ্যাক্সেস প্রত্যাখ্যাত


আমরা ক্লাউডফ্রন্টের মাধ্যমে S3 buckets বিতরণ করার চেষ্টা করছি কিন্তু কিছু কারণে কেবলমাত্র প্রতিক্রিয়াটি অ্যাক্সেসডেনড এক্সএমএল ডকুমেন্টটি নিম্নরূপ:

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>89F25EB47DDA64D5</RequestId>
    <HostId>Z2xAduhEswbdBqTB/cgCggm/jVG24dPZjy1GScs9ak0w95rF4I0SnDnJrUKHHQC</HostId>
</Error>

এখানে আমরা সেটিং ব্যবহার করছি:

Distribution Settings Origin Settings

এবং এখানে বালতি জন্য নীতি

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity *********"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::x***-logos/*"
        }
    ]
}

73
2018-03-11 12:32


উত্স


ক্যাশ আচরণ সেটিংস - imgur.com/JBZqrRm - Jordan Adams
Cloudfront S3 বালতি থেকে পড়তে পারেন তা নিশ্চিত করুন। - Nathan C
আমি কিভাবে এই সক্রিয় বা চেক করতে হবে? - Jordan Adams
মূল সেটিংস, শেষ বিকল্প। আপনার স্ক্রিনশট দেখুন। :) - Nathan C
আমি মনে করি আমি আগে চেষ্টা করেছি এবং এটি কাজ করে নি কিন্তু আমি এটি আবার পরিবর্তন করেছি এবং এটি বিতরণ করার প্রক্রিয়াতে রয়েছে। আমি আমার পোস্টে বালতি নীতি যোগ করব :) - Jordan Adams


উত্তর:


আপনি যদি আপনার ক্লাউডফ্রন্ট ডিস্ট্রিবিউশনের রুট অ্যাক্সেস করতে থাকেন তবে আপনাকে একটি ডিফল্ট রুট অবজেক্ট সেট করতে হবে: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html

ক্লাউডফ্রন্ট কনসোল ব্যবহার করে একটি ডিফল্ট রুট অবজেক্ট নির্দিষ্ট করতে:

  • এডব্লিউ ম্যানেজমেন্ট কনসোলে সাইন ইন করুন এবং এ্যামনেজন ক্লাউডফ্রন্ট কনসোলটি খুলুন https://console.aws.amazon.com/cloudfront/

  • উপরের প্যানেলে বিতরণগুলির তালিকায় আপডেট করার জন্য বিতরণ নির্বাচন করুন।

  • মধ্যে বিতরণ বিবরণ ফলক, উপরে সাধারণ ট্যাব, ক্লিক করুন সম্পাদন করা

  • মধ্যে বিতরণ সম্পাদনা করুন ডায়লগ বক্স, মধ্যে ডিফল্ট রুট অবজেক্ট ক্ষেত্র, ডিফল্ট রুট বস্তুর ফাইল নাম লিখুন।

    শুধুমাত্র বস্তুর নাম লিখুন, উদাহরণস্বরূপ, index.html। বস্তুর নাম আগে একটি / যোগ করবেন না।

  • আপনার পরিবর্তন সংরক্ষণ করতে, ক্লিক করুন হ্যাঁ, সম্পাদনা করুন


69
2017-10-16 23:12





আমারও একই সমস্যা ছিল এবং কৌসা এর উত্তরটি সমস্যার সমাধান করে index.html রুট পাথে, আমার সমস্যাটি উপ-ডিরেক্টরিগুলির সাথেও ছিল, যেমনটি আমি তাদের সাথে সংযুক্ত ছিলাম index.html "সুন্দর urls" পেতে (উদাহরণস্বরূপ "ugly" example.com/something.html এর পরিবর্তে example.com/something/)

আংশিকভাবে এটি অ্যামাজনেরও দোষের কারণ, কারণ আপনি ক্লাউডফ্রন্ট বিতরণটি সেট আপ করলে এটি আপনাকে S3 বালতিগুলি বেছে নেবে, তবে আপনি যদি এটির মধ্যে একটি চয়ন করেন তবে এটি স্ট্যাটিক ওয়েবসাইট হোস্টিং URL এর পরিবর্তে ব্যাকএন্ড হিসাবে ব্যবহার করবে।

তাই সমস্যা সমাধানের জন্য:

  • বালতি জন্য স্ট্যাটিক ওয়েবসাইট হোস্টিং সক্ষম করুন
  • স্থির কর সূচক (এবং সম্ভবত এরর) যথাযথভাবে নথি
  • কপি শেষপ্রান্ত ইউআরএল - আপনি উপরের সেটিংস এর পাশে এটি খুঁজে পেতে পারেন - এটি এমন কিছু দেখতে হবে: <Bucket.name> .s3-website- <আউস-অঞ্চলের> .amazonaws.com
  • আপনার ক্লাউডফ্রন্ট বিতরণ উৎস হিসাবে যে URL ব্যবহার করুন। (এটি সিএফও তৈরি করবে ডিফল্ট রুট অবজেক্ট অপ্রয়োজনীয় সেটিং, কিন্তু এটি যেভাবে সেট করতে আঘাত করে না)

41
2018-05-11 14:01



এই মন্তব্য তারিখ হিসাবে পারফেক্ট উত্তর। - Sai Ramachandran
যে পাশাপাশি আমার জন্য এটি ছিল। আমি ইতিমধ্যে অন্য ওয়েবসাইট কাজ ছিল এবং চিন্তা আমি অভিন্নভাবে নতুন এক কনফিগার। এই উপেক্ষা করা তাই সহজ। - Günther Eberl
এছাড়াও আপনি বালতিতে GetObject এবং ListObjects অনুমতিগুলি যুক্ত করতে হবে। - Georges


আমি @ সিজ হিসাবে একই সমস্যা ছিল, যদিও সমাধান আমার ক্ষেত্রে কাজ করবে না।

যত তাড়াতাড়ি স্ট্যাটিক ওয়েবসাইট হোস্টিংটি বালতিতে সক্ষম করা হয়, তার মানে ব্যবহারকারীরা ক্লাউডফ্রন্ট URL, বা S3 URL- এর মাধ্যমে সামগ্রীটি অ্যাক্সেস করতে পারেন যা সবসময় পছন্দসই নয়। উদাহরণস্বরূপ, আমার ক্ষেত্রে, ক্লাউডফ্রন্ট বিতরণটি SSL সক্রিয় করা হয়েছে এবং ব্যবহারকারীরা এটি একটি অ-SSL সংযোগে অ্যাক্সেস করতে সক্ষম হবেন না।

সমাধান আমি পাওয়া ছিল:

  • S3 বালতি নিষ্ক্রিয় স্ট্যাটিক ওয়েবসাইট হোস্টিং রাখুন
  • একটি S3 আইডি হিসাবে Cloudfront বিতরণ মূল রাখুন
  • সেট করুন "বালতি অ্যাক্সেস সীমাবদ্ধ করুন" থেকে "হ্যাঁ" (এবং সহজে, ক্লাউডফ্রন্ট স্বয়ংক্রিয়ভাবে বালতি নীতি আপডেট করার অনুমতি দিন)
  • "ত্রুটি পৃষ্ঠাগুলিতে", একটি কাস্টম প্রতিক্রিয়া তৈরি করুন এবং মানচিত্রে ত্রুটি কোড "403: নিষিদ্ধ" পছন্দসই প্রতিক্রিয়া পৃষ্ঠায় যেমন //index.html, 200 এর একটি প্রতিক্রিয়া কোড সহ

উল্লেখ্য যে আমার ক্ষেত্রে, আমি একটি একক পৃষ্ঠা জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন পরিবেশন করছি যেখানে সমস্ত পথ index.html দ্বারা সমাধান করা হয়েছে। আপনার S3 বালতিতে বিভিন্ন বস্তুর সমাধান করার পথ থাকলে, এটি কাজ করবে না।


7
2017-11-18 14:01



আপনার উত্তরের জন্য ধন্যবাদ. এই এক আমার জন্য কাজ। আমি আপনার মত একই সমস্যা ছিল। আমি মানুষকে আমার S3 বালতিটি অ্যাক্সেস করতে চাইনি, তাই আমাকে S3 Origin অ্যাক্সেস সীমিত করতে হবে, যা কেবল তখনই কাজ করবে যখন আপনি ক্লাউডফন্টের স্বতঃপূর্ণ দ্বারা প্রস্তাবিত উত্সটি পূরণ করবেন। এক দিকে নোট যদিও, আপনি স্ট্যাটিক ওয়েবসাইট হোস্টিং নিষ্ক্রিয় করতে হবে না। কেবল জনসাধারণের অ্যাক্সেসের অনুমতি দেয় যা বালতি নীতি অপসারণ করা যথেষ্ট। - Torsten
এটি সত্যিই সহায়ক ছিল, নিষিদ্ধ বার্তা S3 থেকে এসেছে যা আমি প্রথমে উপলব্ধি করতে পারিনি, তাই আপনাকে একটি কাস্টম ত্রুটি পৃষ্ঠাটি ধরে রাখতে হবে যাতে আপনার SPA কাজ করে। - Ivan


আমার ক্ষেত্রে আমি আমার S3 বালতিতে একটি মূল পথ সহ "পথ প্যাটার্ন" বিহাইভির সহ একাধিক উত্স ব্যবহার করছিলাম:

খারাপ সেটআপ:

ক্লাউডফ্রন্ট আচরণ: /images/* -> My-S3-origin

আমার-এস 3 বংশোদ্ভূত: মূল পথ: /images

S3 ফাইলগুলি: /images/my-image.jpg

অনুরোধ করুন: /images/my-image.jpg -> 403

কি ঘটছে পুরো ক্লাউডফ্রন্ট GET অনুরোধ উত্স প্রেরণ করা হয়: /image/my-image.jpg মূল পথ দ্বারা prefixed: /images, তাই S3 মধ্যে অনুরোধ মত দেখায় /images/images/my-image.jpg যা বিদ্যমান নেই।

সমাধান

মূল পথ সরান।

এটি আমাকে একটি মূল অ্যাক্সেস পরিচয় এবং বালতি অনুমতি এবং ব্যক্তিগত ফাইল অনুমতিগুলি সীমিত করে বালতি অ্যাক্সেস করার অনুমতি দেয়।


2
2017-11-08 01:10





আমার ক্ষেত্রে আমি ভুল 53 রাস্তা কনফিগার করেছি। আমি আমার ডোমেনে একটি উপনাম তৈরি করেছি কিন্তু ক্লাউডফ্রন্ট বন্টনের পরিবর্তে এটি S3 বালতিতে নির্দেশ করেছিলাম।

এছাড়াও আমি ডিফল্ট রুট অবজেক্ট বাদ দিয়েছি। কনসোলটি সত্যিই উন্নত করা যেতে পারে যদি তারা প্রশ্ন চিহ্ন পাঠাতে কিছুটা তথ্য বাদ দেয় তবে এটি বাদ দেওয়ার সম্ভাব্য পরিণতি সম্পর্কে।


0
2017-10-14 14:29