2012-01-31 19 views
9

मैं एक IAM उपयोगकर्ता के लिए एक बुनियादी अनुमति सेट यह पता लगाने की कोशिश कर रहा हूँ के लिए बुनियादी एडब्ल्यूएस IAM अनुमतियाँ/कुंजी केवल S3 में एक भी बाल्टी की पहुंच है करने के लिए - केवल एक व्यक्ति बाल्टी पर पढ़ें/लिखें पहुंच ।एक S3 बाल्टी

इस काम करने के लिए अनुमति का क्या सेट के लिए आवश्यक न्यूनतम है? मेरे पास S3 के लिए आईएएम नीति जनरेटर में चुने गए सभी विकल्प हैं, CreateBucket और DeleteBucket को छोड़कर बाल्टी पर सक्षम सभी अनुमतियां। मैंने इस उपयोगकर्ता के लिए विशिष्ट कुंजी का एक सेट भी बनाया है।

जब मैं इन क्रेडेंशियल के साथ बाल्टी तक पहुँचने का प्रयास, मैं बाल्टी सूची है, भले ही ListAllMyBuckets संपत्ति सक्षम किया गया है एक समस्या मिलता है।

कोई भी किसी भी इस तरह की एक बुनियादी बाल्टी config की स्थापना अनुभव है? लगता है जैसे यह बहुत आम हो जाएगा ...

+1

क्यों आप पहली जगह में बाल्टी सूची करना चाहते हैं जब IAM उपयोगकर्ता केवल S3_ में आने के लिये एक बाल्टी का उपयोग करने की अपेक्षा की जाती है? –

+1

यदि आप बाल्टी नाम रिकॉर्ड नहीं करते हैं तो उपयोगकर्ता तक पहुंच है, तो ListAllMyBuckets ठीक है - तो कोड यह पता लगा सकता है कि उपयोगकर्ता वास्तव में कौन सी बाल्टी चला सकता है। यह 'कैसे निजी' आप बाल्टी नाम होना चाहते हैं पर निर्भर करता है। लेकिन चूंकि बाल्टी नाम मूल रूप से सार्वजनिक डोमेन में हैं (आप किसी भी बाल्टी नाम का उपयोग करने के लिए पता लगाने के लिए अमेज़ॅन पिंग कर सकते हैं), केवल 'यादृच्छिक स्ट्रिंग' बाल्टी नाम निजी के करीब कहीं भी हैं, और यहां तक ​​कि यह बेड़े के रूप में भी है, क्योंकि बाल्टी नाम जाना जाता है उत्पन्न प्रत्येक यूआरएल, आदि –

+0

स्टीफन के साथ बाहर, मैं ListAllBuckets करने के लिए खाते _want_ नहीं है, लेकिन यह perms मैं चाहता हूँ के साथ काम नहीं कर रहा है, इसलिए मैं उत्तरोत्तर अधिक अनुमतियों को सक्षम करने कर रहा हूँ वहाँ पहुँच के कुछ उच्च स्तर इनकार चल रहा है यह देखने के लिए पर... – colemanm

उत्तर

12

समान या तुम्हारा से संबंधित Example Policies for Amazon S3 कवर विभिन्न उपयोग के मामलों - विशेष रूप से आप शायद उदाहरण 1 गठबंधन करने के लिए चाहते हो सकता है: के साथ एक उपयोगकर्ता अमेज़न में एक घर निर्देशिका करने दें S3उदाहरण 2: किसी उपयोगकर्ता को कॉरपोरेट बाल्टी में अपनी होम निर्देशिका में केवल ऑब्जेक्ट्स सूचीबद्ध करने की अनुमति दें - आपको Resource को अपनी बाल्टी रूट निर्देशिका को लक्षित करने के लिए केवल /home/bob/* को * के साथ प्रतिस्थापित करने की आवश्यकता होगी।

कृपया ध्यान दें कि उदाहरण 2 की सुविधा ListBucket है, जो एक operation on a bucket कि बाल्टी में कुछ आइटम के बारे में रिटर्न जानकारी है, जबकि ListAllMyBuckets एक operation on the service कि के प्रेषक के स्वामित्व वाली सभी बाल्टी की सूची लौटाता है अनुरोध, इसलिए संभवतः आपके उपयोग के मामले पर लागू नहीं है (बाद के स्पष्टीकरण के बारे में मेरी टिप्पणी देखें)।

0

यह मानते हुए कि आप इसे कहीं और इस बात का खंडन नहीं कर रहे हैं सभी बाल्टी सूचीबद्ध करने, होगा (मैं 99% यकीन है कि बयान से इनकार कर रहा हूँ पहले मूल्यांकन किया जाता है; आदेश IAM नीतियों के साथ कोई फर्क नहीं पड़ता):

{ 
     "Effect": "Allow", 
     "Action": [ 
      "s3:ListAllMyBuckets" 
     ], 
     "Resource": "*" 
    } 

परमिट आप जो कुछ भी चाहते हैं अपने बाल्टी के लिए (भूल मत/* भी):

{ 
     "Effect": "Allow", 
     "Action": [ 
      "s3:<Put your actions here; cherry pick from the AWS documentation>" 
     ], 
     "Resource": [ 
      "arn:aws:s3:::<Bucket name here>", 
      "arn:aws:s3:::<Bucket name here>/*" 
     ] 
    } 
संबंधित मुद्दे