Fournisseur PKCS #11 - AWS IoT Greengrass

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

Le composant fournisseur PKCS #11 (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 #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 plus d’informations, consultez Intégration de sécurité matérielle.

Pour provisionner 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 plus d’informations, consultez Installation AWS IoT Greengrass du logiciel Core avec provisionnement manuel des ressources.

AWS IoT Greengrassfournit 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.

Versions

Les versions de ce composant sont les suivantes :

  • 2,0.x

Type

Ce composant est un composant de plugin (aws.greengrass.plugin). Le noyau Greengrass 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.

Ce composant utilise le même fichier journal que le noyau Greengrass. Pour plus d’informations, consultez AWS IoT GreengrassJournaux de surveillance.

Pour plus d’informations, consultez Types de composants.

Système d’exploitation

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

Prérequis

Ce composant répond aux exigences suivantes :

  • Module de sécurité matérielle qui prend en charge le schéma de signature PKCS #1 v1.5 et les clés RSA d'une taille de clé RSA-2048 (ou supérieure) ou les clés ECC.

    Note

    Pour utiliser un module de sécurité matériel avec des clés ECC, vous devez utiliser Greengrass nucleus v2.5.6 ou version ultérieure.

    Pour utiliser un module de sécurité matériel et un gestionnaire de secrets, vous devez utiliser un module de sécurité matériel avec des clés RSA.

  • Une bibliothèque de fournisseur PKCS #11 que le logiciel AWS IoT Greengrass Core peut charger au moment de l'exécution (à l'aide de libdl) pour appeler les fonctions PKCS #11. La bibliothèque du fournisseur PKCS #11 doit implémenter les opérations d'API PKCS #11 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

  • Le module matériel doit être résolu par étiquette d'emplacement, tel que défini dans la spécification PKCS#11.

  • 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 les ID d'objet.

  • Le certificat et la clé privée doivent pouvoir être résolus par des libellés d'objets.

  • La clé privée doit disposer des autorisations suivantes :

    • sign

    • decrypt

  • (Facultatif) Pour utiliser le composant secret manager, vous devez utiliser la version 2.1.0 ou ultérieure, et la clé privée doit disposer des autorisations suivantes :

    • unwrap

    • wrap

  • (Facultatif) Si vous utilisez la bibliothèque TPM2 et que vous exécutez le noyau Greengrass en tant que service, vous devez fournir une variable d'environnement indiquant l'emplacement du magasin PKCS #11. 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

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 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 Greengrassconsole. Sur la page de détails du composant, recherchez la liste des dépendances.

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 >=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 >=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 >=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 >=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 >=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 >=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 >=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 >=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.

Configuration

Ce composant fournit les paramètres de configuration suivants que vous pouvez personnaliser lorsque vous déployez le composant.

name

Nom de la configuration PKCS #11.

library

Le chemin de fichier absolu vers la bibliothèque de l'implémentation PKCS #11 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 de l'emplacement.

userPin

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

Exemple : mise à jour de la fusion de configurations
{ "name": "softhsm_pkcs11", "library": "/usr/lib/softhsm/libsofthsm2.so", "slot": 1, "userPin": "1234" }

Fichier journal local

Ce composant utilise le même fichier journal que le composant Greengrass nucleus.

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 C:\greengrass\v2 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

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

Version

Modifications

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.