2014-06-25 4 views
8

मैं IAM भूमिकाओं का उपयोग करके ansible के माध्यम से EC2 उदाहरण बनाने के लिए कोशिश कर रहा हूँ, लेकिन मैं जबकि नया उदाहरण शुरू करने मैं त्रुटिएडब्ल्यूएस EC2 उदाहरण UnauthorizedOperation instance_profile_name Ansible IAM भूमिकाओं के माध्यम से बनाने: त्रुटि

failed: [localhost] => (item= IAMRole-1) => {"failed": true, "item": " IAMRole-1"} 
msg: Instance creation failed => UnauthorizedOperation: You are not authorized to perform 
this operation. Encoded authorization failure message: Ckcjt2GD81D5dlF6XakTSDypnwrgeQb0k 
ouRMKh3Ol1jue553EZ7OXPt6fk1Q1-4HM-tLNPCkiX7ZgJWXYGSjHg2xP1A9LR7KBiXYeCtFKEQIC 
W9cot3KAKPVcNXkHLrhREMfiT5KYEtrsA2A-xFCdvqwM2hNTNf7Y6VGe0Z48EDIyO5p5DxdNFsaSChUcb 
iRUhSyRXIGWr_ZKkGM9GoyoVWCBk3Ni2Td7zkZ1EfAIeRJobiOnYXKE6Q 

iam भूमिका जबकि मिल पूर्ण EC2 पहुँच गया है , निम्नलिखित नीति के साथ

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Action": "ec2:*", 
     "Effect": "Allow", 
     "Resource": "*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": "elasticloadbalancing:*", 
     "Resource": "*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": "cloudwatch:*", 
     "Resource": "*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": "autoscaling:*", 
     "Resource": "*" 
    } 
    ] 
} 

कोई सुझाव दें।

उत्तर

10

समस्या यहाँ IAM Role for Amazon EC2 के साथ ही नहीं है, बल्कि यह है कि आप (यानी AWS क्रेडेंशियल तुम अपने आप उपयोग कर रहे हैं) iam:PassRole अनुमति है कि शुरुआत पर एक अनुरोध किया EC2 उदाहरण के लिए 'पास' उस भूमिका के लिए आवश्यक है की कमी करने लगते हैं, जानकारी के लिए Granting Applications that Run on Amazon EC2 Instances Access to AWS Resources भीतर अमेज़न EC2 साथ भूमिकाओं का उपयोग के लिए खंड देखें अनुमतियां आवश्यक:

एक भूमिका के साथ एक उदाहरण लॉन्च करने के लिए, डेवलपर IAM भूमिकाओं पारित करने के लिए अमेज़न EC2 उदाहरणों शुरू करने के लिए अनुमति और अनुमति होनी चाहिए।

निम्न नमूना नीति उन एडब्ल्यूएस प्रबंधन कंसोल का उपयोग करने के लिए एक भूमिका के साथ एक उदाहरण शुरू करने के लिए अनुमति देता है। नीति के लिए एक उपयोगकर्ता किसी भी भूमिका गुजरती हैं और एक तारांकित (*) को निर्दिष्ट करके सभी अमेज़न EC2 कार्रवाई करने के लिए अनुमति देता है। ListInstanceProfiles एक्शन उपयोगकर्ताओं को 0Wएडब्ल्यूएस खाते पर उपलब्ध भूमिकाओं को देखने की अनुमति देता है।

उदाहरण नीति है कि अमेज़न EC2 सांत्वना

{ 
    "Version": "2012-10-17", 
    "Statement": [{ 
    "Effect": "Allow", 
    "Action": [ 
     "iam:PassRole", 
     "iam:ListInstanceProfiles", 
     "ec2:*" 
    ], 
    "Resource": "*" 
    }] 
} 

PassRole अनुमति के माध्यम से इस अविवेक की आवश्यकता होती है के लिए कारण का उपयोग करके किसी भी भूमिका के साथ एक उदाहरण शुरू करने के लिए एक उपयोगकर्ता की अनुमति देता करने की क्षमता है उपयोगकर्ता एक अमेज़ॅन ईसी 2 उदाहरण को पास कर सकता है जब उपयोगकर्ता उदाहरण:

यह अनुप्रयोगों अधिक अनुमतियों से उपयोगकर्ता दी गई है कि किया गया है, से ऊंचा विशेषाधिकार प्राप्त करने के लिए सक्षम किया जा रहा है कि चलने से उपयोगकर्ता को रोकने में मदद करता है। उदाहरण के लिए, मान लें कि उपयोगकर्ता ऐलिस अमेज़न EC2 उदाहरणों का शुभारंभ और अमेज़न S3 बाल्टी के साथ काम करने के लिए के लिए एक ही अनुमतियाँ है, लेकिन भूमिका एक अमेज़न EC2 उदाहरण के लिए वह गुजरता IAM और DynamoDB के साथ काम करने के लिए अनुमति नहीं है। उस मामले में, ऐलिस उदाहरण शुरू करने के लिए, यह में प्रवेश करें, अस्थायी सुरक्षा क्रेडेंशियल मिलता है, और फिर IAM या DynamoDB कार्यों कि वह के लिए अधिकृत नहीं है प्रदर्शन कर सकता है।

आप एक अधिक विस्तृत विवरण है, जो भी माइक पोप की अच्छा लेख के बारे में Granting Permission to Launch EC2 Instances with IAM Roles (PassRole Permission) है, जो देखने का एक एडब्ल्यूएस बिंदु से विषय बताते हैं के लिए लिंक के लिए How to specify an IAM role for an Amazon EC2 instance being launched via the AWS CLI? करने के लिए अपने जवाब को पढ़ने के लिए चाहते हो सकता है।

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