Régler le chiffrement dans S3Client

S3Client utilise le chiffrement côté serveur de l’API S3. Le service chiffre les données au repos ; S3Client fournit les paramètres et, pour SSE-C, la clé nécessaire à la requête. Ce chiffrement est distinct de TLS pour le transport et du coffre local des identifiants.

Vous pouvez définir le chiffrement par défaut du bucket, choisir le chiffrement d’un objet à écrire ou à copier, et fournir une clé temporaire pour lire un objet SSE-C. Ces réglages ne créent ni clé KMS ni permission sur le service.

Une modification du chiffrement qui réécrit l’objet par copie suit les conditions des copies S3. Désactiver la condition source applicable retire cette protection contre les changements de contenu pendant la copie. La mise à jour sans copie reste indépendante.

Vérifier capacités et permissions

Ouvrez File > Accounts…, sélectionnez le compte et cliquez sur Edit…, puis Capabilities > Encryption. Les modes SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, les opérations de configuration du bucket et Update object encryption without copying doivent refléter le service. Ouvrez ensuite Capabilities > Encryption policies. L’onglet Features précise les opérations et paramètres acceptés par la politique sélectionnée dans Policy. Account default policy et l’onglet Assignments déterminent la politique applicable à chaque emplacement.

La politique distingue écritures simples, début de multipart, copies, opérations SSE-C de lecture, écriture et copie source, contexte KMS et Bucket Keys. SSE-C multipart exige aussi des opérations de parties compatibles. Cocher une capacité ne remplace pas ces réglages.

Les permissions de lecture et écriture S3 restent nécessaires. KMS demande aussi des autorisations adaptées, notamment kms:Decrypt pour lire et kms:GenerateDataKey pour écrire. La mise à jour en place requiert s3:UpdateObjectEncryption et les droits KMS de la référence AWS UpdateObjectEncryption. KMS et SSE-C exigent HTTPS ; S3Client exige Signature Version 4 pour KMS et les liens SSE-C présignés.

Choisir les paramètres

ChoixEffet
Do not modifyConserve le chiffrement en édition de propriétés ; choix initial.
Reuse source settingsReprend les réglages observables pour une copie, avec les limites de contexte et d’espace de clés.
Use service settingsLaisse le service appliquer ses réglages à l’écriture ; ne demande pas un objet non chiffré.
SSE-S3Clés gérées par S3, sans référence de clé à saisir.
SSE-KMSClé KMS et options Bucket Key lorsqu’elles sont disponibles.
DSSE-KMSChiffrement à deux couches KMS, sans Bucket Key.
SSE-CClé de 32 octets fournie par le client, nécessaire aussi aux lectures ultérieures.

Les choix dépendent du contexte. Une version précise permet Do not modify et une transition SSE-KMS compatible en place ; les autres modes restent indisponibles. Le bucket propose ses modes par défaut. Dans Change encryption, les groupes KMS settings et New SSE-C key gardent leur place : seuls les champs applicables sont activés. Changer de mode conserve les saisies, mais seuls les paramètres du mode choisi sont appliqués.

Pour les objets et les transferts, Change encryption… ouvre le dialogue Change encryption. Choisissez New encryption:, puis validez avec Use settings. Ce bouton prépare le changement sans envoyer de requête de modification. Cancel dans ce dialogue rétablit le dernier choix validé. L’opération commence après validation des propriétés ou du transfert dans la fenêtre principale.

Dans KMS key:, fournissez une référence acceptée par le service pour l’opération choisie. Une copie peut utiliser identifiant, ARN ou alias si le service l’accepte ; une mise à jour en place exige l’ARN complet d’une clé, pas un alias ni un simple identifiant. Utilisez une clé compatible avec la région et le compte de destination. Une référence vide, lorsqu’autorisée, laisse le service choisir sa clé par défaut.

Valider KMS key favorites enregistre les favoris dans le compte ; annuler ensuite les propriétés ou le transfert ne les annule pas.

Favorites… ouvre KMS key favorites. Add prépare Label: et KMS key reference: ; Rename change le libellé, Remove retire le favori. Validez Add KMS favorite ou Rename KMS favorite avec OK, puis sélectionnez le favori et cliquez sur OK dans KMS key favorites pour enregistrer les changements et reporter sa référence dans KMS key:. Cancel dans ce dernier dialogue abandonne les changements de favoris. Les favoris stockent une référence, pas le secret, et ne créent pas de clé KMS.

KMS context: propose :

  • Unspecified : n’envoie pas de contexte supplémentaire. Une mise à jour sans copie conserve le contexte existant ; une copie ou un téléversement avec un mode KMS explicitement choisi n’ajoute pas de contexte fourni par l’utilisateur.
  • No additional context : choisit explicitement un contexte supplémentaire vide. Pour modifier le chiffrement d’un objet existant, ce choix exige une copie.
  • Provide JSON context : objet JSON dont toutes les valeurs sont des chaînes, limité à 8 Kio en UTF-8.

Dans les propriétés d’un ou de plusieurs objets, Modify child objects et Paste with options, le choix initial est Unspecified. Changer de mode de chiffrement ne remplace pas ce choix. Le dialogue de récupération Make current utilise une présentation distincte : sélectionner explicitement SSE-KMS ou DSSE-KMS peut y sélectionner No additional context.

S3 ne renvoie pas le contexte KMS de l’objet source. Avec Reuse source settings, Unspecified laisse ce choix à résoudre : si une source KMS est rencontrée, S3Client demande son contexte ou le choix explicite No additional context. Pour réutiliser un contexte existant, fournissez-le vous-même. Le champ de contexte est absent pour le chiffrement par défaut du bucket et désactivé pour la mise à jour d’une version précise.

Dans KMS settings, Bucket Key: s’applique uniquement à SSE-KMS. Paste with options nomme ce champ Bucket Key for destination objects:. Unspecified, choix initial, ne transmet aucun choix explicite ; Disabled ou Enabled transmettent la valeur voulue. Le bucket utilise Bucket Key for new objects: et reprend sa valeur distante lorsqu’elle est lisible. Les choix disponibles dépendent de la politique appliquée au bucket et de l’opération choisie.

Fournir une clé SSE-C

Conservez votre clé avant d’écrire : S3Client ne l’enregistre pas comme clé de lecture persistante dans le compte. La perdre empêche la lecture des objets correspondants.

  1. Dans Change encryption, choisissez SSE-C dans New encryption:. Le groupe New SSE-C key devient disponible.
  2. Dans Key:, saisissez une clé selon Encoding:, Base64, sélectionné au départ, ou Hexadecimal.
  3. Vous pouvez utiliser Import file… pour un fichier binaire contenant exactement 32 octets.
  4. Cliquez sur Use settings. Une clé invalide empêche la validation et conserve le dialogue ouvert.

La clé est temporaire pour l’opération. Son MD5 affiché dans les propriétés n’est pas la clé et ne permet pas de la retrouver.

Pour lire un objet existant, ouvrez Properties > Encryption > Read key…. Le choix initial est No SSE-C key. Choisissez Temporary SSE-C key, fournissez la clé, puis Reload properties. Elle sert aux propriétés et au téléchargement de cet objet. Download… utilise cette cible ; choisissez auparavant une destination locale dans l’autre panneau.

Le dialogue SSE-C read key affiche la cible et, pour une version précise, Version:. La clé de lecture déchiffre la source ; elle ne choisit pas le chiffrement de destination. Pour retirer une clé, choisissez No SSE-C key, puis validez. La lecture SSE-C exige HTTPS, la capacité SSE-C et Encryption policies > Features > SSE-C operations > SSE-C reading > Read object metadata pour lire les propriétés. Elle n’est pas disponible pour les buckets de répertoire. Ces réglages sont distincts des permissions sur le service.

Chiffrement par défaut du bucket

Le chiffrement par défaut du bucket s’applique aux futures écritures. Modifier ou supprimer la configuration ne déchiffre pas les objets existants. Les permissions habituelles sont s3:GetEncryptionConfiguration et s3:PutEncryptionConfiguration, cette dernière autorisant aussi la suppression dans Amazon S3.

Cet onglet concerne un seul bucket General purpose. Modifier son chiffrement par défaut ou son blocage SSE-C exige d’abord une lecture réussie et interprétable. La suppression du document complet dépend séparément de la capacité Remove bucket encryption configuration.

Current configuration affiche le dernier état lu sur le service. Pending change résume uniquement les changements préparés et affiche No change au départ. Use settings ne change pas l’état distant : les réglages sont envoyés lorsque vous cliquez sur OK dans les propriétés du bucket. Cancel dans les propriétés les abandonne.

  1. Dans le panneau S3, sélectionnez un seul bucket et ouvrez Properties > Encryption.
  2. Lisez Current configuration, avec Mode:, KMS key:, Bucket Key: et SSE-C blocking:.
  3. Cliquez sur Change encryption….
  4. Pour changer le mode par défaut, cochez Change default encryption, puis choisissez Encryption: : SSE-S3, SSE-KMS ou DSSE-KMS, selon les options disponibles. Renseignez KMS key: et Bucket Key for new objects: si nécessaire.
  5. Dans SSE-C access > SSE-C blocking:, choisissez Keep SSE-C blocking unchanged, Block new SSE-C writes ou Allow new SSE-C writes. Les deux derniers exigent la prise en charge dans la politique.
  6. Cliquez sur Use settings et vérifiez Pending change. Current configuration reste l’état lu sur le service.
  7. Cliquez sur OK dans les propriétés du bucket pour appliquer le changement.
  8. Après la fin de l’opération, rouvrez Properties > Encryption pour vérifier l’état distant.

Le blocage concerne les nouvelles écritures, pas la suppression des objets SSE-C stockés. Vous pouvez changer seulement ce blocage sans cocher Change default encryption. Pour supprimer le document entier, cochez Delete remote encryption configuration, puis Use settings et OK dans les propriétés. La suppression inclut le blocage SSE-C ; les valeurs par défaut du service restent applicables. Cette case désactive les autres réglages sans les effacer : décochez-la pour les retrouver avant validation.

No explicit encryption configuration was returned. The service still applies its defaults. n’indique pas des objets non chiffrés. Not reported indique une valeur non communiquée. Une lecture refusée ou une réponse impossible à modifier sans perdre des réglages bloque les changements de chiffrement par défaut et de blocage SSE-C. La suppression reste soumise à sa propre capacité.

Modifier un objet

Current encryption présente Mode:, Algorithm:, KMS key:, Bucket Key: et SSE-C key MD5:. Not reported ne signifie pas « non chiffré » ; Not applicable désigne un champ sans rôle pour ce mode.

Pour changer le chiffrement de l’objet courant sans le copier, toutes les conditions suivantes doivent être réunies :

  • Le bucket est à usage général et prend en charge cette mise à jour.
  • L’objet source utilise SSE-S3 ou SSE-KMS.
  • Le nouveau chiffrement est SSE-KMS, avec l’ARN complet d’une clé.
  • KMS context: est réglé sur Unspecified.
  • La connexion utilise HTTPS et Signature Version 4.
  • Aucune protection Object Lock ne bloque la mise à jour.

Sinon, une copie peut être nécessaire. No additional context, même vide, et Provide JSON context imposent une copie de l’objet courant. Conservez Unspecified si vous souhaitez permettre la mise à jour sans copie. Le message de Change encryption indique le chemin possible d’après les propriétés lues et les autres changements demandés.

Cette mise à jour conserve l’identifiant et les propriétés de la version ; elle peut aussi s’appliquer à une archive sans restauration.

Les autres transitions ou changements combinés de métadonnées, classe, ACL ou protections peuvent demander une copie. Elle exige un contenu lisible et peut créer une version, changer la date et entraîner des frais. Les gros objets peuvent nécessiter multipart. Les ACL et protections à préserver doivent être lisibles ; les entrées d’autorisation ACL masquées ne peuvent être copiées. Vérifiez les avertissements avant d’appliquer.

Si Enable ACL operations for this account est décoché, une copie nécessaire au changement de chiffrement utilise le défaut de destination sans requête ni en-tête ACL. Aucune permission ACL n’est alors requise, mais l’ACL existante n’est pas garantie conservée si le service l’utilise encore. Les droits de chiffrement, de lecture du contenu et de conservation des autres propriétés restent nécessaires. Voir la désactivation locale des ACL.

Lorsque Read bucket Object Lock est configuré, S3Client doit établir son état sur le bucket et, s’il est activé, lire la rétention et la conservation légale de la version avant de déterminer si le changement peut être appliqué sans copie ou nécessite une copie. Sur Amazon S3, ces lectures demandent s3:GetBucketObjectLockConfiguration, s3:GetObjectRetention et s3:GetObjectLegalHold. ObjectLockReadRequired bloque l’opération si une lecture nécessaire est refusée ; corrigez l’accès puis préparez de nouveau le changement.

Les lectures exigent aussi les capacités Read object retention et Read object legal hold. Une copie préservant une protection exige la capacité d’envoi correspondante : Protect server-side copies, Protect multipart uploads ou Protect simple uploads. S3Client refuse une réécriture qui ne pourrait pas préserver une protection observée.

  1. Choisissez la cible : sans Show versions pour l’objet courant, avec l’option pour une version précise.
  2. Ouvrez Properties > Encryption ; vérifiez General > Version ID: si nécessaire.
  3. Dans Pending change, cliquez sur Change encryption….
  4. Choisissez New encryption: et ses paramètres, puis cliquez sur Use settings.
  5. Vérifiez Pending change, puis cliquez sur OK dans les propriétés et lisez les confirmations.
  6. Après une mise à jour en place, rouvrez la même version et contrôlez Current encryption. Après une copie, actualisez le panneau et ouvrez l’objet courant ou la nouvelle version pour vérifier le chiffrement appliqué.

Pour un changement de chiffrement seul sur une version précise, une transition en place impossible est refusée. Si vous modifiez aussi les métadonnées ou la classe de la dernière version, S3Client regroupe ces changements dans une copie vers l’objet courant, après avoir vérifié que la version choisie est toujours courante. Le chiffrement choisi s’applique alors à cette réécriture. Une version source à identifiant immuable reste inchangée ; avec le versionnement suspendu, la version null peut être remplacée.

Les paramètres proposés pour le chiffrement d’une version restent limités à une transition compatible en place, avec un ARN complet de clé KMS et sans contexte supplémentaire. Dans General, Make current…, Create new version… ou Copy as current…, selon la version sélectionnée et l’état connu du bucket, ouvre une autre opération de copie vers l’objet courant, avec ses propres réglages de destination. Voir la récupération de version.

Modifier plusieurs objets ou des objets enfants

Dans les propriétés de plusieurs objets, l’onglet Encryption regroupe les valeurs lues par Property, Value et Objects. Des valeurs différentes restent affichées séparément avec leur nombre d’objets. Not reported indique une valeur absente de la réponse ; Not applicable indique qu’elle ne concerne pas ce mode. Ces observations ne constituent pas un choix à appliquer.

Pending change > Change encryption… prépare un même choix pour la sélection. Do not modify conserve le chiffrement de chaque objet. Use settings valide le choix local ; seul OK dans les propriétés lance les modifications. Le moteur examine chaque objet et l’ensemble des changements demandés pour décider entre mise à jour sans copie et réécriture. Il ne garantit pas un même chemin pour tout le lot.

Source SSE-C key… fournit une seule clé pour tous les objets ou versions sélectionnés. Le dialogue indique le bucket et le nombre de cibles. Vous pouvez fournir cette clé pour consulter leurs propriétés sans demander de modification. Séparez les opérations si les objets utilisent des clés différentes.

Dans Modify child objects, Encryption > Pending change > Change encryption… suit le même principe, avec une portée définie par l’emplacement, le mode objets ou versions, et les filtres. Source SSE-C key: > Provide key… concerne les objets inspectés par l’opération ; ce bouton devient disponible lorsqu’un changement nécessitant cette lecture est choisi et que le compte la prend en charge. Après Use settings, ouvrez Preview, puis cliquez sur Run preview. Contrôlez les cibles, puis cliquez sur Apply. Voir les propriétés d’objets et les modifications d’objets enfants.

Choix d’un transfert

Dans Paste with options, utilisez Destination encryption > Change encryption… pour choisir New encryption:. Les copies proposent Reuse source settings, les téléversements Use service settings, avec les méthodes explicites compatibles. Use settings revient aux options du transfert et actualise le résumé ; Copy, Move ou Synchronize lance ensuite l’opération choisie. Un choix incompatible reste visible mais désactivé, avec une explication.

SSE-C read key… dans Source decryption fournit la clé pour toutes les sources sélectionnées, objets des dossiers inclus. Le dialogue identifie la source unique et sa version, le cas échéant, ou indique le nombre de sources S3 sélectionnées. Séparez les opérations pour des clés différentes. En synchronisation, Set destination SSE-C read key… dans Destination decryption fournit une clé distincte, utilisée seulement pour lire les objets existants à destination ; les nouvelles écritures utilisent Destination encryption.

Ces choix sont propres à l’opération. Voir les options de transfert et les modifications d’objets enfants.