Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
AWS Encryption SDK per il codice di esempio Go
Gli esempi seguenti mostrano i modelli di codifica di base utilizzati durante la programmazione con AWS Encryption SDK for Go. In particolare, si crea un'istanza della libreria AWS Encryption SDK e dei fornitori di materiali. Quindi, prima di chiamare ciascun metodo, create un'istanza dell'oggetto che definisce l'input per il metodo.
Per esempi che mostrano come configurare le opzioni in AWS Encryption SDK, come specificare una suite di algoritmi alternativa e limitare le chiavi di dati crittografate, consulta gli esempi di Go
Crittografia e decrittografia dei dati in AWS Encryption SDK per Go
Questo esempio mostra il modello di base per la crittografia e la decrittografia dei dati. Crittografa una piccola quantità di dati con chiavi di dati protette da una chiave di wrapping. AWS KMS
- Passaggio 1: istanziare il. AWS Encryption SDK
-
Utilizzerai i metodi indicati per crittografare e AWS Encryption SDK decrittografare i dati.
import ( "context" mpl "aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated" mpltypes "aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" client "github.com/aws/aws-encryption-sdk/awscryptographyencryptionsdksmithygenerated" esdktypes "github.com/aws/aws-encryption-sdk/awscryptographyencryptionsdksmithygeneratedtypes" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/service/kms" ) encryptionClient, err := client.NewClient(esdktypes.AwsEncryptionSdkConfig{}) if err != nil { panic(err) } - Passaggio 2: creare un client. AWS KMS
-
cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { panic(err) } kmsClient := kms.NewFromConfig(cfg, func(o *kms.Options) { o.Region = KmsKeyRegion }) - Facoltativo: crea il tuo contesto di crittografia.
-
encryptionContext := map[string]string{ "encryption": "context", "is not": "secret", "but adds": "useful metadata", "that can help you": "be confident that", "the data you are handling": "is what you think it is", } - Passaggio 3: crea un'istanza della libreria dei fornitori di materiali.
-
Utilizzerai i metodi della libreria dei fornitori di materiali per creare i portachiavi che specificano quali chiavi proteggono i tuoi dati.
matProv, err := mpl.NewClient(mpltypes.MaterialProvidersConfig{}) if err != nil { panic(err) } - Passaggio 4: crea un AWS KMS portachiavi.
-
Per creare il portachiavi, chiama il metodo keyring con l'oggetto di input keyring. Questo esempio utilizza il
CreateAwsKmsKeyringmetodo e specifica una chiave KMS. LakmsKeyIdvariabile rappresenta l'ARN chiave della chiave KMS fornita.awsKmsKeyringInput := mpltypes.CreateAwsKmsKeyringInput{ KmsClient: kmsClient, KmsKeyId: kmsKeyId, } awsKmsKeyring, err := matProv.CreateAwsKmsKeyring(context.Background(), awsKmsKeyringInput) if err != nil { panic(err) } - Fase 5: Crittografa il testo in chiaro.
-
res, err := encryptionClient.Encrypt(context.Background(), esdktypes.EncryptInput{ Plaintext: []byte(exampleText), EncryptionContext: encryptionContext, Keyring: awsKmsKeyring, }) if err != nil { panic(err) } ciphertext := res.Ciphertext - Passo 6: Decifra i tuoi dati crittografati usando lo stesso portachiavi che hai usato per crittografare.
-
decryptOutput, err := encryptionClient.Decrypt(context.Background(), esdktypes.DecryptInput{ Ciphertext: ciphertext, // Provide the encryption context that was supplied to the encrypt method EncryptionContext: encryptionContext, Keyring: awsKmsKeyring, }) if err != nil { panic(err) } decrypted := decryptOutput.Plaintext