আমি স্বীকৃত উত্তর হিসাবে একই দিকের সাথে একটি উত্তর যুক্ত করছি তবে ছোট (গুরুত্বপূর্ণ) পার্থক্য সহ এবং আরও বিশদ যুক্ত করছি।
নীচে কনফিগারেশন বিবেচনা করুন:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::<Bucket-Name>"]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": ["arn:aws:s3:::<Bucket-Name>/*"]
}
]
}
নীতি কর্মসূচি মঞ্জুর লেখ-Delete এক্সেস এবং দুটি অংশ বিভক্ত হয়: কর্ম বালতি স্তরের উপর অনুমতি প্রদান করে এবং অন্যান্য কর্মের বালতি ভিতরে বস্তুর উপর অনুমতির প্রয়োজন।
ListBucketPutObject/DeleteObject
প্রথম রিসোর্স উপাদান ক্রিয়াটির arn:aws:s3:::<Bucket-Name>জন্য নির্দিষ্ট করে ListBucketযাতে অ্যাপ্লিকেশনগুলি বালতিতে সমস্ত বস্তুর তালিকা করতে পারে।
দ্বিতীয় সংস্থান উপাদানটি এবং ক্রিয়াগুলির arn:aws:s3:::<Bucket-Name>/*জন্য নির্দিষ্ট করে যাতে অ্যাপ্লিকেশনগুলি বালতিতে কোনও অবজেক্ট লিখতে বা মুছতে পারে।PutObjectDeletObject
বালতি-স্তর এবং অবজেক্ট-স্তরের সূক্ষ্ম দানাদার অনুমতিগুলি নির্দিষ্ট করার জন্য সুরক্ষা কারণে দুটি পৃথক 'আর্ট'-এ বিভক্ত হওয়া গুরুত্বপূর্ণ।
লক্ষ্য করুন যে আমি যদি GetObject২ য় ব্লকে নির্দিষ্ট করে থাকতাম তবে কী হবে তা হ'ল প্রোগ্রামেটিক অ্যাক্সেসের ক্ষেত্রে আমি ত্রুটি পেয়েছি যেমন:
Upload failed: <file-name> to <bucket-name>:<path-in-bucket> An error occurred (AccessDenied) when calling the PutObject operation: Access Denied।
awsএকজন ব্যবহারকারীর জন্য কনফিগার করেছি এবং এটিকে অন্য ব্যবহারকারীর ক্রোনজব-বলা বাশ স্ক্রিপ্টের মধ্যে ব্যবহার করেছি, যার অর্থ অ্যাক্সেস কী এবং অ্যাক্সেস টোকেন ভুল / আনসেট ছিল। আমার সমাধান সরাসরি প্রমাণ-পত্র (লাগাতে ছিলAWS_ACCESS_KEY_IDএবংAWS_SECRET_ACCESS_KEYআমার ব্যাশ স্ক্রিপ্ট ফাইলে) হিসাবে এখানে বর্ণিত ।