

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

# Perlindungan data di AWS IoT Greengrass
<a name="data-protection"></a>

[Model tanggung jawab AWS bersama model](https://aws.amazon.com/compliance/shared-responsibility-model/) berlaku untuk perlindungan data di AWS IoT Greengrass. Seperti yang dijelaskan dalam model AWS ini, bertanggung jawab untuk melindungi infrastruktur global yang menjalankan semua AWS Cloud. Anda bertanggung jawab untuk mempertahankan kendali atas konten yang di-host pada infrastruktur ini. Anda juga bertanggung jawab atas tugas-tugas konfigurasi dan manajemen keamanan untuk Layanan AWS yang Anda gunakan. Lihat informasi yang lebih lengkap tentang privasi data dalam [Pertanyaan Umum Privasi Data](https://aws.amazon.com/compliance/data-privacy-faq/). Lihat informasi tentang perlindungan data di Eropa di pos blog [Model Tanggung Jawab Bersama dan GDPR AWS](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

Untuk tujuan perlindungan data, kami menyarankan Anda melindungi Akun AWS kredensi dan mengatur pengguna individu dengan AWS IAM Identity Center atau AWS Identity and Access Management (IAM). Dengan cara itu, setiap pengguna hanya diberi izin yang diperlukan untuk memenuhi tanggung jawab tugasnya. Kami juga menyarankan supaya Anda mengamankan data dengan cara-cara berikut:
+ Gunakan autentikasi multi-faktor (MFA) pada setiap akun.
+ Gunakan SSL/TLS untuk berkomunikasi dengan AWS sumber daya. Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Siapkan API dan pencatatan aktivitas pengguna dengan AWS CloudTrail. Untuk informasi tentang penggunaan CloudTrail jejak untuk menangkap AWS aktivitas, lihat [Bekerja dengan CloudTrail jejak](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) di *AWS CloudTrail Panduan Pengguna*.
+ Gunakan solusi AWS enkripsi, bersama dengan semua kontrol keamanan default di dalamnya Layanan AWS.
+ Gunakan layanan keamanan terkelola tingkat lanjut seperti Amazon Macie, yang membantu menemukan dan mengamankan data sensitif yang disimpan di Amazon S3.
+ Jika Anda memerlukan modul kriptografi tervalidasi FIPS 140-3 saat mengakses AWS melalui antarmuka baris perintah atau API, gunakan titik akhir FIPS. Lihat informasi selengkapnya tentang titik akhir FIPS yang tersedia di [Standar Pemrosesan Informasi Federal (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Kami sangat merekomendasikan agar Anda tidak pernah memasukkan informasi identifikasi yang sensitif, seperti nomor rekening pelanggan Anda, ke dalam tanda atau bidang isian bebas seperti bidang **Nama**. Ini termasuk saat Anda bekerja dengan AWS IoT Greengrass atau lainnya Layanan AWS menggunakan konsol, API AWS CLI, atau AWS SDKs. Data apa pun yang Anda masukkan ke dalam tanda atau bidang isian bebas yang digunakan untuk nama dapat digunakan untuk log penagihan atau log diagnostik. Saat Anda memberikan URL ke server eksternal, kami sangat menganjurkan supaya Anda tidak menyertakan informasi kredensial di dalam URL untuk memvalidasi permintaan Anda ke server itu.

Untuk informasi selengkapnya tentang melindungi informasi sensitif AWS IoT Greengrass, lihat[Jangan log informasi sensitif](security-best-practices.md#protect-pii).

Untuk informasi selengkapnya tentang perlindungan data, lihat postingan blog [Model Tanggung Jawab Bersama AWS dan GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

**Topics**
+ [Enkripsi data](data-encryption.md)
+ [Integrasi keamanan perangkat keras](hardware-security.md)

# Enkripsi data
<a name="data-encryption"></a>

AWS IoT Greengrass menggunakan enkripsi untuk melindungi data saat dalam perjalanan (melalui internet atau jaringan lokal) dan saat istirahat (disimpan di AWS Cloud).

Perangkat di AWS IoT Greengrass lingkungan sering mengumpulkan data yang dikirim ke AWS layanan untuk diproses lebih lanjut. Untuk informasi selengkapnya tentang enkripsi data pada AWS layanan lain, lihat dokumentasi keamanan untuk layanan tersebut.

**Topics**
+ [Enkripsi bergerak](encryption-in-transit.md)
+ [Enkripsi diam](encryption-at-rest.md)
+ [Manajemen kunci untuk perangkat inti Greengrass](key-management.md)

# Enkripsi bergerak
<a name="encryption-in-transit"></a>

AWS IoT Greengrass memiliki dua mode komunikasi di mana data dalam perjalanan:
+ [Data dalam transit melalui internet](#data-in-transit-internet). Komunikasi antara inti Greengrass dan AWS IoT Greengrass melalui internet dienkripsi.
+ [Data pada perangkat inti](#data-in-transit-locally). Komunikasi antar komponen pada perangkat inti Greengrass tidak dienkripsi.

## Data dalam transit melalui internet
<a name="data-in-transit-internet"></a>

AWS IoT Greengrass Menggunakan Transport Layer Security (TLS) untuk mengenkripsi semua komunikasi melalui internet. Semua data yang dikirim ke AWS Cloud dikirim melalui koneksi TLS menggunakan protokol MQTT atau HTTPS, sehingga aman secara default. AWS IoT Greengrass menggunakan model keamanan AWS IoT transportasi. Untuk informasi selengkapnya, lihat [Keamanan transportasi](https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html) di *Panduan Developer AWS IoT Core *.

## Data pada perangkat inti
<a name="data-in-transit-locally"></a>

AWS IoT Greengrass tidak mengenkripsi data yang dipertukarkan secara lokal di perangkat inti Greengrass karena data tidak meninggalkan perangkat. Ini termasuk komunikasi antar komponen yang ditetapkan pengguna, AWS IoT SDK perangkat, dan komponen publik, seperti pengelola stream.

# Enkripsi diam
<a name="encryption-at-rest"></a>

AWS IoT Greengrass menyimpan data Anda:
+ [Data saat istirahat di AWS Cloud](#data-at-rest-cloud). Data ini dienkripsi.
+ [Data at rest pada inti Greengrass](#data-at-rest-device). Data ini tidak dienkripsi (kecuali salinan lokal rahasia Anda).

## Data saat istirahat di AWS Cloud
<a name="data-at-rest-cloud"></a>

AWS IoT Greengrass mengenkripsi data pelanggan yang disimpan di file. AWS Cloud Data ini dilindungi menggunakan AWS KMS kunci yang dikelola oleh AWS IoT Greengrass.

## Data at rest pada inti Greengrass
<a name="data-at-rest-device"></a>

AWS IoT Greengrass bergantung pada izin file Unix dan enkripsi full-disk (jika diaktifkan) untuk melindungi data pada intinya. Ini adalah tanggung jawab Anda untuk mengamankan sistem file dan perangkat.

Namun, AWS IoT Greengrass mengenkripsi salinan lokal dari rahasia Anda yang diambil dari. AWS Secrets Manager Untuk informasi selengkapnya, lihat komponen [secret manager](secret-manager-component.md).

# Manajemen kunci untuk perangkat inti Greengrass
<a name="key-management"></a>

Ini adalah tanggung jawab pelanggan untuk menjamin penyimpanan kunci kriptografi (publik dan pribadi) yang aman pada perangkat inti Greengrass. AWS IoT Greengrass menggunakan kunci publik dan pribadi untuk skenario berikut:
+ Kunci klien IoT digunakan dengan sertifikat IoT untuk mengautentikasi jabat tangan Transport Layer Security (TLS) ketika inti Greengrass menghubungkan ke AWS IoT Core. Untuk informasi selengkapnya, lihat [Otentikasi dan otorisasi perangkat untuk AWS IoT Greengrass](device-auth.md).
**catatan**  
Kunci dan sertifikat juga disebut sebagai kunci privat inti dan sertifikat perangkat inti.

[Perangkat inti Greengrass mendukung penyimpanan kunci pribadi menggunakan izin sistem file atau modul keamanan perangkat keras.](hardware-security.md) Jika Anda menggunakan kunci privat berbasis sistem file, Anda bertanggung jawab atas penyimpanannya yang aman pada perangkat inti.

# Integrasi keamanan perangkat keras
<a name="hardware-security"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.3 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md) 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 \$111](https://en.wikipedia.org/wiki/PKCS_11). Fitur ini memungkinkan Anda menyimpan kunci pribadi dan sertifikat perangkat dengan aman sehingga tidak terekspos atau digandakan dalam perangkat lunak. Anda dapat menyimpan kunci pribadi dan sertifikat pada modul perangkat keras seperti HSM atau Trusted Platform Module (TPM).

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](secret-manager-component.md) 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](mqtt-broker-moquette-component.md) 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](https://devices.amazonaws.com/search?kw=%22HSI%22&page=1).

**Topics**
+ [Persyaratan](#hardware-security-requirements)
+ [Praktik terbaik keamanan perangkat keras](#hardware-security-best-practices)
+ [Instal perangkat lunak AWS IoT Greengrass Core dengan keamanan perangkat keras](#install-with-hardware-security)
+ [Konfigurasikan keamanan perangkat keras pada perangkat inti yang ada](#enable-hardware-security)
+ [Gunakan perangkat keras tanpa dukungan PKCS \$111](#hardware-without-pkcs11)
+ [Lihat juga](#hardware-security-see-also)

## Persyaratan
<a name="hardware-security-requirements"></a>

Anda harus memenuhi persyaratan berikut untuk menggunakan HSM pada perangkat inti Greengrass:
+ [Greengrass](greengrass-nucleus-component.md) 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 \$111](pkcs11-provider-component.md) diinstal pada perangkat inti. Anda dapat mengunduh dan menginstal komponen ini ketika Anda menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti.
+ <a name="hardware-security-module-requirements-key"></a>Modul keamanan perangkat keras yang mendukung skema tanda tangan [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) dan kunci RSA dengan ukuran kunci RSA-2048 (atau lebih besar) atau kunci ECC.
**catatan**  <a name="hardware-security-module-requirements-key-notes"></a>
Untuk menggunakan modul keamanan perangkat keras dengan kunci ECC, Anda harus menggunakan [Greengrass](greengrass-nucleus-component.md) nucleus v2.5.6 atau yang lebih baru.  
Untuk menggunakan modul keamanan perangkat keras dan [manajer rahasia](secret-manager-component.md), Anda harus menggunakan modul keamanan perangkat keras dengan kunci RSA.
+ <a name="hardware-security-module-requirements-pkcs11-provider-library"></a>Pustaka penyedia PKCS \$111 yang dapat dimuat oleh perangkat lunak AWS IoT Greengrass Core saat runtime (menggunakan libdl) untuk menjalankan fungsi PKCS \$111. Pustaka penyedia PKCS \$111 harus mengimplementasikan operasi API PKCS \$111 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`
+ <a name="hardware-security-module-requirements-slot-label"></a>Modul perangkat keras harus dapat diatasi dengan label slot, sebagaimana ditentukan di dalam spesifikasi PKCS\$111.
+ <a name="hardware-security-module-requirements-private-key-and-certificate"></a>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
+ <a name="hardware-security-module-requirements-object-label"></a>Sertifikat dan kunci pribadi harus dapat diselesaikan dengan label objek.
+ <a name="hardware-security-module-requirements-private-key-permissions"></a>Kunci pribadi harus memiliki izin berikut:
  + `sign`
  + `decrypt`
+ <a name="hardware-security-module-requirements-secret-manager-permissions"></a>(Opsional) Untuk menggunakan [komponen manajer rahasia](secret-manager-component.md), 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
<a name="hardware-security-best-practices"></a>

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
<a name="install-with-hardware-security"></a>

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](#hardware-security-best-practices) 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:

1. Hasilkan kunci pribadi di HSM.

1. Buat permintaan penandatanganan sertifikat (CSR) dari kunci pribadi.

1. 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](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html) di *Panduan AWS IoT Core Pengembang*.

1. Unduh AWS IoT sertifikat dan impor ke HSM.

1. Instal perangkat lunak AWS IoT Greengrass Core dari file konfigurasi yang menentukan untuk menggunakan komponen penyedia PKCS \$111 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](manual-installation.md).
+ **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](custom-provisioning.md).

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](quick-installation.md) [armada](fleet-provisioning.md).

## Konfigurasikan keamanan perangkat keras pada perangkat inti yang ada
<a name="enable-hardware-security"></a>

Anda dapat mengimpor kunci pribadi dan sertifikat perangkat inti ke HSM untuk mengonfigurasi keamanan perangkat keras.

**Pertimbangan-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:

1. Inisialisasi HSM.

1. Terapkan [komponen penyedia PKCS \$111 ke perangkat](pkcs11-provider-component.md) inti.

1. Hentikan perangkat lunak AWS IoT Greengrass inti.

1. Impor kunci pribadi perangkat inti dan sertifikat ke HSM.

1. Perbarui file konfigurasi perangkat lunak AWS IoT Greengrass Core untuk menggunakan kunci pribadi dan sertifikat di HSM.

1. Mulai perangkat lunak AWS IoT Greengrass inti.

### Langkah 1: Inisialisasi modul keamanan perangkat keras
<a name="enable-hardware-security-initialize-hsm"></a>

Selesaikan langkah berikut untuk menginisialisasi HSM pada perangkat inti Anda.

**Untuk menginisialisasi modul keamanan perangkat keras**
+ Inisialisasi token PKCS \$111 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 \$111.

### Langkah 2: Terapkan komponen penyedia PKCS \$111
<a name="enable-hardware-security-deploy-pkcs11-provider"></a>

Selesaikan langkah-langkah berikut untuk menerapkan dan mengonfigurasi komponen penyedia [PKCS \$111](pkcs11-provider-component.md). Anda dapat menerapkan komponen ke satu atau beberapa perangkat inti.

#### Untuk menerapkan komponen penyedia PKCS \$111 (konsol)
<a name="deploy-pkcs11-provider-component-console"></a>

1. Pada menu navigasi [konsol AWS IoT Greengrass](https://console.aws.amazon.com/greengrass) tersebut, pilih **Komponen**.

1. Pada halaman **Components**, pilih tab **Public components**, lalu pilih **aws.greengrass.crypto.Pkcs11Provider**.

1. Pada halaman **aws.greengrass.crypto.Pkcs11Provider** pilih **Deploy**.

1. <a name="deploy-component-choose-deployment-step"></a>**Dari **Tambahkan ke penerapan**, pilih penerapan yang ada untuk direvisi, atau pilih untuk membuat penerapan baru, lalu pilih Berikutnya.**

1. <a name="deploy-component-choose-target-step"></a>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**.

1. Pada halaman **Pilih komponen**, di bawah **Komponen publik**, pilih **aws.greengrass.crypto.Pkcs11Provider**, lalu pilih **Berikutnya**.

1. Pada halaman **Configure components**, pilih **aws.greengrass.crypto.Pkcs11Provider**, lalu lakukan hal berikut:

   1. Pilih **Konfigurasi komponen**.

   1. Dalam **konfigurasi aws.greengrass.crypto.Pkcs11Provider** modal, di bawah **Configuration update**, di **Configuration to merge**, masukkan update konfigurasi berikut. Perbarui parameter konfigurasi berikut dengan nilai untuk perangkat inti target. Tentukan ID slot dan PIN pengguna tempat Anda menginisialisasi token PKCS \$111 sebelumnya. Anda mengimpor kunci pribadi dan sertifikat ke slot ini di HSM nanti.<a name="pkcs11-provider-component-configuration-parameters"></a>  
`name`  
Nama untuk konfigurasi PKCS \$111.  
`library`  
Jalur file absolut ke pustaka implementasi PKCS \$111 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"
      }
      ```

   1. Pilih **Konfirmasi** untuk menutup modal, lalu pilih **Berikutnya**.

1. <a name="deploy-component-configure-advanced-settings-step"></a>Pada halaman **Konfigurasikan pengaturan lanjutan**, simpan pengaturan konfigurasi default tersebut, dan pilih **Selanjutnya**.

1. <a name="deploy-component-review-and-deploy-step"></a>Di halaman **Tinjau**, pilih **Deploy**.

   Penyebaran dapat memakan waktu hingga satu menit untuk diselesaikan.

#### Untuk menerapkan komponen penyedia PKCS \$111 ()AWS CLI
<a name="deploy-pkcs11-provider-component-cli"></a>

Untuk menerapkan komponen penyedia PKCS \$111, buat dokumen penerapan yang disertakan `aws.greengrass.crypto.Pkcs11Provider` dalam `components` objek, dan tentukan pemutakhiran konfigurasi untuk komponen tersebut. Ikuti petunjuk [Buat deployment](create-deployments.md) untuk membuat penerapan baru atau merevisi penerapan yang ada.

Contoh dokumen penerapan sebagian berikut menetapkan untuk menyebarkan dan mengkonfigurasi komponen penyedia PKCS \$111. 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.<a name="pkcs11-provider-component-configuration-parameters"></a>

`name`  
Nama untuk konfigurasi PKCS \$111.

`library`  
Jalur file absolut ke pustaka implementasi PKCS \$111 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 untuk memeriksa status penyebaran. Anda dapat memeriksa log perangkat lunak AWS IoT Greengrass Inti untuk memverifikasi bahwa komponen penyedia PKCS \$111 berhasil diterapkan. Untuk informasi selengkapnya, lihat berikut ini:
+ [Periksa status deployment](check-deployment-status.md)
+ [Memantau AWS IoT Greengrass log](monitor-logs.md)

Jika penerapan gagal, Anda dapat memecahkan masalah penerapan pada setiap perangkat inti. Untuk informasi selengkapnya, lihat [Pemecahan masalah AWS IoT Greengrass V2](troubleshooting.md).

### Langkah 3: Perbarui konfigurasi pada perangkat inti
<a name="enable-hardware-security-configure-core-device"></a>

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**

1. Hentikan perangkat lunak AWS IoT Greengrass inti. Jika Anda [mengkonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem](configure-greengrass-core-v2.md#configure-system-service) dengan systemd, Anda dapat menjalankan perintah berikut untuk menghentikan perangkat lunak.

   ```
   sudo systemctl stop greengrass.service
   ```

1. Temukan kunci pribadi perangkat inti dan file sertifikat.
   + Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core dengan [penyediaan otomatis atau penyediaan](quick-installation.md) [armada](fleet-provisioning.md), kunci pribadi ada di`/greengrass/v2/privKey.key`, dan sertifikat ada di. `/greengrass/v2/thingCert.crt`
   + Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core dengan [penyediaan manual](manual-installation.md), kunci pribadi ada di secara `/greengrass/v2/private.pem.key` default, dan sertifikat ada di secara `/greengrass/v2/device.pem.crt` default.

   Anda juga dapat memeriksa `system.privateKeyPath` dan `system.certificateFilePath` properti di `/greengrass/v2/config/effectiveConfig.yaml` untuk menemukan lokasi file-file ini.

1. 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 \$111 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.

1. 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:

   1. 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 /greengrass/v2/config/effectiveConfig.yaml ~/ggc-config-backup.yaml
      ```

   1. Buka file konfigurasi AWS IoT Greengrass Core di editor teks. Misalnya, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk mengedit file. Ganti `/greengrass/v2` dengan jalur ke folder root Greengrass.

      ```
      sudo nano /greengrass/v2/config/effectiveConfig.yaml
      ```

   1. Ganti nilai `system.privateKeyPath` dengan PKCS \$111 URI untuk kunci pribadi di HSM. Ganti *iotdevicekey* dengan label objek tempat Anda mengimpor kunci pribadi dan sertifikat sebelumnya.

      ```
      pkcs11:object=iotdevicekey;type=private
      ```

   1. Ganti nilai `system.certificateFilePath` dengan PKCS \$111 URI untuk sertifikat di HSM. Ganti *iotdevicekey* 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: "/greengrass/v2/rootCA.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   ```

1. Terapkan konfigurasi dalam `effectiveConfig.yaml` file yang diperbarui. Jalankan `Greengrass.jar` dengan `--init-config` parameter untuk menerapkan konfigurasi di`effectiveConfig.yaml`. Ganti `/greengrass/v2` dengan jalur ke folder root Greengrass.

   ```
   sudo java -Droot="/greengrass/v2" \
     -jar /greengrass/v2/alts/current/distro/lib/Greengrass.jar \
     --start false \
     --init-config /greengrass/v2/config/effectiveConfig.yaml
   ```

1. Mulai perangkat lunak AWS IoT Greengrass inti. Jika Anda [mengkonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem](configure-greengrass-core-v2.md#configure-system-service) 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](run-greengrass-core-v2.md).

1. 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 /greengrass/v2/logs/greengrass.log
   ```

   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}
   ```

1. (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 /greengrass/v2/privKey.key
   sudo rm /greengrass/v2/thingCert.crt
   ```

## Gunakan perangkat keras tanpa dukungan PKCS \$111
<a name="hardware-without-pkcs11"></a>

Perpustakaan PKCS \$111 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 \$111 yang sesuai, atau jika Anda ingin menulis penyedia PKCS \$111 kustom, hubungi perwakilan Amazon Web Services Enterprise Support Anda dengan pertanyaan terkait integrasi.

## Lihat juga
<a name="hardware-security-see-also"></a>
+ [Panduan Penggunaan Antarmuka Token Kriptografi PKCS \$111 Versi 2.4.0](http://docs.oasis-open.org/pkcs11/pkcs11-ug/v2.40/pkcs11-ug-v2.40.html)
+ [RFC 7512](https://tools.ietf.org/html/rfc7512)
+ [PKCS \$11: Enkripsi RSA Versi 1.5](https://tools.ietf.org/html/rfc2313)