Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Amankan AWS IoT Greengrass Nucleus Lite dengan Modul Platform Tepercaya (TPM)
Tutorial ini menjelaskan cara mengaktifkan dan mengkonfigurasi dukungan Trusted Platform Module (TPM) untuk AWS IoT Greengrass nucleus lite. TPM menyediakan akar kepercayaan berbasis perangkat keras untuk penyimpanan kunci yang aman. Fitur keamanan ini melindungi operasi kriptografi dan kredensi sensitif, meningkatkan keamanan dan integritas perangkat.
Ketika Anda menyelesaikan integrasi ini, perangkat AWS IoT Greengrass inti Anda akan menggunakan kunci pribadi yang dilindungi TPM untuk identitas dan komunikasinya dengan layanan. AWS IoT
Untuk informasi selengkapnya tentang keamanan pada AWS IoT Greengrass perangkat, lihatKeamanan di AWS IoT Greengrass.
penting
Mekanisme ini hanya didukung dengan menginstal AWS IoT Greengrass nucleus lite dengan penyediaan sumber daya manual.
Prasyarat
Untuk menyelesaikan tutorial ini, Anda memerlukan hal berikut:
-
Perangkat yang kompatibel dengan Linux dengan perangkat keras TPM 2.0 atau NitroTPM
-
Mesin pengembang dengan Greengrass Nucleus Lite diinstal. Untuk informasi selengkapnya, lihat Menginstal perangkat lunak AWS IoT Greengrass Inti (konsol).
-
Petunjuk dalam tutorial ini didefinisikan untuk Ubuntu 24.04 LTS.
-
Distribusi Linux apa pun yang dapat mendukung Linux TPM2 Software Stack
dapat mendukung mekanisme ini. -
Mesin pengembang dengan AWS CLIdiinstal dan dikonfigurasi dengan izin untuk:
-
Buat dan kelola AWS IoT sumber daya
-
Membuat dan mengelola peran dan kebijakan IAM
-
-
Hak istimewa root atau sudo pada perangkat.
Tutorial ini berisi petunjuk tentang cara menggunakan TPM2 chip sebagai Hardware Security Module (HSM) untuk membuat kunci pribadi dan CSR yang digunakan untuk membuat sertifikat AWS IoT benda.
Langkah 1: Siapkan instance NitroTPM
-
Siapkan instance NitroTPM. Untuk informasi lebih lanjut, lihat NitroTPM.
-
Luncurkan instance terakhir menggunakan AMI kustom yang dibuat pada langkah sebelumnya.
penting
Saat menghubungkan dengan SSH, gunakan
ubuntupengguna alih-alih.root -
Periksa apakah perangkat TPM ada dan bekerja dengan menjalankan perintah berikut:
ls -la /dev/tpm*Anda harus melihat
/dev/tpm0dan/dev/tpmrm0perangkat.
Langkah 2: Instal dan konfigurasikan alat TPM
-
Instal paket yang diperlukan dengan menjalankan perintah berikut:
sudo apt update sudo apt install tpm2-openssl tpm2-tools tpm2-abrmd libtss2-tcti-tabrmd0 -
Verifikasi izin perangkat TPM dengan menjalankan perintah berikut:
ls -l /dev/tpm0 # Should be owned by tss:root with permissions 0660 ls -l /dev/tpmrm0 # Should be owned by tss:tss with permissions 0660
Langkah 3: Konfigurasikan penyedia OpenSSL TPM2
-
Edit file konfigurasi OpenSSL:
sudo vi /etc/ssl/openssl.cnf -
Tambahkan konfigurasi berikut:
[openssl_init] providers = provider_sect [provider_sect] default = default_sect tpm2 = tpm2_sect [default_sect] activate = 1 [tpm2_sect] identity = tpm2 module = /usr/local/lib64/tpm2.so activate = 1 -
Sesuaikan jalur modul seperlunya. Anda dapat menemukan jalur yang benar menggunakan:
find /usr -name "tpm2.so"
Langkah 4: Hasilkan kunci TPM persisten
-
Buat kunci primer dengan menjalankan perintah berikut:
sudo tpm2_createprimary -C o -c primary.ctx -
Buat objek kunci ECC dengan menjalankan perintah berikut:
sudo tpm2_create -C primary.ctx -g sha256 -G ecc256 -r device.priv -u device.pub -
Muat kunci dengan menjalankan perintah berikut:
sudo tpm2_load -C primary.ctx -r device.priv -u device.pub -c device.ctx -
Buat kunci persisten dengan menjalankan perintah berikut:
sudo tpm2_evictcontrol -C o -c device.ctx 0x81000002Ini menciptakan kunci persisten dengan pegangan (seperti
0x81000002).
Langkah 5: Hasilkan Permintaan Penandatanganan Sertifikat (CSR)
Pada langkah ini, Anda akan menggunakan kunci pribadi TPM2 yang dilindungi untuk menghasilkan Permintaan Penandatanganan Sertifikat (CSR).
-
Hasilkan CSR menggunakan kunci TPM:
openssl req -new -provider tpm2 -key "handle:0x81000002" \ -out device.csr \ -subj "/CN=TPMThing" -
Ganti
0x81000002dengan nilai pegangan yang Anda pilih danTPMThingdengan nama benda yang Anda inginkan.
Langkah 6: Buat sertifikat dari CSR
-
Di komputer pengembangan Anda, buat folder tempat Anda mengunduh sertifikat untuk AWS IoT benda itu.
mkdir greengrass-v2-certs -
Gunakan file CSR untuk membuat dan mengunduh sertifikat untuk AWS IoT hal itu ke komputer pengembangan Anda.
aws iot create-certificate-from-csr \ --set-as-active \ --certificate-signing-request file://path_to_device.csr\ --certificate-pem-outfile greengrass-v2-certs/device.pem.crtJika permintaan berhasil, responsnya terlihat mirip dengan contoh berikut:
{ "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificatePem": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----" }
Langkah 7: Siapkan Greengrass Nucleus Lite dengan dukungan TPM
Untuk mengaktifkan dukungan TPM di Greengrass Nucleus Lite, lakukan perubahan berikut:
-
Konfigurasikan izin pengguna dengan menambahkan
ggcorepengguna ketssgrup untuk akses TPM:sudo usermod -a -G tss ggcore -
Perbarui direktori kredensil dengan menyelesaikan langkah-langkah berikut:
-
Hapus file kunci pribadi dari direktori kredensial.
-
Karena kami menggunakan kunci TPM persisten, tidak ada file kunci pribadi yang perlu disalin.
-
-
Salin yang baru
device.pem.crtke direktori kredensil itu.
-
-
Edit
config.yamldengan konfigurasi khusus TPM berikut:system: privateKeyPath: "handle:0x81000002" # Use your chosen handle certificateFilePath: "" # Replace with the path of device.pem.crt ... -
Reboot Greengrass Nucleus Lite Anda dengan menjalankan perintah berikut:
systemctl restart greengrass-lite.target
Pemecahan masalah
Jika Anda mengalami masalah selama penyiapan atau pengoperasian AWS IoT Greengrass perangkat yang TPM2 diaktifkan, coba langkah pemecahan masalah berikut:
Perangkat TPM tidak ditemukan (saat menggunakan NitroTPM)
Jika tidak /dev/tpm0 ada, lakukan langkah-langkah berikut:
-
Verifikasi bahwa Anda menggunakan jenis instans yang didukung NitroTPM.
-
Pastikan AMI dibuat dengan
--tpm-support v2.0. -
Verifikasi bahwa instance diluncurkan dari AMI kustom.
Kesalahan ditolak izin
Jika Anda mengalami kesalahan akses TPM, lakukan hal berikut:
-
Verifikasi bahwa pengguna berada dalam
tssgrup:groups $USER. -
Periksa izin perangkat TPM menggunakan perintah berikut:
ls -l /dev/tpm* -
Verifikasi Anda keluar dan masuk kembali setelah menambahkan ke
tssgrup.
Masalah penyedia OpenSSL
Jika penyedia TPM tidak ditemukan, lakukan hal berikut:
-
Verifikasi
tpm2.sojalur di/etc/ssl/openssl.cnf. -
Periksa instalasi penyedia dengan menjalankan perintah berikut:
openssl list -providers -
Verifikasi
tpm2-opensslpaket diinstal dengan benar.
Langkah selanjutnya
Sekarang setelah Anda berhasil mengintegrasikan perangkat AWS IoT Greengrass inti Anda TPM2, Anda dapat:
-
Menerapkan komponen ke perangkat aman AWS IoT Greengrass Anda
-
Siapkan AWS IoT Greengrass perangkat tambahan dengan TPM2 integrasi
Untuk informasi selengkapnya tentang keamanan pada AWS IoT Greengrass perangkat, lihatKeamanan di AWS IoT Greengrass.