AWS と Elastic Beanstalk をテストしており、手動でアップロードされたバージョンの Beanstalk を実行しています。
コマンドライン経由でバージョンを更新しようとすると、コマンドラインは OK を返しますが、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
であっても(ユーザー名なし)はそう言っています。