AWS S3 für WordPress Teil 2/2

Wir haben in einem vorherigen Post den AWS S3 Bucket konfiguriert (klick)

Zum auslagern der statischen Inhalte habe ich das Plugin „Offload Media“ verwendet.
Nachdem das Plugin Installiert ist, haben wir mehrere möglichkeiten den AWS S3 Bucket einzubinden.
Eine Möglichkeit (meine bevorzugte!!) wäre über IAM Rollen. Dies funktioniert aber nur wenn der Webserver auch in AWS läuft.
Zuerst ergänzen wir in der wp-config.php folgenden Eintrag

define( 'AS3CF_AWS_USE_EC2_IAM_ROLE', true );

Damit sagen wir dem Plugin, wie wir uns gegen den Bucket authentifizieren um inhalte zu SCHREIBEN.
Wir starten das IAM Dashboard

alt

Klicken links auf „Policies“ und auf „Create Policy“

alt

Wir klicken auf den Reitter „JSON“ und fügen das JSON Script ein.

alt

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:CreateBucket",
"s3:DeleteObject",
"s3:Put*",
"s3:Get*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::<<BUCKETNAME>>",
"arn:aws:s3:::<<BUCKETNAME>>/*"
]
}
]
}

Wir geben der Policy einen Namen.

alt

Als nächsten legen wir eine IAM Rolle an.
Wir klicken auf „Roles“, „Create role“

alt

Wir wählen „AWS services“ und „EC2“ aus.

alt

Wir suchen nach der vorher erstellten policy und wählen diese aus.

alt

Nun geben wir der Rolle einen namen.

alt

Wir wechseln ins EC2 Dashboard, wählen unseren Webserver aus, klicken auf „Actions“ – „Instance Settings“ – „Attach/Replace IAM Role“

alt

Wir wählen die eben gewählte IAM Rolle aus und klicken „save“.

alt

Nun wechseln wir zu WordPress in die Einstellungen von Offload Media.
Wir wählen als erstes aus, wie wir uns authentifizieren wollen. Hier „My server is on Amazon Web Services…“
Dieser Wert wird automatisch ausgewählt, wenn wir den oben genannten Code in die wp-config.php eintragen.

alt

Wir geben unseren Bucket Namen ein und klicken „Save Bucket Settings“

alt

In den Einstellungen aktivieren wir „Force HTTPS“ und klicken auf „Save Changes“

alt