আমি স্বীকৃত উত্তর হিসাবে একই দিকের সাথে একটি উত্তর যুক্ত করছি তবে ছোট (গুরুত্বপূর্ণ) পার্থক্য সহ এবং আরও বিশদ যুক্ত করছি।
নীচে কনফিগারেশন বিবেচনা করুন:
{
"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 এক্সেস এবং দুটি অংশ বিভক্ত হয়: কর্ম বালতি স্তরের উপর অনুমতি প্রদান করে এবং অন্যান্য কর্মের বালতি ভিতরে বস্তুর উপর অনুমতির প্রয়োজন।
ListBucket
PutObject/DeleteObject
প্রথম রিসোর্স উপাদান ক্রিয়াটির arn:aws:s3:::<Bucket-Name>
জন্য নির্দিষ্ট করে ListBucket
যাতে অ্যাপ্লিকেশনগুলি বালতিতে সমস্ত বস্তুর তালিকা করতে পারে।
দ্বিতীয় সংস্থান উপাদানটি এবং ক্রিয়াগুলির arn:aws:s3:::<Bucket-Name>/*
জন্য নির্দিষ্ট করে যাতে অ্যাপ্লিকেশনগুলি বালতিতে কোনও অবজেক্ট লিখতে বা মুছতে পারে।PutObject
DeletObject
বালতি-স্তর এবং অবজেক্ট-স্তরের সূক্ষ্ম দানাদার অনুমতিগুলি নির্দিষ্ট করার জন্য সুরক্ষা কারণে দুটি পৃথক 'আর্ট'-এ বিভক্ত হওয়া গুরুত্বপূর্ণ।
লক্ষ্য করুন যে আমি যদি 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
আমার ব্যাশ স্ক্রিপ্ট ফাইলে) হিসাবে এখানে বর্ণিত ।