amazon-web-services - certification - aws console




S3 बाल्टी कार्रवाई किसी भी संसाधन पर लागू नहीं होती है (4)

IAM डॉक्स, http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Action

कुछ सेवाएं आपको व्यक्तिगत संसाधनों के लिए कार्य निर्दिष्ट नहीं करने देतीं; इसके बजाय, आप जिस भी क्रिया या सूचना तत्व में सूचीबद्ध करते हैं, उस सेवा में सभी संसाधनों पर लागू होते हैं। इन मामलों में, आप वाइल्डकार्ड का उपयोग * संसाधन तत्व में करते हैं।

इस जानकारी के साथ, संसाधन में नीचे जैसा मूल्य होना चाहिए:

"Resource": "arn:aws:s3:::surplace-audio/*"

मैं इस उत्तर से निर्देशों का पालन कर रहा हूँ S3 बाल्टी नीति का पालन करें:

{
  "Id": "Policy1495981680273",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1495981517155",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::surplace-audio",
      "Principal": "*"
    }
  ]
}

मुझे निम्नलिखित त्रुटि वापस मिलती है:

कथन में किसी भी संसाधन पर कार्रवाई नहीं होती है

मुझे अपनी नीति से क्या याद आ रही है?


त्रुटि कार्रवाई कथन में किसी भी संसाधन पर लागू नहीं होती है

बस इसका मतलब है कि कार्रवाई (आपने नीति में लिखी है) संसाधन पर लागू नहीं होती है। मैं अपनी बाल्टी को सार्वजनिक करने की कोशिश कर रहा था ताकि कोई भी मेरी बाल्टी से डाउनलोड कर सके। जब तक मैं अपने बयान से ("s3: ListBucket") को हटाता हूं तब तक मुझे त्रुटि हो रही थी।

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"        
      ],
      "Principal": {
        "AWS": "[IAM ARN HERE]"
      },
      "Resource": "arn:aws:s3:::my-bucket-name"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject", 
        "s3:PutObject"
      ],
      "Principal": {
        "AWS": "[IAM ARN HERE]"
      },
      "Resource": "arn:aws:s3:::my-bucket-name/*"
    }
  ]
}

क्योंकि सूची बकेट बाल्टी के अंदर लागू नहीं होती है, इस प्रकार इस क्रिया नीति को हटाकर ठीक काम किया है।


बस इस मुद्दे में भाग गया और उन लोगों के लिए एक छोटा समाधान मिला जो एक ही नीति में ListBucket और GetObject होना चाहते हैं।

{
  "Id": "Policyxxxx961",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmtxxxxx4365",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket",
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": [
          "arn:aws:s3:::bucket-name",
          "arn:aws:s3:::bucket-name/*"
      ],
      "Principal": "*"
    }
  ]
}

मैंने बाल्टी बनाते समय भी इसी तरह के मुद्दे का सामना किया है

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::mrt9949"
            ]
        }
    ]
}

मैंने उपरोक्त कोड को बदल दिया है

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::mrt9949/*"
            ]
        }
    ]
}

अपने बकेट नाम में / * जोड़ें यह समस्या को हल करेगा

यहाँ मेरे बकेट का नाम mrt9949 है





amazon-s3