Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Integrasi keamanan perangkat keras
Fitur ini tersedia untuk v2.3 dan versi yang lebih baru dari komponen inti Greengrass. AWS IoT GreengrassSaat ini tidak mendukung fitur ini pada perangkat inti Windows.
Anda dapat mengkonfigurasi perangkat lunakAWS IoT Greengrass Core untuk menggunakan hardware security module (HSM) melalui antarmuka PKCS #11
Perangkat lunakAWS IoT Greengrass Core menggunakan kunci pribadi dan sertifikat X.509 untuk mengotentikasi koneksi keAWS IoT danAWS IoT Greengrass layanan. Komponen manajer rahasia menggunakan kunci pribadi ini untuk mengenkripsi dan mendekripsi rahasia yang Anda terapkan ke perangkat inti Greengrass dengan aman. Saat Anda mengonfigurasi perangkat inti untuk menggunakan HSM, komponen ini menggunakan kunci pribadi dan sertifikat yang Anda simpan di HSM.
Komponen broker Moquette MQTT juga menyimpan kunci pribadi untuk sertifikat server MQTT lokalnya. Komponen ini menyimpan kunci pribadi pada sistem file perangkat di folder kerja komponen. Saat ini,AWS IoT Greengrass tidak mendukung penyimpanan kunci pribadi atau sertifikat ini dalam HSM.
Cari perangkat yang mendukung fitur ini di Katalog PerangkatAWS Mitra
Topik
Persyaratan
Anda harus memenuhi persyaratan berikut untuk menggunakan HSM pada perangkat inti Greengrass:
-
Greengrass nukleus v2.5.3 atau yang lebih baru diinstal pada perangkat inti. Anda dapat memilih versi yang kompatibel ketika Anda menginstal perangkat lunakAWS IoT Greengrass Core pada perangkat inti.
-
Komponen penyedia PKCS #11 dipasang pada perangkat inti. Anda dapat mengunduh dan menginstal komponen ini ketika Anda menginstal perangkat lunakAWS IoT Greengrass Core pada perangkat inti.
-
Modul keamanan perangkat keras yang mendukung skema tanda tangan PKCS #1 v1.5
dan kunci RSA dengan ukuran kunci RSA-2048 (atau lebih besar) atau kunci ECC. catatan Untuk menggunakan modul keamanan perangkat keras dengan kunci ECC, Anda harus menggunakan Greengrass nucleus v2.5.6 atau yang lebih baru.
Untuk menggunakan modul keamanan perangkat keras dan manajer rahasia, Anda harus menggunakan modul keamanan perangkat keras dengan kunci RSA.
-
Pustaka penyedia PKCS #11 yang dapat dimuat perangkat lunakAWS IoT Greengrass Core saat waktu aktif (menggunakan libdl) untuk menjalankan fungsi PKCS #11. Pustaka penyedia PKCS #11 harus mengimplementasikan operasi API PKCS #11 berikut:
-
C_Initialize
-
C_Finalize
-
C_GetSlotList
-
C_GetSlotInfo
-
C_GetTokenInfo
-
C_OpenSession
-
C_GetSessionInfo
-
C_CloseSession
-
C_Login
-
C_Logout
-
C_GetAttributeValue
-
C_FindObjectsInit
-
C_FindObjects
-
C_FindObjectsFinal
-
C_DecryptInit
-
C_Decrypt
-
C_DecryptUpdate
-
C_DecryptFinal
-
C_SignInit
-
C_Sign
-
C_SignUpdate
-
C_SignFinal
-
C_GetMechanismList
-
C_GetMechanismInfo
-
C_GetInfo
-
C_GetFunctionList
-
-
Modul perangkat keras harus dapat diatasi dengan label slot, sebagaimana ditentukan di dalam spesifikasi PKCS#11.
-
Anda harus menyimpan kunci pribadi dan sertifikat di HSM di slot yang sama, dan mereka harus menggunakan label objek dan ID objek yang sama, jika HSM mendukung ID objek.
-
Sertifikat dan kunci privat harus dapat diatasi dengan label objek.
-
Kunci privat harus memiliki izin berikut:
-
sign
-
decrypt
-
-
(Opsional) Untuk menggunakan komponen manajer rahasia, Anda harus menggunakan versi 2.1.0 atau yang lebih baru, dan kunci pribadi harus memiliki izin berikut:
-
unwrap
-
wrap
-
Praktik terbaik keamanan perangkat keras
Pertimbangkan praktik terbaik berikut saat Anda mengonfigurasi keamanan perangkat keras di perangkat inti Greengrass.
-
Hasilkan kunci privat langsung pada HSM dengan menggunakan generator nomor acak perangkat keras internal. Pendekatan ini lebih aman daripada mengimpor kunci pribadi yang Anda hasilkan di tempat lain, karena kunci privat tetap berada di dalam HSM.
-
Konfigurasi kunci privat agar tidak berubah dan melarang ekspor.
-
Gunakan alat penyediaan yang direkomendasikan vendor perangkat keras HSM untuk menghasilkan sertifikat penandatanganan (CSR) menggunakan kunci privat yang dilindungi perangkat keras, lalu gunakanAWS IoT konsol atau API untuk menghasilkan sertifikat klien.
Praktik terbaik keamanan untuk memutar kunci tidak berlaku ketika Anda menghasilkan kunci privat pada HSM.
Instal perangkat lunakAWS IoT Greengrass Inti dengan keamanan perangkat keras
Ketika Anda menginstal perangkat lunakAWS IoT Greengrass Core, Anda dapat mengkonfigurasinya untuk menggunakan kunci pribadi yang Anda hasilkan dalam HSM. Pendekatan ini mengikuti praktik terbaik keamanan untuk menghasilkan kunci pribadi di HSM, sehingga kunci pribadi tetap berada dalam HSM.
Untuk menginstal perangkat lunakAWS IoT Greengrass Core dengan keamanan perangkat keras, Anda melakukan hal berikut:
-
Hasilkan kunci privat di HSM.
-
Buat sertifikat sertifikat (CSR) dari kunci privat.
-
Buat sertifikat dari CSR. Anda dapat membuat sertifikat yang ditandatangani olehAWS IoT atau oleh otoritas sertifikat akar lainnya (CA). Untuk informasi selengkapnya tentang cara menggunakan CA root lain, lihat Membuat sertifikat klien Anda sendiri di PanduanAWS IoT Core Pengembang.
-
UnduhAWS IoT sertifikat dan impor ke HSM.
-
Instal perangkat lunakAWS IoT Greengrass Core dari file konfigurasi yang menentukan untuk menggunakan komponen penyedia PKCS #11 dan kunci pribadi dan sertifikat di HSM.
Anda dapat memilih salah satu opsi instalasi berikut untuk menginstal perangkat lunakAWS IoT Greengrass Core dengan keamanan perangkat keras:
-
Instalasi manual
Pilih opsi ini untuk membuatAWS sumber daya yang diperlukan secara manual dan mengkonfigurasi keamanan perangkat keras. Untuk informasi selengkapnya, lihat Instal perangkat lunak inti AWS IoT Greengrass dengan penyediaan sumber daya manual.
-
Instalasi dengan penyediaan khusus
Pilih opsi ini untuk mengembangkan aplikasi Java kustom yang secara otomatis membuatAWS sumber daya yang diperlukan dan mengkonfigurasi keamanan perangkat keras. Untuk informasi selengkapnya, lihat Instal perangkat lunakAWS IoT Greengrass Core dengan penyediaan sumber daya khusus.
Saat ini,AWS IoT Greengrass tidak mendukung penginstalan perangkat lunakAWS IoT Greengrass Core dengan keamanan perangkat keras saat Anda menginstal dengan penyediaan sumber daya otomatis atau penyediaanAWS IoT armada.
Mengonfigurasi keamanan perangkat keras pada perangkat inti yang ada
Anda dapat mengimpor kunci pribadi dan sertifikat perangkat inti ke HSM untuk mengonfigurasi keamanan perangkat keras.
-
Anda harus mempunyai akses root ke sistem file perangkat inti.
-
Dalam prosedur ini, Anda mematikan perangkat lunakAWS IoT Greengrass Core, sehingga perangkat inti offline dan tidak tersedia saat Anda mengkonfigurasi keamanan perangkat keras.
Untuk mengonfigurasi keamanan perangkat keras pada perangkat inti yang ada, lakukan hal berikut:
-
Inisialisasikan HSM.
-
Terapkan komponen penyedia PKCS #11 ke perangkat inti.
-
Hentikan perangkat lunakAWS IoT Greengrass Core.
-
Impor kunci pribadi dan sertifikat perangkat inti ke HSM.
-
Perbarui file konfigurasi perangkat lunakAWS IoT Greengrass Core untuk menggunakan kunci pribadi dan sertifikat di HSM.
-
Mulai perangkat lunakAWS IoT Greengrass Core.
Langkah 1: Inisialisasikan modul keamanan perangkat keras
Selesaikan langkah berikut untuk menginisialisasi HSM pada perangkat inti Anda.
Untuk menginisialisasi modul keamanan perangkat keras
-
Inisialisasi token PKCS #11 di HSM, dan simpan ID slot dan PIN pengguna untuk token. Periksa dokumentasi untuk HSM Anda untuk mempelajari cara menginisialisasi token. Anda menggunakan ID slot dan PIN pengguna nanti saat Anda men-deploy dan mengkonfigurasi komponen penyedia PKCS #11.
Langkah 2: Deploy komponen penyedia PKCS #11
Selesaikan langkah-langkah berikut untuk men-deploy dan mengkonfigurasi komponen penyedia PKCS #11. Anda dapat men-deploy komponen ke satu perangkat inti atau lebih.
-
Pada menu navigasi konsol AWS IoT Greengrass
tersebut, pilih Komponen. -
Pada halaman Komponen, pilih tab Komponen publik, lalu pilih aws.greengrass.crypto.Pkcs11Provider.
-
Pada halaman aws.greengrass.crypto.Pkcs11Provider pilih Deploy.
-
Dari Tambahkan ke penyebaran, pilih penerapan yang ada untuk direvisi, atau pilih untuk membuat penyebaran baru, lalu pilih Berikutnya.
-
Jika Anda memilih untuk men-deploy baru, pilih perangkat inti target atau grup hal untuk deployment. Pada halaman Tentukan target, di bawah Target penyebaran, pilih perangkat inti atau grup benda, lalu pilih Berikutnya.
-
Pada halaman Pilih komponen, di bawah Komponen publik, pilih aws.greengrass.crypto.Pkcs11Provider, lalu pilih Berikutnya.
-
Pada halaman Configure components, pilih aws.greengrass.crypto.Pkcs11Provider, dan kemudian lakukan hal berikut:
-
Pilih Konfigurasi komponen.
-
Dalam Configureaws.greengrass.crypto.Pkcs11Provider modal, di bawah Configuration update, di Configuration to merge, masukkan pembaruan konfigurasi berikut. Perbarui parameter konfigurasi berikut dengan nilai untuk perangkat inti target. Tentukan ID slot dan PIN pengguna tempat Anda menginisialisasi token PKCS #11 sebelumnya. Anda mengimpor kunci pribadi dan sertifikat ke dalam slot ini di HSM nanti.
name
-
Nama untuk konfigurasi PKCS #11.
library
-
Jalur file absolut ke perpustakaan implementasi PKCS #11 yang dapat dimuat perangkat lunakAWS IoT Greengrass Core dengan libdl.
slot
-
ID slot yang berisi kunci pribadi dan sertifikat perangkat. Nilai ini berbeda dari indeks slot atau label slot.
userPin
-
PIN pengguna yang digunakan untuk mengakses slot.
{ "name": "softhsm_pkcs11", "library": "/usr/lib/softhsm/libsofthsm2.so", "slot": 1, "userPin": "1234" }
-
Pilih Konfirmasi untuk menutup modal, lalu pilih Berikutnya.
-
-
Pada halaman Konfigurasikan pengaturan lanjutan, simpan pengaturan konfigurasi default tersebut, dan pilih Selanjutnya.
-
Di halaman Tinjau, pilih Deploy.
Deployment dapat memakan waktu hingga satu menit untuk menyelesaikannya.
Untuk menyebarkan komponen penyedia PKCS #11, buat dokumen penyebaran yang disertakanaws.greengrass.crypto.Pkcs11Provider
dalamcomponents
objek, dan tentukan pemutakhiran konfigurasi untuk komponen. Ikuti instruksiBuat deployment untuk membuat deployment baru atau merevisi deployment yang ada.
Contoh dokumen penyebaran parsi berikut menentukan untuk menyebarkan dan mengkonfigurasi komponen penyedia PKCS #11. Perbarui parameter konfigurasi berikut dengan nilai untuk perangkat inti target. Simpan ID slot dan PIN pengguna untuk digunakan nanti saat Anda mengimpor kunci pribadi dan sertifikat ke dalam HSM.
name
-
Nama untuk konfigurasi PKCS #11.
library
-
Jalur file absolut ke perpustakaan implementasi PKCS #11 yang dapat dimuat perangkat lunakAWS IoT Greengrass Core dengan libdl.
slot
-
ID slot yang berisi kunci pribadi dan sertifikat perangkat. Nilai ini berbeda dari indeks slot atau label slot.
userPin
-
PIN pengguna yang digunakan untuk mengakses slot.
{ "name": "softhsm_pkcs11", "library": "/usr/lib/softhsm/libsofthsm2.so", "slot": 1, "userPin": "1234" }
{
...
, "components": {...
, "aws.greengrass.crypto.Pkcs11Provider": { "componentVersion": "2.0.0", "configurationUpdate": { "merge": "{\"name\":\"softhsm_pkcs11\",\"library\":\"/usr/lib/softhsm/libsofthsm2.so\",\"slot\":1,\"userPin\":\"1234\"}" } } } }
Deployment ini dapat memakan waktu beberapa menit hingga selesai. Anda dapat menggunakanAWS IoT Greengrass layanan untuk memeriksa status deployment. Anda dapat memeriksa log perangkat lunakAWS IoT Greengrass inti untuk memverifikasi bahwa komponen penyedia PKCS #11 berhasil diterapkan. Untuk informasi selengkapnya, lihat yang berikut:
Jika penerapan gagal, Anda dapat memecahkan masalah penyebaran pada setiap perangkat inti. Untuk informasi selengkapnya, lihat Pemecahan Masalah AWS IoT Greengrass V2.
Langkah 3: Perbarui konfigurasi pada perangkat inti
Perangkat lunakAWS IoT Greengrass Core menggunakan file konfigurasi yang menentukan cara perangkat beroperasi. File konfigurasi ini mencakup tempat untuk menemukan kunci pribadi dan sertifikat yang digunakan perangkat untuk menyambung keAWS Cloud. Selesaikan langkah-langkah berikut untuk mengimpor kunci pribadi dan sertifikat perangkat inti ke HSM dan memperbarui file konfigurasi untuk menggunakan HSM.
Untuk memperbarui konfigurasi pada perangkat inti untuk menggunakan keamanan perangkat keras
-
Hentikan perangkat lunakAWS IoT Greengrass Core. Jika Anda mengkonfigurasi perangkat lunakAWS IoT Greengrass Core sebagai layanan sistem dengan systemd, Anda dapat menjalankan perintah berikut untuk menghentikan perangkat lunak.
sudo systemctl stop greengrass.service
-
Temukan kunci pribadi dan file sertifikat perangkat inti.
-
Jika Anda menginstal perangkat lunakAWS IoT Greengrass Core dengan penyediaan otomatis atau penyediaan armada, kunci pribadi ada di
, dan sertifikat ada di/greengrass/v2
/privKey.key
./greengrass/v2
/thingCert.crt -
Jika Anda menginstal perangkat lunakAWS IoT Greengrass Inti dengan penyediaan manual, kunci pribadi ada secara
default, dan sertifikat ada secara/greengrass/v2
/private.pem.key
default./greengrass/v2
/device.pem.crt
Anda juga dapat memeriksa
system.privateKeyPath
dansystem.certificateFilePath
properti di
untuk menemukan lokasi file-file ini./greengrass/v2
/config/effectiveConfig.yaml -
-
Impor kunci pribadi dan sertifikat ke dalam HSM. Periksa dokumentasi untuk HSM Anda untuk mempelajari cara mengimpor kunci pribadi dan sertifikat ke dalamnya. Impor kunci privat dan sertifikat menggunakan ID slot dan PIN pengguna tempat Anda menginisialisasi token PKCS #11 sebelumnya. Anda harus menggunakan label objek dan ID objek yang sama untuk kunci pribadi dan sertifikat. Simpan label objek yang Anda tentukan saat Anda mengimpor setiap file. Anda menggunakan label ini nanti ketika Anda memperbarui konfigurasi perangkat lunakAWS IoT Greengrass Core untuk menggunakan kunci pribadi dan sertifikat di HSM.
-
Perbarui konfigurasiAWS IoT Greengrass Core untuk menggunakan kunci pribadi dan sertifikat di HSM. Untuk memperbarui konfigurasi, Anda memodifikasi file konfigurasiAWS IoT Greengrass Core dan menjalankan perangkat lunakAWS IoT Greengrass Core dengan file konfigurasi yang diperbarui untuk menerapkan konfigurasi baru.
Lakukan hal berikut:
-
Buat cadangan file konfigurasiAWS IoT Greengrass Core. Anda dapat menggunakan cadangan ini untuk memulihkan perangkat inti jika mengalami masalah saat mengonfigurasi keamanan perangkat keras.
sudo cp
/greengrass/v2
/config/effectiveConfig.yaml ~/ggc-config-backup.yaml -
Buka file konfigurasiAWS IoT Greengrass Core dalam editor teks. Misalnya, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk mengedit file. Ganti
/greengrass/v2
dengan jalur menuju folder akar Greengrass.sudo nano
/greengrass/v2
/config/effectiveConfig.yaml -
Ganti nilai
system.privateKeyPath
dengan URI PKCS #11 untuk kunci privat di HSM. Gantiiotdevicekey
dengan label objek tempat Anda mengimpor kunci pribadi dan sertifikat sebelumnya.pkcs11:object=
iotdevicekey
;type=private -
Ganti nilai
system.certificateFilePath
dengan URI PKCS #11 untuk sertifikat di HSM. Gantiiotdevicekey
dengan label objek tempat Anda mengimpor kunci pribadi dan sertifikat sebelumnya.pkcs11:object=
iotdevicekey
;type=cert
Setelah Anda menyelesaikan langkah-langkah ini,
system
properti dalam file konfigurasiAWS IoT Greengrass Core akan terlihat mirip dengan contoh berikut.system: certificateFilePath: "pkcs11:object=
iotdevicekey
;type=cert" privateKeyPath: "pkcs11:object=iotdevicekey
;type=private" rootCaPath: "/greengrass/v2
/rootCA.pem" rootpath: "/greengrass/v2
" thingName: "MyGreengrassCore
" -
-
Terapkan konfigurasi dalam
effectiveConfig.yaml
file yang diperbarui. JalankanGreengrass.jar
dengan--init-config
parameter untuk menerapkan konfigurasi dieffectiveConfig.yaml
. Ganti/greengrass/v2
dengan jalur menuju folder akar Greengrass.sudo java -Droot="
/greengrass/v2
" \ -jar/greengrass/v2
/alts/current/distro/lib/Greengrass.jar \ --start false \ --init-config/greengrass/v2
/config/effectiveConfig.yaml -
Mulai perangkat lunakAWS IoT Greengrass Core. Jika Anda mengkonfigurasi perangkat lunakAWS IoT Greengrass Core sebagai layanan sistem dengan systemd, Anda dapat menjalankan perintah berikut untuk memulai perangkat lunak.
sudo systemctl start greengrass.service
Untuk informasi selengkapnya, lihat Jalankan perangkat lunak inti AWS IoT Greengrass.
-
Periksa log perangkat lunakAWS IoT Greengrass inti untuk memverifikasi bahwa perangkat lunak dimulai dan terhubung keAWS Cloud. Perangkat lunakAWS IoT Greengrass Core menggunakan kunci pribadi dan sertifikat untuk terhubung keAWS IoT danAWS IoT Greengrass layanan.
sudo tail -f
/greengrass/v2
/logs/greengrass.logPesan log Info-level berikut menunjukkan bahwa perangkat lunakAWS IoT Greengrass Core berhasil terhubung keAWS IoT danAWS IoT Greengrass layanan.
2021-12-06T22:47:53.702Z [INFO] (Thread-3) com.aws.greengrass.mqttclient.AwsIotMqttClient: Successfully connected to AWS IoT Core. {clientId=MyGreengrassCore5, sessionPresent=false}
-
(Opsional) Setelah Anda memverifikasi bahwa perangkat lunakAWS IoT Greengrass Inti berfungsi dengan kunci pribadi dan sertifikat di HSM, hapus kunci pribadi dan file sertifikat dari sistem file perangkat. Jalankan perintah berikut, dan ganti path file dengan path ke kunci pribadi dan file sertifikat.
sudo rm
sudo rm/greengrass/v2
/privKey.key/greengrass/v2
/thingCert.crt
Gunakan perangkat keras tanpa mendukung PKCS #11
Perpustakaan PKCS #11 biasanya disediakan oleh vendor perangkat keras atau open source. Sebagai contoh, dengan perangkat keras yang sesuai standar (seperti TPM1.2), dimungkinkan untuk menggunakan perangkat lunak sumber terbuka yang ada. Namun, jika perangkat keras Anda tidak memiliki implementasi pustaka PKCS #11 yang sesuai, atau jika Anda ingin menulis penyedia PKCS #11 kustom, hubungi perwakilan Support Perusahaan Amazon Web Services Anda dengan pertanyaan terkait integrasi.