Politiques de Buckets

Les politiques de gestion des Buckets fournissent à des Object Users spécifiques, ou à tous les Object Users, des autorisations conditionnelles et granulaires pour des actions spécifiques.

Les conditions des politiques peuvent être utilisées pour attribuer des autorisations à une série d'objets qui correspondent à la condition souhaitée et peuvent être utilisées pour attribuer automatiquement des autorisations aux objets nouvellement téléchargés.

La manière dont l'accès aux ressources est gérée lors de l'utilisation du protocole S3 est décrite dans https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html et vous pouvez utiliser ces informations comme base pour comprendre et utiliser les politiques de gestion des Buckets fournit par le service de Stockage d'Objet de cegedim.cloud.

Cette section fournit des informations de base sur l'utilisation des politiques de gestion des Buckets.

Gérer les politiques de gestion des Buckets

Les politiques de gestion des Buckets peuvent être gérées en utilisant le client aws s3api (d'autres outils ou SDK fonctionnent aussi):

  • get-bucket-policy

  • put-bucket-policy

  • delete-bucket-policy

Nous utilisons les utilitaires aws s3 et aws s3api issues du client S3 AWSCLIv2 sur Linux. ${S3_ENDPOINT} & ${S3_PROFILE} sont des variables d'environnement.

Créer une politique de gestion de Bucket

Créez un fichier et insérez votre politique de gestion au format JSON :

{
    "Version": "2012-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "Grant permission to <access_key>",
            "Effect": "Allow",
            "Principal": ["<access_key>"],
            "Action": [ "s3:PutObject","s3:GetObject" ],
            "Resource":[ "bucket-test/*" ]
        }
    ]
}

L’élément Principal spécifie les Access Key des Object Users qui sont autorisés ou non, à effectuer les actions sur les différentes ressources spécifiées.

Vous pouvez spécifier un wildcard '*' pour indiquer tous les Object Users.

Attention, utiliser le wildcard '*' dans une politique de gestion de Buckets, signifie que tout le monde peut accéder aux ressources spécifiées et effectuer les actions spécifiées

Appliquez la politique des gestions sur le Bucket: bucket-test

aws s3api --endpoint-url=${S3_ENDPOINT} put-bucket-policy --bucket bucket-test --policy file://policy.json --profile ${S3_PROFILE}

Afficher la politique de gestion sur un Bucket

aws s3api --endpoint-url=${S3_ENDPOINT} get-bucket-policy --bucket bucket-test --profile ${S3_PROFILE}

Supprimer une politique de gestion sur un Bucket

aws s3api --endpoint-url=${S3_ENDPOINT} delete-bucket-policy --bucket bucket-test --profile ${S3_PROFILE}

Exemples de politique de gestion d'un bucket

Accorder des permissions à un Object User

{
    "Version": "2012-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "Grant permission to user1",
            "Effect": "Allow",
            "Principal": ["<access_key>"],
            "Action": [ "s3:PutObject","s3:GetObject" ],
            "Resource":[ "arn:aws:s3:::mybucket/*" ]
        }
    ]
}

Accorder des permissions en lecture seule à un Object User

{
  "Version": "2012-10-17",
  "Id": "s3ReadOnlyforUser",
  "Statement": [
    {
      "Sid": "Grant read permission to user1",
      "Effect": "Allow",
      "Principal": ["<access_key>"],
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::mybucket",
        "arn:aws:s3:::mybucket/*"
      ]
    }
  ]
}

Accorder les autorisations d’accès à tous les utilisateurs (accès public)

Le service de Stockage d'Objet de cegedim.cloud est directement accessible depuis Internet.

Si vous accordez un accès public à votre Bucket ou à un sous-ensemble de votre Bucket, tout le monde peut obtenir vos objets.

Pour plus d'informations, consulter Gérer l'accès à un Bucket.

Bucket publique
{
    "Version": "2012-10-17",
    "Id": "S3PolicyId2",
    "Statement": [
        {
            "Sid": "Public Access to mybucket",
            "Effect": "Allow",
            "Principal": ["*"],
            "Action": [ "s3:GetObject" ],
            "Resource":[ "arn:aws:s3:::mybucket/*" ]
        }
    ]
}

Accès à un Bucket via un navigateur Web

Avec l'accès public, le contenu du Bucket peut être consulté directement à l'aide d'un navigateur web.

L'URL pour accéder à un Bucket public suit ce format : https://<objectstore_name>.storage-[eb4|et1].cegedim.cloud/<bucket_name>

Par exemple : https://cos-cegedimit-myit.storage-eb4.cegedim.cloud/mybucket

Accorder les autorisations d’accès à tous les utilisateurs (accès public) pour les objets sous un préfixe spécifique

Le service de Stockage d'Objet de cegedim.cloud est directement accessible depuis Internet.

Si vous accordez un accès public à votre Bucket ou à un sous-ensemble de votre Bucket, tout le monde peut obtenir vos objets.

Avec la politique suivante, tous les objets du Bucket my-bucket et sous le préfixe public/ sont accessibles publiquement, sans authentification :

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"public-access-based-on-prefix",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::my-bucket/public/*"]
      }
  ]
}

Opérations et conditions des politiques supportées

Opérations supportées

Permissions pour les opérations sur les objets

Permissions pour les opérations sur les Buckets

Permissions pour les opérations sur les sous-ressources d'un Bucket

Conditions supportées

L'élément "condition" est utilisé pour spécifier les conditions qui déterminent quand une règle s'applique.

Les tableaux suivants référencent les conditions qui sont supportées par le service de Stockage Objet de cegedim.cloud et qui peuvent être utilisées dans les expressions de condition.

Conditions génériques supportées

Conditions spécifiques supportées pour les opérations sur les objets

Conditions spécifiques prises en charge pour les opérations sur les Buckets

Dernière mise à jour