Formation DevOps | Formation AWS Services : 5- Service S3

www.itgalaxy.io

AMAZON S3

Qu’est ce que le stockage?

Le stockage dans le cloud est un modèle de stockage des données informatiques dans lequel les données numériques sont stockées dans des regroupements logiques.

Amazon Simple Storage Service : Amazon S3

  • Stockage pour Internet

  • Pas de limite decapacité

  • Fichiers de 1 octet à 5 TO

  • Aucune contrainte de format defichier

  • Accessible massivement enparallèle

  • SSL en transit et aurepos

  • Peut-être promu en site webstatique

  • Existe au niveau de la région : ce qui est en Irlande reste en Irlande
    » Si nécessaire, possibilité d’activer une réplication inter-régions automatique

  • Possibilité de versionner les objets : protection contre les suppressions
    accidentelles

  • Classes de stockage du plus chaud au plus froid
    » S3 Standard : accès immédiat aux données(production)
    » S3 Reduced Redondancy : accés immédiat aux données peu sensibles
    » S3 Infrequent Access : accès immédiat aux données peu accédées
    (sauvegardes, entrepôt de données, etc.)
    » S3 Glacier : accès différé aux donnéesarchivées

  • Automatisation du cycle de vie des données
    » Refroidir les donnéesautomatiquement
    ○ Par + de ex., archiver automatiquement 30 / + 60 jours dans S3 Infrequent Access puis dans Glacier les fichiers de

  • Coût variable selon la classe de stockage

○○ Durabilité 10.000 objets : 99,999999999 stockés = risque % des de objetsperdre 1 objet une fois tous les 10 millions d‘années
○ Disponibilité : 99,99 % sur une année
○ Latence : faible
○○ Durabilité 10.000 objets : 99,99 stockés = % des risque objetsde perdre 1 objet une fois paran
○○ Disponibilité Latence : faible: 99,99 % sur une année
○ Coût inférieur à S3Standard

Classes de stockage

❖ Standard_IA
○○ Durabilité Disponibilité : 99,999999999 : 99,9 % sur une% desannéeobjets
○○ Latence Coût inférieur : faibleà S3Standard
❖ Glacier
○○ Durabilité Disponibilité : 99,999999999 :N/A % desobjets
○○ Latence Coût minimal: au minimum 4h

Classes de stockage

Service organisé en « bucket »
» Un bucket est régional
» Il est identifié par un nom unique dans la région
○ minuscules, chiffres et « -»
» Possibilité de réaliser une réplication vers un bucket d’une autre région
» On peut activer le bucket comme un site web statique
○ Les objets sont dès lors accessibles depuis un navigateur (à condition que la policy du bucket l’autorise)
○ L’endpoint du bucket peut-être associé à un record DNS personnalisé
» Possibilité de créer 100 buckets par compteMaster

Organisation dans le bucket
» Collectiond’objets
» Objets identifiés par une clé unique dans lebucket (key)
» Hiérarchie, dossiers, et sous-dossiers enapparence
○ La key peut être : « access_log » ou bien « /var/log/httpd/ access_log»
○ La console Web recréée artificiellement une hiérarchie

Objets associés à des meta-data
» 2 catégories
○ System meta-data
✧Date decréation
✧Classe de stockage (Infrequent Access, Glacier,…)
✧Adresse deredirection
✧Chiffrement
✧…
○ User-defined meta-data(facultatif)
✧Paires de clé /valeurs

AMAZON S3

Transferts d’objets vers le bucket
» Avec la consoleWeb
» Avec un client S3 « tiers » : par ex. S3Browser
» Avec lesSDKs
» Avec la CLI:
○ Upload
$ aws s3api put-object –bucket MonBucket –key fichier_destination.log.gz –bodyfichier_source.log.gz
○ Download
$ aws s3api get-object –bucket MonBucket –key fichier_source.log.gzfichier_destination.log.gz

AMAZON S3

Permissions
» User policy : permissions accordées à unutilisateur
d’utiliser le bucket
○ Par ex. d’utiliser l’appel APIss3:get
○ En précisant sur quel bucket
» Resource-based policy : permissions attachéesau
bucket et aux objets, qui autorise des
« entities » (utilisateurs, rôles, AWS rootaccount)

Resource-based policy vs User Policy

Permissions : cas simple
» Le propriétaire du bucket et les comptes IAMà autoriser sont dans
le même MasterAccount
» Utiliser une Bucket policy ou une User policy pourgérer les permissions

Permissions : cas des « cross-account»

  • Le propriétaire du bucket est dans le Master AccountB
  • Les comptes IAM à autoriser sont dans le Master Account A
  • Utiliser une Bucket policy et une User policy pour gérer les permissions

Une « entity » qui accède à un bucket doit avoir l’autorisation des 2 parties :
» Le MasterAccount
○ Il donne le droit aux « entities » d’utiliser lesAPIs
○ Matérialisé par une policy associée à l’entityIAM
» Le propriétaire dubucket
○ Autorise explicitement une « principal entity»
○ Matérialisé par une Bucket Policy

User policy

  • Autoriser une entity à exécuter des requêtes APIsS3
    “Statement”:[
    {
    “Effect”:“Allow”,
    “Action”:
    “s3: ListAllMyBuckets “,
    “Resource”:“arn:aws:s3::: ***** "
    },
    {
    “Effect”:“Allow”,
    “Action”:
    “s3: ListBucket “,
    “Resource”:“arn:aws:s3::: examplebucket "
    }
    ]

User policy

  • Autoriser une entity à exécuter des requêtes APIsS3
    “Statement”:[
    {
    “Effect”:“Allow”,
    “Action”:[
    “s3: PutObject “,
    “s3: GetObject “,
    “s3: DeleteObject "
    ],
    “Resource”:“arn:aws:s3::: examplebucket/* "
    }
    ]

Bucket policy

  • Permissions relatives aux opérations sur les buckets
    » CreateBucket, ListBucket, DeleteBucket,…
    » Ressource : “arn:aws:s3::: examplebucket
  • Permissions relatives aux opérations sur les objets du bucket
    » GetObject, PutObject, , DeleteObject, …
    » Ressource : “arn:aws:s3::: examplebucket/* ”
  • Référence :
    https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html

Bucket policy

  • Définit qui à le droit d’accès
    » Principal : désigne un ou plusieurs compte(s) root AWS,
    compte(s) IAM, rôle(s)

Bucket policy

  • Autoriser une entity à exécuter des requêtes APIsS3
    “Statement”: { [
    “Sid”: “Effect”: “Allow”,“Example permissions”,
    “Principal”: {
    }, “AWS”:“arn:aws:iam:: AccountA-ID:root "
    “Action”:“s3:[ ListBucket "
    ],“Resource”: [
    ] “arn:aws:s3::: examplebucket "
    ] }
    }

S3 inteligent-Tiering : pricing (région Paris en novembre 2020)

S3/Glacier : pricing (région Paris en novembre 2020)

Static Web Hosting

  • S3 pour servir des fichiers statiques
    » Pas de contenu dynamique (php, jsp,etc.)
    » En revanche peut contenir des scripts qui s’exécutent côté client(Javascript)
  • Le bucket est identifié au niveau DNS
    » Exemple pour la régionParis .s3-website-eu-west- 3 .amazonaws.com

Static Web Hosting : URL

  • Accès au bucket depuis Internet
    » Possibilité de paramétrer un DefaultIndex
    » Les objets sont servis selon leurarborescence
    ○ Exemple:
    http://monbucket.s3-website-eu-west- 3 .amazonaws.com/ content/index.html
    ○ Retourne l’objet du bucket avec la key: content/index.html

Static Web Hosting : URL personnalisées

Static Web Hosting : redirection

Réplication inter-région

  • Fonctionnalité intégrée à S3 permettant la réplications de buckets situés
    dans des régions différentes
  • Réplication asynchrone (peut prendre plusieurs heures pour un gros objet)
  • Transit chiffré

Réplication inter-région

  • S’applique au bucket entier ou sur un préfixe
  • Meta-data des objets répliqué sans modification
    » Creation time, ACL, Version_ID, owner,…
  • Possibilité de choisir une classe de stockage cible différente de la
    source
    » Standard à la source, Infrequent_Access ou RRS à la destination

Réplication inter-région

  • Nécessité d’activer le versioning sur les buckets
  • Possible en « 1 to 1 » (pas de réplication vers plusieurs buckets)
  • En revanche, possible de chaîner
    » Bucket A -> Bucket B -> BucketC
  • Status de la réplication
    » Pas de status global mais parobjet
    Header : x-amz-replication-status (pending, completed,failed)

Performances

  • Possibilité d’optimiser les performances si la charge est soutenue
    » 100 requêtes/s(PUT/LIST/DELETE)
    » Ou 300 GET/s
  • Optimisation inutile si charge occasionnellement en pic sous 800
    requêtes/s

Access logs

  • Log les requêtes au bucket
    » Requester, bucket name, request time, request action, response status,
    error code
  • Option à activer sur le bucket
  • Exemples de traces
    PUT /mybucket/s3-dg.pdf HTTP/1.1” 200 –4406583 41754 28 “-” “S3Console/0.4”-
    “GET /mybucket?policy HTTP/1.1” 404 NoSuchBucketPolicy 297
    - 38 - “-” “S3Console/0.4” -

Access logs

  • Possible de stocker les logs sur un autre bucket
    » Utiliser une lifecycle rule S3 pour purger les logs régulièrement
  • Service Best Effort
    » Livraison de la totalité des logs nongaranti
    » Délais de livraison trèsvariables

Protection des données

  • Chiffrement « server-side »
    » Les objets sont chiffrés « at rest»
  • Amazon S3_Managed Keys (SSE-S3)
    » AWS gère les clés dechiffrement
    » Service totalement managé (rotation des clés, mapping entre les objets
    et les clés de chiffrement,etc.)

Protection des données

  • Customer-Provided Keys(SSE-C)
    » Le client fournit la clé au moment du dépôt et du retrait de l’objet
    » S3 chiffre etdéchiffre
    » Le client doit savoir quel objet a été chiffré avec quelle clé
    » S3 ne stocke pas la clé
    Clé perdu par le client = objetperdu

Protection des données : chiffrement objets S3 résumer

Sécurité des objets S3:

✓ Par défaut un compartiment S3 estprivé
✓ Les objets déposés peuvent êtrechiffrés
✓ Autoriser un accès utilisateur avecIAM
✓ Autoriser l’accès à un compartiment avec S3 Bucket policies (depuis plusieurs comptes
aws)
✓ JSON ( ressources, actions,effets,principal) Acces publique,chiffrement, accès croisée ( cross-
account)
✓ Autoriser l’accès à un compartiment avec S3BucketACL
✓ Autoriser l’accès à un objet avec des S3ACL

AMAZON S3

**Sécurité des objets S3: Stratégie de verrouillage (Lock policy)

AMAZONS3-Glacier**

Protection des données : versioning

  • Conserver plusieurs variantes d’un même objet
  • Permet de se prémunir d’une erreur de manipulation
  • Option à activer sur le bucket
    » Option « versioning-enabled»
    » Retour arrière impossible
    ○ Possibilité de suspension : option « versioning-suspended»

Protection des données: versioning

  • Une fois activé, le versioning opère sur tous les objets
  • Possibilité de renforcer la protection des données par l’usage d’un MFA
    » Pour supprimer unobjet
    » Pour modifier les options de versioning dubucket

Protection des données: versioning

  • Un objet non versionné possède dans ses meta-data un identificateur de version
    » Version ID =null

  • Losque le versioning est activé, chaque modification d’un objet déclenche
    une copie avec un ID de version différent

  • Un simple GET renvoie la dernière version d’un objet

  • Il faut préciser la version de l’objet pour récupérer une version non courante

  • Restaurer une version : copier l’objet

  • Restaurer une version : supprimer l’ancien objet

  • Supprimer un objet = insérer un marqueur
    « DELETE »

  • Supprimer un marqueur « DELETE » pour restaurer l’accès à l’objet

Notifications

  • Actions lorsque des événements se produisent sur le bucket
    » Création, suppression d’objets (et de marqueurs
    « DELETE » sur un bucket versionné)
    » Incident sur S3 RRS (perte d’un objet)
  • Type d’actions
    » Notification SNS, message SQS, exécution d’une fonction Lambda






Decouvrez plus d’Offres de la plateform ItGalaxy.io :

Découvrez notre gamme complète de services et formations pour accélérer votre carrière.

1. Nous contactez

  • Description: Besoin de Formation et des Solutions cloud complètes pour vos applications
  • Links:

2. Infra as a Service

  • Description: Infrastructure cloud évolutive et sécurisée
  • Links:

3. Projets Développeurs


4. Développeurs


5. Formations Complètes


6. Marketplace

7. Blogs


This website is powered by ItGalaxy.io