2015-04-06 7 views
5

Welche S3-Berechtigungen sind zum Bereitstellen einer Elastic Beanstalk-App mit CodeShip geeignet? Wenn eine neue Version einer tomcat App bereitstellen erhalte ich diese Fehler:Was sind angemessene S3-Berechtigungen für die Bereitstellung von Elastic Beanstalk aus CodeShip?

Service: Amazon S3, Nachricht: Sie haben keine Berechtigung, die 's3: ListBucket' auszuführen Aktion. Stellen Sie sicher, dass Sie mit Ihren S3-Richtlinien und Ihren ACLs diese Aktionen ausführen können.

Dienst: Amazon S3, Nachricht: Sie haben keine Berechtigung, die 's3: GetObject' oder 's3: ListBucket' Aktion durchzuführen. Stellen Sie sicher, dass Ihre S3-Richtlinien und Ihre ACLs es Ihnen ermöglichen, diese Aktionen auszuführen.

Wenn ich den CodeShip Benutzer vollen Zugriff auf S3 geben, funktioniert alles, aber das ist nicht ideal. Die aktuellen S3-Berechtigungen für meine CodeShip Benutzer sind

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:PutObject", 
       "s3:PutObjectAcl", 
       "s3:GetObject", 
       "s3:GetObjectAcl", 
       "s3:ListBucket", 
       "s3:DeleteObject", 
       "s3:GetBucketPolicy" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::codeshipbucket/*" 
      ] 
     } 
    ] 
} 

Mein S3 Eimer I CodeShip ist ein Unterordner unter codeshipbucket gegeben haben, wenn es darauf ankommt.

Was sind die entsprechenden Berechtigungen?

Antwort

2

In unserem internen Test haben wir nur mit den folgenden S3-Berechtigungen

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:PutObject" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::YOUR_S3_BUCKET_NAME/*" 
      ] 
     } 
    ] 
} 

Und dies ist die Bereitstellung der Lage, ElasticBeanstalk, was wir zur Verfügung empfehlen in unserer Dokumentation zur Zeit bei https://codeship.com/documentation/continuous-deployment/deployment-to-elastic-beanstalk/#s3

Das heißt, Einer unserer großartigen Benutzer hat eine sehr ausführliche Anleitung zur Bereitstellung in Elastic Beanstalk veröffentlicht, die unter http://nudaygames.squarespace.com/blog/2014/5/26/deploying-to-elastic-beanstalk-from-your-continuous-integration-system verfügbar ist und eine größere Auswahl an S3-Berechtigungen empfiehlt.

Haftungsausschluss: Ich arbeite für Codeship, aber Sie haben es wahrscheinlich schon aus meiner Antwort erraten. Dies sind die S3-Berechtigungen mussten wir die IAM-Benutzer geben wir mit Codeship verwenden

+0

Ich hatte das gleiche Problem wie der Autor dieser Frage und fand die Lösung hier: http://StackOverflow.com/A/24572049/121515. Beachten Sie, dass das Hochladen auf S3 mit den oben beschriebenen S3-Berechtigungen problemlos funktioniert, die Bereitstellung der neuen Version jedoch nicht. Codeship meldet außerdem die Bereitstellung als erfolgreich, obwohl Fehler in der AWS EB-Konsole angezeigt werden. –

2

:

{ 
     "Action": [ 
      "s3:CreateBucket", 
      "s3:GetObject" 
     ], 
     "Effect": "Allow", 
     "Resource": "*" 
    }, 
    { 
     "Action": [ 
      "s3:ListBucket", 
      "s3:GetObjectAcl", 
      "s3:GetBucketPolicy", 
      "s3:DeleteObject", 
      "s3:PutObject", 
      "s3:PutObjectAcl" 
     ], 
     "Effect": "Allow", 
     "Resource": [ 
      "arn:aws:s3:::elasticbeanstalk-[region]-[account-id]", 
      "arn:aws:s3:::elasticbeanstalk-[region]-[account-id]/*" 
     ] 
    } 

Wir ausgeführt eb deploy --debug und hinzugefügt, um die Berechtigungen one-by-one.