

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

# Penyedia PKCS \$111
<a name="pkcs11-provider-component"></a>

Komponen penyedia PKCS \$111 (`aws.greengrass.crypto.Pkcs11Provider`) memungkinkan Anda mengonfigurasi perangkat lunak AWS IoT Greengrass Core untuk menggunakan modul keamanan perangkat keras (HSM) melalui antarmuka [PKCS](https://en.wikipedia.org/wiki/PKCS_11) \$111. Komponen ini memungkinkan Anda menyimpan file sertifikat dan kunci pribadi dengan aman sehingga tidak terekspos atau digandakan dalam perangkat lunak. Untuk informasi selengkapnya, lihat [Integrasi keamanan perangkat keras](hardware-security.md).

**catatan**  
Komponen ini diperlukan untuk inti [Greengrass saja](greengrass-nucleus-component.md). [Greengrass nucleus](greengrass-nucleus-lite-component.md) lite v2.5.0 dan yang lebih baru menyertakan dukungan PKCS \$111 bawaan dan tidak memerlukan komponen ini. Untuk informasi selengkapnya, lihat [dukungan PKCS \$111 di repositori](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/PKCS11_SUPPORT.md) AWS IoT Greengrass nucleus lite GitHub .

Untuk menyediakan perangkat inti Greengrass yang menyimpan sertifikat dan kunci privatnya di HSM, Anda harus menentukan komponen ini sebagai plugin penyediaan saat Anda menginstal perangkat lunak Core. AWS IoT Greengrass Untuk informasi selengkapnya, lihat [Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya manual](manual-installation.md).

AWS IoT Greengrass menyediakan komponen ini sebagai file JAR yang dapat Anda unduh untuk ditentukan sebagai plugin penyediaan selama instalasi. Anda dapat mengunduh versi terbaru dari file JAR komponen sebagai URL berikut: [https://d2s8p88vqu9w66.cloudfront. net/releases/Pkcs11Provider/aws.greengrass.crypto.pkcs11provider-latest.jar](https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar).

**Topics**
+ [Versi](#pkcs11-provider-component-versions)
+ [Tipe](#pkcs11-provider-component-type)
+ [Sistem operasi](#pkcs11-provider-component-os-support)
+ [Persyaratan](#pkcs11-provider-component-requirements)
+ [Dependensi](#pkcs11-provider-component-dependencies)
+ [Konfigurasi](#pkcs11-provider-component-configuration)
+ [File log lokal](#pkcs11-provider-component-log-file)
+ [Changelog](#pkcs11-provider-component-changelog)

## Versi
<a name="pkcs11-provider-component-versions"></a>

Komponen ini memiliki versi berikut:
+ 2.0.x

## Tipe
<a name="pkcs11-provider-component-type"></a>

<a name="public-component-type-plugin-para1"></a>Komponen ini adalah komponen plugin (`aws.greengrass.plugin`). [Inti Greengrass](greengrass-nucleus-component.md) menjalankan komponen plugin dalam Java Virtual Machine (JVM) yang sama sebagai inti. Nukleus dimulai ulang saat Anda mengubah versi komponen ini di perangkat inti.

<a name="public-component-type-plugin-para2"></a>Komponen plugin menggunakan file log yang sama seperti inti Greengrass. Untuk informasi selengkapnya, lihat [Memantau AWS IoT Greengrass log](monitor-logs.md).

<a name="public-component-type-more-information"></a>Untuk informasi selengkapnya, lihat [Jenis komponen](develop-greengrass-components.md#component-types).

## Sistem operasi
<a name="pkcs11-provider-component-os-support"></a>

Komponen ini hanya dapat diinstal pada perangkat inti Linux.

## Persyaratan
<a name="pkcs11-provider-component-requirements"></a>

Komponen ini memiliki persyaratan sebagai berikut:
+ <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`
+ <a name="hardware-security-module-requirements-environment-variable"></a>(Opsional) Jika Anda menggunakan TPM2 pustaka dan menjalankan inti Greengrass sebagai layanan, Anda harus menyediakan variabel lingkungan dengan lokasi penyimpanan PKCS \$111. Contoh berikut adalah file layanan systemd dengan variabel lingkungan yang diperlukan:

  ```
  [Unit]
  Description=Greengrass Core
  After=network.target
  
  [Service]
  Type=simple
  PIDFile=/var/run/greengrass.pid
  Environment=TPM2_PKCS11_STORE=/path/to/store/directory
  RemainAfterExit=no
  Restart=on-failure
  RestartSec=10
  ExecStart=/bin/sh /greengrass/v2/alts/current/distro/bin/loader
  
  [Install]
  WantedBy=multi-user.target
  ```

## Dependensi
<a name="pkcs11-provider-component-dependencies"></a>

Saat Anda menerapkan komponen, gunakan AWS IoT Greengrass juga versi dependensinya yang kompatibel. Ini berarti bahwa Anda harus memenuhi persyaratan untuk komponen dan semua dependensinya untuk berhasil men-deploy komponen. Bagian ini berisi daftar dependensi untuk [versi yang dirilis](#pkcs11-provider-component-changelog) dari komponen ini dan kendala versi semantik yang menentukan versi komponen untuk setiap dependensi. Anda juga dapat melihat dependensi untuk setiap versi komponen di [konsol AWS IoT Greengrass](https://console.aws.amazon.com//greengrass) tersebut. Pada halaman detail komponen, cari daftar **Dependensi**.

------
#### [ 2.0.11 ]

Tabel berikut mencantumkan dependensi untuk versi 2.0.11 komponen ini.


| Dependensi | Versi yang kompatibel | Jenis dependensi | 
| --- | --- | --- | 
| [Inti Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.17.0 | Lunak | 

------
#### [ 2.0.10 ]

Tabel berikut mencantumkan dependensi untuk versi 2.0.10 komponen ini.


| Dependensi | Versi yang kompatibel | Jenis dependensi | 
| --- | --- | --- | 
| [Inti Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.16.0  | Lunak | 

------
#### [ 2.0.9 ]

Tabel berikut mencantumkan dependensi untuk versi 2.0.9 komponen ini.


| Dependensi | Versi yang kompatibel | Jenis dependensi | 
| --- | --- | --- | 
| [Inti Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.15.0  | Lunak | 

------
#### [ 2.0.8 ]

Tabel berikut mencantumkan dependensi untuk versi 2.0.8 komponen ini.


| Dependensi | Versi yang kompatibel | Jenis dependensi | 
| --- | --- | --- | 
| [Inti Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.14.0  | Lunak | 

------
#### [ 2.0.7 ]

Tabel berikut mencantumkan dependensi untuk versi 2.0.7 komponen ini.


| Dependensi | Versi yang kompatibel | Jenis dependensi | 
| --- | --- | --- | 
| [Inti Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.13.0  | Lunak | 

------
#### [ 2.0.6 ]

Tabel berikut mencantumkan dependensi untuk versi 2.0.6 komponen ini.


| Dependensi | Versi yang kompatibel | Jenis dependensi | 
| --- | --- | --- | 
| [Inti Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.12.0  | Lunak | 

------
#### [ 2.0.5 ]

Tabel berikut mencantumkan dependensi untuk versi 2.0.5 komponen ini.


| Dependensi | Versi yang kompatibel | Jenis dependensi | 
| --- | --- | --- | 
| [Inti Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.11.0  | Lunak | 

------
#### [ 2.0.4 ]

Tabel berikut mencantumkan dependensi untuk versi 2.0.4 komponen ini.


| Dependensi | Versi yang kompatibel | Jenis dependensi | 
| --- | --- | --- | 
| [Inti Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.10.0  | Lunak | 

------
#### [ 2.0.3 ]

Tabel berikut mencantumkan dependensi untuk versi 2.0.3 komponen ini.


| Dependensi | Versi yang kompatibel | Jenis dependensi | 
| --- | --- | --- | 
| [Inti Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.9.0  | Lunak | 

------
#### [ 2.0.2 ]

Tabel berikut mencantumkan dependensi untuk versi 2.0.2 komponen ini.


| Dependensi | Versi yang kompatibel | Jenis dependensi | 
| --- | --- | --- | 
| [Inti Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.8.0  | Lunak | 

------
#### [ 2.0.1 ]

Tabel berikut mencantumkan dependensi untuk versi 2.0.1 komponen ini.


| Dependensi | Versi yang kompatibel | Jenis dependensi | 
| --- | --- | --- | 
| [Inti Greengrass](greengrass-nucleus-component.md) |  >=2.5.3 <2.7.0  | Lunak | 

------
#### [ 2.0.0 ]

Tabel berikut mencantumkan dependensi untuk versi 2.0.0 komponen ini.


| Dependensi | Versi yang kompatibel | Jenis dependensi | 
| --- | --- | --- | 
| [Inti Greengrass](greengrass-nucleus-component.md) |  >=2.5.3 <2.6.0  | Lunak | 

------

Untuk informasi selengkapnya tentang dependensi komponen, lihat [referensi resep komponen](component-recipe-reference.md#recipe-reference-component-dependencies).

## Konfigurasi
<a name="pkcs11-provider-component-configuration"></a>

Komponen ini menyediakan parameter konfigurasi berikut yang dapat Anda sesuaikan ketika Anda men-deploy komponen.<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.

**Example Contoh: Pembaruan gabungan konfigurasi**  

```
{
  "name": "softhsm_pkcs11",
  "library": "/usr/lib/softhsm/libsofthsm2.so",
  "slot": 1,
  "userPin": "1234"
}
```

## File log lokal
<a name="pkcs11-provider-component-log-file"></a>

Komponen ini menggunakan file log yang sama dengan komponen inti [Greengrass](greengrass-nucleus-component.md).

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**Untuk melihat log komponen ini**
+ Jalankan perintah berikut pada perangkat inti untuk melihat file log komponen ini secara real time. Ganti `/greengrass/v2` atau *C:\$1greengrass\$1v2* dengan jalur ke folder AWS IoT Greengrass root.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="pkcs11-provider-component-changelog"></a>

Tabel berikut menjelaskan perubahan dalam setiap versi komponen.


|  **Versi**  |  **Perubahan**  | 
| --- | --- | 
|  2.0.12  |  Memperbarui versi komponen untuk rilis Greengrass nucleus versi 2.17.0.  | 
|  2.0.11  |  Versi diperbarui untuk Greengrass nucleus versi 2.16.0 rilis.  | 
|  2.0.10  | Versi diperbarui untuk Greengrass nucleus versi 2.15.0 rilis. | 
|  2.0.9  | Versi diperbarui untuk Greengrass nucleus versi 2.14.0 rilis. | 
|  2.0.8  | Versi diperbarui untuk Greengrass nucleus versi 2.13.0 rilis. | 
|  2.0.7  | Versi diperbarui untuk Greengrass nucleus versi 2.12.0 rilis. | 
|  2.0.6  | Versi diperbarui untuk Greengrass nucleus versi 2.11.0 rilis. | 
|  2.0.5  | Versi diperbarui untuk Greengrass nucleus versi 2.10.0 rilis. | 
|  2.0.4  | Versi diperbarui untuk Greengrass nucleus versi 2.9.0 rilis. | 
|  2.0.3  | Versi diperbarui untuk Greengrass nucleus versi 2.8.0 rilis. | 
|  2.0.2  |  Versi diperbarui untuk Greengrass nucleus versi 2.7.0 rilis.  | 
|  2.0.1  |  Versi diperbarui untuk Greengrass nucleus versi 2.6.0 rilis.  | 
|  2.0.0  |  Versi awal.  | 