2014-10-13 11 views
5

को प्रभावित किए बिना आईपी द्वारा S3 बाल्टी पर पहुंच प्रतिबंधित मैं एडब्ल्यूएस पर निम्नलिखित उपयोग के मामले है:IAM साख

  • एक बाल्टी जो प्रयोग किया जाता है "मेजबान" AngularJS में बनाया गया एक केवल-आंतरिक वेब ऐप्लिकेशन में
  • एक ऑटो स्केलिंग समूह में सर्वरों का एक पूल जो बाल्टी

बाल्टी सामग्री को केवल आंतरिक रूप से सेवा प्रदान करने के लिए, मैंने निम्नलिखित बाल्टी नीति का उपयोग किया है जो हमारे स्थिर आईपी तक पहुंच प्रतिबंधित करता है :

{ 
    "Statement": [ 
     { 
      "Effect": "Deny", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:*", 
      "Resource": "arn:aws:s3:::mybucket.myhost.com/*", 
      "Condition": { 
       "NotIpAddress": { 
        "aws:SourceIp": [ 
         "x.x.x.x/32" 
        ] 
       } 
      } 
     } 
    ] 
} 

यह हमारे कार्यालय के बाहर किसी भी व्यक्ति को HTTP पर बाल्टी तक पहुंचने से रोकने में पूरी तरह से काम करता है। उत्तम।

हालांकि, ऑटो स्केलिंग समूह (जिसमें आईएएम भूमिकाओं का उपयोग करके बाल्टी पर पूर्ण अनुमति है) में सर्वर बाल्टी तक नहीं पहुंच सकते हैं। ऐसा लगता है कि एस 3 बाल्टी नीति प्राथमिकता लेती है। मैं अपने आईपी को बाल्टी नीति में नहीं जोड़ सकता क्योंकि यह एक स्केलिंग समूह है और उनके आईपी नियमित आधार पर बदल जाएंगे।

मैं कुछ समाधान की कोशिश की लेकिन कोई खुशी मिली है:

  • एक princple एक तरह से एक अनुमति देने के लिए की तलाश में
  • कोशिश के रूप में मेरे IAM भूमिका के ARN साथ "अनुमति दें" के साथ एक दूसरे बयान को निर्दिष्ट करना EC2 सुरक्षा समूह पूरा उपयोग लेकिन विकल्प
  • तरीके IAM भूमिकाओं बनाने के लिए की तलाश में प्रयास नहीं मिल सकता है बाल्टी नीतियों पर पूर्वता

मैं सरल होना चाहिए इस तरह लग रहा है, लेकिन मैं getti हूँ एनजी अब निराश :(

उत्तर

2

मुझे एहसास हुआ कि मेरी बाल्टी में सभी वस्तुओं को सार्वजनिक पढ़ने एसीएल था। मैंने जनता को एसीएल पढ़ा ताकि ऑब्जेक्ट को "इनकार" करने के लिए डिफॉल्ट किया जा सके। मैं तब हमारे कार्यालय आईपी और हमारे ऑटो स्केलिंग ईसी 2 सर्वर तक पहुंचने की अनुमति देने के लिए इस तरह की नीति का उपयोग करने में सक्षम था, जिसे उनकी आईएएम भूमिका द्वारा पहचाना जाता है:

{ 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:*", 
      "Resource": "arn:aws:s3:::mybucket.myhost.com/*", 
      "Condition": { 
       "IpAddress": { 
        "aws:SourceIp": [ 
         "x.x.x.x/32" 
        ] 
       } 
      } 
     }, 
     { 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "arn:aws:iam::xxxxxxxxxxxx:role/xxxxxx" 
      }, 
      "Action": "s3:*", 
      "Resource": "arn:aws:s3:::mybucket.myhost.com/*" 
     } 
    ] 
} 
संबंधित मुद्दे