# Uprawnienia

Ten artykuł opisuje minimalne uprawnienia potrzebne do użycia zasobnika (bucketu) **AWS S3** jako magazynu kopii zapasowej dla **Xopero ONE**. Poniższe polityki umożliwiają integrację twojego magazynu **AWS S3** z **Xopero ONE**.

***

## Polityka zasobnika AWS <a href="#aws_bucket_policy" id="aws_bucket_policy"></a>

Zasobnik, który będzie używany do przechowywania danych <mark style="color:$danger;">musi mieć</mark> przypisaną następującą politykę (JSON):

```json
{
     "Version": "2012-10-17",
     "Statement": [
          {
               "Effect": "Allow",
               "Principal": {
                    "AWS": "arn:aws:iam::{account}:user/backup-user"
          },
               "Action": [
                    "s3:ListBucket",
                    "s3:GetObject",
                    "s3:PutObject",
                    "s3:DeleteObject"
                
               ],
               "Resource": [
                    "arn:aws:s3:::bucket-name",
                    "arn:aws:s3:::bucket-name/*"
               ]
          }
     ]
}
```

***

## 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
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://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html>" %}

{% embed url="<https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/use-immutable-storage.html>" %}
