# Uprawnienia

## Role i uprawnienia IAM <a href="#iam_roles_and_permission" id="iam_roles_and_permission"></a>

Aby uzywać **Google Cloud Storage** jako magazynu kopii zapasowej w usłudze **Xopero ONE**, zaleca się przypisanie roli **Administratora Magazynu** - **Storage Admin** **IAM** (`roles/storage.admin` – pełna kontrola nad zasobnikami i obiektami) do użytkownika **GCS**, lub utworzenie konta usługi z minimalnym zestawem uprawnień:

1. `storage.objects.list`
2. `storage.objects.get`
3. `storage.objects.create`
4. `storage.objects.delete`

***

## Obsługa niezmiennego magazynu <a href="#support_for_immutable_storage" id="support_for_immutable_storage"></a>

{% hint style="warning" %}
Pamiętaj, że konfiguracja niezmiennego magazynu jest dostępna wyłącznie podczas tworzenia nowego zasobnika (bucketu) — nie ma opcji włączenia jej dla już istniejącego zasobnika.
{% endhint %}

{% hint style="danger" %}
Włączenie retencji i/lub wersjonowania dla zasobnika może spowodować przechowywanie dodatkowych danych — zaleca się, aby okres retencji w **Xopero ONE** był dłuższy niż ustawiony dla magazynu. W przeciwnym razie może to prowadzić do przeciążenia magazynu.
{% endhint %}

Jeśli chcesz używać opcji niezmiennego magazynu, wymagane są następujące uprawnienia:

{% code title="Wymagane do odczytu konfiguracji blokady obiektu (Object Lock)" overflow="wrap" %}

```json
s3:GetBucketObjectLockConfiguration
```

{% endcode %}

{% code title="Wymagane do odczytu konfiguracji wersjonowania" overflow="wrap" %}

```json
configuration.s3:GetBucketVersioning
```

{% endcode %}

{% hint style="danger" %}
Zasobniki z włączoną retencją <mark style="color:$danger;">**nie mogą**</mark> być używane jako magazyn dla **Xopero ONE**.
{% endhint %}

Należy dodać je do sekcji **Action**, po zmianach sekcja powinna wyglądać jak pokazano poniżej:

```json
"Action": [
                    "s3:ListBucket",
                    "s3:GetObject",
                    "s3:PutObject",
                    "s3:DeleteObject",
		    "s3:GetBucketVersioning",
	            "s3:GetBucketObjectLockConfiguration"
               ],
```

***

## Przydatne linki i materiały

{% embed url="<https://cloud.google.com/storage/docs/access-control/iam-roles>" %}

{% embed url="<https://cloud.google.com/storage/docs/access-control/using-iam-permissions#json>" %}

{% embed url="<https://cloud.google.com/blog/products/storage-data-transfer/protecting-cloud-storage-with-worm-key-management-and-more-updates>" %}
