

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

[Il componente provider PKCS \$111 (`aws.greengrass.crypto.Pkcs11Provider`) consente di configurare il software AWS IoT Greengrass Core per l'utilizzo di un modulo di sicurezza hardware (HSM) tramite l'interfaccia PKCS \$111.](https://en.wikipedia.org/wiki/PKCS_11) Questo componente consente di archiviare in modo sicuro i file di certificati e chiavi private in modo che non vengano esposti o duplicati nel software. Per ulteriori informazioni, consulta [Integrazione della sicurezza hardware](hardware-security.md).

Per effettuare il provisioning di un dispositivo core Greengrass che memorizza il certificato e la chiave privata in un HSM, è necessario specificare questo componente come plug-in di provisioning quando si installa il software Core. AWS IoT Greengrass Per ulteriori informazioni, consulta [Installa il software AWS IoT Greengrass Core con provisioning manuale delle risorse](manual-installation.md).

AWS IoT Greengrass fornisce questo componente come file JAR che potete scaricare e specificare come plug-in di provisioning durante l'installazione. È possibile scaricare la versione più recente del file JAR del componente al seguente URL: [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**
+ [Versioni](#pkcs11-provider-component-versions)
+ [Tipo](#pkcs11-provider-component-type)
+ [Sistema operativo](#pkcs11-provider-component-os-support)
+ [Requisiti](#pkcs11-provider-component-requirements)
+ [Dipendenze](#pkcs11-provider-component-dependencies)
+ [Configurazione](#pkcs11-provider-component-configuration)
+ [File di registro locale](#pkcs11-provider-component-log-file)
+ [Changelog](#pkcs11-provider-component-changelog)

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

Questo componente ha le seguenti versioni:
+ 2.0.x

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

<a name="public-component-type-plugin-para1"></a>Questo componente è un componente del plugin ()`aws.greengrass.plugin`. Il [nucleo Greengrass](greengrass-nucleus-component.md) esegue questo componente nella stessa Java Virtual Machine (JVM) del nucleo. Il nucleo si riavvia quando si modifica la versione di questo componente sul dispositivo principale.

<a name="public-component-type-plugin-para2"></a>Questo componente utilizza lo stesso file di registro del nucleo Greengrass. Per ulteriori informazioni, consulta [Monitora AWS IoT Greengrass i registri](monitor-logs.md).

<a name="public-component-type-more-information"></a>Per ulteriori informazioni, consulta [Tipi di componenti](develop-greengrass-components.md#component-types).

## Sistema operativo
<a name="pkcs11-provider-component-os-support"></a>

Questo componente può essere installato solo sui dispositivi principali di Linux.

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

Questo componente ha i seguenti requisiti:
+ <a name="hardware-security-module-requirements-key"></a>Un modulo di sicurezza hardware che supporta lo schema di firma [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) e le chiavi RSA con chiave RSA-2048 (o superiore) o chiavi ECC.
**Nota**  <a name="hardware-security-module-requirements-key-notes"></a>
Per utilizzare un modulo di sicurezza hardware con chiavi ECC, è necessario utilizzare [Greengrass nucleus](greengrass-nucleus-component.md) v2.5.6 o versione successiva.  
Per utilizzare un modulo di sicurezza hardware e un [gestore segreto](secret-manager-component.md), è necessario utilizzare un modulo di sicurezza hardware con chiavi RSA.
+ <a name="hardware-security-module-requirements-pkcs11-provider-library"></a>Una libreria di provider PKCS \$111 che il software AWS IoT Greengrass Core può caricare in fase di esecuzione (usando libdl) per richiamare le funzioni PKCS \$111. La libreria del provider PKCS \$111 deve implementare le seguenti operazioni API PKCS \$111:
  + `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>Il modulo hardware deve essere risolvibile mediante l'etichetta dello slot, come definito nella specifica PKCS\$111.
+ <a name="hardware-security-module-requirements-private-key-and-certificate"></a>È necessario archiviare la chiave privata e il certificato nell'HSM nello stesso slot e devono utilizzare la stessa etichetta e lo stesso ID dell'oggetto, se l'HSM supporta l'oggetto. IDs
+ <a name="hardware-security-module-requirements-object-label"></a>Il certificato e la chiave privata devono essere risolvibili mediante etichette di oggetti.
+ <a name="hardware-security-module-requirements-private-key-permissions"></a>La chiave privata deve avere le seguenti autorizzazioni:
  + `sign`
  + `decrypt`
+ <a name="hardware-security-module-requirements-secret-manager-permissions"></a>(Facoltativo) Per utilizzare il [componente Secret Manager](secret-manager-component.md), è necessario utilizzare la versione 2.1.0 o successiva e la chiave privata deve disporre delle seguenti autorizzazioni:
  + `unwrap`
  + `wrap`
+ <a name="hardware-security-module-requirements-environment-variable"></a>(Facoltativo) Se si utilizza la TPM2 libreria e si esegue il core Greengrass come servizio, è necessario fornire una variabile di ambiente con la posizione dell'archivio PKCS \$111. L'esempio seguente è un file di servizio systemd con la variabile di ambiente richiesta:

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

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

Quando si distribuisce un componente, distribuisce AWS IoT Greengrass anche versioni compatibili delle relative dipendenze. Ciò significa che è necessario soddisfare i requisiti per il componente e tutte le sue dipendenze per distribuire correttamente il componente. Questa sezione elenca le dipendenze per le [versioni rilasciate](#pkcs11-provider-component-changelog) di questo componente e i vincoli di versione semantica che definiscono le versioni dei componenti per ogni dipendenza. [È inoltre possibile visualizzare le dipendenze per ogni versione del componente nella console.AWS IoT Greengrass](https://console.aws.amazon.com//greengrass) Nella pagina dei dettagli del componente, cerca l'elenco delle **dipendenze**.

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

La tabella seguente elenca le dipendenze per la versione 2.0.11 di questo componente.


| Dipendenza | Versioni compatibili | Tipo di dipendenza | 
| --- | --- | --- | 
| [Nucleo Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.17.0 | Flessibili | 

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

La tabella seguente elenca le dipendenze per la versione 2.0.10 di questo componente.


| Dipendenza | Versioni compatibili | Tipo di dipendenza | 
| --- | --- | --- | 
| [Nucleo Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.16.0  | Flessibili | 

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

La tabella seguente elenca le dipendenze per la versione 2.0.9 di questo componente.


| Dipendenza | Versioni compatibili | Tipo di dipendenza | 
| --- | --- | --- | 
| [Nucleo Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.15.0  | Flessibili | 

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

La tabella seguente elenca le dipendenze per la versione 2.0.8 di questo componente.


| Dipendenza | Versioni compatibili | Tipo di dipendenza | 
| --- | --- | --- | 
| [Nucleo Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.14.0  | Flessibili | 

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

La tabella seguente elenca le dipendenze per la versione 2.0.7 di questo componente.


| Dipendenza | Versioni compatibili | Tipo di dipendenza | 
| --- | --- | --- | 
| [Nucleo Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.13.0  | Flessibili | 

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

La tabella seguente elenca le dipendenze per la versione 2.0.6 di questo componente.


| Dipendenza | Versioni compatibili | Tipo di dipendenza | 
| --- | --- | --- | 
| [Nucleo Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.12.0  | Flessibili | 

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

La tabella seguente elenca le dipendenze per la versione 2.0.5 di questo componente.


| Dipendenza | Versioni compatibili | Tipo di dipendenza | 
| --- | --- | --- | 
| [Nucleo Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.11.0  | Flessibili | 

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

La tabella seguente elenca le dipendenze per la versione 2.0.4 di questo componente.


| Dipendenza | Versioni compatibili | Tipo di dipendenza | 
| --- | --- | --- | 
| [Nucleo Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.10.0  | Flessibili | 

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

La tabella seguente elenca le dipendenze per la versione 2.0.3 di questo componente.


| Dipendenza | Versioni compatibili | Tipo di dipendenza | 
| --- | --- | --- | 
| [Nucleo Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.9.0  | Flessibili | 

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

La tabella seguente elenca le dipendenze per la versione 2.0.2 di questo componente.


| Dipendenza | Versioni compatibili | Tipo di dipendenza | 
| --- | --- | --- | 
| [Nucleo Greengrass](greengrass-nucleus-component.md) | >=2.5.3 <2.8.0  | Flessibili | 

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

La tabella seguente elenca le dipendenze per la versione 2.0.1 di questo componente.


| Dipendenza | Versioni compatibili | Tipo di dipendenza | 
| --- | --- | --- | 
| [Nucleo Greengrass](greengrass-nucleus-component.md) |  >=2.5.3 <2.7.0  | Flessibili | 

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

La tabella seguente elenca le dipendenze per la versione 2.0.0 di questo componente.


| Dipendenza | Versioni compatibili | Tipo di dipendenza | 
| --- | --- | --- | 
| [Nucleo Greengrass](greengrass-nucleus-component.md) |  >=2.5.3 <2.6.0  | Flessibili | 

------

[Per ulteriori informazioni sulle dipendenze dei componenti, vedere il riferimento alla ricetta dei componenti.](component-recipe-reference.md#recipe-reference-component-dependencies)

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

Questo componente fornisce i seguenti parametri di configurazione che è possibile personalizzare durante la distribuzione del componente.<a name="pkcs11-provider-component-configuration-parameters"></a>

`name`  
Un nome per la configurazione PKCS \$111.

`library`  
Il percorso assoluto del file alla libreria dell'implementazione PKCS \$111 che il software AWS IoT Greengrass Core può caricare con libdl.

`slot`  
L'ID dello slot che contiene la chiave privata e il certificato del dispositivo. Questo valore è diverso dall'indice o dall'etichetta dello slot.

`userPin`  
Il PIN utente da utilizzare per accedere allo slot.

**Example Esempio: fusione e aggiornamento della configurazione**  

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

## File di registro locale
<a name="pkcs11-provider-component-log-file"></a>

Questo componente utilizza lo stesso file di registro del componente [Greengrass nucleus](greengrass-nucleus-component.md).

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

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

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

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

------

**Per visualizzare i log di questo componente**
+ Esegui il seguente comando sul dispositivo principale per visualizzare il file di registro di questo componente in tempo reale. Sostituisci `/greengrass/v2` o *C:\$1greengrass\$1v2* con il percorso della cartella AWS IoT Greengrass principale.

------
#### [ 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>

La tabella seguente descrive le modifiche in ogni versione del componente.


|  **Versione**  |  **Modifiche**  | 
| --- | --- | 
|  2.0.11  |  Versione aggiornata per la versione 2.16.0 di Greengrass nucleus.  | 
|  2.0.10  | Versione aggiornata per la versione 2.15.0 di Greengrass nucleus. | 
|  2.0.9  | Versione aggiornata per la versione 2.14.0 di Greengrass nucleus. | 
|  2.0.8  | Versione aggiornata per la versione 2.13.0 di Greengrass nucleus. | 
|  2.0.7  | Versione aggiornata per la versione 2.12.0 di Greengrass nucleus. | 
|  2.0.6  | Versione aggiornata per la versione 2.11.0 di Greengrass nucleus. | 
|  2.0.5  | Versione aggiornata per la versione 2.10.0 di Greengrass nucleus. | 
|  2.0.4  | Versione aggiornata per la versione 2.9.0 di Greengrass nucleus. | 
|  2.0.3  | Versione aggiornata per la versione 2.8.0 di Greengrass nucleus. | 
|  2.0.2  |  Versione aggiornata per la versione 2.7.0 di Greengrass nucleus.  | 
|  2.0.1  |  Versione aggiornata per la versione 2.6.0 di Greengrass nucleus.  | 
|  2.0.0  |  Versione iniziale.  | 