EC3 IAM भूमिका को S3 बाल्टी तक पहुँच दें


10

मेरे पास एक AWS इलास्टिक बीनस्टॉक रेल्स ऐप है जिसे मैं S3 बाल्टी से कुछ फाइलें खींचने के लिए कॉन्फिग स्क्रिप्ट के माध्यम से कॉन्फ़िगर कर रहा हूं। जब मैं आवेदन शुरू करता हूं, तो मुझे लॉग में निम्नलिखित त्रुटि प्राप्त होती रहती है ( सुरक्षा के लिए बाल्टी का नाम बदल दिया गया है ):

Failed to retrieve https://s3.amazonaws.com/my.bucket/bootstrap.sh: HTTP Error 403 : <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message>

विन्यास फाइल:

packages:
  yum:
    git: []

files:
  /opt/elasticbeanstalk/hooks/appdeploy/pre/01a_bootstrap.sh:
    mode: "00755"
    owner: root
    group: root
    source: https://s3.amazonaws.com/my.bucket/bootstrap.sh

इलास्टिक बीनस्टॉक पर्यावरण aws-elasticbeanstalk-ec2-roleIAM भूमिका के साथ सेटअप है क्योंकि यह उदाहरण भूमिका है। इस भूमिका में निम्न नीति है:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:Get*",
        "s3:List*"
      ],
      "Resource": "arn:aws:s3:::my.bucket/*"
    }
  ]
}

और S3 बाल्टी में निम्न नीति है:

{
"Version": "2008-10-17",
"Statement": [
    {
        "Sid": "Stmt1371012493903",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::<account #>:role/aws-elasticbeanstalk-ec2-role"
        },
        "Action": [
            "s3:List*",
            "s3:Get*"
        ],
        "Resource": "arn:aws:s3:::my.bucket/*"
    }
]
}

मुझे अपने S3 बाल्टी में अपने EC2 उदाहरणों को एक्सेस देने के लिए क्या बदलने की आवश्यकता है?

जवाबों:


6

अपने EC2 आग्रह से, आपको अस्थायी मेटाडेटा को भी मेटाडेटा में पुनः प्राप्त करना होगा:

curl http://169.254.169.254/latest/meta-data/iam/security-credentials/<your-iam-role-name>

फिर आप अपने S3 बाल्टी को एक्सेस करने के लिए प्रदान की गई एक्सेस और गुप्त कुंजी का उपयोग करेंगे।


1
जब आप किसी अनुप्रयोग से विशिष्ट भाषा के लिए AWS SDK के माध्यम से ऐसा करते हैं, तो इसकी आंतरिक रूप से SDK द्वारा अस्थायी क्रेडेंशियल्स प्राप्त करने के लिए देखभाल की जाती है और फिर उन्हें विशिष्ट समय अंतराल के आधार पर ताज़ा किया जाता है।
बजे

2
S3 बाल्टी तक पहुंचने के लिए आप एक्सेस और सीक्रेट की का उपयोग कैसे करते हैं? आपके पास कोई उदाहरण है? चीयर्स
Céline Aussourd

0

अगर यह क्रॉस अकाउंट एक्सेस है, तो यह जाँचें कि यह यहाँ वर्णित एसीएल हेडर से संबंधित नहीं है: https://stackoverflow.com/a/34055538/1736679 (इस अंक में अधिक जानकारी: https://github.com/aws/aws -कली / मुद्दे / 1674 )

उस वातावरण / उपयोगकर्ता को भी देखें, जिसमें आप देख रहे हैं कि कोई ओवरराइडिंग कीज़ (1AWS_ACCESS_KEY1, आदि) में नहीं हैं /etc/environmentया नहीं~/.aws/credentials

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