Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS Encryption SDK untuk kode contoh Go
Contoh berikut menunjukkan pola pengkodean dasar yang Anda gunakan saat pemrograman dengan AWS Encryption SDK for Go. Secara khusus, Anda membuat instance AWS Encryption SDK dan pustaka penyedia materi. Kemudian, sebelum memanggil setiap metode, Anda membuat instance objek yang mendefinisikan input untuk metode tersebut.
Untuk contoh yang menunjukkan cara mengkonfigurasi opsi di AWS Encryption SDK, seperti menentukan rangkaian algoritma alternatif dan membatasi kunci data terenkripsi, lihat contoh Go
Mengenkripsi dan mendekripsi data di AWS Encryption SDK untuk Go
Contoh ini menunjukkan pola dasar untuk mengenkripsi dan mendekripsi data. Ini mengenkripsi sejumlah kecil data dengan kunci data yang dilindungi oleh satu kunci AWS KMS pembungkus.
- Langkah 1: Buat instance. AWS Encryption SDK
-
Anda akan menggunakan metode di dalam AWS Encryption SDK untuk mengenkripsi dan mendekripsi data.
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) } - Langkah 2: Buat AWS KMS klien.
-
cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { panic(err) } kmsClient := kms.NewFromConfig(cfg, func(o *kms.Options) { o.Region = KmsKeyRegion }) - Opsional: Buat konteks enkripsi Anda.
-
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", } - Langkah 3: Buat instance pustaka penyedia materi.
-
Anda akan menggunakan metode di pustaka penyedia material untuk membuat gantungan kunci yang menentukan kunci mana yang melindungi data Anda.
matProv, err := mpl.NewClient(mpltypes.MaterialProvidersConfig{}) if err != nil { panic(err) } - Langkah 4: Buat gantungan AWS KMS kunci.
-
Untuk membuat keyring, panggil metode keyring dengan objek input keyring. Contoh ini menggunakan
CreateAwsKmsKeyringmetode dan menentukan satu kunci KMS.kmsKeyIdVariabel mewakili kunci ARN dari kunci KMS yang Anda berikan.awsKmsKeyringInput := mpltypes.CreateAwsKmsKeyringInput{ KmsClient: kmsClient, KmsKeyId: kmsKeyId, } awsKmsKeyring, err := matProv.CreateAwsKmsKeyring(context.Background(), awsKmsKeyringInput) if err != nil { panic(err) } - Langkah 5: Enkripsi plaintext.
-
res, err := encryptionClient.Encrypt(context.Background(), esdktypes.EncryptInput{ Plaintext: []byte(exampleText), EncryptionContext: encryptionContext, Keyring: awsKmsKeyring, }) if err != nil { panic(err) } ciphertext := res.Ciphertext - Langkah 6: Dekripsi data terenkripsi Anda menggunakan keyring yang sama yang Anda gunakan pada enkripsi.
-
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