Arbutus object storage/fr: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
No edit summary
Line 33: Line 33:
https://docs.openstack.org/swift/latest/s3_compat.html
https://docs.openstack.org/swift/latest/s3_compat.html


<div class="mw-translate-fuzzy">
=Accès et gestion du Object Store=
=Accès au stockage objet et gestion du contenu=
</div>


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">

Revision as of 22:10, 7 February 2023

Other languages:

Introduction

Le stockage d'objets est une installation de stockage plus simple qu'un système de fichiers hiérarchique normal, mais qui permet d'éviter certains goulots d'étranglement de performance.

Un objet est un fichier dans un espace de nommage (namespace) plat : un objet peut être créé ou téléchargé dans son ensemble, mais vous ne pouvez pas modifier les octets qu’il contient. Un objet est nommé selon la nomenclature bucket:tag sans qu’il soit imbriqué davantage. Puisque les opérations sur les buckets concernent l’entièreté d’un fichier, le fournisseur peut utiliser une représentation interne plus simple. L’espace de nommage plat permet au fournisseur d’éviter les goulots d’étranglement des métadonnées; on peut dire que c’est une sorte de stockage de clés et de valeurs.

La meilleure façon d’utiliser le stockage objet est de stocker et d’exporter des éléments qui ne sont pas nommés par une structure hiérarchique; auxquels on accède principalement de manière atomique et en lecture seule; et pour lesquels les règles d’accès et de contrôle sont simples.

Sur Arbutus, chaque projet dispose par défaut de 1 To de stockage objet. Si ceci est insuffisant, vous pouvez soit utiliser notre service d'accès rapide ou présenter une demande aux prochains concours pour l'allocation des ressources.

Contrairement à un environnement de calcul sur une grappe, les fonctions d'administration du système pour le stockage objet d'un utilisateur sont la responsabilité de cet utilisateur, ce qui signifie que les opérations comme la sauvegarde des instances doivent être effectuées par l'utilisateur. Pour plus d'information, voyez Options de stockage infonuagique.

Nous offrons deux protocoles différents pour accéder à Object Store : Swift et Amazon Simple Storage Service (S3).

Ces protocoles se ressemblent beaucoup et sont interchangeables dans la plupart des cas. Il n’est pas nécessaire de vous en tenir toujours au même protocole puisque les conteneurs ou compartiments (buckets) et les objets sont accessibles par les protocoles Swift et S3. Certaines différences existent toutefois dans le contexte du stockage objet sur Arbutus.

Swift est le protocole par défaut et est le plus simple à utiliser; vous n’avez pas à gérer les identifiants puisque l’accès se fait avec votre compte Arbutus. Par contre, Swift n’offre pas toutes les fonctionnalités de S3. Le principal cas d'usage est que vous devez utiliser S3 pour gérer vos conteneurs avec des politiques d'accès parce que Swift ne prend pas en charge ces politiques. De plus, S3 vous permet de créer et de gérer vos propres clés, ce qui peut être nécessaire si par exemple vous voulez créer du contenu en lecture seule pour une application. Consultez la liste des points compatibles des deux protocoles dans

https://docs.openstack.org/swift/latest/s3_compat.html

Accès et gestion du Object Store

Vous pouvez gérer votre stockage en sélectionnant Stockage d'objet sur https://arbutus.cloud.computecanada.ca/. Avec cette interface, les buckets sont appelés des conteneurs : il ne faut pas les confondre avec les conteneurs de la fonctionnalité namespace du noyau Linux. Dans la page Stockage d'objet, vous pouvez créer des conteneurs, téléverser des fichiers et créer des répertoires. Les conteneurs peuvent aussi être créés avec un client ligne de commande compatible avec S3.
Il faut savoir que si vous créez un conteneur et le définissez comme étant public, tous les objets qu’il contient peuvent être vus en lecture seule par quiconque entre l’URL https://object-arbutus.cloud.computecanada.ca/<YOUR CONTAINER NAME HERE>/<YOUR OBJECT NAME HERE> où vous nommez votre conteneur et le nom de l'objet.

Vous pouvez également utiliser le client ligne de commande OpenStack. Pour obtenir les directives sur l'installation et l'utilisation des clients de ligne de commande OpenStack, consultez OpenStack ː Clients ligne de commande.

Générez votre ID d'accès S3 et la clé secrète pour le protocole avec le client de ligne de commande OpenStack.

openstack ec2 credentials create

s3cmd disponible sous Linux est l’outil recommandé pour accéder à notre plateforme S3; cependant, il existe aussi d’autres outils.

Chaque utilisateur est responsable des opérations qui sont effectuées dans son projet et donc les buckets eux-mêmes et la gestion de ces buckets sont la responsabilité de l’utilisateur.

Généralités

  • Un bucket est la propriété de l’utilisateur qui l’a créé et ne peut pas être utilisé par un autre utilisateur.
  • Vous pouvez rendre un bucket accessible en lecture seule à l’univers, ce qui vous donne une adresse URL qui peut être partagée et qui rend public le contenu du bucket.
  • Les noms des buckets doivent être uniques pour tous les utilisateurs dans un même espace de stockage objet; il serait donc préférable d’utiliser le nom de votre projet comme préfixe pour les noms des buckets pour en assurer l’unicité. En bref, n’essayez pas de créer un bucket nommé test, mais def-mon-nom-test est probablement disponible.
  • La gestion des politiques en rapport un bucket se fait via un fichier json.

Connexion et configuration de s3cmd

Pour avoir accès au stockage objet, utilisez le point de chute HTTPS

object-arbutus.cloud.computecanada.ca:443

Le fichier suivant effectue une configuration simple de s3cmd. Vous devez utiliser ces valeurs, mais vous pouvez aussi explorer d’autres options de configuration pour vos besoins. Insérez les valeurs appropriées aux endroits nécessaires :

[default]
access_key = <redacted>
check_ssl_certificate = True
check_ssl_hostname = True
host_base = object-arbutus.cloud.computecanada.ca
host_bucket = object-arbutus.cloud.computecanada.ca
secret_key = <redacted>
use_https = True

Voyez comment utiliser la fonction --configure de s3cmd.

Exemples d'opérations avec un bucket

  • Rendez un bucket public et accessible via le web avec

    s3cmd setacl s3://testbucket --acl-public

  • Le bucket redevient privé ave

    s3cmd setacl s3://testbucket --acl-private

  • Exemple d’une politique :

    Créez d’abord un fichier json

    {
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Principal": {"AWS": [
        "arn:aws:iam::rrg_cjhuofw:user/parsa7",
        "arn:aws:iam::rrg_cjhuofw:user/dilbar"
        ]},
        "Action": [
        "s3:ListBucket",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:GetObject"
        ],
        "Resource": [
        "arn:aws:s3:::testbucket/*",
        "arn:aws:s3:::testbucket"
        ]
    }]
    }
    

    Ce fichier vous permet de définir des permissions particulières pour des groupes d’utilisateurs du bucket.

    Il est aussi possible d’inclure des utilisateurs qui travaillent avec vous, mais qui sont associés à d’autres projets.

    Quand votre fichier de politiques est prêt, vous pouvez les appliquer au bucket avec

    s3cmd setpolicy testbucket.policy s3://testbucket

    Pour des actions et des exemples plus complets, voyez https://www.linode.com/docs/platform/object-storage/how-to-use-object-storage-acls-and-bucket-policies/

Bucket policies

Attention

Be careful with policies because an ill-conceived policy can lock you out of your bucket.



Warning: Be careful with policies because an ill-conceived policy can lock you out of your bucket.

Currently, Arbutus Object Storage only implements a subset of Amazon's specification for [bucket polices]. The following example shows how to create, apply, and view a bucket's policy. The first step is create a policy json file:

{
    "Version": "2012-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::testbucket",
                "arn:aws:s3:::testbucket/*"
            ],
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "206.12.0.0/16"
                    "aws:SourceIp": "142.104.0.0/16"
                }
            }
        }
    ]
}

This example denies access except from the specified source IP address ranges in Classless Inter-Domain Routing (CIDR) notation. In this example the s3://testbucket is limited to the public IP address range (206.12.0.0/16) used by the Arbutus cloud and the public IP address range (142.104.0.0/16) used by the University of Victoria.

Once you have your policy file, you can implement that policy on the bucket:

s3cmd setpolicy testbucket.policy s3://testbucket

To view the policy you can use the following command:

s3cmd info s3://testbucket