Modes de chiffrement et imposer le transit

Utiliser la sécurité AWS pour les développeurs

Rahul Singh

Technical Product Manager

Deux garanties, un défaut

Une application envoie un objet vers un compartiment Amazon S3. Une accolade verte « in transit » couvre le saut réseau, et une deuxième accolade verte « at rest » couvre l'objet stocké, avec une note indiquant que SSE-S3 s'applique sauf indication contraire dans la requête.

  • Au repos : les octets sur le disque
  • En transit : les octets sur le réseau
Utiliser la sécurité AWS pour les développeurs

Deux garanties, un défaut

Une application envoie un objet vers un compartiment Amazon S3. Une accolade verte « in transit » couvre le saut réseau, et une deuxième accolade verte « at rest » couvre l'objet stocké, avec une note indiquant que SSE-S3 s'applique sauf indication contraire dans la requête.

  • Au repos : les octets sur le disque
  • En transit : les octets sur le réseau
  • Déjà fait : SSE-S3 sur chaque nouvel objet
  • À vous : le mode et qui détient la clé, décidez
Utiliser la sécurité AWS pour les développeurs

Où finit le texte en clair

Côté serveur

  • AWS reçoit des octets lisibles
  • S3 chiffre à l'écriture

 

Un flot côté serveur. Votre processus détient le texte en clair, l'envoie via TLS, et Amazon S3 chiffre à l'écriture. Une barre en dessous suit les octets, séparée par un trait pointillé à S3 : avant, « vos octets : lisibles ici » en rouge ; après, « ciphertext » en vert.

 

Utiliser la sécurité AWS pour les développeurs

Où finit le texte en clair

Côté serveur

  • AWS reçoit des octets lisibles
  • S3 chiffre à l'écriture

Côté client

  • Vous chiffrez avant l'envoi
  • AWS ne stocke que du « ciphertext »

Un flot côté serveur. Votre processus détient le texte en clair, l'envoie via TLS, et Amazon S3 chiffre à l'écriture. Une barre en dessous suit les octets, séparée par un trait pointillé à S3 : avant, « vos octets : lisibles ici » en rouge ; après, « ciphertext » en vert.

Un flot côté client. Votre processus chiffre d'abord, envoie le « ciphertext » via TLS, et Amazon S3 stocke ce qu'il reçoit. Une barre en dessous suit les octets, avec un trait pointillé dans votre processus : le court segment avant, « vos octets : lisibles ici » en rouge ; tout le reste, « ciphertext » en vert.

Utiliser la sécurité AWS pour les développeurs

Quatre modes, une différence

Même algorithme, quatre détenteurs de clé

  • Le mode passe en en-tête du PUT
  • SSE-S3 : clé AWS, rien à gérer
  • SSE-KMS : votre clé, CloudTrail et une stratégie de clé jointe à la clé indiquant à qui elle répond

Quatre cartes empilées : SSE-S3, SSE-KMS, DSSE-KMS et SSE-C. Un rail à gauche va du contrôle AWS en haut à votre contrôle en bas, chaque carte n'affichant que la valeur d'en-tête qui sélectionne ce mode.

Utiliser la sécurité AWS pour les développeurs

Quatre modes, une différence

Même algorithme, quatre détenteurs de clé

  • Le mode passe en en-tête du PUT
  • SSE-S3 : clé AWS, rien à gérer
  • SSE-KMS : votre clé, CloudTrail et une stratégie de clé jointe à la clé indiquant à qui elle répond
  • DSSE-KMS : deux couches indépendantes
  • SSE-C : votre clé à chaque requête, à vous de ne pas la perdre

Quatre cartes empilées : SSE-S3, SSE-KMS, DSSE-KMS et SSE-C. Un rail à gauche va du contrôle AWS en haut à votre contrôle en bas, chaque carte n'affichant que la valeur d'en-tête qui sélectionne ce mode.

Utiliser la sécurité AWS pour les développeurs

L'objection de coût à SSE-KMS

Deux rangées. Sans clés de compartiment, six flèches vont d'Amazon S3 à AWS KMS, une par requête d'objet. Avec les clés de compartiment, une seule flèche part d'une clé au niveau du compartiment, détenue dans S3. Note : non offert avec DSSE-KMS.

  • Sans : un appel KMS par objet
  • Avec clés de compartiment : une clé éphémère, réutilisée
  • Non offert avec DSSE-KMS
  • Jusqu'à 99 % d'appels KMS en moins
Utiliser la sécurité AWS pour les développeurs

Chiffrer le champ, pas la table

Au repos est déjà activé

  • Une requête renvoie le texte en clair à toute personne ayant l'accès lecture

Un élément DynamoDB avec cinq attributs. Deux attributs contiennent du « ciphertext » et portent des rails bleus, tandis que la clé de partition, la clé de tri et l'horodatage restent en clair. Une boîte verte indique que toute la table est chiffrée au repos.

Utiliser la sécurité AWS pour les développeurs

Chiffrer le champ, pas la table

Au repos est déjà activé

  • Une requête renvoie le texte en clair à toute personne ayant l'accès lecture

AWS Database Encryption SDK

  • Chiffrez des attributs choisis dans votre code
  • Les clés de partition et de tri, utilisées par DynamoDB pour retrouver les éléments, restent en clair car elles servent à l'indexation

Un élément DynamoDB avec cinq attributs. Deux attributs contiennent du « ciphertext » et portent des rails bleus, tandis que la clé de partition, la clé de tri et l'horodatage restent en clair. Une boîte verte indique que toute la table est chiffrée au repos.

Utiliser la sécurité AWS pour les développeurs

TLS est offert, pas exigé

Offert, pas imposé

  • S3 répond en HTTP et en HTTPS

Deux scénarios. Sans condition sur le compartiment, un client HTTPS et un client HTTP atteignent l'objet. Avec la condition de refus, le chemin HTTP s'arrête à une croix rouge et ne se connecte jamais.

Utiliser la sécurité AWS pour les développeurs

TLS est offert, pas exigé

Offert, pas imposé

  • S3 répond en HTTP et en HTTPS

En faire une exigence

  • Stratégie de compartiment : refuser quand aws:SecureTransport vaut false
  • Les clients légitimes ne voient aucune différence

Deux scénarios. Sans condition sur le compartiment, un client HTTPS et un client HTTP atteignent l'objet. Avec la condition de refus, le chemin HTTP s'arrête à une croix rouge et ne se connecte jamais.

Utiliser la sécurité AWS pour les développeurs

Quelle autorité répond du nom

Nom public

  • ACM : approuvé publiquement, gratuit, se renouvelle seul

Nom résolu seulement par votre réseau

  • AWS Private CA : votre propre autorité de certification
  • Jamais approuvée sur l'internet public

Deux cartes empilées indiquant qui peut émettre le certificat. Carte du haut, nom public : reports point example point com comme nom résolu et ACM comme émetteur, approuvé partout. Carte du bas, nom interne : admin point example point internal, résolu seulement dans votre VPC, et AWS Private CA comme émetteur.

Utiliser la sécurité AWS pour les développeurs

La moitié privée est à vous de perdre

Qui le détient

  • ACM : AWS le conserve
  • Paire de clés EC2, ou toute clé SSH : vous détenez la moitié privée, une seule fois

Deux cartes empilées sur qui détient quelle moitié. Carte du haut, moitié publique : vit sur AWS ou l'instance. Carte orange du bas, moitié privée : une copie sans double, à garder dans Secrets Manager (coche verte), jamais dans un dépôt, un portable ou un clavardage (croix orange).

Utiliser la sécurité AWS pour les développeurs

La moitié privée est à vous de perdre

Qui le détient

  • ACM : AWS le conserve
  • Paire de clés EC2, ou toute clé SSH : vous détenez la moitié privée, une seule fois

Si c'est le vôtre

  • Secrets Manager, pas un dépôt
  • Remplacez-la périodiquement

Deux cartes empilées sur qui détient quelle moitié. Carte du haut, moitié publique : vit sur AWS ou l'instance. Carte orange du bas, moitié privée : une copie sans double, à garder dans Secrets Manager (coche verte), jamais dans un dépôt, un portable ou un clavardage (croix orange).

Utiliser la sécurité AWS pour les développeurs

Trois réponses, pas une

Trois cartes numérotées pour le mode, le contrôle des clés et le transit, chacune montrant l'en-tête ou la clé de condition correspondante. Une ligne note que seul le troisième contrôle vit hors des paramètres de chiffrement.

  1. Mode : ce qui a écrit l'objet
  2. Contrôle de clé : qui peut le déchiffrer, dans ce compte ou un autre
  3. Transit : exigé ou seulement offert
Utiliser la sécurité AWS pour les développeurs

Passons à la pratique !

Utiliser la sécurité AWS pour les développeurs

Preparing Video For Download...