2014-10-29 10 views
8

मैंने अमेज़ॅन कॉग्निटो पहचान पूल के तहत एक अनधिकृत भूमिका स्थापित की है। मेरा लक्ष्य यह है कि मेरे मोबाइल ऐप के अतिथि उपयोगकर्ता मेरे एस 3 बाल्टी में डिबगिंग लॉग (छोटी टेक्स्ट फाइल) अपलोड करने में सक्षम होंगे, इसलिए मैं समस्याओं का निवारण कर सकता हूं। मुझे लगता है कि अगर मैं अपनी एस 3 बाल्टी अनुमति को संशोधित नहीं करता हूं तो मुझे एस 3 से "एक्सेस अस्वीकृत" मिलेगा। यदि मैं "हर कोई" को "अपलोड/हटाएं" विशेषाधिकार प्राप्त करने की अनुमति देता हूं, तो फ़ाइल अपलोड सफल हुआ। मेरी चिंता यह है कि कोई मेरी बाल्टी में बड़ी फाइलें अपलोड करने और सुरक्षा समस्या का कारण बनने में सक्षम होगा। ऊपर की मेरी आवश्यकता के लिए सिफारिश विन्यास क्या है? मैं एस 3 और कॉग्निटो के लिए नौसिखिया हूँ।अवांछित कॉग्निटो भूमिका उपयोगकर्ता के लिए अमेज़ॅन एस 3 बाल्टी अनुमति उपयोगकर्ता

मैं आईओएस के लिए अमेज़ॅन एडब्ल्यूएस एसडीके का उपयोग कर रहा हूं लेकिन मुझे लगता है कि यह सवाल मंच तटस्थ है।

संपादित करें: इस प्रकार मेरे नीति है:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": "iam:GetUser", 
     "Resource": "*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": [ 
     "s3:ListAllMyBuckets" 
     ], 
     "Resource": "*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": [ 
     "s3:CreateBucket", 
     "s3:DeleteBucket", 
     "s3:DeleteObject", 
     "s3:GetBucketLocation", 
     "s3:GetObject", 
     "s3:ListBucket", 
     "s3:PutObject" 
     ], 
     "Resource": ["arn:aws:s3:::import-to-ec2-*", "arn:aws:s3:::<my bucket name>/*"] 
    } 
    ] 
} 

उत्तर

3

आप S3 बाल्टी अनुमति, बल्कि IAM अपनी पहचान पूल के साथ जुड़े भूमिका को संशोधित करने की जरूरत नहीं है। निम्न का प्रयास करें:

  1. IAM console पर जाएं।
  2. अपने पहचान पूल से जुड़े भूमिका को खोजें। { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:PutObject"], "Resource": ["arn:aws:s3:::MYBUCKET/*"] } ] }
  3. अपने बाल्टी नाम
  4. पहुँच आपके आवेदन iOS SDK और cognito

आप कर सकते हैं का उपयोग से सामान्य तौर पर अपने बाल्टी के साथ MYBUCKET बदलें:

  • एक नीति में अपनी भूमिका के लिए निम्न के समान संलग्न अपने उपयोगकर्ताओं को विभाजित करने के लिए ${cognito-identity.amazonaws.com:sub} समेत सीमित अनुमतियों पर विचार करना चाहते हैं, लेकिन उपरोक्त नीति आपको प्रारंभ कर देगी।

  • +0

    { "संस्करण": "2012-10-17", "वक्तव्य": [ { "प्रभाव": "अनुमति दें", "कार्रवाई": "iam: GetUser", "संसाधन": "*" }, { "प्रभाव": "अनुमति दें", "कार्रवाई" [ "S3: ListAllMyBuckets" ], "संसाधन": "*" }, { "प्रभाव": "अनुमति दें", "कार्रवाई": [ "S3: CreateBucket", "S3: DeleteBucket", "S3: DeleteObject", "S3: GetBucketLocation", "S3: GetObject", "S3: ListBucket", "S3: PutObject" ], "संसाधन": ["arn: aws: s3 ::: import-to-ec2- *", "arn: aws: s3 ::: /*"] } ] } –

    +0

    उपरोक्त मेरी नीति है लेकिन फ़ाइल अपलोड अभी भी विफल रहा है। –

    +0

    यदि आप AWSCognitoCredentialsProvider का उपयोग कर रहे हैं, तो यह उपयोग किए गए प्रमाण-पत्रों को कैश करता है। यह सुनिश्चित करने के लिए कि आप अपने क्रेडेंशियल नई नीति को प्रतिबिंबित करते हैं, आप ताज़ा कर सकते हैं। यदि आपको अभी भी समस्याएं आ रही हैं, तो कृपया कोड के साथ-साथ आपको प्राप्त होने वाली विशिष्ट त्रुटि भी शामिल करें ताकि हम इस मुद्दे का निदान करने में बेहतर सहायता कर सकें। –

    0

    उपर्युक्त उत्तर 2015 तक अधूरा है, आपको बाल्टी को लिखने की भूमिका को अधिकृत करने के लिए एस 3 में दोनों भूमिका और बाल्टी राजनीति को अधिकृत करने की आवश्यकता है। एस 3 का प्रयोग करें: दोनों मामलों में PutObject। कंसोल में दोनों मामलों के लिए विज़ार्ड हैं

    +0

    2017 की स्थिति के रूप में मुझे बाल्टी नीति को बिल्कुल बदलना नहीं था। आईएएम भूमिका के माध्यम से एस 3 अधिकारों को स्थापित करना पर्याप्त था। –

    +0

    @ वोल्कररोस एडब्ल्यूएस ने वेरिज़ोन हैक के बाद अपने एस 3 बाल्टी नीति तर्क को बदल दिया। आपको इसके बारे में एक अधिसूचना प्राप्त होनी चाहिए थी। हाँ तुम सही हो। – einarc

    1

    जैसा कि @einarc ने कहा (अभी तक टिप्पणी नहीं कर सकता), इसे काम करने के लिए मुझे भूमिका और बाल्टी नीति संपादित करना था।इस परीक्षण के लिए काफी अच्छा है:

    बाल्टी नीति:

    { 
        "Id": "Policy1500742753994", 
        "Version": "2012-10-17", 
        "Statement": [ 
        { 
         "Sid": "Stmt1500742752148", 
         "Action": "s3:*", 
         "Effect": "Allow", 
         "Resource": "arn:aws:s3:::admin1.user1", 
         "Principal": "*" 
        } 
        ] 
    } 
    

    प्रमाणीकृत भूमिका की नीति:

    { 
        "Version": "2012-10-17", 
        "Statement": [ 
         { 
          "Effect": "Allow", 
          "Action": [ 
           "s3:*" 
          ], 
          "Resource": [ 
           "arn:aws:s3:::*" 
          ] 
         } 
        ] 
    } 
    
    संबंधित मुद्दे