2016-12-06 7 views
5

के बाद कोडडेन में "एक्सेस अस्वीकृत" मैंने ईसी 2 इंस्टेंस पर जेनकिन्स स्थापित किए हैं जो गिटूब में मास्टर शाखा में किए गए परिवर्तनों के दौरान निर्माण करते हैं। एक बार जेनकींस पर निर्माण होने के बाद, यह स्रोत कोड को ज़िप करने और इसे एक विशिष्ट एस 3 बाल्टी में रखने की प्रक्रिया को ट्रिगर करता है। फिर जेनकिंस को कॉन्फ़िगरेशन में पता है कि कोड डिप्लॉयमेंट अनुप्रयोग है और S3 से स्रोत कोड ज़िप प्राप्त करने का प्रयास करने के लिए तैनाती को ट्रिगर करता है, लेकिन यह त्रुटि को अस्वीकार कर देता है। ऐसा लगता है कि आईएएम भूमिका में एस 3 से ज़िप डाउनलोड करने के लिए सही पहुंच और अनुमति नहीं है।एडब्लूएस त्रुटि: जेनकिन्स

मेरा मुद्दा आईएएम भूमिका, जेनकिंस उपयोगकर्ता और आईएएम सेवा भूमिका के साथ इसके संबंध को समझने की कोशिश कर रहा है? मैं अनुमतियां कैसे सेट करूं और इन अनुमतियों को कौन प्राप्त करना चाहिए? कृपया सलाह दें और इसे समझने में मेरी सहायता करें।

उत्तर

5

कोडडिएप सेटअप में आम तौर पर दो परिदृश्य होते हैं ... वह भाग जो तैनाती बनाता है (आमतौर पर आपका सीआई सर्वर/बिल्ड एजेंट) और कोडडिमेंट एजेंट जो लक्ष्य उदाहरण पर चलता है और वास्तविक करता है तैनाती। पहली छमाही अनिवार्य रूप से कोड वितरण पर धक्का दे रही है और दूसरा आधा खींच रहा है ... इस तरह मैं इसे कल्पना करना पसंद करता हूं।

सीआई सर्वर/बिल्ड एजेंटों के लिए, उनके पास अनुमतियों के साथ आईएएम भूमिका होनी चाहिए ... इससे बिल्ड एजेंट को (1) एस 3 बाल्टी तक पहुंचने की अनुमति मिलती है जिसे आपने तैनाती के लिए नामित किया है और (2) CodeDeploy संशोधन बनाने के लिए सेवा, आदि

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:ListAllMyBuckets" 
      ], 
      "Resource": "arn:aws:s3:::*" 
     },  { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:PutObject" 
      ], 
      "Resource": "arn:aws:s3:::YourDeploymentBucket" 
     }, 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "codedeploy:*" 
      ], 
      "Resource": "*" 
     } 
    ] 
} 

लक्ष्य EC2 उदाहरणों पर, वे ... इस CodeDeploy एजेंट सेवा (1) S3 बाल्टी के लिए पहुँच देता है संशोधन खींच सकते हैं और करने के लिए कुछ इस तरह की जरूरत है (2) सभी जेनेरिक कोड-तैनाती बाल्टी तक पहुंच ताकि एजेंट खुद को अपडेट कर सके। बेशक, उन उदाहरणों को अन्य सभी मानदंडों को पूरा करने की आवश्यकता है ... आम तौर पर, उन्हें आईएएम भूमिका की आवश्यकता होती है और कोड तैनाती एजेंट स्थापित करने की आवश्यकता होती है।

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:Get*", 
       "s3:List*" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::YourDeploymentBucket/*", 
       "arn:aws:s3:::aws-codedeploy-us-east-1/*", 
       "arn:aws:s3:::aws-codedeploy-us-west-1/*", 
       "arn:aws:s3:::aws-codedeploy-us-west-2/*", 
       "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", 
       "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", 
       "arn:aws:s3:::aws-codedeploy-ap-south-1/*", 
       "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", 
       "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", 
       "arn:aws:s3:::aws-codedeploy-eu-central-1/*", 
       "arn:aws:s3:::aws-codedeploy-eu-west-1/*", 
       "arn:aws:s3:::aws-codedeploy-sa-east-1/*" 
      ] 
     } 
    ] 
} 

आप इन अनुमति असाइन आप पर निर्भर है ... अगर अपने निर्माण एजेंटों EC2 उदाहरण हैं, यह एक नीति उदाहरण (रों) के साथ जुड़े IAM भूमिका से जुड़ी रूप में इन आवंटित करने के लिए सबसे अच्छा होगा। लक्ष्य परिनियोजन मशीनों के लिए, आप वही करेंगे ... नीति बनाएं और उन उदाहरणों से जुड़े आईएएम भूमिकाओं को असाइन करें जिन्हें आप लक्षित करना चाहते हैं।

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