AWS Encryption SDKpour .NET - 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.

AWS Encryption SDKpour .NET

LeAWS Encryption SDKfor .NET est une bibliothèque de chiffrement côté client pour les développeurs qui écrivent des applications en C # et dans d'autres langages de programmation .NET. Elle est prise en charge sur Windows, macOS et Linux.

TousLangage de programmationImplémentations duAWS Encryption SDKsont entièrement interopérables. Par exemple, vous pouvez chiffrer des données avecAWS Encryption SDKpour .NET et déchiffrez-le avec n'importe quelimplémentation du langage de programmation pris en, y compris leAWSCLI de chiffrement, à condition que vous utilisiezporte-clés et fournisseurs de clés principaux compatibles.

LeAWS Encryption SDKpour .NET diffère de certaines des autres implémentations de langages de programmation duAWS Encryption SDKde la manière suivante :

LeAWS Encryption SDKpour .NET inclut toutes les fonctionnalités de sécurité introduites dans les versions 2.0.h/24, j/7et ultérieurement d'autres implémentations linguistiques duAWS Encryption SDK. Toutefois, si vous utilisez leAWS Encryption SDKpour .NET afin de déchiffrer les données chiffrées par une version antérieure à 2.0.h/24, j/7version d'une autre langue implémentation duAWS Encryption SDK, il se peut que vous deviez ajuster votrepolitique d'engagement. Pour plus d'informations, consultez Comment définir votre politique d'engagement.

LeAWS Encryption SDKfor .NET est un produit de laAWS Encryption SDKdansDafny, un langage de vérification formel dans lequel vous rédigez des spécifications, le code pour les implémenter et les épreuves pour les tester. Il en résulte une bibliothèque qui implémente les fonctionnalités duAWS Encryption SDKdans un cadre qui garantit l'exactitude fonctionnelle.

En savoir plus

  • Pour obtenir des exemples montrant comment configurer les options dans leAWS Encryption SDK, par exemple en spécifiant une suite d'algorithmes alternatifs, en limitant les clés de données chiffrées et en utilisantAWS KMSVoir les clés multi-régionsConfiguration du AWS Encryption SDK.

  • Pour plus de détails sur la programmation avec leAWS Encryption SDKpour .NET, consultez leaws-encryption-sdk-netrépertoire de la aws-encryption-sdk-dafnysur le repository GitHub.

Installation deAWS Encryption SDKpour .NET

LeAWS Encryption SDKpour .NET est disponible en tant queAWS.EncryptionSDKPackage in NuGet. Pour plus d'informations sur l'installation et la construction duAWS Encryption SDKpour .NET, consultez leReadMe.mddans le fichieraws-encryption-sdk-netrepository.

LeAWS Encryption SDKpour .NET prend en charge .NET Framework 4.5.2 — 4.8 uniquement sous Windows. Il prend en charge .NET Core 3.0+ et .NET 5.0 et versions ultérieures sur tous les systèmes d'exploitation pris en charge.

LeAWS Encryption SDKpour .NET nécessite leAWS SDK for .NETMême si vous n'utilisez pasAWS Key Management Service(AWS KMS) clés. Il est installé avec le NuGet Package. Toutefois, à moins que vous n'utilisiezAWS KMSclés,AWS Encryption SDKpour .NET ne nécessite pas deCompte AWS,AWSinformations d'identification ou interaction avec n'importe quelAWSservice. Pour obtenir de l'aide pour configurer unAWSsi vous en avez besoin, consultezUtilisation de l'AWS Encryption SDK avec AWS KMS.

Débogage d'AWS Encryption SDKpour .NET

LeAWS Encryption SDKpour .NET ne génère aucun journal. Exceptions dans leAWS Encryption SDKpour .NET génère un message d'exception, mais aucune trace de pile.

Pour vous aider à déboguer, veillez à activer la connexion dans leAWS SDK for .NET. Les journaux et les messages d'erreur duAWS SDK for .NETpeut vous aider à distinguer les erreurs survenant dans leAWS SDK for .NETde ceux qui se trouvent dans leAWS Encryption SDK.NET. Pour obtenir de l'aide surAWS SDK for .NETjournalisation, consultezAWSLoggingdans leAWS SDK for .NETManuel du développeur. (Pour voir le sujet, développez leOuvrir pour afficher le contenu .NET Frameworksection.)

AWS KMSporte-clés dans leAWS Encryption SDKpour .NET

Le basiqueAWS KMSporte-clés dans leAWS Encryption SDKpour .NET, ne prenez qu'une seule clé KMS. Ils ont également besoin d'unAWS KMS, ce qui vous donne la possibilité de configurer le client pour leRégion AWSde la clé KMS.

Pour créer unAWS KMSPorte-clés avec une ou plusieurs clés d'emballage, utilisez un porte-clés multiple. LeAWS Encryption SDKpour .NET dispose d'un porte-clés multi-clés spécial qui prend un ou plusieursAWS KMSet un porte-clés multi-clés standard qui prend un ou plusieurs porte-clés de n'importe quel type pris en charge. Certains programmeurs préfèrent utiliser une méthode multi-clés pour créer tous leurs porte-clés, et leAWS Encryption SDKfor .NET prend en charge cette stratégie.

LeAWS Encryption SDKpour .NET fournit des porte-clés simples à clé unique et des porte-clés multiples pour tous les cas d'utilisation typiques, y comprisAWS KMS Touches multi-régions.

Par exemple, pour créer unAWS KMSavec un porte-clésAWS KMS, vous pouvez utiliser la toucheCreateAwsKmsKeyring()méthode. Cet exemple montre comment créer une valeur par défautAWS KMSclient pour la région qui contient la clé spécifiée.

// Instantiate the AWS Encryption SDK and material providers var encryptionSdk = AwsEncryptionSdkFactory.CreateDefaultAwsEncryptionSdk(); var materialProviders = AwsCryptographicMaterialProvidersFactory.CreateDefaultAwsCryptographicMaterialProviders(); string keyArn = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; // Instantiate the keyring input object var kmsKeyringInput = new CreateAwsKmsKeyringInput { KmsClient = new AmazonKeyManagementServiceClient(), KmsKeyId = keyArn }; // Create the keyring var keyring = materialProviders.CreateAwsKmsKeyring(kmsKeyringInput);

Pour créer un porte-clés avec un ou plusieursAWS KMS, utilisez les touchesCreateAwsKmsMultiKeyring()méthode. Cet exemple utilise deuxAWS KMSclés. Pour spécifier une clé KMS, utilisez uniquement la commandeGenerator  Paramètre . LeKmsKeyIdsparamètre qui spécifie des clés KMS supplémentaires est facultatif.

L'entrée de ce porte-clés ne prend pasAWS KMSclient. C'est laAWS Encryption SDKutilise la valeur par défautAWS KMSclient pour chaque région représentée par une clé KMS dans le porte-clés. Par exemple, si la clé KMS identifiée par la valeur duGeneratorest situé dans la région USA Ouest (Oregon) (us-west-2), leAWS Encryption SDKcrée une valeur par défautAWS KMSclient pour leus-west-2Région . Si vous avez besoin de personnaliser leAWS KMSclient, utilisez leCreateAwsKmsKeyring()méthode.

// Instantiate the AWS Encryption SDK and material providers var encryptionSdk = AwsEncryptionSdkFactory.CreateDefaultAwsEncryptionSdk(); var materialProviders = AwsCryptographicMaterialProvidersFactory.CreateDefaultAwsCryptographicMaterialProviders(); string generatorKey = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; List<string> additionalKeys = new List<string> { "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321" }; // Instantiate the keyring input object var createEncryptKeyringInput = new CreateAwsKmsMultiKeyringInput { Generator = generatorKey, KmsKeyIds = additionalKeys }; var kmsEncryptKeyring = materialProviders.CreateAwsKmsMultiKeyring(createEncryptKeyringInput);