我正在測試 AWS 和 Elastic Beanstalk,並讓 Beanstalk 運行手動上傳的版本。
當我嘗試透過命令列更新版本時,命令列返回正常,但 Beanstalk 顯示錯誤事件。
[ec2-user@ip-172-31-35-38 ~]$ /usr/bin/aws elasticbeanstalk update-environment --environment-name play-app-test --version-label play-app-1051 --region us-east-1
True play-app play-app-test.elasticbeanstalk.com 2015-09-27T04:05:25.486Z 2015-09-27T06:07:28.031Z .....us-east-1.elb.amazonaws.com e-jk8fyjd3dt play-app-test Grey 64bit Amazon Linux 2015.03 v2.play-app-1051Node.js
TIER WebServer Standard
[ec2-user@ip-172-31-35-38 ~]$
服務:Amazon S3,訊息:您無權執行「s3:ListBucket」操作。驗證您的 S3 政策和 ACL 是否允許您執行這些操作。
到底是誰沒有權限呢?
我在 Beanstalk 環境的健康權限角色aws-elasticbeanstalk-service-role
中附加了一個授予 S3 存取權限的策略(我對將建置上傳到 S3 並在其中執行的使用者使用相同的策略)。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::play-app-builds"
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": "arn:aws:s3:::play-app-builds/*"
}
]
}
Beanstalk 環境伺服器的實例設定檔角色aws-elasticbeanstalk-ec2-role
也附加了上述策略。
我打開了 CloudTrail。它顯示了該UpdateEnvironment
呼叫,但此後不再顯示任何 S3 呼叫。我不確定 CloudTrail 是否顯示失敗的呼叫。
在 S3 中,我開啟了建置儲存桶的日誌記錄,但沒有記錄任何內容。
我缺什麼?
答案1
你是任何人aws iam get-user
(與沒有使用者名稱)說你是。