Ich teste AWS und Elastic Beanstalk und lasse auf Beanstalk eine manuell hochgeladene Version laufen.
Wenn ich versuche, die Version über die Befehlszeile zu aktualisieren, gibt die Befehlszeile „OK“ zurück, aber Beanstalk zeigt ein Fehlerereignis an.
[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 ~]$
Service:Amazon S3, Meldung: Sie haben keine Berechtigung, die Aktion „s3:ListBucket“ auszuführen. Überprüfen Sie, ob Ihre S3-Richtlinien und Ihre ACLs das Ausführen dieser Aktionen zulassen.
Wer genau hat keine Berechtigung?
Ich habe der Integritätsberechtigungsrolle meiner Beanstalk-Umgebung aws-elasticbeanstalk-service-role
eine Richtlinie zugeordnet, die den Zugriff auf S3 gewährt (ich verwende die gleiche Richtlinie für den Benutzer, der den Build auf S3 hochgeladen hat, und dort hat es funktioniert).
{
"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/*"
}
]
}
Die Instanzprofilrolle des Beanstalk-Umgebungsservers ist, aws-elasticbeanstalk-ec2-role
an die auch die oben genannte Richtlinie angehängt ist.
Ich habe CloudTrail eingeschaltet. Es zeigt den UpdateEnvironment
Anruf an, aber danach keine S3-Anrufe mehr. Ich bin nicht sicher, ob CloudTrail fehlgeschlagene Anrufe anzeigt oder nicht.
In S3 habe ich die Protokollierung für den Build-Bucket aktiviert, aber es wurde nichts protokolliert.
Was vermisse ich?
Antwort1
Du bist, wer auch immer aws iam get-user
(mitkein Benutzername) sagt, dass Sie es sind.