# Amazon S3 tárhely

> Az Amazon S3 beállítása mentéstárhelynek: kulcsok, bucket, IAM-jogosultságok, a legbiztonságosabb kialakítás és az S3 Enhanced.

Az UpdraftPlus az Amazon S3-ba is el tudja küldeni a mentéseidet. Az ingyenes kiadásban is elérhető. Az alábbi beállítások más S3-kompatibilis szolgáltatóknál is hasonlók.

## A tárhely felvétele

1. Nyisd meg az **UpdraftPlus** oldal **Beállítások** fülét.
2. A **Válaszd ki a távoli tárhely helyszínét** résznél kattints az **Amazon S3** ikonra.
3. Add meg az adatokat az Amazon S3 szakaszban (lásd lent).
4. Kattints a **Módosítások mentése** gombra, majd az **Amazon S3 beállítások tesztelése** gombra.

![Az Amazon S3 beállításai a Beállítások fülön](./kepek/tarhelyek-amazon-s3.webp)

*Az Amazon S3 beállításai a Beállítások fülön* (https://minta-bolt.hu/wp-admin/options-general.php?page=updraftplus&tab=settings)

A képen a hozzáférési kulcs, a titkos kulcs, a helyszín, a tárolási osztály és a szerveroldali titkosítás mezői látszanak.

| Beállítás | Mit csinál |
|---|---|
| **Az ütemezett biztonsági mentések küldése erre a célhelyre** | Megadja, hogy az ütemezett mentések közül melyiket küldje ide. Alapérték: minden biztonsági mentéskor. |
| **Amazon S3 hozzáférési kulcs** | Az AWS-fiókból (vagy IAM-felhasználóból) származó hozzáférési kulcs. |
| **Amazon S3 titkos kulcs** | A hozzá tartozó titkos kulcs. |
| **Amazon S3 helyszín** | A bucket neve, opcionálisan egy elérési úttal. Ha a bucket még nem létezik, az UpdraftPlus létrehozza. |
| **Tárolási osztály** | Az S3 tárolási osztálya. Alapérték: **Normál**. |
| **Szerveroldali titkosítás** | Az S3 oldali titkosítás bekapcsolása. |

Az **Amazon S3 helyszín** mezőbe csak a bucket nevét kell írnod. A bucket nevének az összes Amazon S3-felhasználó között egyedinek kell lennie, és betűkből, számokból állhat.

Ha több fiókot szeretnél használni, a **Másik Amazon S3 fiók hozzáadása…** hivatkozás újabb szakaszt nyit.

## Jogosultságok az S3-ban

Ha az AWS-fiókod fő (root) hozzáférési és titkos kulcsát adod meg, nem kell jogosultságot beállítanod, mert ezek mindenhez hozzáférnek a fiókban. Ha nem akarsz a legbiztonságosabb kialakítással foglalkozni, itt abbahagyhatod.

Ha külön IAM-felhasználót hoztál létre saját kulcsokkal, akkor neki megfelelő jogosultságot kell adnod:

1. Az AWS-vezérlőpulton nyisd meg az IAM szolgáltatás **Users** (felhasználók) részét.
2. Válaszd ki a használni kívánt felhasználót.
3. A **Permissions** (jogosultságok) fülön kattints az **Add permissions** gombra.
4. Válaszd az **Attach existing policies directly** lehetőséget, majd a **Create policy** gombot (új lapon nyílik).
5. A **JSON** fülön cseréld le a tartalmat a saját szabályzatodra (lásd lent), majd kattints a **Review policy** gombra.
6. Nevezd el a szabályzatot, és hozd létre.
7. Az IAM jogosultság-ablakban keresd meg az új szabályzatot, jelöld ki, kattints a **Review**, majd az **Add permissions** gombra.

Ha a felhasználód neve „myuser”, a bucketé „mybucket”, akkor az alábbi szabályzat elég ahhoz, hogy az UpdraftPlus csak ezt a bucketet elérje, és semmi mást:

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketLocation",
        "s3:ListBucketMultipartUploads"
      ],
      "Resource": "arn:aws:s3:::mybucket",
      "Condition": {}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:AbortMultipartUpload",
        "s3:DeleteObject",
        "s3:DeleteObjectVersion",
        "s3:GetObject",
        "s3:GetObjectAcl",
        "s3:GetObjectVersion",
        "s3:GetObjectVersionAcl",
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:PutObjectVersionAcl"
      ],
      "Resource": "arn:aws:s3:::mybucket/*",
      "Condition": {}
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*",
      "Condition": {}
    }
  ]
}
```

## A legbiztonságosabb kialakítás

Az UpdraftPlusnak el kell tárolnia az S3 kulcsait, hogy fel tudja tölteni a mentéseket. Ha valaki feltöri az oldalad, ellophatja a kulcsokat, és hozzáférhet a mentéseidhez. Az ideális helyzet az, hogy a támadó ne tudja törölni vagy módosítani a mentéseket, így a feltörés előtti mentések biztosan tiszták maradnak.

1. Az AWS S3 konzolján hozz létre egy külön bucketet kizárólag az UpdraftPlus-mentéseknek.
2. A bucket létrehozásakor, a beállítások lépésében kapcsold be a **versioning** (verziókezelés) funkciót. Ez azt jelenti, hogy ha valaki felülírja a mentéseidet, a korábbi verziók megmaradnak. Később is bekapcsolhatod: jelöld ki a bucketet az S3 áttekintőben, és nyisd meg a **Properties** (tulajdonságok) részét.
3. Az IAM-felhasználó szabályzatából hagyd ki a két törlési jogosultságot: `s3:DeleteObject` és `s3:DeleteObjectVersion`.
4. Mivel az UpdraftPlus így nem tudja törölni a régi mentéseket, a **megtartandó mentések száma** beállítás hatástalan lesz. A régi mentések törlését az S3 saját életciklus-szabályával oldd meg: jelöld ki a bucketet, nyisd meg a **Management** részt, és a **Lifecycle** alatt adj hozzá egy életciklus-szabályt.

Az eredmény: az UpdraftPlus csak a megadott bucketbe tud írni, meglévő mentést nem tud törölni, a felülírás pedig nem semmisíti meg a korábbi verziót.

Ennek két következménye van:

- Visszaállításnál a mentéskészleteket közvetlenül az Amazon S3 konzoljából szerezd be, ne az UpdraftPlus beépített letöltésével.
- Az **Amazon S3 beállítások tesztelése** gomb létrehoz egy próbafájlt, majd jelzi, hogy nem tudta törölni. Ez ilyenkor várt működés, nem hiba.

## Elérési stílus: path-style és bucket-style

Az S3-kompatibilis szolgáltatók kétféleképpen kaphatják meg, hogy melyik erőforrást kéri a program: az úgynevezett path-style (elérési út szerinti, régebbi, de még elterjedt) és a bucket-style (bucketnév szerinti) címzéssel. Az Amazon S3 mindkettőt támogatja, a bucket-style az előnyben részesített és az alapértelmezett. Egyes S3-kompatibilis szolgáltatók azonban csak az egyiket tudják, ezért van lehetőség arra, hogy a használt stílust kényszerítsd.

## S3 Enhanced (fizetős kiadás)

A fizetős kiadásban az Amazon S3 szakasz tetején egy hivatkozás indítja az **IAM-felhasználó varázslót**. Ezzel az AWS admin hozzáférésedből gyorsan létrehozhatsz egy új IAM-felhasználót, amely csak ehhez a bucketet éri el, a teljes fiókhoz nem.

1. Jelentkezz be az AWS-konzolra.
2. Kattints a felhasználóneved a jobb felső sarokban, majd a **Security credentials** pontra.
3. Az **Access keys** résznél kattints a **Create access key** gombra, jelöld be a figyelmeztetést, majd kattints ismét a **Create access key** gombra.
4. Jegyezd fel az **Access key** és a **Secret access key** értékét, majd kattints a **Done** gombra.
5. Térj vissza az oldaladra, az **UpdraftPlus → Beállítások** fülön kattints az **Amazon S3** ikonra.
6. Az Amazon S3 szakaszban kattints a hivatkozásra, amely megnyitja az IAM-felhasználó varázslót.
7. Add meg a kulcsaidat, válassz egy IAM-felhasználónevet, írd be a bucket nevét, és kattints a **Létrehozás** gombra. Ha a bucket még nem létezik, létrejön. A neve az S3-ban globálisan egyedi kell legyen, ezért érdemes véletlen karaktersort fűzni a végére.
8. Állítsd be a **Tárolási osztály** és a **Szerveroldali titkosítás** mezőket, kattints a **Módosítások mentése** gombra, majd az **Amazon S3 beállítások tesztelése** gombra.
9. A **Biztonsági mentés / visszaállítás** fülön kattints a **Biztonsági mentés most** gombra, jelöld be az **Amazon S3** tárhelyet a távoli küldésnél, és indítsd a mentést.

A kész mentés a **Meglévő biztonsági mentések** listában jelenik meg.
