Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
.NET contoh
Contoh berikut menunjukkan cara menggunakan pustaka enkripsi sisi klien .NET untuk DynamoDB untuk melindungi item tabel dalam aplikasi Anda. Untuk menemukan lebih banyak contoh (dan berkontribusi sendiri), lihat contoh.NET di repositori
Contoh berikut menunjukkan cara mengonfigurasi pustaka enkripsi sisi klien .NET untuk DynamoDB dalam tabel Amazon DynamoDB baru yang tidak terisi. Jika Anda ingin mengonfigurasi tabel Amazon DynamoDB yang ada untuk enkripsi sisi klien, lihat. Tambahkan versi 3.x ke tabel yang ada
Topik
Menggunakan SDK Enkripsi AWS Database tingkat rendah untuk DynamoDB API
Contoh berikut menunjukkan cara menggunakan SDK Enkripsi AWS Database tingkat rendah untuk DynamoDB API dengan AWS KMS keyring untuk secara otomatis mengenkripsi dan menandatangani item sisi klien dengan permintaan DynamoDB Anda. PutItem
Anda dapat menggunakan keyring apa pun yang didukung, tetapi kami sarankan menggunakan salah satu AWS KMS gantungan kunci bila memungkinkan.
Lihat contoh kode lengkapnya: BasicPutGetExample.cs
- Langkah 1: Buat AWS KMS keyring
-
Contoh berikut digunakan
CreateAwsKmsMrkMultiKeyringuntuk membuat AWS KMS keyring dengan kunci KMS enkripsi simetris.CreateAwsKmsMrkMultiKeyringMetode ini memastikan bahwa keyring akan menangani tombol Single-region dan Multi-region dengan benar.var matProv = new MaterialProviders(new MaterialProvidersConfig()); var keyringInput = new CreateAwsKmsMrkMultiKeyringInput { Generator = kmsKeyId }; var kmsKeyring = matProv.CreateAwsKmsMrkMultiKeyring(keyringInput); - Langkah 2: Konfigurasikan tindakan atribut Anda
-
Contoh berikut mendefinisikan
attributeActionsOnEncryptKamus yang mewakili tindakan atribut sampel untuk item tabel.catatan
Contoh berikut tidak mendefinisikan atribut apa pun sebagai
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT. Jika Anda menentukanSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXTatribut apa pun, maka atribut partisi dan sortir juga harusSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT.var attributeActionsOnEncrypt = new Dictionary<string, CryptoAction> { ["partition_key"] = CryptoAction.SIGN_ONLY, // The partition attribute must be SIGN_ONLY ["sort_key"] = CryptoAction.SIGN_ONLY, // The sort attribute must be SIGN_ONLY ["attribute1"] = CryptoAction.ENCRYPT_AND_SIGN, ["attribute2"] = CryptoAction.SIGN_ONLY, [":attribute3"] = CryptoAction.DO_NOTHING }; - Langkah 3: Tentukan atribut mana yang dikecualikan dari tanda tangan
-
Contoh berikut mengasumsikan bahwa semua
DO_NOTHINGatribut berbagi awalan yang berbeda ":“, dan menggunakan awalan untuk menentukan atribut unsigned yang diizinkan. Klien mengasumsikan bahwa nama atribut apa pun dengan awalan ":" dikecualikan dari tanda tangan. Untuk informasi selengkapnya, lihat Allowed unsigned attributes.const String unsignAttrPrefix = ":"; - Langkah 4: Tentukan konfigurasi enkripsi tabel DynamoDB
-
Contoh berikut mendefinisikan
tableConfigsPeta yang mewakili konfigurasi enkripsi untuk tabel DynamoDB ini.Contoh ini menentukan nama tabel DynamoDB sebagai nama tabel logis. Kami sangat menyarankan untuk menentukan nama tabel DynamoDB Anda sebagai nama tabel logis saat Anda pertama kali menentukan konfigurasi enkripsi Anda. Untuk informasi selengkapnya, lihat Konfigurasi enkripsi dalam SDK Enkripsi AWS Database untuk DynamoDB.
catatan
Untuk menggunakan enkripsi yang dapat dicari atau suar yang ditandatangani, Anda juga harus menyertakan SearchConfigdalam konfigurasi enkripsi Anda.
Dictionary<String, DynamoDbTableEncryptionConfig> tableConfigs = new Dictionary<String, DynamoDbTableEncryptionConfig>(); DynamoDbTableEncryptionConfig config = new DynamoDbTableEncryptionConfig { LogicalTableName = ddbTableName, PartitionKeyName = "partition_key", SortKeyName = "sort_key", AttributeActionsOnEncrypt = attributeActionsOnEncrypt, Keyring = kmsKeyring, AllowedUnsignedAttributePrefix = unsignAttrPrefix }; tableConfigs.Add(ddbTableName, config); - Langkah 5: Buat klien AWS SDK DynamoDB baru
-
Contoh berikut membuat klien AWS SDK DynamoDB baru menggunakan
TableEncryptionConfigsdari Langkah 4.var ddb = new Client.DynamoDbClient( new DynamoDbTablesEncryptionConfig { TableEncryptionConfigs = tableConfigs }); - Langkah 6: Enkripsi dan tandatangani item tabel DynamoDB
-
Contoh berikut mendefinisikan
itemKamus yang mewakili item tabel sampel dan menempatkan item dalam tabel DynamoDB. Item dienkripsi dan ditandatangani sisi klien sebelum dikirim ke DynamoDB.var item = new Dictionary<String, AttributeValue> { ["partition_key"] = new AttributeValue("BasicPutGetExample"), ["sort_key"] = new AttributeValue { N = "0" }, ["attribute1"] = new AttributeValue("encrypt and sign me!"), ["attribute2"] = new AttributeValue("sign me!"), [":attribute3"] = new AttributeValue("ignore me!") }; PutItemRequest putRequest = new PutItemRequest { TableName = ddbTableName, Item = item }; PutItemResponse putResponse = await ddb.PutItemAsync(putRequest);
Menggunakan level yang lebih rendah DynamoDbItemEncryptor
Contoh berikut menunjukkan cara menggunakan level yang lebih rendah DynamoDbItemEncryptor dengan AWS KMS keyring untuk langsung mengenkripsi dan menandatangani item tabel. DynamoDbItemEncryptorItu tidak menempatkan item di tabel DynamoDB Anda.
Anda dapat menggunakan keyring apa pun yang didukung dengan DynamoDB Enhanced Client, tetapi sebaiknya gunakan salah AWS KMS satu gantungan kunci bila memungkinkan.
catatan
Tingkat yang lebih rendah DynamoDbItemEncryptor tidak mendukung enkripsi yang dapat dicari. Gunakan SDK Enkripsi AWS Database tingkat rendah untuk DynamoDB API untuk menggunakan enkripsi yang dapat dicari.
Lihat contoh kode lengkapnya: ItemEncryptDecryptExample.cs
- Langkah 1: Buat AWS KMS keyring
-
Contoh berikut digunakan
CreateAwsKmsMrkMultiKeyringuntuk membuat AWS KMS keyring dengan kunci KMS enkripsi simetris.CreateAwsKmsMrkMultiKeyringMetode ini memastikan bahwa keyring akan menangani tombol Single-region dan Multi-region dengan benar.var matProv = new MaterialProviders(new MaterialProvidersConfig()); var keyringInput = new CreateAwsKmsMrkMultiKeyringInput { Generator = kmsKeyId }; var kmsKeyring = matProv.CreateAwsKmsMrkMultiKeyring(keyringInput); - Langkah 2: Konfigurasikan tindakan atribut Anda
-
Contoh berikut mendefinisikan
attributeActionsOnEncryptKamus yang mewakili tindakan atribut sampel untuk item tabel.catatan
Contoh berikut tidak mendefinisikan atribut apa pun sebagai
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT. Jika Anda menentukanSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXTatribut apa pun, maka atribut partisi dan sortir juga harusSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT.var attributeActionsOnEncrypt = new Dictionary<String, CryptoAction> { ["partition_key"] = CryptoAction.SIGN_ONLY, // The partition attribute must be SIGN_ONLY ["sort_key"] = CryptoAction.SIGN_ONLY, // The sort attribute must be SIGN_ONLY ["attribute1"] = CryptoAction.ENCRYPT_AND_SIGN, ["attribute2"] = CryptoAction.SIGN_ONLY, [":attribute3"] = CryptoAction.DO_NOTHING }; - Langkah 3: Tentukan atribut mana yang dikecualikan dari tanda tangan
-
Contoh berikut mengasumsikan bahwa semua
DO_NOTHINGatribut berbagi awalan yang berbeda ":“, dan menggunakan awalan untuk menentukan atribut unsigned yang diizinkan. Klien mengasumsikan bahwa nama atribut apa pun dengan awalan ":" dikecualikan dari tanda tangan. Untuk informasi selengkapnya, lihat Allowed unsigned attributes.String unsignAttrPrefix = ":"; - Langkah 4: Tentukan
DynamoDbItemEncryptorkonfigurasi -
Contoh berikut mendefinisikan konfigurasi untuk.
DynamoDbItemEncryptorContoh ini menentukan nama tabel DynamoDB sebagai nama tabel logis. Kami sangat menyarankan untuk menentukan nama tabel DynamoDB Anda sebagai nama tabel logis saat Anda pertama kali menentukan konfigurasi enkripsi Anda. Untuk informasi selengkapnya, lihat Konfigurasi enkripsi dalam SDK Enkripsi AWS Database untuk DynamoDB.
var config = new DynamoDbItemEncryptorConfig { LogicalTableName = ddbTableName, PartitionKeyName = "partition_key", SortKeyName = "sort_key", AttributeActionsOnEncrypt = attributeActionsOnEncrypt, Keyring = kmsKeyring, AllowedUnsignedAttributePrefix = unsignAttrPrefix }; - Langkah 5: Buat
DynamoDbItemEncryptor -
Contoh berikut membuat baru
DynamoDbItemEncryptormenggunakanconfigdari Langkah 4.var itemEncryptor = new DynamoDbItemEncryptor(config); - Langkah 6: Langsung mengenkripsi dan menandatangani item tabel
-
Contoh berikut langsung mengenkripsi dan menandatangani item menggunakan.
DynamoDbItemEncryptorDynamoDbItemEncryptorItu tidak menempatkan item di tabel DynamoDB Anda.var originalItem = new Dictionary<String, AttributeValue> { ["partition_key"] = new AttributeValue("ItemEncryptDecryptExample"), ["sort_key"] = new AttributeValue { N = "0" }, ["attribute1"] = new AttributeValue("encrypt and sign me!"), ["attribute2"] = new AttributeValue("sign me!"), [":attribute3"] = new AttributeValue("ignore me!") }; var encryptedItem = itemEncryptor.EncryptItem( new EncryptItemInput { PlaintextItem = originalItem } ).EncryptedItem;