# Uprawnienia

## Ograniczenia klucza aplikacji <a href="#application_key_restrictions" id="application_key_restrictions"></a>

{% hint style="warning" %}
Tylko klucze aplikacji utworzone ręcznie w interfejsie sieciowym **Backblaze** lub za pomocą natywnego API **Backblaze B2** mogą być używane do uwierzytelniania z API kompatybilnym z **Backblaze S3**.
{% endhint %}

{% hint style="danger" %}
Automatycznie utworzony **master application key** <mark style="color:$danger;">**nie jest wspierany**</mark> w API kompatybilnym z **Backblaze S3**.
{% endhint %}

\
Jeśli klucz aplikacji jest ograniczony do zasobnika (bucketu), wymagane jest uprawnienie `listAllBucketNames` dla zgodności z SDK i integracjami. To uprawnienie można włączyć podczas tworzenia w interfejsie sieciowym lub za pomocą wywołania (call) API: `b2_create_key`.

Zasadniczo zarówno uprawnienia `writeFiles` jak i `deleteFiles` muszą być przypisane do każdego klucza używanego do usuwania plików w API kompatybilnych z **S3**.

{% hint style="warning" %}
API kompatybilne z **Backblaze S3** <mark style="color:$danger;">**nie wspiera**</mark> nieuwierzytelnionych wywołań`ListObject` dla publicznych zasobników (bucketów).
{% endhint %}

<figure><img src="https://desk.zoho.com/galleryDocuments/edbsnd8a23fc149ed44937c4ba90979a556d711bb4eba6153654a99eb700783f8ac3f343e40cc548f65540ef8a214f6e100e1?inline=true" alt=""><figcaption></figcaption></figure>

***

## 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 %}

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://www.backblaze.com/b2/docs/b2_create_bucket.html>" %}

{% embed url="<https://www.backblaze.com/blog/five-ways-to-use-object-lock-immutability/>" %}
