Comment utiliser l'interface de ligne de commande AWS de chiffrement - AWS Encryption SDK

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comment utiliser l'interface de ligne de commande AWS de chiffrement

Cette rubrique explique comment utiliser les paramètres de l'interface de ligne de commande de AWS chiffrement. Pour obtenir des exemples, consultez Exemples deAWSCLI de chiffrement. Pour obtenir la documentation complète, consultez Lisez les documents. La syntaxe présentée dans ces exemples est celle de la version 2.1 de AWS Encryption CLI. x et versions ultérieures.

Note

Les versions de l'interface de ligne de commande de AWS chiffrement antérieures à la version 4.0.0 sont en phase e. nd-of-support

Vous pouvez effectuer la mise à jour en toute sécurité à partir de la version 2.1. x et versions ultérieures vers la dernière version de l'interface de ligne de commande de AWS chiffrement sans aucune modification du code ou des données. Toutefois, de nouvelles fonctionnalités de sécurité ont été introduites dans la version 2.1. x ne sont pas rétrocompatibles. Pour effectuer une mise à jour depuis la version 1.7. x ou version antérieure, vous devez d'abord effectuer la mise à jour vers la dernière version 1. version x de l'interface de ligne de commande de AWS chiffrement. Pour plus de détails, consultez Migrer votreAWS Encryption SDK.

De nouvelles fonctionnalités de sécurité ont été initialement publiées dans les versions 1.7 d'AWSEncryption CLI. x et 2.0. x. Toutefois, AWS Encryption CLI version 1.8. x remplace la version 1.7. x et AWS Encryption CLI 2.1. x remplace la version 2.0. x. Pour plus de détails, consultez l'avis de sécurité correspondant dans le aws-encryption-sdk-cliréférentiel surGitHub.

Pour un exemple montrant comment utiliser la fonctionnalité de sécurité qui limite les clés de données cryptées, voirLimiter les clés de données chiffrées.

Pour obtenir un exemple montrant comment utiliser les clés AWS KMS multirégions, reportez-vous Utilisation de plusieurs régions AWS KMS keys à la section.

Procédure pour chiffrer et déchiffrer des données

La CLI de AWS chiffrement utilise les fonctionnalités du AWS Encryption SDK pour faciliter le chiffrement et le déchiffrement des données en toute sécurité.

Note

Le --master-keys paramètre est obsolète dans la version 1.8. x de l'interface de ligne de commande de AWS chiffrement et supprimé dans la version 2.1. x. Utilisez plutôt le paramètre --wrapping-keys. À partir de la version 2.1. x, le --wrapping-keys paramètre est obligatoire lors du chiffrement et du déchiffrement. Pour plus de détails, consultez Référence des paramètres et de la syntaxe de l'interface de ligne de commande du kit AWS Encryption SDK.

  • Lorsque vous chiffrez des données dans la CLI de AWS chiffrement, vous spécifiez vos données en texte brut et une clé d'encapsulation (ou clé principale), telle qu'un AWS KMS key in AWS Key Management Service (). AWS KMS Si vous utilisez un fournisseur de clé principale personnalisé, vous devez également spécifier le fournisseur. Vous spécifiez également les emplacements de sortie pour le message chiffré et pour les métadonnées relatives à l'opération de chiffrement. Le contexte de chiffrement est facultatif, mais il est recommandé.

    Dans la version 1.8. x, le --commitment-policy paramètre est obligatoire lorsque vous l'--wrapping-keysutilisez ; sinon, il n'est pas valide. À partir de la version 2.1. x, le --commitment-policy paramètre est facultatif, mais recommandé.

    aws-encryption-cli --encrypt --input myPlaintextData \ --wrapping-keys key=1234abcd-12ab-34cd-56ef-1234567890ab \ --output myEncryptedMessage \ --metadata-output ~/metadata \ --encryption-context purpose=test \ --commitment-policy require-encrypt-require-decrypt

    L'AWSinterface de ligne de commande de chiffrement chiffre vos données à l'aide d'une clé de données unique. Il chiffre ensuite la clé de données sous les clés d'encapsulation que vous avez spécifiées. Elle renvoie un message chiffré et des métadonnées sur l'opération. Le message chiffré contient vos données chiffrées (texte chiffré) et une copie chiffrée de la clé de données. Vous n'avez pas à vous soucier du stockage, de la gestion ou de la perte de la clé de données.

     

  • Lorsque vous déchiffrez des données, vous transmettez votre message, le contexte de chiffrement facultatif, et l'emplacement de la sortie en texte brut et des métadonnées. Vous devez également spécifier les clés d'encapsulation que la CLI de AWS chiffrement peut utiliser pour déchiffrer le message, ou indiquer à l'interface de ligne de commande de AWS chiffrement qu'elle peut utiliser n'importe quelle clé d'encapsulation qui a chiffré le message.

    À partir de la version 1.8. x, le --wrapping-keys paramètre est facultatif lors du déchiffrement, mais recommandé. À partir de la version 2.1. x, le --wrapping-keys paramètre est obligatoire lors du chiffrement et du déchiffrement.

    Lors du déchiffrement, vous pouvez utiliser l'attribut key du --wrapping-keys paramètre pour spécifier les clés d'encapsulation qui déchiffrent vos données. La spécification d'une clé AWS KMS d'encapsulation lors du déchiffrement est facultative, mais il s'agit d'une bonne pratique qui vous empêche d'utiliser une clé que vous n'aviez pas l'intention d'utiliser. Si vous utilisez un fournisseur de clé principale personnalisé, vous devez spécifier le fournisseur et la clé d'encapsulation.

    Si vous n'utilisez pas l'attribut key, vous devez définir l'attribut discovery du --wrapping-keys paramètre surtrue, ce qui permet à la CLI de AWS chiffrement de déchiffrer à l'aide de n'importe quelle clé d'encapsulation ayant chiffré le message.

    Il est recommandé d'utiliser ce --max-encrypted-data-keys paramètre pour éviter de déchiffrer un message mal formé comportant un nombre excessif de clés de données cryptées. Spécifiez le nombre attendu de clés de données cryptées (une pour chaque clé d'encapsulage utilisée pour le chiffrement) ou un maximum raisonnable (par exemple 5). Pour plus de détails, consultez Limiter les clés de données chiffrées.

    Le --buffer paramètre renvoie du texte en clair uniquement après le traitement de toutes les entrées, y compris la vérification de la signature numérique s'il en existe une.

    Le --decrypt-unsigned paramètre déchiffre le texte chiffré et garantit que les messages ne sont pas signés avant le déchiffrement. Utilisez ce paramètre si vous l'--algorithmavez utilisé et sélectionné une suite d'algorithmes sans signature numérique pour crypter les données. Si le texte chiffré est signé, le déchiffrement échoue.

    Vous pouvez utiliser --decrypt ou --decrypt-unsigned pour le déchiffrement, mais pas les deux.

    aws-encryption-cli --decrypt --input myEncryptedMessage \ --wrapping-keys key=1234abcd-12ab-34cd-56ef-1234567890ab \ --output myPlaintextData \ --metadata-output ~/metadata \ --max-encrypted-data-keys 1 \ --buffer \ --encryption-context purpose=test \ --commitment-policy require-encrypt-require-decrypt

    La CLI de AWS chiffrement utilise la clé d'encapsulation pour déchiffrer la clé de données du message crypté. Elle utilise ensuite la clé de données pour déchiffrer vos données. Elle renvoie vos données en texte brut et vos métadonnées sur l'opération.

Comment spécifier les clés d'encapsulation

Lorsque vous chiffrez des données dans l'interface de ligne de commande de AWS chiffrement, vous devez spécifier au moins une clé d'encapsulation (ou clé principale). Vous pouvez utiliser AWS KMS keys in AWS Key Management Service (AWS KMS), des clés d'encapsulation provenant d'un fournisseur de clé principale personnalisé, ou les deux. Le fournisseur de clés principales personnalisé peut être n'importe quel fournisseur de clés principales Python compatible.

Pour spécifier les clés d'encapsulation dans les versions 1.8. x et versions ultérieures, utilisez le --wrapping-keys paramètre (-w). La valeur de ce paramètre est un ensemble d'attributs au attribute=value format. Les attributs que vous utilisez dépendent du fournisseur de clés principales et de la commande.

  • AWS KMS. Dans les commandes de chiffrement, vous devez spécifier un --wrapping-keys paramètre avec un attribut clé. À partir de la version 2.1. x, le --wrapping-keys paramètre est également requis dans les commandes de déchiffrement. Lors du déchiffrement, le --wrapping-keys paramètre doit comporter un attribut clé ou un attribut de découverte dont la valeur est true (mais pas les deux). Les autres attributs sont facultatifs.

  • Fournisseur de clés principales personnalisé. Vous devez spécifier un --wrapping-keys paramètre dans chaque commande. La valeur du paramètre doit avoir des attributs key et provider.

Vous pouvez inclure plusieurs --wrapping-keys paramètres et plusieurs attributs clés dans la même commande.

Encapsulation des attributs des paramètres clés

La valeur du paramètre --wrapping-keys comprend les attributs suivants et leurs valeurs. Un --wrapping-keys paramètre (ou --master-keys paramètre) est requis dans toutes les commandes de chiffrement. À partir de la version 2.1. x, le --wrapping-keys paramètre est également requis lors du déchiffrement.

Si le nom d'un attribut ou la valeur d'un attribut inclut des espaces ou des caractères spéciaux, entourez le nom et la valeur de guillemets. Par exemple, --wrapping-keys key=12345 "provider=my cool provider".

Clé : Spécifiez une clé d'encapsulation

Utilisez l'attribut key pour identifier une clé d'encapsulation. Lors du chiffrement, la valeur peut être n'importe quel identifiant de clé reconnu par le fournisseur de clé principale.

--wrapping-keys key=1234abcd-12ab-34cd-56ef-1234567890ab

Dans une commande de chiffrement, vous devez inclure au moins un attribut clé et une valeur. Pour chiffrer votre clé de données sous plusieurs clés d'encapsulation, utilisez plusieurs attributs de clé.

aws-encryption-cli --encrypt --wrapping-keys key=1234abcd-12ab-34cd-56ef-1234567890ab key=1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d

Dans les commandes de chiffrement qui utilisentAWS KMS keys, la valeur de la clé peut être l'ID de la clé, son ARN de clé, un nom d'alias ou un ARN d'alias. Par exemple, cette commande de chiffrement utilise un ARN d'alias dans la valeur de l'attribut key. Pour plus d'informations sur les identificateurs clés d'unAWS KMS key, consultez la section Identifiants clés du Guide du AWS Key Management Servicedéveloppeur.

aws-encryption-cli --encrypt --wrapping-keys key=arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias

Dans les commandes de déchiffrement qui utilisent un fournisseur de clés principales personnalisé, les attributs key et provider sont requis.

\\ Custom master key provider aws-encryption-cli --decrypt --wrapping-keys provider='myProvider' key='100101'

Dans les commandes de déchiffrement qui utilisentAWS KMS, vous pouvez utiliser l'attribut key pour spécifier l'attribut AWS KMS keys à utiliser pour le déchiffrement, ou l'attribut discovery avec une valeur detrue, qui permet à l'interface de ligne de commande de AWS chiffrement d'utiliser tout ce AWS KMS key qui a été utilisé pour chiffrer le message. Si vous spécifiez unAWS KMS key, il doit s'agir de l'une des clés d'encapsulation utilisées pour crypter le message.

La spécification de la clé d'encapsulation est une AWS Encryption SDKbonne pratique. Cela garantit que vous utilisez ce que AWS KMS key vous avez l'intention d'utiliser.

Dans une commande de déchiffrement, la valeur de l'attribut clé doit être un ARN clé.

\\ AWS KMS key aws-encryption-cli --decrypt --wrapping-keys key=arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
Découverte : utilisez-en n'importe lequel AWS KMS key lors du décryptage

Si vous n'avez pas besoin de AWS KMS keys limiter l'utilisation lors du déchiffrement, vous pouvez utiliser l'attribut discovery avec une valeur de. true La valeur de true permet à l'interface de ligne de commande de AWS chiffrement de déchiffrer le message à l'aide de tout AWS KMS key ce qui a chiffré le message. Si vous ne spécifiez aucun attribut de découverte, la détection est false (par défaut). L'attribut discovery n'est valide que dans les commandes de déchiffrement et uniquement lorsque le message a été chiffré avecAWS KMS keys.

L'attribut discovery avec une valeur de true est une alternative à l'utilisation de l'attribut clé pour spécifierAWS KMS keys. Lors du déchiffrement d'un message chiffré avecAWS KMS keys, chaque --wrapping-keys paramètre doit comporter un attribut clé ou un attribut de découverte dont la valeur est égale àtrue, mais pas les deux.

Lorsque la découverte est vraie, il est recommandé d'utiliser les attributs discovery-partition et discovery-account pour limiter ceux AWS KMS keys utilisés à ceux que vous avez spécifiés. Comptes AWS Dans l'exemple suivant, les attributs de découverte permettent à la CLI de AWS chiffrement d'utiliser n'importe lequel AWS KMS key des attributs spécifiésComptes AWS.

aws-encryption-cli --decrypt --wrapping-keys \ discovery=true \ discovery-partition=aws \ discovery-account=111122223333 \ discovery-account=444455556666
Fournisseur : Spécifiez le fournisseur de clé principale

L'attribut provider identifie le fournisseur de clés principales. La valeur par défaut est aws-kms, qui représente AWS KMS. Si vous utilisez un autre fournisseur de clés principales, l'attribut provider est requis.

--wrapping-keys key=12345 provider=my_custom_provider

Pour plus d'informations sur l'utilisation de fournisseurs de clés (nonAWS KMS) principales personnalisés, consultez la rubrique Configuration avancée dans le fichier README du référentiel AWSEncryption CLI.

Région : Spécifiez une Région AWS

Utilisez l'attribut region pour spécifier le nom Région AWS d'unAWS KMS key. L'attribut est valide uniquement dans les commandes de chiffrement et uniquement lorsque le fournisseur de clés principales est AWS KMS.

--encrypt --wrapping-keys key=alias/primary-key region=us-east-2

AWSLes commandes CLI de chiffrement utilisent la Région AWS valeur spécifiée dans la valeur de l'attribut clé si celle-ci inclut une région, telle qu'un ARN. Si la valeur de clé indique unRégion AWS, l'attribut de région est ignoré.

L'attribut region est prioritaire sur les autres spécifications relatives à la région. Si vous n'utilisez pas d'attribut de région, les commandes de la CLI de AWS chiffrement utilisent celui Région AWS spécifié dans votre profil AWS CLI nommé, le cas échéant, ou dans votre profil par défaut.

Profil : Spécifier un profil nommé

Utilisez l'attribut de profil pour spécifier un AWS CLIprofil nommé de l'. Les profils nommés peuvent inclure des informations d'identification et unRégion AWS. Cet attribut est valide uniquement lorsque le fournisseur de clés principales est AWS KMS.

--wrapping-keys key=alias/primary-key profile=admin-1

Vous pouvez utiliser l'attribut profile pour spécifier d'autres informations d'identification dans les commandes de chiffrement et de déchiffrement. Dans une commande de chiffrement, l'interface de ligne de commande de AWS chiffrement utilise le Région AWS dans le profil nommé uniquement lorsque la valeur de la clé n'inclut pas de région et qu'il n'existe aucun attribut de région. Dans une commande de déchiffrement, le profil Région AWS figurant dans le nom est ignoré.

Comment spécifier plusieurs clés d'encapsulation

Vous pouvez spécifier plusieurs clés d'encapsulation (ou clés principales) dans chaque commande.

Si vous spécifiez plusieurs clés d'encapsulation, la première clé d'encapsulation génère et chiffre la clé de données utilisée pour chiffrer vos données. Les autres clés d'encapsulation chiffrent la même clé de données. Le message crypté qui en résulte contient les données cryptées (« texte chiffré ») et un ensemble de clés de données cryptées, une cryptée par clé d'encapsulation. N'importe quel encapsulage peut déchiffrer une clé de données cryptée, puis déchiffrer les données.

Il existe deux manières de spécifier plusieurs clés d'encapsulation :

  • Incluez plusieurs attributs clés dans la valeur du --wrapping-keys paramètre.

    $key_oregon=arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab $key_ohio=arn:aws:kms:us-east-2:111122223333:key/0987ab65-43cd-21ef-09ab-87654321cdef --wrapping-keys key=$key_oregon key=$key_ohio
  • Inclure plusieurs paramètres --wrapping-keys dans la même commande. Utilisez cette syntaxe lorsque les valeurs d'attribut que vous spécifiez ne s'appliquent pas à toutes les touches d'encapsulation de la commande.

    --wrapping-keys region=us-east-2 key=alias/test_key \ --wrapping-keys region=us-west-1 key=alias/test_key

L'attribut discovery dont la valeur est de true permet à l'interface de ligne de commande de AWS chiffrement d'utiliser AWS KMS key celui qui a chiffré le message. Si vous utilisez plusieurs --wrapping-keys paramètres dans la même commande, l'utilisation discovery=true de n'importe quel --wrapping-keys paramètre remplace effectivement les limites de l'attribut clé dans --wrapping-keys les autres paramètres.

Par exemple, dans la commande suivante, l'attribut clé du premier --wrapping-keys paramètre limite l'interface de ligne de commande de AWS chiffrement à la valeur spécifiéeAWS KMS key. Toutefois, l'attribut discovery du second --wrapping-keys paramètre permet à l'interface de ligne de commande de AWS chiffrement d'utiliser n'importe quel AWS KMS key compte spécifié pour déchiffrer le message.

aws-encryption-cli --decrypt \ --wrapping-keys key=arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --wrapping-keys discovery=true \ discovery-partition=aws \ discovery-account=111122223333 \ discovery-account=444455556666

Procédure pour fournir une entrée

L'opération de chiffrement dans l'interface de ligne de commande de AWS chiffrement prend des données en texte brut comme entrée et renvoie un message crypté. L'opération de déchiffrement utilise un message chiffré comme entrée et renvoie des données en texte brut.

Le --input paramètre (-i), qui indique à la CLI de AWS chiffrement où trouver l'entrée, est obligatoire dans toutes les commandes de la CLI de AWS chiffrement.

Vous pouvez fournir une entrée des façons suivantes :

  • Utiliser un fichier.

    --input myData.txt
  • Utiliser un modèle de nom de fichier.

    --input testdir/*.xml
  • Utiliser un répertoire ou un modèle de nom de répertoire. Lorsque l'entrée est un répertoire, le paramètre --recursive (-r, -R) est obligatoire.

    --input testdir --recursive
  • Dirigez l'entrée vers la commande (stdin). Utilisez une valeur de - pour le paramètre --input. (Le paramètre --input est toujours obligatoire.)

    echo 'Hello World' | aws-encryption-cli --encrypt --input -

Procédure pour spécifier l'emplacement de sortie

Le --output paramètre indique à l'interface de ligne de commande de AWS chiffrement où écrire les résultats de l'opération de chiffrement ou de déchiffrement. Elle est requise dans chaque commande de l'interface AWS de ligne de commande de chiffrement. L'interface AWS de ligne de commande de chiffrement crée un nouveau fichier de sortie pour chaque fichier d'entrée de l'opération.

Si un fichier de sortie existe déjà, par défaut, l'interface de ligne de commande de AWS chiffrement affiche un avertissement, puis remplace le fichier. Pour empêcher le remplacement, utilisez le paramètre --interactive, qui vous invite à confirmer avant le remplacement, ou le paramètre --no-overwrite, qui ignore l'entrée si la sortie doit entraîner un remplacement. Pour supprimer l'avertissement de remplacement, utilisez --quiet. Pour capturer les erreurs et les avertissements provenant de l'interface de ligne de commande de AWS chiffrement, utilisez l'opérateur de 2>&1 redirection pour les écrire dans le flux de sortie.

Note

Les commandes qui remplacent les fichiers de sortie commencent par supprimer le fichier de sortie. Si la commande échoue, il est possible que le fichier de sortie soit déjà supprimé.

Vous pouvez spécifier l'emplacement de sortie de plusieurs façons.

  • Spécifiez un nom de fichier. Si vous spécifiez un chemin d'accès au fichier, tous les répertoires du chemin doivent exister avant l'exécution de la commande.

    --output myEncryptedData.txt
  • Spécifiez un répertoire. Le répertoire de sortie doit exister avant l'exécution de la commande.

    Si l'entrée contient des sous-répertoires, la commande reproduit les sous-répertoires sous le répertoire spécifié.

    --output Test

    Lorsque l'emplacement de sortie est un répertoire (sans nom de fichier), l'interface de ligne de commande de AWS chiffrement crée des noms de fichiers de sortie sur la base des noms des fichiers d'entrée et d'un suffixe. Les opérations de chiffrement ajoutent .encrypted au nom du fichier d'entrée et les opérations de déchiffrement ajoutent .decrypted. Pour modifier le suffixe, utilisez le paramètre --suffix.

    Par exemple, si vous chiffrez file.txt, la commande de chiffrement crée file.txt.encrypted. Si vous déchiffrez file.txt.encrypted, la commande de déchiffrement crée file.txt.encrypted.decrypted.

     

  • Écrivez sur la ligne de commande (stdout). Entrez une valeur de - pour le paramètre --output. Vous pouvez utiliser --output - pour diriger la sortie vers une autre commande ou un autre programme.

    --output -

Procédure pour utiliser un contexte de chiffrement

L'interface de ligne de commande de AWS chiffrement vous permet de fournir un contexte de chiffrement dans les commandes de chiffrement et de déchiffrement. Ce contexte n'est pas obligatoire, mais c'est une bonne pratique de chiffrement que nous recommandons.

Un contexte de chiffrement est un type de données authentifiées supplémentaires non secrètes et arbitraires. Dans l'AWSinterface de ligne de commande de chiffrement, le contexte de chiffrement consiste en un ensemble de name=value paires. Vous pouvez utiliser n'importe quel contenu dans les paires, y compris les informations sur les fichiers, les données qui vous aident à identifier l'opération de chiffrement dans les journaux ou les données nécessaires pour vos droits ou vos stratégies.

Dans une commande de chiffrement

Le contexte de chiffrement que vous spécifiez dans une commande de chiffrement, ainsi que toutes paires supplémentaires ajoutées par le CMM, est lié de manière chiffrée aux données chiffrées. Il est également inclus (en texte brut) dans le message chiffré renvoyé par la commande. Si vous utilisez unAWS KMS key, le contexte de chiffrement peut également apparaître en texte clair dans les enregistrements et les journaux d'audit, tels queAWS CloudTrail.

L'exemple suivant illustre un contexte de chiffrement avec trois paires name=value.

--encryption-context purpose=test dept=IT class=confidential

Dans une commande de déchiffrement

Dans une commande de déchiffrement, le contexte de chiffrement vous permet de confirmer que vous déchiffrez le message chiffré correct.

Vous n'êtes pas tenu de fournir un contexte de chiffrement dans une commande de déchiffrement, même si un contexte de chiffrement a été utilisé pour le chiffrement. Toutefois, si vous le faites, l'interface de ligne de commande de AWS chiffrement vérifie que chaque élément du contexte de chiffrement de la commande de déchiffrement correspond à un élément du contexte de chiffrement du message crypté. Si certains éléments ne correspondent pas, la commande de déchiffrement échoue.

Par exemple, la commande suivante déchiffre le message chiffré uniquement si son contexte de chiffrement inclut dept=IT.

aws-encryption-cli --decrypt --encryption-context dept=IT ...

Un contexte de chiffrement est un élément important de votre stratégie de sécurité. Cependant, lorsque vous choisissez un contexte de chiffrement, n'oubliez pas que ses valeurs ne sont pas secrètes. N'incluez aucune donnée confidentielle dans le contexte de chiffrement.

Pour spécifier un contexte de chiffrement

  • Dans une commande de chiffrement, utilisez le paramètre --encryption-context avec une ou plusieurs paires name=value. Séparez chaque paire par un espace.

    --encryption-context name=value [name=value] ...
  • Dans une commande de déchiffrement, la valeur du paramètre --encryption-context peut inclure des paires name=value, des éléments name (sans valeur) ou une combinaison des deux.

    --encryption-context name[=value] [name] [name=value] ...

Si name ou value dans une paire name=value contient des espaces ou des caractères spéciaux, placez la totalité de la paire entre guillemets.

--encryption-context "department=software engineering" "Région AWS=us-west-2"

Par exemple, cette commande de chiffrement inclut un contexte de chiffrement avec deux paires, purpose=test et dept=23.

aws-encryption-cli --encrypt --encryption-context purpose=test dept=23 ...

Ces commandes de déchiffrement réussiraient. Le contexte de chiffrement de chaque commande est un sous-ensemble du contexte de chiffrement d'origine.

\\ Any one or both of the encryption context pairs aws-encryption-cli --decrypt --encryption-context dept=23 ... \\ Any one or both of the encryption context names aws-encryption-cli --decrypt --encryption-context purpose ... \\ Any combination of names and pairs aws-encryption-cli --decrypt --encryption-context dept purpose=test ...

Cependant, ces commandes de déchiffrement échoueraient. Le contexte de chiffrement du message chiffré ne contient pas les éléments spécifiés.

aws-encryption-cli --decrypt --encryption-context dept=Finance ... aws-encryption-cli --decrypt --encryption-context scope ...

Comment définir une politique d'engagement

Pour définir la politique d'engagement pour la commande, utilisez le --commitment-policyparamètre. Ce paramètre est introduit dans la version 1.8. x. Il est valide dans les commandes de chiffrement et de déchiffrement. La politique d'engagement que vous définissez n'est valide que pour la commande dans laquelle elle apparaît. Si vous ne définissez pas de politique d'engagement pour une commande, l'interface de ligne de commande de AWS chiffrement utilise la valeur par défaut.

Par exemple, la valeur de paramètre suivante définit la politique d'engagement surrequire-encrypt-allow-decrypt, qui chiffre toujours avec un engagement de clé, mais qui déchiffre un texte chiffré avec ou sans validation de clé.

--commitment-policy require-encrypt-allow-decrypt

Procédure pour stocker les paramètres dans un fichier de configuration

Vous pouvez gagner du temps et éviter les erreurs de frappe en enregistrant les paramètres et les valeurs de la CLI de AWS chiffrement fréquemment utilisés dans des fichiers de configuration.

Un fichier de configuration est un fichier texte qui contient les paramètres et les valeurs d'une commande de AWS chiffrement CLI. Lorsque vous faites référence à un fichier de configuration dans une commande de l'interface de ligne de commande de AWS chiffrement, la référence est remplacée par les paramètres et les valeurs du fichier de configuration. L'effet est le même que si vous aviez saisi le contenu d'un fichier dans la ligne de commande. Un fichier de configuration peut avoir n'importe quel nom et peut être situé dans n'importe quel répertoire auquel l'utilisateur actuel peut accéder.

L'exemple de fichier de configuration suivant key.conf en spécifie deux AWS KMS keys dans des régions différentes.

--wrapping-keys key=arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab --wrapping-keys key=arn:aws:kms:us-east-2:111122223333:key/0987ab65-43cd-21ef-09ab-87654321cdef

Pour utiliser le fichier de configuration dans une commande, ajoutez au nom du fichier le signe arobase, @, en préfixe. Dans une PowerShell console, utilisez un caractère de coche arrière pour échapper au signe arobase (`@).

Cet exemple de commande utilise le fichier key.conf dans une commande de chiffrement.

Bash
$ aws-encryption-cli -e @key.conf -i hello.txt -o testdir
PowerShell
PS C:\> aws-encryption-cli -e `@key.conf -i .\Hello.txt -o .\TestDir

Règles des fichiers de configuration

Les règles relatives à l'utilisation des fichiers de configuration sont les suivantes :

  • Vous pouvez inclure plusieurs paramètres dans chaque fichier de configuration et les répertorier dans n'importe quel ordre. Répertoriez chaque paramètre avec ses valeurs (le cas échéant) sur une ligne distincte.

  • Utilisez # pour ajouter un commentaire à toute ou partie d'une ligne.

  • Vous pouvez inclure des références à d'autres fichiers de configuration. N'utilisez pas de marche arrière pour échapper au @ panneau, même à PowerShell l'intérieur.

  • Si vous utilisez des guillemets dans un fichier de configuration, le texte entre guillemets ne peut pas s'étendre sur plusieurs lignes.

Par exemple, voici le contenu d'un exemple de fichier encrypt.conf.

# Archive Files --encrypt --output /archive/logs --recursive --interactive --encryption-context class=unclassified dept=IT --suffix # No suffix --metadata-output ~/metadata @caching.conf # Use limited caching

Vous pouvez également inclure plusieurs fichiers de configuration dans une commande. Cet exemple de commande utilise à la fois les fichiers de configuration encrypt.conf et master-keys.conf.

Bash
$ aws-encryption-cli -i /usr/logs @encrypt.conf @master-keys.conf
PowerShell
PS C:\> aws-encryption-cli -i $home\Test\*.log `@encrypt.conf `@master-keys.conf

Suivant : Essayez les exemples d'interface de ligne de commande de AWS chiffrement