Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Enkripsi data saat diam di AWS IoT Core
Secara default, semua AWS IoT Core data yang diam dienkripsi menggunakan kunci AWS yang dimiliki. AWS IoT Core juga mendukung kunci yang dikelola pelanggan simetris dari AWS Key Management Service (AWS KMS). Dengan kunci yang dikelola pelanggan, Anda dapat membuat, memiliki, dan mengelola AWS KMS kunci di AWS akun Anda. AWS IoT Core akan menggunakan kunci KMS Anda untuk mengenkripsi data Anda saat istirahat. Anda memiliki kontrol penuh atas kunci KMS ini, termasuk membuat dan memelihara kebijakan utama mereka. Anda juga dapat mengonfigurasi kebijakan IAM untuk peran yang mengakses izin kontrol AWS KMS untuk kunci ini.
AWS kunci yang dimiliki
AWS kunci yang dimiliki adalah kumpulan kunci KMS yang dimiliki dan AWS dikelola layanan untuk digunakan di beberapa AWS akun. AWS layanan dapat menggunakan kunci yang AWS dimiliki untuk melindungi data Anda. Secara default, AWS IoT Core mengenkripsi data saat diam menggunakan kunci yang AWS dimiliki. Kunci ini dikelola oleh layanan. Anda tidak dapat melihat, mengelola, atau menggunakan kunci AWS yang dimiliki. Namun, Anda tidak perlu mengambil tindakan apa pun untuk melindungi kunci ini.
Untuk informasi selengkapnya tentang kunci yang AWS AWS dimiliki, lihat kunci yang dimiliki di Panduan AWS Key Management Service Pengembang.
Kunci yang dikelola pelanggan
Kunci yang dikelola pelanggan adalah kunci KMS di AWS akun Anda yang Anda buat, miliki, dan kelola. Anda memiliki kontrol penuh atas AWS KMS kunci ini, termasuk membuat dan memelihara kebijakan utama mereka. Anda juga dapat mengonfigurasi kebijakan IAM untuk peran yang mengakses izin kontrol AWS KMS untuk kunci ini. Anda dapat mengonfigurasi AWS IoT Core untuk menggunakan kunci KMS yang dikelola pelanggan untuk mengenkripsi data Anda.
Untuk informasi selengkapnya tentang kunci yang dikelola pelanggan, lihat Kunci yang dikelola pelanggan di Panduan Developer AWS Key Management Service .
Untuk memilih masuk ke kunci yang dikelola pelanggan AWS IoT Core, ikuti langkah-langkah berikut:
Topik
Langkah 1: Buat kunci yang dikelola pelanggan
Anda dapat membuat kunci yang dikelola pelanggan simetris dengan menggunakan AWS KMS konsol atau perintah AWS KMS CLI. Yang keySpec harus SYMMETRIC_DEFAULT dan yang keyUsage harus adaENCRYPT_DECRYPT.
catatan
AWS IoT Core hanya mendukung AWS KMS kunci dengan spesifikasi SYMMETRIC_DEFAULT kunci dan penggunaan ENCRYPT_DECRYPT kunci untuk kunci yang dikelola pelanggan.
Berikut ini adalah contoh AWS CLI perintah untuk membuat kunci KMS yang dapat digunakan AWS IoT Core untuk kunci yang dikelola pelanggan.
aws kms create-key --key-spec SYMMETRIC_DEFAULT --key-usage ENCRYPT_DECRYPT --region us-west-2
Berikut ini adalah contoh output dari perintah.
{ "KeyMetadata": { "AWSAccountId": "111122223333", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2024-09-19T11:45:23.982000-07:00", "Enabled": true, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": false } }
Untuk informasi selengkapnya, lihat Membuat kunci yang dikelola pelanggan simetris di Panduan Peng AWS Key Management Service embang.
Kebijakan kunci
Saat membuat kunci yang dikelola pelanggan, Anda dapat menentukan kebijakan kunci. Kebijakan utama mengontrol akses ke kunci yang dikelola pelanggan Anda. Setiap kunci yang dikelola pelanggan harus memiliki tepat satu kebijakan kunci, yang berisi pernyataan yang menentukan siapa yang dapat menggunakan kunci dan bagaimana mereka dapat menggunakannya. Untuk informasi selengkapnya, lihat Kebijakan Utama di Panduan AWS Key Management Service Pengembang.
AWS IoT Core menggunakan peran IAM di akun Anda untuk mengakses kunci yang dikelola pelanggan Anda. Jika Anda menggunakan kebijakan kunci khusus, pastikan peran IAM yang dibuat pada kunci ini memiliki izin berikut:
kms:DescribeKeykms:Decryptkms:Encryptkms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTokms:ReEncryptFrom
Langkah 2: Buat peran IAM untuk diberikan AWS IoT Core izin untuk menggunakan kunci KMS
AWS IoT Core Untuk menggunakan kunci KMS yang Anda buat untuk mengenkripsi data saat diam, Anda juga perlu membuat peran IAM di akun Anda, yang AWS IoT Core dapat diasumsikan untuk mengakses kunci KMS.
Peran harus memiliki kebijakan kepercayaan berikut untuk memungkinkan AWS IoT Core untuk mengambil peran.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:iot:us-west-2:111122223333:*" } } } }
Pastikan kebijakan IAM yang dilampirkan ke peran IAM memiliki izin berikut pada kunci KMS:
kms:DescribeKeykms:Decryptkms:Encryptkms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTokms:ReEncryptFrom
Berikut ini adalah contoh kebijakan IAM dengan izin yang diperlukan untuk kunci yang dikelola pelanggan.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIoTToAccessKMSResource", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:Encrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws-crypto-ec:vendor": "iot.amazonaws.com" } } } ] }
Untuk informasi selengkapnya, lihat Membuat peran untuk mendelegasikan izin ke pengguna IAM di Panduan AWS Identity and Access Management Pengguna.
Langkah 3: Bergabunglah dengan kunci yang dikelola pelanggan di AWS IoT Core
Setelah Anda menyelesaikan semua langkah sebelumnya, jalankan perintah update-encryption-configuration CLI untuk ikut serta menggunakan kunci yang dikelola pelanggan. AWS IoT Core Saat Anda memilih kunci yang dikelola pelanggan, semua AWS IoT Core sumber daya di AWS akun Anda akan dienkripsi menggunakan AWS KMS kunci yang ditentukan.
-
Untuk memilih kunci yang dikelola pelanggan saat AWS IoT Core menggunakan AWS CLI, jalankan perintah
update-encryption-configurationCLI.aws iot update-encryption-configuration --encryption-type "CUSTOMER_MANAGED_KMS_KEY" \ --kms-access-role-arn "arn:aws:iam::111122223333:role/myrole" \ --kms-key-arn "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" --region us-west-2 -
Untuk memverifikasi kunci yang dikelola pelanggan dalam AWS IoT Core menggunakan AWS CLI, jalankan perintah
describe-encryption-configurationCLI:aws iot describe-encryption-configuration --region us-west-2Jika Anda telah mengaktifkan kunci yang dikelola pelanggan AWS IoT Core, output dapat terlihat seperti berikut:
{ "encryptionType": "CUSTOMER_MANAGED_KMS_KEY", "kmsKeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "kmsAccessRoleArn": "arn:aws:iam::111122223333:role/myrole", "configurationDetails": { "configurationStatus": "HEALTHY" }, "lastModifiedDate": "2024-09-26T22:01:02.365000-07:00" }Bid
lastModifiedDateang menunjukkan tanggal ketika konfigurasi enkripsi terakhir diperbarui.Jika Anda belum mengaktifkan kunci yang dikelola pelanggan, output dapat terlihat seperti berikut:
{ "encryptionType": "AWS_OWNED_KMS_KEY", "lastModifiedDate": "2024-09-26T22:01:02.365000-07:00" }
Langkah 4: Izin tambahan diperlukan untuk AWS IoT Core operasi pesawat kontrol
Setelah Anda memilih kunci yang dikelola pelanggan, semua AWS IoT Core sumber daya milik AWS akun Anda dienkripsi dengan kunci KMS yang disediakan. Semua operasi bidang kontrol sekarang mengharuskan pemanggil memiliki kms:Decrypt izin pada kunci KMS selain izin yang diperlukan untuk operasi tertentu pada sumber daya. AWS IoT Core Jika pemanggil tidak memiliki kms:Decrypt izin dan mereka membuat panggilan API yang memerlukan enkripsi atau dekripsi data (misalnya,GetPolicy), mereka akan menerima. UnauthorizedException
Misalnya, saat memanggilGetPolicy, Anda memerlukan keduanya iot:GetPolicy dan kms:Decrypt izin pada kunci KMS yang dikelola pelanggan agar panggilan API berhasil.
catatan
Saat memperbarui pengguna atau peran IAM untuk memberikan AWS KMS izin pada kunci yang digunakan untuk konfigurasi enkripsi Anda, pastikan kebijakan kunci KMS juga memberikan izin yang diperlukan kepada pengguna atau peran IAM masing-masing.
AWS KMS izin untuk UpdateEncryptionConfiguration
Pang UpdateEncryptionConfiguration gilan API memerlukan AWS KMS izin berikut pada kunci KMS untuk dapat memilih masuk ke kunci yang dikelola pelanggan atau untuk mengubah konfigurasi kunci:
kms:DescribeKeykms:Decryptkms:Encryptkms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTokms:ReEncryptFrom
AWS KMS izin untuk semua API bidang kontrol lainnya
Sebagian besar API bidang kontrol memerlukan kms:Decrypt izin saat kunci yang dikelola pelanggan diaktifkan. Namun, API tertentu tidak memerlukan izin tambahan ini:
- API yang tidak memerlukan AWS KMS izin
-
Delete*APIList*dan tidak termasuk dalam bucket ini. Pelanggan selalu dapat memanggil API apa punList*atauDelete*mengontrol pesawat dan panggilan API tersebut akan berhasil bahkan jika pemanggil tidak memilikikms:Decryptizin. Panggilan API ini akan berhasil bahkan jika kunci yang dikelola pelanggan Anda tidak sehatList*karenaDelete*API tidak melakukan dekripsi apa pun.List* API — Semua operasi daftar (misalnya,,
ListThingsListPolicies,ListCertificates)Hapus* API — Semua operasi penghapusan (misalnya,,
DeleteThing,DeletePolicy)DeleteCertificate
Langkah 5: Mengelola kunci
AWS IoT Core menjalankan pemeriksaan berkala pada konfigurasi kunci yang dikelola pelanggan Anda untuk memastikan operasi enkripsi dan dekripsi tidak terpengaruh. Pemeriksaan kesehatan ini berjalan sekali setiap menit dan memverifikasi AWS IoT Core kemampuan untuk mengakses dan menggunakan AWS KMS kunci dan peran IAM terkait untuk enkripsi dan mendekripsi operasi.
- SEHAT
-
AWS IoT Core dapat berhasil mengakses AWS KMS kunci melalui peran IAM yang ditentukan dan melakukan encryption/decryption operasi. Semua komponen berfungsi dengan benar.
- TIDAK SEHAT
-
AWS IoT Core tidak dapat mengakses atau menggunakan AWS KMS kunci. Ini mencegah operasi enkripsi baru dan dapat memengaruhi fungsionalitas layanan. Bid
errorCodeang menunjukkan apakah masalahnya ada pada kunci atau peran IAM.
Tindakan pelanggan yang dapat memengaruhi kesehatan kunci
Beberapa tindakan pelanggan dapat menyebabkan status kesehatan utama berubah dari HEALTHY menjadiUNHEALTHY:
- Key-related tindakan
-
Menghapus AWS KMS kunci — Saat Anda menjadwalkan penghapusan kunci, kunci tersebut dalam
Pending deletionstatus dan tidak dapat digunakanMenonaktifkan AWS KMS kunci — Saat Anda menonaktifkan kunci KMS, kunci tersebut tidak dapat lagi digunakan untuk operasi enkripsi/dekripsi
Kunci penjadwalan untuk penghapusan — Kunci menjadi tidak dapat digunakan saat penghapusan selesai
Memodifikasi kebijakan kunci — Menghapus izin yang diperlukan untuk AWS IoT Core akses
Mengubah izin penggunaan kunci — Membatasi AWS KMS tindakan yang diperlukan
- Tindakan terkait peran IAM
-
Menghapus peran IAM — tidak AWS IoT Core dapat mengambil peran untuk mengakses kunci
Memodifikasi izin peran — Mengh AWS KMS apus izin yang diperlukan dari kebijakan peran
Mengubah kebijakan kepercayaan — M AWS IoT Core encegah layanan mengambil peran
Menambahkan kondisi pembatasan — Kondisi yang AWS IoT Core mencegah penggunaan peran
- Account-level tindakan
-
Cross-account perubahan akses kunci - Memodifikasi izin untuk kunci di akun yang berbeda
Kebijakan Kontrol Layanan (SCP) - Organization-level kebijakan yang membatasi akses AWS KMS
Account-level Kebijakan IAM — Kebijakan yang mengesampingkan atau bertentangan dengan akses kunci
penting
Setiap perubahan pada AWS KMS kunci, peran IAM, atau kebijakan yang digunakan AWS IoT Core harus diuji di lingkungan pengembangan terlebih dahulu. Pantau status kesehatan utama dengan cermat setelah membuat perubahan apa pun untuk memastikan AWS IoT Core fungsionalitas tidak terpengaruh.
Memperbarui konfigurasi enkripsi
Perbarui konfigurasi enkripsi Anda AWS IoT Core untuk mengubah dari satu kunci yang dikelola pelanggan ke kunci lain, atau antara kunci AWS yang dimiliki dan kunci yang dikelola pelanggan.
Untuk mengubah konfigurasi ke kunci yang dikelola pelanggan yang berbeda:
-
Buat kunci yang dikelola pelanggan baru dengan mengikuti langkah-langkah diLangkah 1: Buat kunci yang dikelola pelanggan.
-
Perbarui kebijakan peran IAM Anda untuk menyertakan izin untuk kunci lama dan baru selama periode pembaruan.
-
Perbarui konfigurasi enkripsi Anda untuk menggunakan kunci baru:
aws iot update-encryption-configuration --encryption-type "CUSTOMER_MANAGED_KMS_KEY" \ --kms-access-role-arn "arn:aws:iam::111122223333:role/myrole" \ --kms-key-arn "arn:aws:kms:us-west-2:111122223333:key/new-key-id"
Untuk mengubah konfigurasi dari kunci yang dikelola pelanggan kembali ke kunci AWS yang dimiliki:
aws iot update-encryption-configuration --encryption-type "AWS_OWNED_KMS_KEY"
catatan
Saat memperbarui konfigurasi enkripsi untuk kunci yang dikelola pelanggan baru, pastikan kunci lama dan baru tetap dapat diakses agar operasi berhasil.
Skenario dan dampak kegagalan umum
Tabel berikut menjelaskan skenario kegagalan umum saat kunci dihapus atau dinonaktifkan:
| Skenario | Dampak Langsung | Long-term Konsekuensi |
|---|---|---|
|
Kunci dinonaktifkan |
Semua encryption/decryption operasi baru gagal segera |
Gangguan layanan hingga kunci diaktifkan kembali atau diganti |
|
Kunci dijadwalkan untuk dihapus |
Status kunci diubah menjadi penghapusan tertunda dan semua encryption/decryption operasi akan gagal |
Kegagalan layanan otomatis saat penghapusan selesai |
|
Kunci dihapus secara permanen |
Kegagalan langsung dan permanen dari semua operasi |
Kehilangan data permanen dan ketidakmampuan untuk memulihkan data terenkripsi |
|
Kebijakan kunci dimodifikasi secara tidak benar |
AWS IoT Core kehilangan izin akses ke kunci |
Kegagalan layanan sampai kebijakan diperbaiki |
|
Peran IAM dihapus |
AWS IoT Core tidak dapat mengambil peran untuk mengakses kunci |
Kegagalan layanan enkripsi lengkap |
|
Peran IAM dimodifikasi secara tidak benar |
AWS IoT Core tidak dapat mengambil peran atau menggunakan peran untuk mengakses kunci |
Kegagalan layanan hingga peran IAM diperbaiki |
Pencegahan dan praktik terbaik
Untuk mencegah penghapusan atau penonaktifan kunci yang tidak disengaja dan meminimalkan risiko kegagalan layanan:
- Menerapkan kebijakan siklus hidup utama
-
Menetapkan prosedur yang jelas untuk pembuatan kunci, rotasi, dan pensiun. Dokumentasikan kunci mana yang digunakan oleh AWS IoT Core sumber daya mana dan pertahankan inventaris kunci aktif.
- Gunakan kebijakan IAM untuk membatasi penghapusan kunci
-
Buat kebijakan IAM yang mencegah pengguna yang tidak berwenang menghapus atau menonaktifkan kunci enkripsi penting. Gunakan kondisi untuk meminta persetujuan tambahan untuk operasi penghapusan kunci.
- Aktifkan CloudTrail logging
-
Pantau semua operasi AWS KMS kunci CloudTrail untuk mendeteksi aktivitas manajemen kunci yang tidak sah atau tidak disengaja. Siapkan peringatan untuk penghapusan kunci, penonaktifan, atau perubahan kebijakan.
- Uji prosedur penggantian kunci
-
Uji prosedur penggantian kunci secara teratur di lingkungan non-produksi untuk memastikan Anda dapat dengan cepat pulih dari kegagalan terkait kunci.
- Pertahankan cadangan kunci
-
Meskipun Anda tidak dapat mengekspor AWS KMS materi kunci, simpan catatan terperinci dari ARN kunci, kebijakan, dan AWS IoT Core konfigurasi terkait untuk memfasilitasi penggantian kunci cepat jika diperlukan.
- Pantau kesehatan kunci
-
Terus memantau
CMK.Healthmetrik dan mengatur peringatan otomatis untuk perubahan status kesehatan utama. Terapkan tanggapan otomatis untuk mengatasi masalah terkait kunci dengan cepat.
penting
Selalu uji prosedur pembaruan kunci di lingkungan pengembangan sebelum menerapkannya dalam produksi. Memiliki rencana rollback yang terdokumentasi dan pastikan bahwa prosedur penggantian kunci dapat dijalankan dengan cepat jika terjadi keadaan darurat.
Langkah 6: Memantau kesehatan kunci
Sebagai bagian dari pemeriksaan berkala, AWS IoT Core met CloudWatch rik dan log dipancarkan untuk memberikan visibilitas pada status kesehatan konfigurasi kunci yang dikelola pelanggan Anda
AWS IoT Core memancarkan CMK.Health metrik CloudWatch setidaknya sekali setiap menit. Metrik memberikan informasi tentang status kesehatan kunci yang dikelola pelanggan yang digunakan AWS IoT Core untuk mengenkripsi dan mendekripsi data Anda.
Met CMK.Health rik dapat memiliki nilai-nilai berikut:
Nilainya AWS IoT Core adalah
1: mampu menggunakan kunci enkripsi dengan sukses untuk mengenkripsi dan mendekripsi data Anda.Nilainya AWS IoT Core adalah
0: tidak dapat menggunakan kunci enkripsi untuk mengenkripsi dan mendekripsi data Anda.
AWS IoT Core juga memancarkan log AWS IoT V2 ketika status kesehatan kunci enkripsi berubah. Log ini memberikan rincian tambahan tentang pembaruan status kesehatan. Untuk melihat log ini, Anda harus mengaktifkan log AWS IoT V2. HEALTHYLog dipancarkan pada INFO tingkat, dan UNHEALTHY log dipancarkan di ERROR level. Untuk informasi selengkapnya tentang level log, lihat Lev el log.
Contoh berikut adalah entri CloudWatch log yang dipancarkan oleh AWS IoT Core untuk menunjukkan pembaruan status kesehatan dari kunci yang dikelola pelanggan.
Untuk secara efektif memantau dan menanggapi perubahan status kesehatan utama:
-
Siapkan CloudWatch alarm untuk met
CMK.Healthrik:aws cloudwatch put-metric-alarm --region us-west-2 \ --alarm-name "IoTCore-CMK-Health-Alert" \ --alarm-description "Alert when IoT Core CMK health is unhealthy" \ --metric-name "CMK.Health" \ --namespace "AWS/IoT" \ --statistic "Minimum" \ --period 300 \ --evaluation-periods 1 \ --threshold 1 \ --comparison-operator "LessThanThreshold" \ --alarm-actions "arn:aws:sns:us-west-2:111122223333:iot-alerts" -
Akti AWS IoT fkan pen catatan V2 untuk menangkap peristiwa perubahan status kesehatan terperinci dengan kode kesalahan dan pesan.
-
Periksa status konfigurasi untuk pemecahan masalah:
aws iot describe-encryption-configuration --region us-west-2 -
Selidiki status TIDAK SEHAT dengan memeriksa
errorCodebidang:KMS_KEY_VALIDATION_ERROR— Masalah dengan AWS KMS kunci (dinonaktifkan, dihapus, atau masalah kebijakan)ROLE_VALIDATION_ERROR— Masalah dengan peran IAM (dihapus, masalah kebijakan, atau masalah kepercayaan)
Dari TIDAK SEHAT hingga SEHAT
Ketika status kunci enkripsi diperbarui dari UNHEALTHY keHEALTHY, AWS IoT Core akan memancarkan pesan log AWS IoT V2 dalam format berikut.
{ "timestamp": "2017-08-10 15:37:23.476", "logLevel": "INFO", "traceId": "8421693b-f4f0-4e4a-9235-0cff8bab897d", "accountId": "111122223333", "status": "SUCCESS", "cmkStatus": "HEALTHY", "kmsKeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "kmsAccessRoleArn": "arn:aws:iam::111122223333:role/myrole", "eventType": "CmkHealthCheck" }
Dari Sehat ke Tidak Sehat
Ketika status kunci enkripsi diperbarui dari HEALTHY keUNHEALTHY, AWS IoT Core akan memancarkan pesan log AWS IoT V2 dalam format berikut.
{ "timestamp": "2017-08-10 15:37:23.476", "logLevel": "ERROR", "traceId": "8421693b-f4f0-4e4a-9235-0cff8bab897d", "accountId": "111122223333", "status": "FAILURE", "cmkStatus": "UNHEALTHY", "errorCode": "KMS_KEY_VALIDATION_ERROR / ROLE_VALIDATION_ERROR", "errorMessage": "Error message on why there was a failure", "kmsKeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "kmsAccessRoleArn": "arn:aws:iam::111122223333:role/myrole", "eventType": "CmkHealthCheck" }
Awas
Ketika kesehatan kunci menjadiUNHEALTHY, AWS IoT Core operasi segera gagal. Jika ini terjadi, tinjau konfigurasi utama Anda, izin peran IAM, dan kebijakan. Pantau CMK.Health metrik untuk perubahan status. Jika operasi terus gagal setelah meninjau konfigurasi Anda, hubungi manajer akun Anda atau Pusat AWS Dukungan
Memantau kesehatan rotasi kunci cabang
AWS IoT Core menggunakan struktur kunci hierarkis untuk mengenkripsi data Anda. Di bagian atas hierarki ini adalah AWS KMS kunci Anda (kunci yang dikelola pelanggan yang Anda konfigurasikan). Di bawahnya, AWS IoT Core pertahankan kunci cabang — kunci internal yang berasal dari AWS KMS kunci Anda. AWS IoT Core kemudian menggunakan kunci cabang ini untuk menghasilkan kunci pembungkus unik, yang melakukan enkripsi dan dekripsi data Anda yang sebenarnya. Pendekatan berlapis ini membatasi ruang lingkup kunci tunggal dan mengikuti praktik terbaik AWS enkripsi. AWS IoT Core mengelola kunci cabang sebagai detail implementasi internal, terpisah dari rotasi AWS KMS kunci Anda, yang dikelola AWS KMS secara langsung. Untuk informasi selengkapnya, lihat Putar kunci cabang aktif Anda.
AWS IoT Core memutar kunci cabang setiap tahun sebagai praktik terbaik keamanan. Rotasi membuat versi kunci cabang aktif baru sambil mempertahankan versi sebelumnya untuk mendekripsi data yang ada. Rotasi ini memerlukan kms:Encrypt izin pada peran IAM yang terkait dengan konfigurasi kunci yang dikelola pelanggan Anda. AWS IoT Core memancarkan CMK.BranchKeyRotationHealth metrik untuk CloudWatch sekali setiap menit untuk menunjukkan apakah peran AWS KMS akses Anda memiliki izin yang diperlukan untuk rotasi.
Met CMK.BranchKeyRotationHealth rik dapat memiliki nilai-nilai berikut:
Nilainya adalah
1: Peran AWS KMS akses memilikikms:Encryptizin yang diperlukan dan rotasi kunci cabang dapat berjalan secara normal.Nilainya adalah
0: Per AWS KMS an akses tidak memilikikms:Encryptizin dan rotasi kunci cabang tidak dapat dilakukan. Operasi dekripsi Anda yang ada akan terus berfungsi secara normal, tetapi tidak AWS IoT Core akan dapat memutar kunci cabang Anda sampai izin dipulihkan. Tambahkankms:Encryptke peran AWS KMS akses Anda untuk mengaktifkan kembali rotasi. Untuk daftar lengkap izin yang diperlukan, lihat Kebijakan kunci.
catatan
Nilai 0 tidak menunjukkan gangguan pada AWS IoT Core operasi Anda saat ini. Data Anda tetap dienkripsi dan dapat diakses. Namun, Anda harus segera memperbarui izin peran AWS KMS akses Anda untuk memastikan kunci cabang dapat diputar sesuai jadwal.
Untuk diberitahu ketika rotasi kunci cabang tidak dapat dilanjutkan, atur CloudWatch alarm untuk CMK.BranchKeyRotationHealth metrik:
aws cloudwatch put-metric-alarm --region us-west-2 \ --alarm-name "IoTCore-CMK-BranchKeyRotationHealth-Alert" \ --alarm-description "Alert when IoT Core branch key rotation health is degraded" \ --metric-name "CMK.BranchKeyRotationHealth" \ --namespace "AWS/IoT" \ --statistic "Minimum" \ --period 300 \ --evaluation-periods 1 \ --threshold 1 \ --comparison-operator "LessThanThreshold" \ --alarm-actions "arn:aws:sns:us-west-2:111122223333:iot-alerts"
AWS CloudTrail peristiwa
Anda juga dapat memantau AWS IoT Core penggunaan kunci KMS untuk enkripsi operasi dekripsi. AWS IoT Core akan membuatDescribeKey,, DecryptReEncrypt, dan GenerateDataKeyWithoutPlaintext operasi pada kunci KMS Anda untuk mengenkripsi/mendekripsi data milik AWS akun Anda yang disimpan saat istirahat.
Ada CloudTrail acara untukDescribeKey,Decrypt,ReEncrypt, danGenerateDataKeyWithoutPlaintext. Peristiwa ini memantau AWS KMS operasi yang dipanggil oleh AWS IoT Core untuk mengakses data yang dienkripsi oleh kunci yang dikelola pelanggan Anda.
Contoh de kripsi
{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "*********************", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "*****" }, "attributes": { "creationDate": "2024-09-16T20:23:39Z", "mfaAuthenticated": "false" } }, "invokedBy": "iot.amazonaws.com" }, "eventTime": "2024-09-16T20:32:48Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "iot.amazonaws.com", "userAgent": "iot.amazonaws.com", "requestParameters": { "encryptionContext": { "kms-arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "aws-crypto-ec:vendor": "iot.amazonaws.com", "branch-key-id": "111122223333", "type": "branch:ACTIVE" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "1afb6d98-8388-455d-8b48-e62c9e0cf7f4", "eventID": "b59a5f16-0d98-46d8-a590-0e040a48b39b", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }