उपयोगकर्ता को एडब्ल्यूएस / ईसी 2 सुरक्षा समूहों को संपादित करने की अनुमति देने के लिए आईएएम का उपयोग करें?


16

मैं एक IAM समूह को हमारे EC2 सुरक्षा समूहों को संपादित करने की क्षमता प्रदान करने की कोशिश कर रहा हूं, लेकिन मैं EC2 में सब कुछ का उपयोग किए बिना इस काम को प्राप्त करने में असमर्थ रहा हूं।

मैंने इसके कई संस्करण आज़माए हैं:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1392336685000",
      "Effect": "Allow",
      "Action": [
        "ec2:*"
      ],
      "Resource": [
        "arn:aws:ec2:us-east-1:<MYACCOUNTHERE>:security-group/*"
      ]
    }
  ]
}

लेकिन जब मैं IAM उपयोगकर्ता के साथ लॉगिन करता हूं, तो मुझे सुरक्षा समूह पृष्ठ में एक संदेश मिलता है, जिसमें कहा गया है कि "आप इस ऑपरेशन को करने के लिए अधिकृत नहीं हैं।"

मुझे पता है कि उपयोगकर्ता / समूह काम कर रहा है क्योंकि अगर मैं "अमेज़ॅन ईसी 2 पूर्ण एक्सेस" के लिए आईएएम नीति टेम्पलेट का चयन करता हूं, तो उपयोगकर्ता ईसी 2 में सब कुछ एक्सेस कर सकता है।

मुझे स्पष्ट रूप से IAM के साथ बहुत अनुभव नहीं है, किसी भी मदद की बहुत सराहना की जाएगी।

जवाबों:


13

इस काम के लिए, आपको निम्नलिखित को स्पष्ट रूप से बताना होगा:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1392679134000",
      "Effect": "Allow",
      "Action": [
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:CreateSecurityGroup",
        "ec2:DeleteSecurityGroup",
        "ec2:DescribeInstanceAttribute",
        "ec2:DescribeInstanceStatus",
        "ec2:DescribeInstances",
        "ec2:DescribeNetworkAcls",
        "ec2:DescribeSecurityGroups",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

उपरोक्त JSON नीति मूल रूप से यह बताती है कि उपयोगकर्ता के पास केवल ऊपर तक पहुंच है। उनके पास किसी और चीज की पहुंच नहीं होगी। जिसमें ec2 उदाहरण, S3, IAM, क्लाउडफ्रंट आदि शामिल हैं।


1
यह काम किया। धन्यवाद। उपयोगकर्ता सभी इंस्टेंस डेटा देख सकता है, लेकिन प्रारंभ / रोक / नहीं बना सकता है, इसलिए यह काफी करीब है। क्या आपको लगता है कि यह बताने का कोई तरीका है कि वे किस सुरक्षा समूह तक पहुँच सकते हैं, या क्या मुझे इसे सभी सुरक्षा समूहों के लिए खुला छोड़ने की आवश्यकता है?
क्रिस

@ DevMan14 तो क्या विशिष्ट सुरक्षा समूहों को बताने का कोई तरीका है? जब मैं एक सेकंड की कोशिश करता हूं, तो नीचे जैसा संसाधन काम नहीं करता है और इस कोड के साथ, कोई व्यक्ति
एकस इक्

1
आप देख रहे हैं, तो EC2ResponseError: 403 निषिद्ध त्रुटि है, शीघ्र ही सेट करने के बाद / अपनी नीति को संशोधित करने, टिप्पणी है कि यह एक ले लिया कि कुछ ही मिनटों पहले मेरी नीति में प्रभाव चला गया
storm_m2138

12

यदि आप किसी एकल सुरक्षा समूह में संपादन को सीमित करना चाहते हैं, तो मुझे लगता है कि आपको 2 कथनों की आवश्यकता है, निम्नलिखित मेरे लिए काम करते हैं:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1413232782000",
            "Effect": "Allow",
            "Action": [               
                "ec2:DescribeInstanceAttribute",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeInstances",
                "ec2:DescribeNetworkAcls",
                "ec2:DescribeSecurityGroups"              
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "Stmt1413232782001",
            "Effect": "Allow",
            "Action": [
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",                
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:<accountid>:security-group/sg-<id>"
            ]
        }
    ]
}

वर्णन की आवश्यकता नहीं हो सकती है, लेकिन मेरे मामले में मैं इसे चाहता था, इसलिए इसके बिना परीक्षण नहीं किया गया


1
मैं DescirbeInstance नियमों के बिना SG नियमों को संपादित करने में सक्षम था । उदाहरण के लिए वैश्विक * विकल्प केवल इस प्रकार हैं :"ec2:DescribeNetworkAcls", "ec2:DescribeSecurityGroups"
storm_m2138

1

ऐसा लगता है कि आपके सुरक्षा समूह का उपयोग संभवतः एक उदाहरण या कुछ अन्य EC2 संसाधन द्वारा किया जा रहा है। क्या आप इसे आजमा सकते है:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1392336685000",
      "Effect": "Allow",
      "Action": [
        "ec2:*"
      ],
      "Resource": [
        "arn:aws:ec2:us-east-1:<MYACCOUNTHERE>:instance/*",
        "arn:aws:ec2:us-east-1:<MYACCOUNTHERE>:security-group/*"
      ]
    }
  ]
}

जवाब के लिए धन्यवाद लेकिन वह काम नहीं किया। हां, सुरक्षा समूहों का उपयोग कई उदाहरणों द्वारा किया जा रहा है - क्या इससे कोई फर्क नहीं पड़ता कि वे "EC2 सुरक्षा समूह" हैं और "VPC सुरक्षा समूह" नहीं हैं? - या हो सकता है कि मैं कुछ और गलत कर रहा हूं क्योंकि यह उपयोगकर्ता को इंस्टेंस को देखने की अनुमति नहीं देता है, जो मुझे उम्मीद थी कि यह आधा होगा।
क्रिस

1

मैं एक प्रश्न के उत्तर की तलाश में था जो @ nsij22 ने स्वीकृत उत्तर की टिप्पणियों में पूछा। दुर्भाग्य से, ऐसा लगता है कि संभव नहीं है। आईएएम नीति सिम्युलेटर के अनुसार , @ DevMan14 के उत्तर से केवल निम्नलिखित क्रियाओं का उपयोग विशिष्ट संसाधनों के साथ किया जा सकता है:

  • DeleteSecurityGroup
  • AuthorizeSecurityGroupEgress
  • AuthorizeSecurityGroupIngress
  • RevokeSecurityGroupEgress
  • RevokeSecurityGroupIngress

बाकी सब कुछ के लिए, IAM पॉलिसी सिम्युलेटर कहता है:

यह क्रिया संसाधन-स्तरीय अनुमतियों का समर्थन नहीं करती है। पहुंच प्रदान करने वाली नीतियां संसाधन तत्व में "*" निर्दिष्ट होनी चाहिए।

यह इस तरह दिख रहा है:

स्क्रीनशॉट

सभी "अनुमति" और "इनकार" एक ही हैं, इसलिए मैंने उन्हें ढहा दिया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.