View a markdown version of this page

Tutorial: Aman AWS IoT Greengrass Nucleus Lite dengan Modul Platform Tepercaya (TPM) - AWS IoT Greengrass

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tutorial: Aman 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 root kepercayaan berbasis perangkat keras untuk penyimpanan kunci yang aman. Fitur keamanan ini melindungi operasi kriptografi dan kredenSIAL sensitif, meningkatkan keamanan dan integritas perangkat.

Ketika Anda menyelesaikan integrasi ini, perangkat AWS IoT Greengrass inti Anda akan menggunakan kunci TPM-protected pribadi untuk identitas dan komunikasinya dengan AWS IoT layanan.

Untuk informasi selengkapnya tentang keamanan pada AWS IoT Greengrass perangkat, lihatKeamanan di AWS IoT Greengrass.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan hal berikut:

  • Perangkat dengan Linux-compatible perangkat keras TPM 2.0 atau NitroTPM

  • Mesin pengembang dengan Greengrass Nucleus Lite diinstal. Untuk informasi selengkapnya, lihat Menginstal perangkat lunak AWS IoT Greengrass Core (konsol).

  • Instruksi dalam tutorial ini didefinisikan untuk Ubuntu 24.04 LTS.

  • Setiap distribusi Linux yang dapat mendukung Linux TPM2 Software Stack dapat mendukung mekanisme ini.

  • Mesin pengembang yang AWS CLI diinstal dan dikonfigurasi dengan izin untuk:

    • Membuat dan mengelola 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 chip TPM2 sebagai Modul Keamanan Perangkat Keras (HSM) untuk membuat kunci pribadi dan CSR yang digunakan untuk membuat sertifikat benda. AWS IoT

Langkah 1: Siapkan instance NitroTPM

  1. Siapkan instance NitroTPM. Untuk informasi selengkapnya, lihat NitroTPM.

  2. Luncurkan instance akhir menggunakan AMI khusus yang dibuat pada langkah sebelumnya.

    penting

    Saat terhubung dengan SSH, gunakan ubuntu pengguna alih-alihroot.

  3. Periksa apakah perangkat TPM hadir dan berfungsi dengan menjalankan perintah berikut:

    ls -la /dev/tpm*

    Anda harus melihat /dev/tpm0 dan /dev/tpmrm0 perangkat.

Langkah 2: Instal dan konfigurasikan alat TPM

  1. Instal paket yang diperlukan dengan menjalankan perintah berikut:

    sudo apt update sudo apt install tpm2-openssl tpm2-tools tpm2-abrmd libtss2-tcti-tabrmd0
  2. 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

  1. Edit file konfigurasi OpenSSL:

    sudo vi /etc/ssl/openssl.cnf
  2. 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
  3. Sesuaikan jalur modul seperlunya. Anda dapat menemukan jalur yang benar menggunakan:

    find /usr -name "tpm2.so"

Langkah 4: Hasilkan kunci TPM persisten

  1. Buat kunci utama dengan menjalankan perintah berikut:

    sudo tpm2_createprimary -C o -c primary.ctx
  2. Buat objek kunci ECC dengan menjalankan perintah berikut:

    sudo tpm2_create -C primary.ctx -g sha256 -G ecc256 -r device.priv -u device.pub
  3. Muat kunci dengan menjalankan perintah berikut:

    sudo tpm2_load -C primary.ctx -r device.priv -u device.pub -c device.ctx
  4. Jadikan kunci persisten dengan menjalankan perintah berikut:

    sudo tpm2_evictcontrol -C o -c device.ctx 0x81000002

    Ini menciptakan kunci persisten dengan pegangan (seperti0x81000002).

Langkah 5: Menghasilkan Permintaan Penandatanganan Sertifikat (CSR)

Pada langkah ini, Anda akan menggunakan kunci TPM2-protected pribadi untuk menghasilkan Permintaan Penandatanganan Sertifikat (CSR).

  1. Hasilkan CSR menggunakan kunci TPM:

    openssl req -new -provider tpm2 -key "handle:0x81000002" \ -out device.csr \ -subj "/CN=TPMThing"
  2. Ganti 0x81000002 dengan nilai pegangan yang Anda pilih dan TPMThing dengan nama benda yang Anda inginkan.

Langkah 6: Buat sertifikat dari CSR

  1. Di komputer pengembangan Anda, buat folder tempat Anda mengunduh sertifikat untuk AWS IoT hal itu.

    mkdir greengrass-v2-certs
  2. Gunakan file CSR untuk membuat dan mengunduh sertifikat untuk AWS IoT hal tersebut 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.crt

    Jika 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, buat perubahan berikut:

  1. Konfigurasikan izin pengguna dengan menambahkan ggcore pengguna ke tss grup untuk akses TPM:

    sudo usermod -a -G tss ggcore
  2. Perbarui direktori kredenSIAL 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.crt ke direktori kredenSIAL itu.

  3. Edit config.yaml dengan TPM-specific konfigurasi berikut:

    system: privateKeyPath: "handle:0x81000002" # Use your chosen handle certificateFilePath: "" # Replace with the path of device.pem.crt ...
  4. Mulai ulang Greengrass Nucleus Lite Anda dengan menjalankan perintah berikut:

    systemctl restart greengrass-lite.target

Pemecahan masalah

Jika Anda mengalami masalah selama penyiapan atau pengoperasian TPM2-enabled AWS IoT Greengrass perangkat, coba langkah-langkah pemecahan masalah berikut:

Perangkat TPM tidak ditemukan (saat menggunakan NitroTPM)

Jika /dev/tpm0 tidak ada, lakukan langkah-langkah berikut:

  1. Verifikasi bahwa Anda menggunakan jenis NitroTPM-supported instans.

  2. Pastikan AMI dibuat dengan--tpm-support v2.0.

  3. Verifikasi bahwa instance diluncurkan dari AMI kustom.

Kesalahan ditolak izin

Jika Anda mengalami kesalahan akses TPM, lakukan hal berikut:

  1. Verifikasi bahwa pengguna ada dalam tss grup:groups $USER.

  2. Periksa izin perangkat TPM menggunakan perintah berikut:

    ls -l /dev/tpm*
  3. Verifikasi Anda keluar dan masuk kembali setelah menambahkan ke tss grup.

Masalah penyedia OpenSSL

Jika penyedia TPM tidak ditemukan, lakukan hal berikut:

  1. Veri tpm2.so fikasi jalur di/etc/ssl/openssl.cnf.

  2. Periksa instalasi penyedia dengan menjalankan perintah berikut:

    openssl list -providers
  3. Pastikan tpm2-openssl paket sudah terpasang dengan benar.

Langkah selanjutnya

Sekarang setelah Anda berhasil mengintegrasikan perangkat AWS IoT Greengrass inti Anda dengan TPM2, Anda dapat:

  • Menyebarkan komponen ke AWS IoT Greengrass perangkat aman Anda

  • Siapkan AWS IoT Greengrass perangkat tambahan dengan integrasi TPM2

Untuk informasi selengkapnya tentang keamanan pada AWS IoT Greengrass perangkat, lihatKeamanan di AWS IoT Greengrass.