

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

Le composant fournisseur PKCS \$111 (`aws.greengrass.crypto.Pkcs11Provider`) vous permet de configurer le logiciel AWS IoT Greengrass principal pour utiliser un module de sécurité matériel (HSM) via l'interface [PKCS \$111](https://en.wikipedia.org/wiki/PKCS_11). Ce composant vous permet de stocker en toute sécurité les fichiers de certificats et de clés privées afin qu'ils ne soient pas exposés ou dupliqués dans le logiciel. Pour de plus amples informations, veuillez consulter [Intégration de sécurité matérielle](hardware-security.md).

**Note**  
Ce composant n'est requis que pour le [noyau de Greengrass](greengrass-nucleus-component.md). [Greengrass nucleus lite](greengrass-nucleus-lite-component.md) v2.5.0 et versions ultérieures incluent le support PKCS \$111 intégré et ne nécessitent pas ce composant. Pour plus d'informations, consultez le [support PKCS \$111](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/PKCS11_SUPPORT.md) dans le GitHub référentiel AWS IoT Greengrass Nucleus Lite.

Pour approvisionner un appareil principal Greengrass qui stocke son certificat et sa clé privée dans un HSM, vous devez spécifier ce composant en tant que plug-in de provisionnement lorsque vous installez le logiciel Core. AWS IoT Greengrass Pour de plus amples informations, veuillez consulter [Installation AWS IoT Greengrass du logiciel Core avec provisionnement manuel des ressources](manual-installation.md).

AWS IoT Greengrass fournit ce composant sous forme de fichier JAR que vous pouvez télécharger pour le spécifier en tant que plugin de provisionnement lors de l'installation. Vous pouvez télécharger la dernière version du fichier JAR du composant à l'adresse suivante : [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**
+ [Versions](#pkcs11-provider-component-versions)
+ [Type](#pkcs11-provider-component-type)
+ [Système d’exploitation](#pkcs11-provider-component-os-support)
+ [Exigences](#pkcs11-provider-component-requirements)
+ [Dépendances](#pkcs11-provider-component-dependencies)
+ [Configuration](#pkcs11-provider-component-configuration)
+ [Fichier journal local](#pkcs11-provider-component-log-file)
+ [Journal des modifications](#pkcs11-provider-component-changelog)

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

Les versions de ce composant sont les suivantes :
+ 2.0.x

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

<a name="public-component-type-plugin-para1"></a>Ce composant est un composant de plugin (`aws.greengrass.plugin`). Le [noyau Greengrass](greengrass-nucleus-component.md) exécute ce composant dans la même machine virtuelle Java (JVM) que le noyau. Le noyau redémarre lorsque vous modifiez la version de ce composant sur le périphérique principal.

<a name="public-component-type-plugin-para2"></a>Ce composant utilise le même fichier journal que le noyau Greengrass. Pour de plus amples informations, veuillez consulter [AWS IoT Greengrass Journaux de surveillance](monitor-logs.md).

<a name="public-component-type-more-information"></a>Pour de plus amples informations, veuillez consulter [Types de composant](develop-greengrass-components.md#component-types).

## Système d’exploitation
<a name="pkcs11-provider-component-os-support"></a>

Ce composant ne peut être installé que sur les appareils principaux de Linux.

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

Ce composant répond aux exigences suivantes :
+ <a name="hardware-security-module-requirements-key"></a>Module de sécurité matérielle qui prend en charge le schéma de signature [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) et les clés RSA d'une taille de clé RSA-2048 (ou supérieure) ou les clés ECC.
**Note**  <a name="hardware-security-module-requirements-key-notes"></a>
Pour utiliser un module de sécurité matériel avec des clés ECC, vous devez utiliser [Greengrass](greengrass-nucleus-component.md) nucleus v2.5.6 ou version ultérieure.  
Pour utiliser un module de sécurité matériel et un [gestionnaire de secrets](secret-manager-component.md), vous devez utiliser un module de sécurité matériel avec des clés RSA.
+ <a name="hardware-security-module-requirements-pkcs11-provider-library"></a>Une bibliothèque de fournisseur PKCS \$111 que le logiciel AWS IoT Greengrass Core peut charger au moment de l'exécution (à l'aide de libdl) pour appeler les fonctions PKCS \$111. La bibliothèque du fournisseur PKCS \$111 doit implémenter les opérations d'API PKCS \$111 suivantes :
  + `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>Le module matériel doit être résolu par étiquette d'emplacement, tel que défini dans la spécification PKCS\$111.
+ <a name="hardware-security-module-requirements-private-key-and-certificate"></a>Vous devez stocker la clé privée et le certificat dans le HSM dans le même emplacement, et ils doivent utiliser la même étiquette d'objet et le même ID d'objet, si le HSM prend en charge l'objet. IDs
+ <a name="hardware-security-module-requirements-object-label"></a>Le certificat et la clé privée doivent pouvoir être résolus par des libellés d'objets.
+ <a name="hardware-security-module-requirements-private-key-permissions"></a>La clé privée doit disposer des autorisations suivantes :
  + `sign`
  + `decrypt`
+ <a name="hardware-security-module-requirements-secret-manager-permissions"></a>(Facultatif) Pour utiliser le [composant secret manager](secret-manager-component.md), vous devez utiliser la version 2.1.0 ou ultérieure, et la clé privée doit disposer des autorisations suivantes :
  + `unwrap`
  + `wrap`
+ <a name="hardware-security-module-requirements-environment-variable"></a>(Facultatif) Si vous utilisez la TPM2 bibliothèque et exécutez le noyau de Greengrass en tant que service, vous devez fournir une variable d'environnement indiquant l'emplacement du magasin PKCS \$111. L'exemple suivant est un fichier de service systemd contenant la variable d'environnement requise :

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

## Dépendances
<a name="pkcs11-provider-component-dependencies"></a>

Lorsque vous déployez un composant, il déploie AWS IoT Greengrass également des versions compatibles de ses dépendances. Cela signifie que vous devez satisfaire aux exigences relatives au composant et à toutes ses dépendances pour réussir le déploiement du composant. Cette section répertorie les dépendances des [versions publiées](#pkcs11-provider-component-changelog) de ce composant et les contraintes de version sémantiques qui définissent les versions des composants pour chaque dépendance. Vous pouvez également consulter les dépendances de chaque version du composant dans la [AWS IoT Greengrass console](https://console.aws.amazon.com//greengrass). Sur la page de détails du composant, recherchez la liste des **dépendances**.

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

Le tableau suivant répertorie les dépendances pour la version 2.0.11 de ce composant.


| Dépendance | Versions compatibles | Type de dépendance | 
| --- | --- | --- | 
| [Noyau de Greengrass](greengrass-nucleus-component.md) | >=2,5,3 <2,17,0 | Flexible | 

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

Le tableau suivant répertorie les dépendances pour la version 2.0.10 de ce composant.


| Dépendance | Versions compatibles | Type de dépendance | 
| --- | --- | --- | 
| [Noyau de Greengrass](greengrass-nucleus-component.md) | >=2,5,3 <2,16,0  | Flexible | 

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

Le tableau suivant répertorie les dépendances pour la version 2.0.9 de ce composant.


| Dépendance | Versions compatibles | Type de dépendance | 
| --- | --- | --- | 
| [Noyau de Greengrass](greengrass-nucleus-component.md) | >=2,5,3 <2,15,0  | Flexible | 

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

Le tableau suivant répertorie les dépendances pour la version 2.0.8 de ce composant.


| Dépendance | Versions compatibles | Type de dépendance | 
| --- | --- | --- | 
| [Noyau de Greengrass](greengrass-nucleus-component.md) | >=2,5,3 <2,14,0  | Flexible | 

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

Le tableau suivant répertorie les dépendances pour la version 2.0.7 de ce composant.


| Dépendance | Versions compatibles | Type de dépendance | 
| --- | --- | --- | 
| [Noyau de Greengrass](greengrass-nucleus-component.md) | >=2,5,3 <2,13,0  | Flexible | 

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

Le tableau suivant répertorie les dépendances pour la version 2.0.6 de ce composant.


| Dépendance | Versions compatibles | Type de dépendance | 
| --- | --- | --- | 
| [Noyau de Greengrass](greengrass-nucleus-component.md) | >=2,5,3 <2,12,0  | Flexible | 

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

Le tableau suivant répertorie les dépendances pour la version 2.0.5 de ce composant.


| Dépendance | Versions compatibles | Type de dépendance | 
| --- | --- | --- | 
| [Noyau de Greengrass](greengrass-nucleus-component.md) | >=2,5,3 <2,11,0  | Flexible | 

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

Le tableau suivant répertorie les dépendances pour la version 2.0.4 de ce composant.


| Dépendance | Versions compatibles | Type de dépendance | 
| --- | --- | --- | 
| [Noyau de Greengrass](greengrass-nucleus-component.md) | >=2,5,3 <2,1,0  | Flexible | 

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

Le tableau suivant répertorie les dépendances pour la version 2.0.3 de ce composant.


| Dépendance | Versions compatibles | Type de dépendance | 
| --- | --- | --- | 
| [Noyau de Greengrass](greengrass-nucleus-component.md) | >=2,5,3 <2,9,0  | Flexible | 

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

Le tableau suivant répertorie les dépendances pour la version 2.0.2 de ce composant.


| Dépendance | Versions compatibles | Type de dépendance | 
| --- | --- | --- | 
| [Noyau de Greengrass](greengrass-nucleus-component.md) | >=2,5,3 <2,8,0  | Flexible | 

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

Le tableau suivant répertorie les dépendances pour la version 2.0.1 de ce composant.


| Dépendance | Versions compatibles | Type de dépendance | 
| --- | --- | --- | 
| [Noyau de Greengrass](greengrass-nucleus-component.md) |  >=2,5,3 <2,7,0  | Flexible | 

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

Le tableau suivant répertorie les dépendances pour la version 2.0.0 de ce composant.


| Dépendance | Versions compatibles | Type de dépendance | 
| --- | --- | --- | 
| [Noyau de Greengrass](greengrass-nucleus-component.md) |  >=2,5,3 <2,6,0  | Flexible | 

------

Pour plus d'informations sur les dépendances des composants, consultez la [référence de la recette des composants](component-recipe-reference.md#recipe-reference-component-dependencies).

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

Ce composant fournit les paramètres de configuration suivants que vous pouvez personnaliser lorsque vous déployez le composant.<a name="pkcs11-provider-component-configuration-parameters"></a>

`name`  
Nom de la configuration PKCS \$111.

`library`  
Le chemin de fichier absolu vers la bibliothèque de l'implémentation PKCS \$111 que le logiciel AWS IoT Greengrass Core peut charger avec libdl.

`slot`  
L'ID du slot qui contient la clé privée et le certificat de l'appareil. Cette valeur est différente de l'index ou de l'étiquette du slot.

`userPin`  
Le code PIN de l'utilisateur à utiliser pour accéder au slot.

**Example Exemple : mise à jour de la fusion de configurations**  

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

## Fichier journal local
<a name="pkcs11-provider-component-log-file"></a>

Ce composant utilise le même fichier journal que le composant [Greengrass nucleus](greengrass-nucleus-component.md).

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

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

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

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

------

**Pour consulter les journaux de ce composant**
+ Exécutez la commande suivante sur le périphérique principal pour afficher le fichier journal de ce composant en temps réel. Remplacez `/greengrass/v2` ou *C:\$1greengrass\$1v2* par le chemin d'accès au dossier AWS IoT Greengrass racine.

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

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

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

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

------

## Journal des modifications
<a name="pkcs11-provider-component-changelog"></a>

Le tableau suivant décrit les modifications apportées à chaque version du composant.


|  **Version**  |  **Modifications**  | 
| --- | --- | 
|  2,0,12  |  Met à jour la version du composant pour la version 2.17.0 de Greengrass Nucleus.  | 
|  2.0.11  |  Version mise à jour pour la version 2.16.0 de Greengrass Nucleus.  | 
|  2.0.10  | Version mise à jour pour la version 2.15.0 de Greengrass Nucleus. | 
|  2.0.9  | Version mise à jour pour la version 2.14.0 de Greengrass Nucleus. | 
|  2.0.8  | Version mise à jour pour la version 2.13.0 de Greengrass Nucleus. | 
|  2.0.7  | Version mise à jour pour la version 2.12.0 de Greengrass Nucleus. | 
|  2.0.6  | Version mise à jour pour la version 2.11.0 de Greengrass Nucleus. | 
|  2.0.5  | Version mise à jour pour la version 2.10.0 de Greengrass Nucleus. | 
|  2.0.4  | Version mise à jour pour la version 2.9.0 de Greengrass Nucleus. | 
|  2.0.3  | Version mise à jour pour la version 2.8.0 de Greengrass Nucleus. | 
|  2.0.2  |  Version mise à jour pour la version 2.7.0 de Greengrass Nucleus.  | 
|  2.0.1  |  Version mise à jour pour la version 2.6.0 de Greengrass Nucleus.  | 
|  2.0.0  |  Première version.  | 