2017-02-15 41 views
0

我遇到了使用IAM角色的問題。無法使用IAM加載憑據

我使用Cloudformation模板啓動了實例,其中我指定了我的角色和策略來訪問s3存儲桶和其他亞馬遜資源。啓動腳本成功從s3中獲取所需資源。

但是我已經啓動了下載的腳本,它使用boto3作爲sdk,並且出現錯誤; Boto failed to load credentials(我的理解可以從AWS憑證文件或IAM角色加載憑證。

然後我跑aws s3 ls檢查問題,也得到了同樣的問題。此外,我測試了使用我的角色policysimS3ListAllMyBucketsnotS3ListAllMyBucketsnot)並想通了,一切都正常。

Amazon S3ListBucketnot required * allowed 1 matching statements. Amazon S3ListAllMyBucketsnot required * allowed 1 matching statements.

應當指出的是,我周圍cloudformation了整整一天打,並推出非常必須的情況下(但關機他們)。難道是一個限制的問題?

任何解決方案?

+0

你有環境變量'AWS_ACCESS_KEY_ID'和'AWS_SECRET_ACCESS_KEY'集?檢查我的答案:http://stackoverflow.com/questions/41621353/new-iam-admin-user-sees-you-are-not-authorized-to-perform-this-operation/41621987#41621987 – helloV

回答

2

要確認的作用是提供正確的憑據到Amazon EC2實例,實例上運行此命令:

curl http://169.254.169.254/latest/meta-data/iam/security-credentials/ 

它應該顯示分配給該實例的角色的名稱。

那就試試這個,將角色名:

curl http://169.254.169.254/latest/meta-data/iam/security-credentials/<ROLE-NAME>/ 

你應該與此類似臨時憑證提交:

{ 
    "Code" : "Success", 
    "LastUpdated" : "2017-04-26T16:39:16Z", 
    "Type" : "AWS-HMAC", 
    "AccessKeyId" : "AKIAIOSFODNN7EXAMPLE", 
    "SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", 
    "Token" : "token", 
    "Expiration" : "2017-04-27T22:39:16Z" 
} 

如果是這樣,那麼boto將能夠自動訪問這些證書。

每當有什麼奇怪的事發生在boto上時,確保它被更新到最新版本總是一個好主意。此更新博託,bot​​o3和AWS Command-Line Interface (CLI)

sudo /usr/local/bin/pip install boto --upgrade 
sudo /usr/local/bin/pip install boto3 --upgrade 
sudo /usr/local/bin/pip install awscli --upgrade