Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Catatan penggunaan enkripsi DynamoDB saat diam
Pertimbangkan hal berikut saat Anda menggunakan enkripsi saat diam di Amazon DynamoDB.
Semua data tabel dienkripsi
Enkripsi di sisi server saat diam diaktifkan pada semua data tabel DynamoDB dan tidak dapat dinonaktifkan. Anda tidak dapat mengenkripsi subset item saja dalam tabel.
Enkripsi saat diam hanya mengenkripsi data saat statis (saat diam) pada media penyimpanan persisten. Jika keamanan data menjadi perhatian atas data bergerak atau data dalam penggunaan, Anda mungkin perlu melakukan tindakan tambahan:
-
Data bergerak: Semua data Anda di DynamoDB dienkripsi saat bergerak. Secara default, komunikasi ke dan dari DynamoDB menggunakan protokol, yang melindungi lalu lintas jaringan dengan menggunakan HTTPS enkripsi Secure Sockets Layer SSL () /Transport Layer Security (). TLS
-
Data dalam penggunaan: Melindungi data Anda sebelum mengirimkannya ke DynamoDB menggunakan enkripsi di sisi klien. Untuk informasi selengkapnya, lihat Enkripsi di sisi klien dan di sisi server dalam Panduan Developer Amazon DynamoDB Encryption Client.
Anda dapat menggunakan aliran dengan tabel terenkripsi. Aliran DynamoDB selalu dienkripsi dengan kunci enkripsi tingkat tabel. Untuk informasi selengkapnya, lihat Tangkapan data perubahan DynamoDB Streams.
Cadangan DynamoDB dienkripsi, dan tabel yang dipulihkan dari cadangan juga diaktifkan enkripsinya. Anda dapat menggunakan Kunci milik AWS, Kunci yang dikelola AWS, atau kunci yang dikelola pelanggan untuk mengenkripsi data cadangan Anda. Untuk informasi selengkapnya, lihat Backup dan restore untuk DynamoDB.
Indeks sekunder lokal dan indeks sekunder global dienkripsi menggunakan kunci yang sama seperti tabel dasar.
Jenis enkripsi
catatan
Kunci yang dikelola pelanggan tidak didukung di Tabel Global Versi 2017. Jika ingin menggunakan kunci yang dikelola pelanggan di Tabel Global DynamoDB, Anda perlu meningkatkan tabel ke Tabel Global Versi 2019, lalu mengaktifkannya.
Pada AWS Management Console, jenis enkripsi adalah KMS
ketika Anda menggunakan Kunci yang dikelola AWS atau kunci yang dikelola pelanggan untuk mengenkripsi data Anda. Jenis enkripsi adalah DEFAULT
ketika Anda menggunakan Kunci milik AWS. Di Amazon API DynamoDB, jenis enkripsi KMS
adalah saat Anda menggunakan atau kunci Kunci yang dikelola AWS yang dikelola pelanggan. Apabila tidak ada jenis enkripsi, data Anda dienkripsi menggunakan Kunci milik AWS. Anda dapat beralih antara Kunci milik AWS, Kunci yang dikelola AWS, dan kunci yang dikelola pelanggan pada waktu tertentu. Anda dapat menggunakan konsol, AWS Command Line Interface (AWS CLI), atau Amazon API DynamoDB untuk mengganti kunci enkripsi.
Perhatikan batasan berikut saat menggunakan kunci yang dikelola pelanggan:
-
Anda tidak dapat menggunakan kunci yang dikelola pelanggan dengan klaster DynamoDB Accelerator DAX (). Untuk informasi selengkapnya, lihat DAXenkripsi saat istirahat.
-
Anda dapat menggunakan kunci yang dikelola pelanggan untuk mengenkripsi tabel yang menggunakan transaksi. Namun, guna memastikan ketahanan untuk propagasi transaksi, salinan permintaan transaksi disimpan sementara oleh layanan dan dienkripsi menggunakan Kunci milik AWS. Data yang ditempatkan di tabel dan indeks sekunder Anda selalu dienkripsi saat diam menggunakan kunci yang dikelola pelanggan.
-
Anda dapat menggunakan kunci yang dikelola pelanggan untuk mengenkripsi tabel yang menggunakan Contributor Insights. Namun, data yang dikirimkan ke Amazon CloudWatch dienkripsi dengan file. Kunci milik AWS
-
Saat Anda beralih ke kunci terkelola pelanggan baru, pastikan untuk tetap mengaktifkan kunci asli hingga proses selesai. AWS masih akan membutuhkan kunci asli untuk mendekripsi data sebelum mengenkripsi dengan kunci baru. Proses akan selesai ketika SSEDescription Status tabel ENABLED dan kunci KMSMasterKeyArn yang dikelola pelanggan baru ditampilkan. Pada titik ini, kunci asli dapat dinonaktifkan atau dijadwalkan untuk dihapus.
-
Setelah kunci yang dikelola pelanggan baru ditampilkan, tabel dan cadangan sesuai permintaan baru dienkripsi dengan kunci baru.
-
Setiap cadangan sesuai permintaan yang ada tetap dienkripsi dengan kunci yang dikelola pelanggan yang digunakan saat cadangan tersebut dibuat. Anda akan membutuhkan kunci yang sama untuk memulihkan cadangan tersebut. Anda dapat mengidentifikasi kunci untuk periode ketika setiap cadangan dibuat dengan menggunakan DescribeBackup API untuk melihat cadangan ituSSEDescription.
-
Jika Anda menonaktifkan kunci yang dikelola pelanggan atau menjadwalkannya untuk dihapus, data apa pun di DynamoDB Streams masih dikenakan masa aktif 24 jam. Data aktivitas yang tidak diambil memenuhi syarat untuk dipangkas saat berusia lebih dari 24 jam.
-
Jika Anda menonaktifkan kunci terkelola pelanggan atau menjadwalkannya untuk dihapus, Time to Live (TTL) menghapus berlanjut selama 30 menit. TTLPenghapusan ini terus dipancarkan ke DynamoDB Streams dan tunduk pada interval pemangkasan/retensi standar.
Untuk informasi selengkapnya, lihat mengaktifkan kunci dan menghapus kunci.
Menggunakan KMS kunci dan kunci data
Fitur enkripsi DynamoDB saat istirahat menggunakan AWS KMS key dan hierarki kunci data untuk melindungi data tabel Anda. DynamoDB menggunakan hierarki kunci yang sama untuk melindungi aliran, tabel global, dan cadangan DynamoDB ketika ditulis ke media tahan lama.
Kami menyarankan Anda merencanakan strategi enkripsi Anda sebelum menerapkan tabel Anda di DynamoDB. Jika Anda menyimpan data sensitif atau rahasia di DynamoDB, pertimbangkan untuk menyertakan enkripsi di sisi klien dalam paket Anda. Dengan cara ini, Anda dapat mengenkripsi data sedekat mungkin dengan asalnya, dan memastikan perlindungannya sepanjang siklus hidupnya. Untuk informasi selengkapnya, lihat dokumentasi klien enkripsi DynamoDB.
- AWS KMS key
-
Enkripsi saat diam melindungi tabel DynamoDB Anda di bawah AWS KMS key. Secara default, DynamoDB menggunakan Kunci milik AWS, kunci enkripsi multi-penghuni yang dibuat dan dikelola di akun layanan DynamoDB. Namun Anda dapat mengenkripsi tabel DynamoDB Anda di bawah kunci yang dikelola pelanggan untuk DynamoDB (
aws/dynamodb
) di Akun AWS Anda. Anda dapat memilih KMS tombol yang berbeda untuk setiap tabel. KMSKunci yang Anda pilih untuk tabel juga digunakan untuk mengenkripsi indeks, aliran, dan cadangan sekunder lokal dan globalnya.Anda memilih KMS kunci untuk tabel saat Anda membuat atau memperbarui tabel. Anda dapat mengubah KMS kunci untuk tabel kapan saja, baik di konsol DynamoDB atau dengan menggunakan operasi. UpdateTable Proses pengalihan kunci berjalan tanpa hambatan dan tidak memerlukan waktu henti atau menurunkan layanan.
penting
DynamoDB hanya mendukung kunci simetris. KMS Anda tidak dapat menggunakan KMSkunci asimetris untuk mengenkripsi tabel DynamoDB Anda.
Gunakan kunci yang dikelola pelanggan untuk mendapatkan fitur berikut:
-
Anda membuat dan mengelola KMS kunci, termasuk menyetel kebijakan, IAMkebijakan, dan hibah utama untuk mengontrol akses ke KMS kunci. Anda dapat mengaktifkan dan menonaktifkan KMS kunci, mengaktifkan dan menonaktifkan rotasi tombol otomatis, dan menghapus KMS kunci ketika tidak lagi digunakan.
-
Anda dapat menggunakan kunci yang dikelola pelanggan dengan material kunci yang diimpor atau kunci yang dikelola pelanggan di penyimpanan kunci kustom yang Anda miliki dan kelola.
Gunakan Kunci yang dikelola AWS jika Anda memerlukan salah satu fitur berikut:
-
Anda dapat melihat KMS kunci dan melihat kebijakan utamanya. (Anda tidak dapat mengubah kebijakan kunci.)
Namun, Kunci milik AWS ini gratis dan penggunaannya tidak dihitung terhadap AWS KMS sumber daya atau kuota permintaan. Kunci yang dikelola pelanggan dan Kunci yang dikelola AWS dikenakan biaya
untuk setiap API panggilan dan AWS KMS kuota berlaku untuk kunci iniKMS. -
- Kunci tabel
-
DynamoDB menggunakan KMS kunci untuk tabel untuk menghasilkan dan mengenkripsi kunci data unik untuk tabel, yang dikenal sebagai kunci tabel. Kunci tabel bertahan sepanjang masa hidup tabel terenkripsi.
Kunci tabel digunakan sebagai kunci enkripsi kunci. DynamoDB menggunakan kunci tabel ini untuk melindungi kunci enkripsi data yang digunakan untuk mengenkripsi data tabel. DynamoDB menghasilkan kunci enkripsi data yang unik untuk setiap struktur dasar dalam tabel, tetapi beberapa item tabel mungkin dilindungi oleh kunci enkripsi data yang sama.
Saat pertama kali mengakses tabel terenkripsi, DynamoDB mengirimkan permintaan untuk menggunakan kunci AWS KMS untuk mendekripsi KMS kunci tabel. Kemudian, layanan ini menggunakan kunci tabel plaintext untuk mendekripsi kunci enkripsi data, dan menggunakan kunci enkripsi data plaintext untuk mendekripsi data tabel.
DynamoDB menyimpan dan menggunakan kunci tabel dan kunci enkripsi data di luar. AWS KMS Ini melindungi semua kunci dengan enkripsi Advanced Encryption Standard
(AES) dan kunci enkripsi 256-bit. Kemudian, layanan ini menyimpan kunci terenkripsi dengan data terenkripsi agar kunci tersebut tersedia untuk mendekripsi data tabel sesuai permintaan. Jika Anda mengubah KMS kunci untuk tabel Anda, DynamoDB menghasilkan kunci tabel baru. Kemudian, layanan ini menggunakan kunci tabel baru untuk melakukan enkripsi ulang kunci enkripsi data.
- Melakukan cache pada kunci tabel
-
Untuk menghindari panggilan AWS KMS untuk setiap operasi DynamoDB, DynamoDB menyimpan tombol tabel plaintext untuk setiap pemanggil dalam memori. Jika DynamoDB mendapat permintaan untuk kunci tabel cache setelah lima menit tidak aktif, ia akan mengirimkan permintaan baru AWS KMS untuk mendekripsi kunci tabel. Panggilan ini akan menangkap setiap perubahan yang dibuat pada kebijakan akses KMS kunci di AWS KMS atau AWS Identity and Access Management (IAM) sejak permintaan terakhir untuk mendekripsi kunci tabel.
Mengotorisasi penggunaan kunci Anda KMS
Jika Anda menggunakan kunci yang dikelola pelanggan atau Kunci yang dikelola AWSdi akun Anda untuk melindungi tabel DynamoDB Anda, kebijakan pada kunci KMS tersebut harus memberikan izin DynamoDB untuk menggunakannya atas nama Anda. Konteks otorisasi pada Kunci yang dikelola AWS for DynamoDB menyertakan kebijakan utamanya dan hibah yang mendelegasikan izin untuk menggunakannya.
Anda memiliki kontrol penuh atas kebijakan dan pemberian izin pada kunci yang dikelola pelanggan. Karena Kunci yang dikelola AWS ada di akun Anda, Anda dapat melihat kebijakan dan pemberian izinnya. Tetapi, karena dikelola oleh AWS, Anda tidak dapat mengubah kebijakan.
DynamoDB tidak memerlukan otorisasi tambahan untuk menggunakan default untuk melindungi tabel DynamoDB di tabel Kunci milik AWSAnda. Akun AWS
Topik
Kebijakan utama untuk Kunci yang dikelola AWS
Ketika DynamoDB menggunakan Kunci yang dikelola AWS untuk DynamoDB (aws/dynamodb
) dalam operasi kriptografi, layanan ini melakukannya atas nama pengguna yang mengakses sumber daya DynamoDB. Kebijakan utama pada Kunci yang dikelola AWS memberikan semua pengguna di akun izin untuk menggunakan Kunci yang dikelola AWS untuk operasi tertentu. Namun izin hanya diberikan ketika DynamoDB membuat permintaan atas nama pengguna. ViaService Kondisi dalam kebijakan kunci tidak mengizinkan pengguna untuk menggunakan Kunci yang dikelola AWS kecuali permintaan berasal dari layanan DynamoDB.
Kebijakan utama ini, seperti kebijakan semua Kunci yang dikelola AWS, ditetapkan oleh AWS. Anda tidak dapat mengubahnya, tetapi Anda dapat melihatnya kapan saja. Untuk detailnya, lihat Melihat kebijakan kunci.
Pernyataan kebijakan dalam kebijakan kunci memiliki efek sebagai berikut:
-
Izinkan pengguna di akun untuk menggunakan Kunci yang dikelola AWS for DynamoDB dalam operasi kriptografi ketika permintaan berasal dari DynamoDB atas nama mereka. Kebijakan ini juga memungkinkan pengguna untuk membuat hibah untuk KMS kunci tersebut.
-
Mengizinkan IAM identitas resmi di akun untuk melihat properti untuk DynamoDB dan mencabut hibah yang memungkinkan DynamoDB menggunakan kunci. Kunci yang dikelola AWS KMS DynamoDB menggunakan pemberian izin untuk operasi pemeliharaan berkelanjutan.
-
Memungkinkan DynamoDB melakukan operasi read-only untuk menemukan DynamoDB untuk akun Kunci yang dikelola AWS Anda.
{ "Version" : "2012-10-17", "Id" : "auto-dynamodb-1", "Statement" : [ { "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:CallerAccount" : "111122223333", "kms:ViaService" : "dynamodb.us-west-2.amazonaws.com" } } }, { "Sid" : "Allow direct access to key metadata to the account", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource" : "*" }, { "Sid" : "Allow DynamoDB Service with service principal name dynamodb.amazonaws.com to describe the key directly", "Effect" : "Allow", "Principal" : { "Service" : "dynamodb.amazonaws.com" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*" ], "Resource" : "*" } ] }
Kebijakan kunci untuk kunci yang dikelola pelanggan
Saat Anda memilih kunci yang dikelola pelanggan untuk melindungi tabel DynamoDB, DynamoDB mendapat izin untuk menggunakan kunci atas nama prinsipal KMS yang membuat pilihan. Prinsipal itu, pengguna atau peran, harus memiliki izin pada KMS kunci yang dibutuhkan DynamoDB. Anda dapat memberikan izin ini dalam kebijakan utama, IAMkebijakan, atau hibah.
Minimal, DynamoDB memerlukan izin berikut pada kunci yang dikelola pelanggan:
-
kms: ReEncrypt * (untuk kms: ReEncryptFrom dan kms:ReEncryptTo)
-
kms: GenerateDataKey * (untuk kms: GenerateDataKey dan kms:) GenerateDataKeyWithoutPlaintext
Sebagai contoh, kebijakan kunci berikut hanya menyediakan izin yang diperlukan. Kebijakan ini memiliki efek sebagai berikut:
-
Memungkinkan DynamoDB untuk menggunakan KMS kunci dalam operasi kriptografi dan membuat hibah, tetapi hanya ketika bertindak atas nama kepala sekolah di akun yang memiliki izin untuk menggunakan DynamoDB. Jika pengguna utama yang disebutkan dalam pernyataan kebijakan tidak memiliki izin untuk menggunakan DynamoDB, panggilan gagal, bahkan ketika panggilan berasal dari layanan DynamoDB.
-
Kunci ViaService kondisi kms: mengizinkan izin hanya jika permintaan berasal dari DynamoDB atas nama prinsipal yang tercantum dalam pernyataan kebijakan. Pengguna utama ini tidak dapat memanggil operasi ini secara langsung. Perhatikan bahwa nilai
kms:ViaService
,dynamodb.*.amazonaws.com
, memiliki tanda bintang (*) di posisi Wilayah. DynamoDB memerlukan izin untuk independen dari apa pun sehingga dapat membuat panggilan lintas Wilayah AWS wilayah untuk mendukung tabel global DynamoDB. -
Memberikan administrator KMS kunci (pengguna yang dapat mengambil
db-team
peran) akses hanya-baca ke KMS kunci dan izin untuk mencabut hibah, termasuk hibah yang dibutuhkan DynamoDB untuk melindungi tabel.
Sebelum menggunakan kebijakan kunci contoh, ganti prinsip contoh dengan prinsip aktual dari Anda. Akun AWS
{ "Id": "key-policy-dynamodb", "Version":"2012-10-17", "Statement": [ { "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB", "Effect": "Allow", "Principal": {"AWS": "
arn:aws:iam::111122223333:user/db-lead
"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService" : "dynamodb.*.amazonaws.com" } } }, { "Sid": "Allow administrators to view the KMS key and revoke grants", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/db-team
" }, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource": "*" } ] }
Menggunakan pemberian izin untuk mengotorisasi DynamoDB
Selain kebijakan kunci, DynamoDB menggunakan pemberian izin untuk mengatur izin pada kunci yang dikelola pelanggan atau Kunci yang dikelola AWS untuk DynamoDB (aws/dynamodb
). Untuk melihat hibah pada KMS kunci di akun Anda, gunakan ListGrantsoperasi. DynamoDB tidak memerlukan pemberian izin, atau izin tambahan apa pun, untuk menggunakan Kunci milik AWS untuk melindungi tabel Anda.
DynamoDB menggunakan izin yang diberikan ketika melakukan pemeliharaan sistem latar belakang dan tugas perlindungan data berkelanjutan. Layanan ini juga menggunakan pemberian izin untuk menghasilkan kunci tabel.
Setiap pemberian izin berlaku spesifik pada sebuah tabel. Jika akun menyertakan beberapa tabel yang dienkripsi di bawah KMS kunci yang sama, ada hibah dari setiap jenis untuk setiap tabel. Hibah dibatasi oleh konteks enkripsi DynamoDB, yang mencakup nama tabel dan Akun AWS ID, dan itu termasuk izin untuk pensiun hibah jika tidak lagi diperlukan.
Untuk membuat pemberian izin, DynamoDB harus memiliki izin untuk memanggil CreateGrant
atas nama pengguna yang membuat tabel terenkripsi. Untuk Kunci yang dikelola AWS, DynamoDB kms:CreateGrant
mendapat izin dari kebijakan kunci, yang memungkinkan pengguna akun untuk CreateGrantmemanggil kunci hanya ketika DynamoDB membuat permintaan atas KMS nama pengguna yang berwenang.
Kebijakan kunci juga dapat memungkinkan akun untuk mencabut hibah pada kunci. KMS Namun, jika Anda mencabut pemberian izin pada tabel dienkripsi yang aktif, DynamoDB tidak akan mampu melindungi dan menjaga tabel tersebut.
Konteks enkripsi DynamoDB
Konteks enkripsi adalah seperangkat pasangan kunci-nilai yang berisi data non-rahasia yang arbitrer. Ketika Anda menyertakan konteks enkripsi dalam permintaan untuk mengenkripsi data, secara AWS KMS kriptografis mengikat konteks enkripsi ke data terenkripsi. Untuk mendekripsi data, Anda harus meneruskan konteks enkripsi yang sama.
DynamoDB menggunakan konteks enkripsi yang sama di semua operasi kriptografi. AWS KMS Jika Anda menggunakan kunci yang dikelola pelanggan atau Kunci yang dikelola AWSuntuk melindungi tabel DynamoDB Anda, Anda dapat menggunakan konteks enkripsi untuk mengidentifikasi penggunaan KMS kunci dalam catatan audit dan log. Itu juga muncul dalam plaintext di log, seperti dan AWS CloudTrailAmazon CloudWatch Logs.
Konteks enkripsi juga dapat digunakan sebagai syarat untuk otorisasi dalam kebijakan dan pemberian izin. DynamoDB menggunakan konteks enkripsi untuk membatasi hibah yang memungkinkan akses ke kunci yang dikelola pelanggan Kunci yang dikelola AWS atau di akun dan wilayah Anda.
Dalam permintaannya AWS KMS, DynamoDB menggunakan konteks enkripsi dengan dua pasangan kunci-nilai.
"encryptionContextSubset": { "aws:dynamodb:tableName": "Books" "aws:dynamodb:subscriberId": "111122223333" }
-
Tabel – Pasangan kunci–nilai pertama mengidentifikasi tabel yang dienkripsi DynamoDB. Kuncinya adalah
aws:dynamodb:tableName
. Nilainya adalah nama tabel."aws:dynamodb:tableName": "
<table-name>
"Sebagai contoh:
"aws:dynamodb:tableName": "
Books
" -
Akun – Pasangan kunci–nilai kedua mengidentifikasi Akun AWS. Kuncinya adalah
aws:dynamodb:subscriberId
. Nilainya adalah ID akun."aws:dynamodb:subscriberId": "
<account-id>
"Sebagai contoh:
"aws:dynamodb:subscriberId": "111122223333"
Memantau interaksi DynamoDB dengan AWS KMS
Jika Anda menggunakan kunci yang dikelola pelanggan atau Kunci yang dikelola AWSuntuk melindungi tabel DynamoDB, Anda dapat AWS CloudTrail menggunakan log untuk melacak permintaan yang dikirimkan DynamoDB atas nama Anda. AWS KMS
Permintaan GenerateDataKey
, Decrypt
, dan CreateGrant
dibahas dalam bagian ini. Selain itu, DynamoDB menggunakan DescribeKeyoperasi untuk menentukan apakah kunci KMS yang Anda pilih ada di akun dan wilayah. Ini juga menggunakan RetireGrantoperasi untuk menghapus hibah saat Anda menghapus tabel.
- GenerateDataKey
-
Ketika Anda mengaktifkan enkripsi saat diam pada tabel, DynamoDB menciptakan kunci tabel unik. Ini mengirimkan GenerateDataKeypermintaan untuk AWS KMS yang menentukan KMS kunci untuk tabel.
Peristiwa yang mencatat operasi
GenerateDataKey
serupa dengan peristiwa contoh berikut. Pengguna adalah akun layanan DynamoDB. Parameter termasuk Amazon Resource Name (ARN) KMS kunci, penentu kunci yang memerlukan kunci 256-bit, dan konteks enkripsi yang mengidentifikasi tabel dan file. Akun AWS{ "eventVersion": "1.05", "userIdentity": { "type": "AWSService", "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T00:15:17Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dynamodb:tableName": "Services", "aws:dynamodb:subscriberId": "111122223333" }, "keySpec": "AES_256", "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "229386c1-111c-11e8-9e21-c11ed5a52190", "eventID": "e3c436e9-ebca-494e-9457-8123a1f5e979", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333", "sharedEventID": "bf915fa6-6ceb-4659-8912-e36b69846aad" }
- Dekripsi
-
Ketika Anda mengakses tabel DynamoDB yang dienkripsi, DynamoDB perlu mendekripsi kunci tabel agar dapat mendekripsi kunci di bawahnya dalam hierarki. Layanan ini kemudian mendekripsi data dalam tabel. Untuk mendekripsi kunci tabel. DynamoDB mengirimkan permintaan Dekripsi AWS KMS ke yang menentukan KMS kunci untuk tabel.
Peristiwa yang mencatat operasi
Decrypt
serupa dengan peristiwa contoh berikut. Pengguna adalah kepala sekolah Anda Akun AWS yang mengakses tabel. Parameter termasuk kunci tabel terenkripsi (sebagai gumpalan ciphertext) dan konteks enkripsi yang mengidentifikasi tabel dan file. Akun AWS AWS KMS memperoleh ID KMS kunci dari ciphertext.{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-02-14T16:42:15Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIGDT3HGFQZX4RY6RU", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } }, "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T16:42:39Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dynamodb:tableName": "Books", "aws:dynamodb:subscriberId": "111122223333" } }, "responseElements": null, "requestID": "11cab293-11a6-11e8-8386-13160d3e5db5", "eventID": "b7d16574-e887-4b5b-a064-bf92f8ec9ad3", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }
- CreateGrant
-
Saat Anda menggunakan kunci yang dikelola pelanggan atau Kunci yang dikelola AWS untuk melindungi tabel DynamoDB Anda, DynamoDB menggunakan pemberian izin untuk mengizinkan layanan guna melakukan perlindungan dan pemeliharaan data berkelanjutan serta tugas ketahanan. Pemberian izin ini tidak diperlukan pada Kunci milik AWS.
Pemberian izin yang dibuat DynamoDB spesifik pada sebuah tabel. Prinsipal dalam CreateGrantpermintaan adalah pengguna yang membuat tabel.
Peristiwa yang mencatat operasi
CreateGrant
serupa dengan peristiwa contoh berikut. Parameter termasuk Amazon Resource Name (ARN) dari KMS kunci untuk tabel, prinsipal penerima hibah dan prinsipal pensiun (layanan DynamoDB), dan operasi yang dicakup hibah. Hal ini juga mencakup kendala yang mengharuskan semua operasi enkripsi menggunakan konteks enkripsi yang ditentukan.{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-02-14T00:12:02Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } }, "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T00:15:15Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "retiringPrincipal": "dynamodb.us-west-2.amazonaws.com", "constraints": { "encryptionContextSubset": { "aws:dynamodb:tableName": "Books", "aws:dynamodb:subscriberId": "111122223333" } }, "granteePrincipal": "dynamodb.us-west-2.amazonaws.com", "operations": [ "DescribeKey", "GenerateDataKey", "Decrypt", "Encrypt", "ReEncryptFrom", "ReEncryptTo", "RetireGrant" ] }, "responseElements": { "grantId": "5c5cd4a3d68e65e77795f5ccc2516dff057308172b0cd107c85b5215c6e48bde" }, "requestID": "2192b82a-111c-11e8-a528-f398979205d8", "eventID": "a03d65c3-9fee-4111-9816-8bf96b73df01", "readOnly": false, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }