2014-10-28 5 views
32

से कोई फ़ाइल प्राप्त करने की अनुमति देता है। मैंने को पर बाल्टी पर सेट किया है जो "प्रमाणीकृत उपयोगकर्ता" को सूचीबद्ध, अपलोड करने और " मैंने बनाई एक बाल्टी से हटाएं। ऐसा लगता है कि मुझे बाल्टी में फाइल अपलोड करने की इजाजत मिलती है, लेकिन ऐसा लगता है कि बाल्टी से फाइलें डाउनलोड करना इस अनुमति से ढंका नहीं है, और इसके बजाय मुझे बाल्टी के लिए नीति परिभाषित करने की आवश्यकता है। मुझे यह स्पष्ट नहीं है कि ऐसी नीति कैसे सेट करें। मैंने पॉलिसी जनरेटर को अपने सर्वोत्तम अनुमानों के साथ कोशिश की कि मुझे क्या भरना चाहिए, लेकिन परिणाम एक वैध नीति नहीं थी जब मैंने इसे बाल्टी के लिए एक नई नीति के रूप में चिपकाया (यह Action does not apply to any resource(s) in statement - Action "s3:ListBucket" in Statement "Stmt-some-number" संदेश में विफल रहा)। क्या कोई यह बता सकता है कि निम्न नीति के साथ क्या गलत है और इसे प्रमाणित उपयोगकर्ताओं को बाल्टी से फ़ाइलों को पुनर्प्राप्त करने की अनुमति देने के लिए इसे सही तरीके से कैसे सेट किया जाए?मैं एस 3 बाल्टी के लिए नीति कैसे सेट कर सकता हूं जो प्रमाणीकृत उपयोगकर्ताओं को बाल्टी सूचीबद्ध करने या बाल्टी

{ 
    "Id": "Policy-some-number", 
    "Statement": [ 
    { 
     "Sid": "Stmt-some-number", 
     "Action": [ 
     "s3:GetObject", 
     "s3:ListBucket" 
     ], 
     "Effect": "Allow", 
     "Resource": "arn:aws:s3:::my-bucket/*", 
     "Principal": { 
     "AWS": [ 
      "*" 
     ] 
     } 
    } 
    ] 
} 

उत्तर

80

s3:GetObject बाल्टी में वस्तुओं पर लागू होता है तो संसाधन सही है: "Resource": "arn:aws:s3:::my-bucket/*"

s3:ListBucket बाल्टी ही पर लागू होता है और इतने संसाधन होना चाहिए "Resource": "arn:aws:s3:::my-bucket"

अपने जिसके परिणामस्वरूप नीति जैसे लगते हैं चाहिए:

{ 
    "Id": "Policy-some-number", 
    "Statement": [ 
    { 
     "Sid": "Stmt-some-number", 
     "Action": [ 
     "s3:GetObject" 
     ], 
     "Effect": "Allow", 
     "Resource": "arn:aws:s3:::my-bucket/*", 
     "Principal": { 
     "AWS": [ 
      "*" 
     ] 
     } 
    }, 
    { 
     "Sid": "Stmt-some-other-number", 
     "Action": [ 
     "s3:ListBucket" 
     ], 
     "Effect": "Allow", 
     "Resource": "arn:aws:s3:::my-bucket", 
     "Principal": { 
     "AWS": [ 
      "*" 
     ] 
     } 
    } 
    ] 
} 
+1

इसका मतलब आप "S3: GetObject के लिए" अलग "वक्तव्य" का उपयोग करने के लिए है कि करता है और "S3: ListBucket"? – Tjunkie

+3

@Tjunkie हां, क्योंकि 'संसाधन' अलग है। – c4urself

+3

तथ्य गलत है, संसाधन "विलय" हो सकता है, बस [] दोनों को एक सूची के रूप में शामिल करें। – mootmoot

22

बस तारीफ करने के लिए @ c4urself जवाब। उत्तर मेरी समस्या को हल करने में भी मदद करता है, लेकिन एडब्लूएस दस्तावेज़ से कुछ संकेत है, जिसमें आप एक से अधिक संसाधन जोड़ सकते हैं, बस उन्हें सूची बनाने के लिए [] का उपयोग करें। http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html#vpc-endpoints-s3-bucket-policies

{ 
    "Statement": [ 
    { 
     "Sid": "Access-to-specific-bucket-only", 
     "Principal": "*", 
     "Action": [ 
     "s3:ListBucket", 
     "s3:GetObject", 
     "s3:PutObject" 
     ], 
     "Effect": "Allow", 
     "Resource": ["arn:aws:s3:::my_secure_bucket", 
        "arn:aws:s3:::my_secure_bucket/*"] 
    } 
    ] 
} 
+0

क्या भगवान है !!!!!! – aschyiel

संबंधित मुद्दे