

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

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

[Mit der PKCS \$111 -Anbieterkomponente (`aws.greengrass.crypto.Pkcs11Provider`) können Sie die AWS IoT Greengrass Core-Software so konfigurieren, dass sie über die PKCS \$111 -Schnittstelle ein Hardware-Sicherheitsmodul (HSM) verwendet.](https://en.wikipedia.org/wiki/PKCS_11) Diese Komponente ermöglicht es Ihnen, Zertifikate und private Schlüsseldateien sicher zu speichern, sodass sie nicht offengelegt oder in der Software dupliziert werden. Weitere Informationen finden Sie unter [Integration von Hardware-Sicherheit](hardware-security.md).

**Anmerkung**  
Diese Komponente wird nur für den [Greengrass-Kern](greengrass-nucleus-component.md) benötigt. [Greengrass Nucleus Lite](greengrass-nucleus-lite-component.md) v2.5.0 und höher beinhaltet integrierte PKCS \$111 -Unterstützung und benötigt diese Komponente nicht. Weitere Informationen finden Sie unter [PKCS \$111 -Unterstützung](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/PKCS11_SUPPORT.md) im Nucleus Lite-Repository. AWS IoT Greengrass GitHub 

Um ein Greengrass-Core-Gerät bereitzustellen, das sein Zertifikat und seinen privaten Schlüssel in einem HSM speichert, müssen Sie diese Komponente bei der Installation der Core-Software als Provisioning-Plugin angeben. AWS IoT Greengrass Weitere Informationen finden Sie unter [Installieren Sie die AWS IoT Greengrass Core-Software mit manueller Ressourcenbereitstellung](manual-installation.md).

AWS IoT Greengrass stellt diese Komponente als JAR-Datei bereit, die Sie herunterladen können, um sie während der Installation als Provisioning-Plugin anzugeben. Sie können die neueste Version der JAR-Datei der Komponente unter der folgenden URL herunterladen: [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**
+ [Versionen](#pkcs11-provider-component-versions)
+ [Typ](#pkcs11-provider-component-type)
+ [Betriebssystem](#pkcs11-provider-component-os-support)
+ [Voraussetzungen](#pkcs11-provider-component-requirements)
+ [Abhängigkeiten](#pkcs11-provider-component-dependencies)
+ [Konfiguration](#pkcs11-provider-component-configuration)
+ [Lokale Protokolldatei](#pkcs11-provider-component-log-file)
+ [Änderungsprotokoll](#pkcs11-provider-component-changelog)

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

Diese Komponente hat die folgenden Versionen:
+ 2.0.x

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

<a name="public-component-type-plugin-para1"></a>Diese Komponente ist eine Plugin-Komponente (`aws.greengrass.plugin`). Der [Greengrass-Kern führt diese Komponente in derselben Java Virtual Machine (JVM) wie der Nucleus](greengrass-nucleus-component.md) aus. Der Nucleus wird neu gestartet, wenn Sie die Version dieser Komponente auf dem Core-Gerät ändern.

<a name="public-component-type-plugin-para2"></a>Diese Komponente verwendet dieselbe Protokolldatei wie der Greengrass-Kern. Weitere Informationen finden Sie unter [AWS IoT Greengrass Protokolle überwachen](monitor-logs.md).

<a name="public-component-type-more-information"></a>Weitere Informationen finden Sie unter [Komponententypen](develop-greengrass-components.md#component-types).

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

Diese Komponente kann nur auf Linux-Core-Geräten installiert werden.

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

Für diese Komponente gelten die folgenden Anforderungen:
+ <a name="hardware-security-module-requirements-key"></a>Ein Hardware-Sicherheitsmodul, das das [PKCS \$11 v1.5-Signaturschema](https://tools.ietf.org/html/rfc2313) und RSA-Schlüssel mit einer RSA-2048-Schlüsselgröße (oder größer) oder ECC-Schlüssel unterstützt.
**Anmerkung**  <a name="hardware-security-module-requirements-key-notes"></a>
Um ein Hardware-Sicherheitsmodul mit ECC-Schlüsseln zu verwenden, müssen Sie [Greengrass Nucleus](greengrass-nucleus-component.md) v2.5.6 oder höher verwenden.  
Um ein Hardware-Sicherheitsmodul und einen [Secret Manager](secret-manager-component.md) zu verwenden, müssen Sie ein Hardware-Sicherheitsmodul mit RSA-Schlüsseln verwenden.
+ <a name="hardware-security-module-requirements-pkcs11-provider-library"></a>Eine PKCS \$111 -Anbieterbibliothek, die die AWS IoT Greengrass Core-Software zur Laufzeit laden kann (mit libdl), um PKCS \$111 -Funktionen aufzurufen. Die PKCS \$111 -Anbieterbibliothek muss die folgenden PKCS \$111 -API-Operationen implementieren:
  + `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>Das Hardwaremodul muss nach Slot-Label auflösbar sein, wie in der PKCS\$111-Spezifikation definiert.
+ <a name="hardware-security-module-requirements-private-key-and-certificate"></a>Sie müssen den privaten Schlüssel und das Zertifikat im HSM im selben Steckplatz speichern, und sie müssen dieselbe Objektbezeichnung und Objekt-ID verwenden, wenn das HSM Objekt unterstützt. IDs
+ <a name="hardware-security-module-requirements-object-label"></a>Das Zertifikat und der private Schlüssel müssen durch Objektbezeichnungen auflösbar sein.
+ <a name="hardware-security-module-requirements-private-key-permissions"></a>Der private Schlüssel muss über die folgenden Berechtigungen verfügen:
  + `sign`
  + `decrypt`
+ <a name="hardware-security-module-requirements-secret-manager-permissions"></a>(Optional) Um die [Secret Manager-Komponente](secret-manager-component.md) verwenden zu können, müssen Sie Version 2.1.0 oder höher verwenden, und der private Schlüssel muss über die folgenden Berechtigungen verfügen:
  + `unwrap`
  + `wrap`
+ <a name="hardware-security-module-requirements-environment-variable"></a>(Optional) Wenn Sie die TPM2 Bibliothek verwenden und den Greengrass Core als Service ausführen, müssen Sie eine Umgebungsvariable mit dem Speicherort des PKCS \$111 -Speichers angeben. Das folgende Beispiel ist eine Systemd-Dienstdatei mit der erforderlichen Umgebungsvariablen:

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

## Abhängigkeiten
<a name="pkcs11-provider-component-dependencies"></a>

Wenn Sie eine Komponente bereitstellen, stellt sie AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereit. Das bedeutet, dass Sie die Anforderungen für die Komponente und all ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitstellen zu können. In diesem Abschnitt werden die Abhängigkeiten für die [veröffentlichten Versionen](#pkcs11-provider-component-changelog) dieser Komponente sowie die semantischen Versionseinschränkungen aufgeführt, die die Komponentenversionen für jede Abhängigkeit definieren. Sie können auch die Abhängigkeiten für jede Version der Komponente in der [AWS IoT Greengrass Konsole](https://console.aws.amazon.com//greengrass) anzeigen. Suchen Sie auf der Seite mit den Komponentendetails nach der Liste der **Abhängigkeiten**.

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

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.11 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit | 
| --- | --- | --- | 
| [Grüngraskern](greengrass-nucleus-component.md) | >=2.5.3 <2.17.0 | Weich | 

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

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.10 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit | 
| --- | --- | --- | 
| [Grüngraskern](greengrass-nucleus-component.md) | >=2.5.3 <2.16.0  | Weich | 

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

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.9 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit | 
| --- | --- | --- | 
| [Grüngraskern](greengrass-nucleus-component.md) | >=2.5.3 <2.15.0  | Weich | 

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

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.8 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit | 
| --- | --- | --- | 
| [Grüngraskern](greengrass-nucleus-component.md) | >=2.5.3 <2.14.0  | Weich | 

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

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.7 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit | 
| --- | --- | --- | 
| [Grüngraskern](greengrass-nucleus-component.md) | >=2.5.3 <2.13.0  | Weich | 

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

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.6 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit | 
| --- | --- | --- | 
| [Grüngraskern](greengrass-nucleus-component.md) | >=2.5.3 <2.12.0  | Weich | 

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

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.5 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit | 
| --- | --- | --- | 
| [Grüngraskern](greengrass-nucleus-component.md) | >=2.5.3 <2.11.0  | Weich | 

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

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.4 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit | 
| --- | --- | --- | 
| [Grüngraskern](greengrass-nucleus-component.md) | >=2.5.3 <2.10.0  | Weich | 

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

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.3 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit | 
| --- | --- | --- | 
| [Grüngraskern](greengrass-nucleus-component.md) | >=2,5,3 <2,9,0  | Weich | 

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

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.2 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit | 
| --- | --- | --- | 
| [Grüngraskern](greengrass-nucleus-component.md) | >=2,5,3 <2,8,0  | Weich | 

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

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.1 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit | 
| --- | --- | --- | 
| [Grüngraskern](greengrass-nucleus-component.md) |  >=2,5,3 <2,7,0  | Weich | 

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

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.0 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit | 
| --- | --- | --- | 
| [Grüngraskern](greengrass-nucleus-component.md) |  >=2,5,3 <2,6,0  | Weich | 

------

[Weitere Informationen zu Komponentenabhängigkeiten finden Sie in der Referenz zu den Komponentenrezepten.](component-recipe-reference.md#recipe-reference-component-dependencies)

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

Diese Komponente stellt die folgenden Konfigurationsparameter bereit, die Sie bei der Bereitstellung der Komponente anpassen können.<a name="pkcs11-provider-component-configuration-parameters"></a>

`name`  
Ein Name für die PKCS \$111 -Konfiguration.

`library`  
Der absolute Dateipfad zur Bibliothek der PKCS \$111 -Implementierung, die die AWS IoT Greengrass Core-Software mit libdl laden kann.

`slot`  
Die ID des Steckplatzes, der den privaten Schlüssel und das Gerätezertifikat enthält. Dieser Wert unterscheidet sich vom Steckplatzindex oder der Steckplatzbezeichnung.

`userPin`  
Die Benutzer-PIN, die für den Zugriff auf den Steckplatz verwendet werden soll.

**Example Beispiel: Aktualisierung der Zusammenführung von Konfigurationen**  

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

## Lokale Protokolldatei
<a name="pkcs11-provider-component-log-file"></a>

Diese Komponente verwendet dieselbe Protokolldatei wie die [Greengrass Nucleus-Komponente](greengrass-nucleus-component.md).

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

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

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

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

------

**Um die Protokolle dieser Komponente einzusehen**
+ Führen Sie den folgenden Befehl auf dem Kerngerät aus, um die Protokolldatei dieser Komponente in Echtzeit anzuzeigen. Ersetzen Sie `/greengrass/v2` oder *C:\$1greengrass\$1v2* durch den Pfad zum AWS IoT Greengrass Stammordner.

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

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

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

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

------

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

In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen der Komponente beschrieben.


|  **Version**  |  **Änderungen**  | 
| --- | --- | 
|  2.0.12  |  Aktualisiert die Komponentenversion für die Version 2.17.0 von Greengrass Nucleus.  | 
|  2.0.11  |  Die Version wurde für die Version 2.16.0 von Greengrass Nucleus aktualisiert.  | 
|  2.0.10  | Die Version wurde für die Version 2.15.0 von Greengrass Nucleus aktualisiert. | 
|  2.0.9  | Die Version wurde für die Version 2.14.0 von Greengrass Nucleus aktualisiert. | 
|  2.0.8  | Die Version wurde für die Version 2.13.0 von Greengrass Nucleus aktualisiert. | 
|  2.0.7  | Die Version wurde für die Version 2.12.0 von Greengrass Nucleus aktualisiert. | 
|  2.0.6  | Die Version wurde für die Version 2.11.0 von Greengrass Nucleus aktualisiert. | 
|  2.0.5  | Die Version wurde für die Version 2.10.0 von Greengrass Nucleus aktualisiert. | 
|  2.0.4  | Die Version wurde für die Version 2.9.0 von Greengrass Nucleus aktualisiert. | 
|  2.0.3  | Die Version wurde für die Version 2.8.0 von Greengrass Nucleus aktualisiert. | 
|  2.0.2  |  Die Version wurde für die Version 2.7.0 von Greengrass Nucleus aktualisiert.  | 
|  2.0.1  |  Die Version wurde für die Version 2.6.0 von Greengrass Nucleus aktualisiert.  | 
|  2.0.0  |  Erste Version  | 