Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Integrasi keamanan perangkat keras
catatan
Fitur ini tersedia untuk v2.5.3 dan yang lebih baru dari komponen inti Greengrass. AWS IoT Greengrass saat ini tidak mendukung fitur ini di perangkat inti Windows.
Anda dapat mengonfigurasi perangkat lunak AWS IoT Greengrass Core untuk menggunakan modul keamanan perangkat keras (HSM) melalui antarmuka PKCS #11
Perangkat lunak AWS IoT Greengrass Core menggunakan kunci pribadi dan sertifikat X.509 untuk mengautentikasi koneksi ke dan layanan. AWS IoT AWS IoT Greengrass 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 di HSM.
Tip
Cari perangkat yang mendukung fitur ini di Katalog Perangkat AWS Mitra
Topik
Persyaratan
Anda harus memenuhi persyaratan berikut untuk menggunakan HSM pada perangkat inti Greengrass:
-
Greengrass nucleus v2.5.3 atau yang lebih baru diinstal pada perangkat inti. Anda dapat memilih versi yang kompatibel saat menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti.
-
Komponen penyedia PKCS #11 diinstal pada perangkat inti. Anda dapat mengunduh dan menginstal komponen ini ketika Anda menginstal perangkat lunak AWS 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 oleh perangkat lunak AWS IoT Greengrass Core saat runtime (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 objek. IDs
-
Sertifikat dan kunci pribadi harus dapat diselesaikan dengan label objek.
-
Kunci pribadi 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 pada 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 pribadi tetap berada dalam HSM.
-
Konfigurasikan kunci pribadi agar tidak dapat diubah dan melarang ekspor.
-
Gunakan alat penyediaan yang direkomendasikan oleh vendor perangkat keras HSM untuk membuat permintaan penandatanganan sertifikat (CSR) menggunakan kunci pribadi yang dilindungi perangkat keras, lalu gunakan konsol atau API untuk menghasilkan sertifikat klien. AWS IoT
catatan
Praktik keamanan terbaik untuk memutar kunci tidak berlaku saat Anda membuat kunci pribadi pada HSM.
Instal perangkat lunak AWS IoT Greengrass Core dengan keamanan perangkat keras
Saat Anda menginstal perangkat lunak AWS IoT Greengrass Core, Anda dapat mengonfigurasinya untuk menggunakan kunci pribadi yang Anda hasilkan di HSM. Pendekatan ini mengikuti praktik terbaik keamanan untuk menghasilkan kunci pribadi di HSM, sehingga kunci pribadi tetap berada dalam HSM.
Untuk menginstal perangkat lunak AWS IoT Greengrass Core dengan keamanan perangkat keras, Anda melakukan hal berikut:
-
Hasilkan kunci pribadi di HSM.
-
Buat permintaan penandatanganan sertifikat (CSR) dari kunci pribadi.
-
Buat sertifikat dari CSR. Anda dapat membuat sertifikat yang ditandatangani oleh AWS IoT atau oleh otoritas sertifikat root (CA) lainnya. Untuk informasi selengkapnya tentang cara menggunakan CA root lain, lihat Membuat sertifikat klien Anda sendiri di Panduan AWS IoT Core Pengembang.
-
Unduh AWS IoT sertifikat dan impor ke HSM.
-
Instal perangkat lunak AWS 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 lunak AWS IoT Greengrass Core dengan keamanan perangkat keras:
-
Instalasi manual
Pilih opsi ini untuk membuat AWS sumber daya yang diperlukan secara manual dan mengkonfigurasi keamanan perangkat keras. Untuk informasi selengkapnya, lihat Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya manual.
-
Instalasi dengan penyediaan khusus
Pilih opsi ini untuk mengembangkan aplikasi Java khusus yang secara otomatis membuat AWS sumber daya yang diperlukan dan mengonfigurasi keamanan perangkat keras. Untuk informasi selengkapnya, lihat Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya khusus.
Saat ini, AWS IoT Greengrass tidak mendukung penginstalan perangkat lunak AWS IoT Greengrass Core dengan keamanan perangkat keras saat Anda menginstal dengan penyediaan sumber daya otomatis atau penyediaan AWS IoT armada.
Konfigurasikan keamanan perangkat keras pada perangkat inti yang ada
Anda dapat mengimpor kunci pribadi dan sertifikat perangkat inti ke HSM untuk mengonfigurasi keamanan perangkat keras.
Pertimbangan
-
Anda harus memiliki akses root ke sistem file perangkat inti.
-
Dalam prosedur ini, Anda mematikan perangkat lunak AWS IoT Greengrass Core, sehingga perangkat inti offline dan tidak tersedia saat Anda mengonfigurasi keamanan perangkat keras.
Untuk mengonfigurasi keamanan perangkat keras pada perangkat inti yang ada, Anda melakukan hal berikut:
-
Inisialisasi HSM.
-
Terapkan komponen penyedia PKCS #11 ke perangkat inti.
-
Hentikan perangkat lunak AWS IoT Greengrass inti.
-
Impor kunci pribadi perangkat inti dan sertifikat ke HSM.
-
Perbarui file konfigurasi perangkat lunak AWS IoT Greengrass Core untuk menggunakan kunci pribadi dan sertifikat di HSM.
-
Mulai perangkat lunak AWS IoT Greengrass inti.
Langkah 1: Inisialisasi 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 tersebut. Periksa dokumentasi untuk HSM Anda untuk mempelajari cara menginisialisasi token. Anda menggunakan ID slot dan PIN pengguna nanti saat Anda menerapkan dan mengonfigurasi komponen penyedia PKCS #11.
Langkah 2: Terapkan komponen penyedia PKCS #11
Selesaikan langkah-langkah berikut untuk menerapkan dan mengonfigurasi komponen penyedia PKCS #11. Anda dapat menerapkan komponen ke satu atau beberapa perangkat inti.
-
Pada menu navigasi konsol AWS IoT Greengrass
tersebut, pilih Komponen. -
Pada halaman Components, pilih tab Public components, lalu pilih aws.greengrass.crypto.Pkcs11Provider.
-
Pada aws.greengrass.crypto.Pkcs11Providerhalaman, pilih Deploy.
-
Dari Tambahkan ke penerapan, pilih penerapan yang ada untuk direvisi, atau pilih untuk membuat penerapan baru, lalu pilih Berikutnya.
-
Jika Anda memilih untuk membuat penerapan baru, pilih perangkat inti target atau grup hal untuk penerapan. Pada halaman Tentukan target, di bawah target Deployment, pilih perangkat inti atau grup benda, lalu pilih Berikutnya.
-
Pada halaman Pilih komponen, di bawah Komponen publik, pilih aws.greengrass.crypto.Pkcs11Provider, dan kemudian pilih Berikutnya.
-
Pada halaman Konfigurasi komponen, pilih aws.greengrass.crypto.Pkcs11Provider, dan kemudian lakukan hal berikut:
-
Pilih Konfigurasi komponen.
-
Dalam Konfigurasi aws.greengrass.crypto.Pkcs11Providermodal, di bawah Pembaruan konfigurasi, di Konfigurasi untuk digabungkan, 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 slot ini di HSM nanti.
name
-
Nama untuk konfigurasi PKCS #11.
library
-
Jalur file absolut ke pustaka implementasi PKCS #11 yang dapat dimuat oleh perangkat lunak AWS 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.
Penyebaran dapat memakan waktu hingga satu menit untuk diselesaikan.
Untuk menerapkan komponen penyedia PKCS #11, buat dokumen penerapan yang disertakan aws.greengrass.crypto.Pkcs11Provider
dalam components
objek, dan tentukan pemutakhiran konfigurasi untuk komponen tersebut. Ikuti petunjuk Buat deployment untuk membuat penerapan baru atau merevisi penerapan yang ada.
Contoh dokumen penerapan sebagian berikut menetapkan 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 HSM.
name
-
Nama untuk konfigurasi PKCS #11.
library
-
Jalur file absolut ke pustaka implementasi PKCS #11 yang dapat dimuat oleh perangkat lunak AWS 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 menggunakan AWS IoT Greengrass layanan ini untuk memeriksa status penyebaran. Anda dapat memeriksa log perangkat lunak AWS IoT Greengrass Inti untuk memverifikasi bahwa komponen penyedia PKCS #11 berhasil diterapkan. Untuk informasi selengkapnya, lihat berikut ini:
Jika penerapan gagal, Anda dapat memecahkan masalah penerapan pada setiap perangkat inti. Untuk informasi selengkapnya, lihat Pemecahan masalah AWS IoT Greengrass V2.
Langkah 3: Perbarui konfigurasi pada perangkat inti
Perangkat lunak AWS IoT Greengrass Core menggunakan file konfigurasi yang menentukan bagaimana perangkat beroperasi. File konfigurasi ini mencakup tempat menemukan kunci pribadi dan sertifikat yang digunakan perangkat untuk terhubung ke file AWS Cloud. Selesaikan langkah-langkah berikut untuk mengimpor kunci pribadi perangkat inti dan sertifikat ke HSM dan memperbarui file konfigurasi untuk menggunakan HSM.
Untuk memperbarui konfigurasi pada perangkat inti untuk menggunakan keamanan perangkat keras
-
Hentikan perangkat lunak AWS IoT Greengrass inti. Jika Anda mengkonfigurasi perangkat lunak AWS 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 perangkat inti dan file sertifikat.
-
Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core dengan penyediaan otomatis atau penyediaan armada, kunci pribadi ada di
, dan sertifikat ada di.
/privKey.key/greengrass/v2
/thingCert.crt/greengrass/v2
-
Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core dengan penyediaan manual, kunci pribadi ada di secara
default, dan sertifikat ada di secara
/private.pem.key/greengrass/v2
default.
/device.pem.crt/greengrass/v2
Anda juga dapat memeriksa
system.privateKeyPath
dansystem.certificateFilePath
properti di
untuk menemukan lokasi file-file ini.
/config/effectiveConfig.yaml/greengrass/v2
-
-
Impor kunci pribadi dan sertifikat ke HSM. Periksa dokumentasi untuk HSM Anda untuk mempelajari cara mengimpor kunci pribadi dan sertifikat ke dalamnya. Impor kunci pribadi 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 lunak AWS IoT Greengrass Core untuk menggunakan kunci pribadi dan sertifikat di HSM.
-
Perbarui konfigurasi AWS IoT Greengrass Core untuk menggunakan kunci pribadi dan sertifikat di HSM. Untuk memperbarui konfigurasi, Anda memodifikasi file konfigurasi AWS IoT Greengrass Core dan menjalankan perangkat lunak AWS IoT Greengrass Core dengan file konfigurasi yang diperbarui untuk menerapkan konfigurasi baru.
Lakukan hal-hal berikut:
-
Buat cadangan file konfigurasi AWS IoT Greengrass Core. Anda dapat menggunakan cadangan ini untuk memulihkan perangkat inti jika Anda mengalami masalah saat mengonfigurasi keamanan perangkat keras.
sudo cp
/config/effectiveConfig.yaml ~/ggc-config-backup.yaml/greengrass/v2
-
Buka file konfigurasi AWS IoT Greengrass Core di editor teks. Misalnya, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk mengedit file. Ganti
dengan jalur ke folder root Greengrass./greengrass/v2
sudo nano
/config/effectiveConfig.yaml/greengrass/v2
-
Ganti nilai
system.privateKeyPath
dengan PKCS #11 URI untuk kunci pribadi di HSM. Gantiiotdevicekey
dengan label objek tempat Anda mengimpor kunci pribadi dan sertifikat sebelumnya.pkcs11:object=
iotdevicekey
;type=private -
Ganti nilai
system.certificateFilePath
dengan PKCS #11 URI 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 konfigurasi AWS IoT Greengrass Core akan terlihat mirip dengan contoh berikut.system: certificateFilePath: "pkcs11:object=
iotdevicekey
;type=cert" privateKeyPath: "pkcs11:object=iotdevicekey
;type=private" rootCaPath: "
/rootCA.pem" rootpath: "/greengrass/v2
" thingName: "/greengrass/v2
MyGreengrassCore
" -
-
Terapkan konfigurasi dalam
effectiveConfig.yaml
file yang diperbarui. JalankanGreengrass.jar
dengan--init-config
parameter untuk menerapkan konfigurasi dieffectiveConfig.yaml
. Ganti
dengan jalur ke folder root Greengrass./greengrass/v2
sudo java -Droot="
" \ -jar/greengrass/v2
/alts/current/distro/lib/Greengrass.jar \ --start false \ --init-config/greengrass/v2
/config/effectiveConfig.yaml/greengrass/v2
-
Mulai perangkat lunak AWS IoT Greengrass inti. Jika Anda mengkonfigurasi perangkat lunak AWS 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 AWS IoT Greengrass Core.
-
Periksa log perangkat lunak AWS IoT Greengrass inti untuk memverifikasi bahwa perangkat lunak dimulai dan terhubung ke file AWS Cloud. Perangkat lunak AWS IoT Greengrass Core menggunakan kunci pribadi dan sertifikat untuk terhubung ke AWS IoT dan AWS IoT Greengrass layanan.
sudo tail -f
/logs/greengrass.log/greengrass/v2
Pesan log tingkat Info berikut menunjukkan bahwa perangkat lunak AWS IoT Greengrass Core berhasil terhubung ke AWS IoT dan AWS 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 lunak AWS IoT Greengrass Core berfungsi dengan kunci pribadi dan sertifikat di HSM, hapus kunci pribadi dan file sertifikat dari sistem file perangkat. Jalankan perintah berikut, dan ganti jalur file dengan jalur ke kunci pribadi dan file sertifikat.
sudo rm
sudo rm
/privKey.key/greengrass/v2
/thingCert.crt/greengrass/v2
Gunakan perangkat keras tanpa dukungan PKCS #11
Perpustakaan PKCS #11 biasanya disediakan oleh vendor perangkat keras atau open source. Misalnya, dengan perangkat keras yang sesuai standar (seperti TPM1 .2), dimungkinkan untuk menggunakan perangkat lunak open source 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 Amazon Web Services Enterprise Support Anda dengan pertanyaan terkait integrasi.