

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.

# Sicherheit in AWS IoT Greengrass
<a name="security"></a>

Cloud-Sicherheit AWS hat höchste Priorität. Als AWS Kunde profitieren Sie von einer Rechenzentrums- und Netzwerkarchitektur, die darauf ausgelegt sind, die Anforderungen der sicherheitssensibelsten Unternehmen zu erfüllen.

Sicherheit ist eine gemeinsame Verantwortung von Ihnen AWS und Ihnen. Das [Modell der geteilten Verantwortung](https://aws.amazon.com/compliance/shared-responsibility-model/) beschreibt dies als Sicherheit *der* Cloud und Sicherheit *in* der Cloud:
+ **Sicherheit der Cloud** — AWS ist verantwortlich für den Schutz der Infrastruktur, auf der AWS Dienste in der ausgeführt AWS Cloud werden. AWS bietet Ihnen auch Dienste, die Sie sicher nutzen können. Externe Prüfer testen und verifizieren regelmäßig die Wirksamkeit unserer Sicherheitsmaßnahmen im Rahmen der [AWS](https://aws.amazon.com/compliance/programs/) . Weitere Informationen zu den Compliance-Programmen, die für gelten AWS IoT Greengrass, finden Sie unter [AWS Services im Umfang nach Compliance-Programmen AWS](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Sicherheit in der Cloud** – Ihr Verantwortungsumfang wird durch den AWS -Dienst bestimmt, den Sie verwenden. Sie sind auch für andere Faktoren verantwortlich, etwa für die Vertraulichkeit Ihrer Daten, die Anforderungen Ihres Unternehmens und die geltenden Gesetze und Vorschriften.

Bei der Nutzung AWS IoT Greengrass sind Sie auch für die Sicherung Ihrer Geräte, Ihrer lokalen Netzwerkverbindung und Ihrer privaten Schlüssel verantwortlich.

Diese Dokumentation hilft Ihnen zu verstehen, wie Sie das Modell der gemeinsamen Verantwortung bei der Verwendung anwenden können AWS IoT Greengrass. In den folgenden Themen erfahren Sie, wie Sie die Konfiguration vornehmen AWS IoT Greengrass , um Ihre Sicherheits- und Compliance-Ziele zu erreichen. Sie erfahren auch, wie Sie andere AWS Dienste nutzen können, die Sie bei der Überwachung und Sicherung Ihrer AWS IoT Greengrass Ressourcen unterstützen. 

**Topics**
+ [Datenschutz in AWS IoT Greengrass](data-protection.md)
+ [Geräteauthentifizierung und Autorisierung für AWS IoT Greengrass](device-auth.md)
+ [Identitäts- und Zugriffsmanagement für AWS IoT Greengrass](security-iam.md)
+ [Geräteverkehr über einen Proxy oder eine Firewall zulassen](allow-device-traffic.md)
+ [Konformitätsvalidierung für AWS IoT Greengrass](compliance-validation.md)
+ [FIPS-Endpunkte](FIPS.md)
+ [Resilienz in AWS IoT Greengrass](disaster-recovery-resiliency.md)
+ [Infrastruktursicherheit in AWS IoT Greengrass](infrastructure-security.md)
+ [Konfiguration und Schwachstellenanalyse in AWS IoT Greengrass](vulnerability-analysis-and-management.md)
+ [Codeintegrität in AWS IoT Greengrass V2](code-integrity.md)
+ [AWS IoT Greengrass und Schnittstellen-VPC-Endpunkte ()AWS PrivateLink](vpc-interface-endpoints.md)
+ [Bewährte Sicherheitsmethoden für AWS IoT Greengrass](security-best-practices.md)
+ [AWS IoT Greengrass V2 Als Nicht-Root-Benutzer ausführen](run-greengrass-non-root.md)

# Datenschutz in AWS IoT Greengrass
<a name="data-protection"></a>

Das [Modell der AWS gemeinsamen Verantwortung](https://aws.amazon.com/compliance/shared-responsibility-model/) und geteilter Verantwortung gilt für den Datenschutz in AWS IoT Greengrass. Wie in diesem Modell beschrieben, AWS ist verantwortlich für den Schutz der globalen Infrastruktur, auf der alle Systeme laufen AWS Cloud. Sie sind dafür verantwortlich, die Kontrolle über Ihre in dieser Infrastruktur gehosteten Inhalte zu behalten. Sie sind auch für die Sicherheitskonfiguration und die Verwaltungsaufgaben für die von Ihnen verwendeten AWS-Services verantwortlich. Weitere Informationen zum Datenschutz finden Sie unter [Häufig gestellte Fragen zum Datenschutz](https://aws.amazon.com/compliance/data-privacy-faq/). Informationen zum Datenschutz in Europa finden Sie im Blog-Beitrag [AWS -Modell der geteilten Verantwortung und in der DSGVO](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) im *AWS -Sicherheitsblog*.

Aus Datenschutzgründen empfehlen wir, dass Sie AWS-Konto Anmeldeinformationen schützen und einzelne Benutzer mit AWS IAM Identity Center oder AWS Identity and Access Management (IAM) einrichten. So erhält jeder Benutzer nur die Berechtigungen, die zum Durchführen seiner Aufgaben erforderlich sind. Außerdem empfehlen wir, die Daten mit folgenden Methoden schützen:
+ Verwenden Sie für jedes Konto die Multi-Faktor-Authentifizierung (MFA).
+ Wird verwendet SSL/TLS , um mit AWS Ressourcen zu kommunizieren. Wir benötigen TLS 1.2 und empfehlen TLS 1.3.
+ Richten Sie die API und die Protokollierung von Benutzeraktivitäten mit ein AWS CloudTrail. Informationen zur Verwendung von CloudTrail Pfaden zur Erfassung von AWS Aktivitäten finden Sie unter [Arbeiten mit CloudTrail Pfaden](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) im *AWS CloudTrail Benutzerhandbuch*.
+ Verwenden Sie AWS Verschlüsselungslösungen zusammen mit allen darin enthaltenen Standardsicherheitskontrollen AWS-Services.
+ Verwenden Sie erweiterte verwaltete Sicherheitsservices wie Amazon Macie, die dabei helfen, in Amazon S3 gespeicherte persönliche Daten zu erkennen und zu schützen.
+ Wenn Sie für den Zugriff AWS über eine Befehlszeilenschnittstelle oder eine API FIPS 140-3-validierte kryptografische Module benötigen, verwenden Sie einen FIPS-Endpunkt. Weitere Informationen über verfügbare FIPS-Endpunkte finden Sie unter [Federal Information Processing Standard (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Wir empfehlen dringend, in Freitextfeldern, z. B. im Feld **Name**, keine vertraulichen oder sensiblen Informationen wie die E-Mail-Adressen Ihrer Kunden einzugeben. Dies gilt auch, wenn Sie mit der Konsole, der AWS IoT Greengrass API oder auf andere AWS-Services Weise arbeiten oder diese verwenden. AWS CLI AWS SDKs Alle Daten, die Sie in Tags oder Freitextfelder eingeben, die für Namen verwendet werden, können für Abrechnungs- oder Diagnoseprotokolle verwendet werden. Wenn Sie eine URL für einen externen Server bereitstellen, empfehlen wir dringend, keine Anmeldeinformationen zur Validierung Ihrer Anforderung an den betreffenden Server in die URL einzuschließen.

Weitere Hinweise zum Schutz vertraulicher Informationen in AWS IoT Greengrass finden Sie unter[Keine Protokollierung sensibler Informationen](security-best-practices.md#protect-pii).

Weitere Informationen zum Datenschutz enthält der Blog-Beitrag [AWS Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) im *AWS -Sicherheitsblog*.

**Topics**
+ [Datenverschlüsselung](data-encryption.md)
+ [Integration von Hardware-Sicherheit](hardware-security.md)

# Datenverschlüsselung
<a name="data-encryption"></a>

AWS IoT Greengrass verwendet Verschlüsselung, um Daten während der Übertragung (über das Internet oder ein lokales Netzwerk) und im Ruhezustand (gespeichert im AWS Cloud) zu schützen.

Geräte in einer AWS IoT Greengrass Umgebung sammeln häufig Daten, die zur weiteren Verarbeitung an AWS Dienste gesendet werden. Weitere Informationen zur Datenverschlüsselung bei anderen AWS Diensten finden Sie in der Sicherheitsdokumentation für diesen Dienst.

**Topics**
+ [Verschlüsselung während der Übertragung](encryption-in-transit.md)
+ [Verschlüsselung im Ruhezustand](encryption-at-rest.md)
+ [Schlüsselverwaltung für das Greengrass Core-Gerät](key-management.md)

# Verschlüsselung während der Übertragung
<a name="encryption-in-transit"></a>

AWS IoT Greengrass hat zwei Kommunikationsarten, wenn Daten übertragen werden:
+ [Daten in Übertragung über das Internet](#data-in-transit-internet). Die Kommunikation zwischen einem Greengrass-Kern und AWS IoT Greengrass über das Internet ist verschlüsselt.
+ [Daten auf dem Core-Gerät](#data-in-transit-locally). Die Kommunikation zwischen Komponenten auf dem Greengrass-Core-Gerät ist nicht verschlüsselt.

## Daten in Übertragung über das Internet
<a name="data-in-transit-internet"></a>

AWS IoT Greengrass verwendet Transport Layer Security (TLS), um die gesamte Kommunikation über das Internet zu verschlüsseln. Alle an die AWS Cloud gesendeten Daten werden über eine TLS-Verbindung unter Verwendung der Protokolle MQTT oder HTTPS gesendet, sodass sie standardmäßig sicher sind. AWS IoT Greengrass verwendet das AWS IoT Transportsicherheitsmodell. Weitere Informationen finden Sie unter [Transportsicherheit](https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html) im *AWS IoT Core -Entwicklerhandbuch*.

## Daten auf dem Core-Gerät
<a name="data-in-transit-locally"></a>

AWS IoT Greengrass verschlüsselt keine lokal auf dem Greengrass-Core-Gerät ausgetauschten Daten, da die Daten das Gerät nicht verlassen. Dazu gehört die Kommunikation zwischen benutzerdefinierten Komponenten, dem AWS IoT Geräte-SDK und öffentlichen Komponenten wie dem Stream-Manager.

# Verschlüsselung im Ruhezustand
<a name="encryption-at-rest"></a>

AWS IoT Greengrass speichert Ihre Daten:
+ [Daten im Ruhezustand im AWS Cloud](#data-at-rest-cloud). Diese Daten sind verschlüsselt.
+ [Daten im Ruhezustand auf dem Greengrass-Kern](#data-at-rest-device). Diese Daten sind nicht verschlüsselt (außer lokalen Kopien Ihrer Geheimnisse).

## Daten im Ruhezustand im AWS Cloud
<a name="data-at-rest-cloud"></a>

AWS IoT Greengrass verschlüsselt Kundendaten, die in der AWS Cloud gespeichert sind. Diese Daten werden durch AWS KMS Schlüssel geschützt, die von AWS IoT Greengrass verwaltet werden.

## Daten im Ruhezustand auf dem Greengrass-Kern
<a name="data-at-rest-device"></a>

AWS IoT Greengrass stützt sich auf Unix-Dateiberechtigungen und vollständige Festplattenverschlüsselung (falls aktiviert), um Daten zu schützen, die sich auf dem Kern befinden. Sie sind für den Schutz des Dateisystems und des Geräts verantwortlich.

Verschlüsselt AWS IoT Greengrass jedoch lokale Kopien Ihrer abgerufenen Geheimnisse. AWS Secrets Manager Weitere Informationen finden Sie in der [Secret Manager-Komponente](secret-manager-component.md).

# Schlüsselverwaltung für das Greengrass Core-Gerät
<a name="key-management"></a>

Es liegt in der Verantwortung des Kunden, die sichere Speicherung kryptografischer (öffentlicher und privater) Schlüssel auf dem Greengrass-Core-Gerät zu gewährleisten. AWS IoT Greengrass verwendet öffentliche und private Schlüssel für das folgende Szenario:
+ Der IoT-Clientschlüssel wird zusammen mit dem IoT-Zertifikat verwendet, um den Transport Layer Security (TLS) Handshake zu authentifizieren, wenn ein Greengrass-Kern eine Verbindung zu AWS IoT Core herstellt. Weitere Informationen finden Sie unter [Geräteauthentifizierung und Autorisierung für AWS IoT Greengrass](device-auth.md).
**Anmerkung**  
Der Schlüssel und das Zertifikat werden auch als der private Core-Schlüssel und das Core-Gerätezertifikat bezeichnet.

Ein Greengrass-Core-Gerät unterstützt die Speicherung privater Schlüssel mithilfe von Dateisystemberechtigungen oder einem [Hardware-Sicherheitsmodul](hardware-security.md). Wenn Sie auf dem Dateisystem basierende private Schlüssel verwenden, sind Sie für die sichere Speicherung auf dem Kerngerät verantwortlich.

# Integration von Hardware-Sicherheit
<a name="hardware-security"></a>

**Anmerkung**  
Für [Greengrass Nucleus](greengrass-nucleus-component.md) erfordert diese Funktion v2.5.3 oder höher. AWS IoT Greengrass unterstützt diese Funktion derzeit nicht auf Windows Core-Geräten.   
[Greengrass Nucleus Lite](greengrass-nucleus-lite-component.md) v2.5.0 und höher bieten integrierte PKCS \$111 -Unterstützung und benötigen die PKCS \$111 -Provider-Komponente nicht. Sie müssen einen OpenSSL-Anbieter für Ihr PKCS \$111 -Gerät konfiguriert haben. Weitere Informationen finden Sie unter [PKCS \$111 -Unterstützung](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/PKCS11_SUPPORT.md) im AWS IoT Greengrass Nucleus Lite-Repository. GitHub 

Sie können die AWS IoT Greengrass Core-Software so konfigurieren, dass sie ein Hardware-Sicherheitsmodul (HSM) über die [PKCS](https://en.wikipedia.org/wiki/PKCS_11) \$111 -Schnittstelle verwendet. Mit dieser Funktion können Sie den privaten Schlüssel und das Zertifikat des Geräts sicher speichern, sodass sie nicht offengelegt oder in der Software dupliziert werden. Sie können den privaten Schlüssel und das Zertifikat auf einem Hardwaremodul wie einem HSM oder einem Trusted Platform Module (TPM) speichern.

Die AWS IoT Greengrass Core-Software verwendet einen privaten Schlüssel und ein X.509-Zertifikat, um Verbindungen zu den AND-Diensten zu authentifizieren. AWS IoT AWS IoT Greengrass Die [Secret Manager-Komponente](secret-manager-component.md) verwendet diesen privaten Schlüssel, um die Secrets, die Sie auf einem Greengrass-Core-Gerät bereitstellen, sicher zu verschlüsseln und zu entschlüsseln. Wenn Sie ein Kerngerät für die Verwendung eines HSM konfigurieren, verwenden diese Komponenten den privaten Schlüssel und das Zertifikat, die Sie im HSM speichern.

Die [Moquette MQTT-Broker-Komponente](mqtt-broker-moquette-component.md) speichert auch einen privaten Schlüssel für ihr lokales MQTT-Serverzertifikat. Diese Komponente speichert den privaten Schlüssel im Dateisystem des Geräts im Arbeitsordner der Komponente. Unterstützt derzeit AWS IoT Greengrass nicht das Speichern dieses privaten Schlüssels oder Zertifikats in einem HSM.

**Tipp**  
Suchen Sie im [AWS Partner-Gerätekatalog](https://devices.amazonaws.com/search?kw=%22HSI%22&page=1) nach Geräten, die diese Funktion unterstützen.

**Topics**
+ [Voraussetzungen](#hardware-security-requirements)
+ [Bewährte Methoden zur Hardwaresicherheit](#hardware-security-best-practices)
+ [Installieren Sie die [Greengrass Nucleus-Software](greengrass-nucleus-component.md) mit Hardwaresicherheit](#install-with-hardware-security)
+ [Hardwaresicherheit auf einem vorhandenen [Greengrass Nucleus Core-Gerät](greengrass-nucleus-component.md) konfigurieren](#enable-hardware-security)
+ [Verwenden Sie Hardware ohne PKCS \$111 -Unterstützung](#hardware-without-pkcs11)
+ [Weitere Informationen finden Sie auch unter](#hardware-security-see-also)

## Voraussetzungen
<a name="hardware-security-requirements"></a>

Sie müssen die folgenden Anforderungen erfüllen, um ein HSM auf einem Greengrass-Core-Gerät verwenden zu können:
+ [Greengrass Nucleus](greengrass-nucleus-component.md) v2.5.3 oder höher oder [Greengrass Nucleus Lite](greengrass-nucleus-lite-component.md) v2.5.0 oder höher, installiert auf dem Kerngerät. Wenn Sie [Greengrass Nucleus Lite](greengrass-nucleus-lite-component.md) verwenden, finden Sie Anweisungen zur Einrichtung unter [PKCS \$111 -Support](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/PKCS11_SUPPORT.md) im AWS IoT Greengrass Nucleus GitHub Lite-Repository.
+ Die [PKCS \$111 -Provider-Komponente](pkcs11-provider-component.md) ist auf dem Core-Gerät installiert. Sie können diese Komponente herunterladen und installieren, wenn Sie die AWS IoT Greengrass Core-Software auf einem Core-Gerät installieren.
+ <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 aufgelöst werden können.
+ <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`

## Bewährte Methoden zur Hardwaresicherheit
<a name="hardware-security-best-practices"></a>

Beachten Sie bei der Konfiguration der Hardwaresicherheit auf Greengrass-Core-Geräten die folgenden bewährten Methoden.
+ Generieren Sie private Schlüssel direkt auf dem HSM mit Hilfe des internen Hardware-Zufallszahlengenerators. Dieser Ansatz ist sicherer als der Import eines privaten Schlüssels, den Sie an anderer Stelle generieren, da der private Schlüssel im HSM verbleibt.
+ Konfigurieren Sie private Schlüssel so, dass sie unveränderlich sind, und verbieten Sie den Export.
+ Verwenden Sie das vom HSM-Hardwareanbieter empfohlene Bereitstellungstool, um mithilfe des hardwaregeschützten privaten Schlüssels eine Certificate Signing Request (CSR) zu generieren, und verwenden Sie dann die Konsole oder API, um ein Client-Zertifikat zu generieren. AWS IoT 

**Anmerkung**  
Die bewährte Sicherheitsmethode, Schlüssel zu rotieren, gilt nicht, wenn Sie private Schlüssel auf einem HSM generieren.

## Installieren Sie die [Greengrass Nucleus-Software](greengrass-nucleus-component.md) mit Hardwaresicherheit
<a name="install-with-hardware-security"></a>

Wenn Sie die AWS IoT Greengrass Core-Software installieren, können Sie sie so konfigurieren, dass sie einen privaten Schlüssel verwendet, den Sie in einem HSM generieren. Dieser Ansatz folgt den [bewährten Sicherheitsverfahren](#hardware-security-best-practices) zur Generierung des privaten Schlüssels im HSM, sodass der private Schlüssel im HSM verbleibt.

Gehen Sie wie folgt vor, um die AWS IoT Greengrass Core-Software mit Hardwaresicherheit zu installieren:

1. Generieren Sie einen privaten Schlüssel im HSM.

1. Erstellen Sie aus dem privaten Schlüssel eine Zertifikatsignieranforderung (CSR).

1. Erstellen Sie ein Zertifikat aus der CSR. Sie können ein Zertifikat erstellen, das von AWS IoT oder von einer anderen Stammzertifizierungsstelle (CA) signiert wurde. Weitere Informationen zur Verwendung einer anderen [Stammzertifizierungsstelle finden Sie unter Erstellen eigener Client-Zertifikate](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html) im *AWS IoT Core Entwicklerhandbuch*.

1. Laden Sie das AWS IoT Zertifikat herunter und importieren Sie es in das HSM.

1. Installieren Sie die AWS IoT Greengrass Core-Software aus einer Konfigurationsdatei, die die Verwendung der PKCS \$111 -Anbieterkomponente sowie des privaten Schlüssels und des Zertifikats im HSM spezifiziert.

Sie können eine der folgenden Installationsoptionen wählen, um die AWS IoT Greengrass Core-Software mit Hardwaresicherheit zu installieren:
+ **Manuelle Installation**

  Wählen Sie diese Option, um die erforderlichen AWS Ressourcen manuell zu erstellen und die Hardwaresicherheit zu konfigurieren. Weitere Informationen finden Sie unter [Installieren Sie die AWS IoT Greengrass Core-Software mit manueller Ressourcenbereitstellung](manual-installation.md).
+ **Installation mit benutzerdefinierter Bereitstellung**

  Wählen Sie diese Option, um eine benutzerdefinierte Java-Anwendung zu entwickeln, die automatisch die erforderlichen AWS Ressourcen erstellt und die Hardwaresicherheit konfiguriert. Weitere Informationen finden Sie unter [Installieren Sie die AWS IoT Greengrass Core-Software mit benutzerdefinierter Ressourcenbereitstellung](custom-provisioning.md).

Der [Greengrass-Nucleus](greengrass-nucleus-component.md) unterstützt nicht die Installation der AWS IoT Greengrass Core-Software mit Hardwaresicherheit, wenn Sie die [Installation mit automatischer Ressourcenbereitstellung oder [AWS IoT Flottenbereitstellung](fleet-provisioning.md)](quick-installation.md) durchführen. [Greengrass Nucleus Lite](greengrass-nucleus-lite-component.md) v2.5.0 und höher unterstützen Hardwaresicherheit mit Flottenbereitstellung.

## Hardwaresicherheit auf einem vorhandenen [Greengrass Nucleus Core-Gerät](greengrass-nucleus-component.md) konfigurieren
<a name="enable-hardware-security"></a>

Sie können den privaten Schlüssel und das Zertifikat eines Core-Geräts in ein HSM importieren, um die Hardwaresicherheit zu konfigurieren.

**Überlegungen**  
Sie benötigen Root-Zugriff auf das Dateisystem des Kerngeräts.
Bei diesem Verfahren fahren Sie die AWS IoT Greengrass Core-Software herunter, sodass das Kerngerät während der Konfiguration der Hardwaresicherheit offline und nicht verfügbar ist.

Gehen Sie wie folgt vor, um die Hardwaresicherheit auf einem vorhandenen Kerngerät zu konfigurieren:

1. Initialisieren Sie das HSM.

1. Stellen Sie die [PKCS \$111 -Anbieterkomponente](pkcs11-provider-component.md) auf dem Kerngerät bereit.

1. Stoppen Sie die AWS IoT Greengrass Core-Software.

1. Importieren Sie den privaten Schlüssel und das Zertifikat des Core-Geräts in das HSM.

1. Aktualisieren Sie die Konfigurationsdatei der AWS IoT Greengrass Core-Software, um den privaten Schlüssel und das Zertifikat im HSM zu verwenden.

1. Starten Sie die AWS IoT Greengrass Core-Software.

### Schritt 1: Initialisieren Sie das Hardware-Sicherheitsmodul
<a name="enable-hardware-security-initialize-hsm"></a>

Führen Sie den folgenden Schritt aus, um das HSM auf Ihrem Kerngerät zu initialisieren.

**Um das Hardware-Sicherheitsmodul zu initialisieren**
+ Initialisieren Sie ein PKCS \$111 -Token im HSM und speichern Sie die Steckplatz-ID und die Benutzer-PIN für das Token. In der Dokumentation zu Ihrem HSM erfahren Sie, wie Sie ein Token initialisieren. Sie verwenden die Steckplatz-ID und die Benutzer-PIN später, wenn Sie die PKCS \$111 -Anbieterkomponente bereitstellen und konfigurieren.

### Schritt 2: Stellen Sie die PKCS \$111 -Anbieterkomponente bereit
<a name="enable-hardware-security-deploy-pkcs11-provider"></a>

Gehen Sie wie folgt vor, um die [PKCS \$111 -Anbieterkomponente](pkcs11-provider-component.md) bereitzustellen und zu konfigurieren. Sie können die Komponente auf einem oder mehreren Kerngeräten bereitstellen.

#### So stellen Sie die PKCS \$111 -Anbieterkomponente (Konsole) bereit
<a name="deploy-pkcs11-provider-component-console"></a>

1. Wählen Sie im Navigationsmenü der [AWS IoT Greengrass Konsole](https://console.aws.amazon.com/greengrass) die Option **Components** aus.

1. Wählen Sie auf der Seite **Komponenten** die Registerkarte **Öffentliche Komponenten** und wählen Sie dann **aws.greengrass.crypto.Pkcs11Provider**.

1. Wählen Sie auf der **aws.greengrass.crypto.Pkcs11Provider** Seite **Bereitstellen** aus.

1. <a name="deploy-component-choose-deployment-step"></a>Wählen **Sie unter Zur Bereitstellung hinzufügen** eine vorhandene Bereitstellung aus, die Sie überarbeiten möchten, oder erstellen Sie eine neue Bereitstellung und klicken Sie dann auf **Weiter**.

1. <a name="deploy-component-choose-target-step"></a>Wenn Sie eine neue Bereitstellung erstellen möchten, wählen Sie das Ziel-Core-Gerät oder die Dinggruppe für die Bereitstellung aus. Wählen Sie auf der Seite „**Ziel angeben**“ unter **Bereitstellungsziel** ein Kerngerät oder eine Dinggruppe aus, und klicken Sie dann auf **Weiter**.

1. **Wählen Sie auf der Seite „Komponenten auswählen**“ unter **Öffentliche Komponenten** die Option **aws.greengrass.crypto.Pkcs11Provider**aus und klicken Sie dann auf **Weiter**.

1. Wählen Sie auf der Seite **Komponenten konfigurieren** die Option aus **aws.greengrass.crypto.Pkcs11Provider**, und gehen Sie dann wie folgt vor:

   1. Wählen Sie **Komponente konfigurieren** aus.

   1. Geben **Sie im aws.greengrass.crypto.Pkcs11Provider Modal konfigurieren** unter **Konfigurationsupdate** unter **Konfiguration zum Zusammenführen** das folgende Konfigurationsupdate ein. Aktualisieren Sie die folgenden Konfigurationsparameter mit Werten für die Core-Zielgeräte. Geben Sie die Steckplatz-ID und die Benutzer-PIN an, mit der Sie das PKCS \$111 -Token zuvor initialisiert haben. Sie importieren den privaten Schlüssel und das Zertifikat später in diesen Steckplatz im HSM.<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.

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

   1. Wählen Sie **Bestätigen**, um das Modal zu schließen, und klicken Sie dann auf **Weiter**.

1. <a name="deploy-component-configure-advanced-settings-step"></a>Behalten Sie auf der Seite **Erweiterte Einstellungen konfigurieren** die Standardkonfigurationseinstellungen bei und wählen Sie **Weiter**.

1. <a name="deploy-component-review-and-deploy-step"></a>Wählen Sie auf der Seite **Review (Prüfen)** die Option **Deploy (Bereitstellen)** aus.

   Es kann bis zu einer Minute dauern, bis die Bereitstellung abgeschlossen ist.

#### Um die PKCS \$111 -Anbieterkomponente ()AWS CLI bereitzustellen
<a name="deploy-pkcs11-provider-component-cli"></a>

Um die PKCS \$111 -Anbieterkomponente bereitzustellen, erstellen Sie ein Bereitstellungsdokument, das das `components` Objekt enthält`aws.greengrass.crypto.Pkcs11Provider`, und geben Sie das Konfigurationsupdate für die Komponente an. Folgen Sie den Anweisungen unter[Erstellen von Bereitstellungen](create-deployments.md), um ein neues Deployment zu erstellen oder ein bestehendes Deployment zu überarbeiten.

Im folgenden Beispieldokument zur teilweisen Bereitstellung wird angegeben, dass die PKCS \$111 -Anbieterkomponente bereitgestellt und konfiguriert werden soll. Aktualisieren Sie die folgenden Konfigurationsparameter mit Werten für die Core-Zielgeräte. Speichern Sie die Steckplatz-ID und die Benutzer-PIN, um sie später zu verwenden, wenn Sie den privaten Schlüssel und das Zertifikat in das HSM importieren.<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.

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

```
{
  ...,
  "components": {
    ...,
    "aws.greengrass.crypto.Pkcs11Provider": {
      "componentVersion": "2.0.0",
      "configurationUpdate": {
        "merge": "{\"name\":\"softhsm_pkcs11\",\"library\":\"/usr/lib/softhsm/libsofthsm2.so\",\"slot\":1,\"userPin\":\"1234\"}"
      }
    }
  }
}
```

Es kann einige Minuten dauern, bis die Bereitstellung abgeschlossen ist. Sie können den AWS IoT Greengrass Dienst verwenden, um den Status der Bereitstellung zu überprüfen. Sie können anhand der AWS IoT Greengrass Core-Softwareprotokolle überprüfen, ob die PKCS \$111 -Anbieterkomponente erfolgreich bereitgestellt wurde. Weitere Informationen finden Sie hier:
+ [Überprüfen Sie den Bereitstellungsstatus](check-deployment-status.md)
+ [AWS IoT Greengrass Protokolle überwachen](monitor-logs.md)

Wenn die Bereitstellung fehlschlägt, können Sie Fehler bei der Bereitstellung auf jedem Kerngerät beheben. Weitere Informationen finden Sie unter [Problembehebung AWS IoT Greengrass V2](troubleshooting.md).

### Schritt 3: Aktualisieren Sie die Konfiguration auf dem Kerngerät
<a name="enable-hardware-security-configure-core-device"></a>

Die AWS IoT Greengrass Core-Software verwendet eine Konfigurationsdatei, die festlegt, wie das Gerät funktioniert. Diese Konfigurationsdatei enthält den Speicherort des privaten Schlüssels und des Zertifikats, mit denen das Gerät eine Verbindung herstellt AWS Cloud. Gehen Sie wie folgt vor, um den privaten Schlüssel und das Zertifikat des Kerngeräts in das HSM zu importieren und die Konfigurationsdatei für die Verwendung des HSM zu aktualisieren.

**Um die Konfiguration auf dem Kerngerät zu aktualisieren, um Hardware-Sicherheit zu verwenden**

1. Stoppen Sie die AWS IoT Greengrass Core-Software. Wenn Sie [die AWS IoT Greengrass Core-Software als Systemdienst mit systemd konfiguriert](configure-greengrass-core-v2.md#configure-system-service) haben, können Sie den folgenden Befehl ausführen, um die Software zu beenden.

   ```
   sudo systemctl stop greengrass.service
   ```

1. Suchen Sie den privaten Schlüssel und die Zertifikatsdateien des Kerngeräts.
   + Wenn Sie die AWS IoT Greengrass Core-Software mit [automatischer Bereitstellung](quick-installation.md) oder [Flottenbereitstellung](fleet-provisioning.md) installiert haben, befindet sich der private Schlüssel unter `/greengrass/v2/privKey.key` und das Zertifikat unter. `/greengrass/v2/thingCert.crt`
   + Wenn Sie die AWS IoT Greengrass Core-Software mit [manueller Bereitstellung](manual-installation.md) installiert haben, ist der private Schlüssel `/greengrass/v2/private.pem.key` standardmäßig und das Zertifikat standardmäßig vorhanden. `/greengrass/v2/device.pem.crt`

   Sie können auch die `system.certificateFilePath` Eigenschaften `system.privateKeyPath` und überprüfen`/greengrass/v2/config/effectiveConfig.yaml`, um den Speicherort dieser Dateien zu ermitteln.

1. Importieren Sie den privaten Schlüssel und das Zertifikat in das HSM. In der Dokumentation zu Ihrem HSM erfahren Sie, wie Sie private Schlüssel und Zertifikate in das HSM importieren. Importieren Sie den privaten Schlüssel und das Zertifikat mit der Steckplatz-ID und der Benutzer-PIN, mit der Sie das PKCS \$111 -Token zuvor initialisiert haben. Sie müssen dieselbe Objektbezeichnung und Objekt-ID für den privaten Schlüssel und das Zertifikat verwenden. Speichern Sie die Objektbezeichnung, die Sie beim Import der einzelnen Dateien angeben. Sie verwenden dieses Label später, wenn Sie die AWS IoT Greengrass Core-Softwarekonfiguration aktualisieren, um den privaten Schlüssel und das Zertifikat im HSM zu verwenden.

1. Aktualisieren Sie die AWS IoT Greengrass Core-Konfiguration, um den privaten Schlüssel und das Zertifikat im HSM zu verwenden. Um die Konfiguration zu aktualisieren, ändern Sie die AWS IoT Greengrass Core-Konfigurationsdatei und führen die AWS IoT Greengrass Core-Software mit der aktualisierten Konfigurationsdatei aus, um die neue Konfiguration anzuwenden.

   Gehen Sie wie folgt vor:

   1. Erstellen Sie eine Sicherungskopie der AWS IoT Greengrass Core-Konfigurationsdatei. Sie können dieses Backup verwenden, um das Kerngerät wiederherzustellen, falls Sie bei der Konfiguration der Hardwaresicherheit auf Probleme stoßen.

      ```
      sudo cp /greengrass/v2/config/effectiveConfig.yaml ~/ggc-config-backup.yaml
      ```

   1. Öffnen Sie die AWS IoT Greengrass Core-Konfigurationsdatei in einem Texteditor. Sie können beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu bearbeiten. `/greengrass/v2`Ersetzen Sie durch den Pfad zum Greengrass-Stammordner.

      ```
      sudo nano /greengrass/v2/config/effectiveConfig.yaml
      ```

   1. Ersetzen Sie den Wert von `system.privateKeyPath` durch den PKCS \$111 -URI für den privaten Schlüssel im HSM. *iotdevicekey*Ersetzen Sie ihn durch die Objektbezeichnung, in die Sie zuvor den privaten Schlüssel und das Zertifikat importiert haben.

      ```
      pkcs11:object=iotdevicekey;type=private
      ```

   1. Ersetzen Sie den Wert von `system.certificateFilePath` durch den PKCS \$111 -URI für das Zertifikat im HSM. *iotdevicekey*Ersetzen Sie ihn durch die Objektbezeichnung, in die Sie zuvor den privaten Schlüssel und das Zertifikat importiert haben.

      ```
      pkcs11:object=iotdevicekey;type=cert
      ```

   Nachdem Sie diese Schritte abgeschlossen haben, sollte die `system` Eigenschaft in der AWS IoT Greengrass Core-Konfigurationsdatei dem folgenden Beispiel ähneln.

   ```
   system:
     certificateFilePath: "pkcs11:object=iotdevicekey;type=cert"
     privateKeyPath: "pkcs11:object=iotdevicekey;type=private"
     rootCaPath: "/greengrass/v2/rootCA.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   ```

1. Wenden Sie die Konfiguration in der aktualisierten `effectiveConfig.yaml` Datei an. Führen Sie den `Greengrass.jar` Befehl mit dem `--init-config` Parameter aus, in dem die Konfiguration angewendet werden soll`effectiveConfig.yaml`. `/greengrass/v2`Ersetzen Sie durch den Pfad zum Greengrass-Stammordner.

   ```
   sudo java -Droot="/greengrass/v2" \
     -jar /greengrass/v2/alts/current/distro/lib/Greengrass.jar \
     --start false \
     --init-config /greengrass/v2/config/effectiveConfig.yaml
   ```

1. Starten Sie die AWS IoT Greengrass Core-Software. Wenn Sie [die AWS IoT Greengrass Core-Software als Systemdienst mit systemd konfiguriert](configure-greengrass-core-v2.md#configure-system-service) haben, können Sie den folgenden Befehl ausführen, um die Software zu starten.

   ```
   sudo systemctl start greengrass.service
   ```

   Weitere Informationen finden Sie unter [Führen Sie die AWS IoT Greengrass Core-Software aus](run-greengrass-core-v2.md).

1. Überprüfen Sie die AWS IoT Greengrass Core-Softwareprotokolle, um sicherzustellen, dass die Software gestartet wird und eine Verbindung zum AWS Cloud herstellt. Die AWS IoT Greengrass Core-Software verwendet den privaten Schlüssel und das Zertifikat, um eine Verbindung zu den AWS IoT und AWS IoT Greengrass -Diensten herzustellen.

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

   Die folgenden Protokollmeldungen auf Infoebene weisen darauf hin, dass die AWS IoT Greengrass Core-Software erfolgreich eine Verbindung zu den AWS IoT AND-Diensten herstellt. AWS IoT Greengrass 

   ```
   2021-12-06T22:47:53.702Z [INFO] (Thread-3) com.aws.greengrass.mqttclient.AwsIotMqttClient: Successfully connected to AWS IoT Core. {clientId=MyGreengrassCore5, sessionPresent=false}
   ```

1. (Optional) Nachdem Sie überprüft haben, ob die AWS IoT Greengrass Core-Software mit dem privaten Schlüssel und dem Zertifikat im HSM funktioniert, löschen Sie den privaten Schlüssel und die Zertifikatsdateien aus dem Dateisystem des Geräts. Führen Sie den folgenden Befehl aus und ersetzen Sie die Dateipfade durch die Pfade zu den privaten Schlüssel- und Zertifikatsdateien.

   ```
   sudo rm /greengrass/v2/privKey.key
   sudo rm /greengrass/v2/thingCert.crt
   ```

## Verwenden Sie Hardware ohne PKCS \$111 -Unterstützung
<a name="hardware-without-pkcs11"></a>

Die PKCS\$111-Bibliothek wird typischerweise vom Hardwarehersteller bereitgestellt oder ist Open Source. Bei standardkonformer Hardware (wie TPM1 .2) könnte es beispielsweise möglich sein, vorhandene Open-Source-Software zu verwenden. Wenn Ihre Hardware jedoch nicht über eine entsprechende PKCS \$111 -Bibliotheksimplementierung verfügt oder wenn Sie einen benutzerdefinierten PKCS \$111 -Anbieter schreiben möchten, wenden Sie sich mit Fragen zur Integration an Ihren Amazon Web Services Enterprise Support-Mitarbeiter.

## Weitere Informationen finden Sie auch unter
<a name="hardware-security-see-also"></a>
+ [PKCS \$111 — Nutzungshandbuch für die kryptografische Token-Schnittstelle Version 2.4.0](http://docs.oasis-open.org/pkcs11/pkcs11-ug/v2.40/pkcs11-ug-v2.40.html)
+ [RFC 7512](https://tools.ietf.org/html/rfc7512)
+ [PKCS \$11: RSA Encryption Version 1.5](https://tools.ietf.org/html/rfc2313)

# Geräteauthentifizierung und Autorisierung für AWS IoT Greengrass
<a name="device-auth"></a>

Geräte in AWS IoT Greengrass Umgebungen verwenden X.509-Zertifikate für die Authentifizierung und AWS IoT Richtlinien für die Autorisierung. Zertifikate und Richtlinien ermöglichen es Geräten, sich sicher miteinander oder mit AWS IoT Core und AWS IoT Greengrass zu verbinden.

X.509-Zertifikate sind digitale Zertifikate, die den X.509-Standard für eine Public-Key-Infrastruktur nutzen, um einen öffentlichen Schlüssel mit der Identität in einem Zertifikat zu verknüpfen. X.509-Zertifikate werden von vertrauenswürdigen Zertifizierungsstellen (Certificate Authority, CA) herausgegeben. Die CA nutzen ein oder mehrere spezielle Zertifikate, die als CA-Zertifikate bezeichnet werden, zum Herausgeben der X.509-Zertifikate. Nur die Zertifizierungsstelle hat Zugriff auf CA-Zertifikate.

AWS IoT Richtlinien definieren den Satz von Vorgängen, die für AWS IoT Geräte zulässig sind. Insbesondere erlauben und verweigern sie den Zugriff auf und Operationen auf AWS IoT Core der AWS IoT Greengrass Datenebene, wie das Veröffentlichen von MQTT-Nachrichten und das Abrufen von Geräteschatten.

Alle Geräte benötigen einen Eintrag in der AWS IoT Core Registrierung und ein aktiviertes X.509-Zertifikat mit einer angehängten Richtlinie. AWS IoT Geräte fallen in zwei Kategorien:
+ **Greengrass-Kerngeräte**

  Greengrass-Core-Geräte verwenden Zertifikate und AWS IoT Richtlinien, um eine Verbindung zu AWS IoT Core und AWS IoT Greengrass herzustellen. Die Zertifikate und Richtlinien ermöglichen auch AWS IoT Greengrass die Bereitstellung von Komponenten und Konfigurationen auf Kerngeräten.
+ **Client-Geräte**

  MQTT-Client-Geräte verwenden Zertifikate und Richtlinien, um sich mit dem AWS IoT Greengrass Dienst zu AWS IoT Core verbinden. Auf diese Weise können Client-Geräte die AWS IoT Greengrass Cloud-Erkennung verwenden, um ein Greengrass-Core-Gerät zu finden und eine Verbindung zu diesem herzustellen. Ein Client-Gerät verwendet dasselbe Zertifikat, um eine Verbindung zum AWS IoT Core Cloud-Dienst und zu den Kerngeräten herzustellen. Client-Geräte verwenden außerdem Erkennungsinformationen für die gegenseitige Authentifizierung mit dem Kerngerät. Weitere Informationen finden Sie unter [Interagieren Sie mit lokalen IoT-Geräten](interact-with-local-iot-devices.md).

## X.509-Zertifikate
<a name="x509-certificates"></a>

Die Kommunikation zwischen Kerngeräten und Client-Geräten sowie zwischen Geräten AWS IoT Core und/oder AWS IoT Greengrass muss authentifiziert werden. Diese gegenseitige Authentifizierung basiert auf registrierten X.509-Gerätezertifikaten und kryptografischen Schlüsseln.

In einer AWS IoT Greengrass Umgebung verwenden Geräte Zertifikate mit öffentlichen und privaten Schlüsseln für die folgenden Transport Layer Security (TLS) -Verbindungen:
+ Die AWS IoT Client-Komponente auf dem Greengrass-Core-Gerät, die eine Verbindung zum AWS IoT Core und AWS IoT Greengrass über das Internet herstellt.
+ Client-Geräte, die AWS IoT Greengrass über das Internet eine Verbindung herstellen, um Kerngeräte zu erkennen.
+ Die MQTT-Broker-Komponente auf dem Greengrass-Core, die über das lokale Netzwerk eine Verbindung zu Greengrass-Geräten in der Gruppe herstellt.

AWS IoT Greengrass Kerngeräte speichern Zertifikate im Greengrass-Stammordner.

### CA-Zertifikate
<a name="ca-certificates"></a>

Greengrass-Core-Geräte und Client-Geräte laden ein Root-CA-Zertifikat herunter, das für die Authentifizierung bei den AWS IoT Core AWS IoT Greengrass AND-Diensten verwendet wird. Es wird empfohlen, ein Amazon Trust Services (ATS) CA-Stammzertifikat wie [Amazon Root CA 1](https://www.amazontrust.com/repository/AmazonRootCA1.pem) zu verwenden. Weitere Informationen finden Sie unter [CA-Zertifikate für die Serverauthentifizierung](https://docs.aws.amazon.com/iot/latest/developerguide/server-authentication.html#server-authentication-certs) im *AWS IoT Core -Entwicklerhandbuch*.

Client-Geräte laden auch ein CA-Zertifikat für Greengrass-Core-Geräte herunter. Sie verwenden dieses Zertifikat, um das MQTT-Serverzertifikat auf dem Kerngerät während der gegenseitigen Authentifizierung zu validieren.

### Zertifikatsrotation auf dem lokalen MQTT-Broker
<a name="mqtt-certificate-expiration"></a>

Wenn Sie die [Unterstützung von Client-Geräten aktivieren](interact-with-local-iot-devices.md), generieren Greengrass-Core-Geräte ein lokales MQTT-Serverzertifikat, das Client-Geräte für die gegenseitige Authentifizierung verwenden. Dieses Zertifikat ist mit dem CA-Zertifikat des Kerngeräts signiert, das das Kerngerät in der AWS IoT Greengrass Cloud speichert. Client-Geräte rufen das CA-Zertifikat für das Kerngerät ab, wenn sie das Kerngerät erkennen. Sie verwenden das CA-Zertifikat des Kerngeräts, um das MQTT-Serverzertifikat des Kerngeräts zu verifizieren, wenn sie eine Verbindung zum Kerngerät herstellen. Das CA-Zertifikat für das Kerngerät läuft nach 5 Jahren ab.

Das MQTT-Serverzertifikat läuft standardmäßig alle 7 Tage ab, und Sie können diese Dauer auf 2 bis 10 Tage konfigurieren. Dieser begrenzte Zeitraum basiert auf bewährten Sicherheitsmethoden. Diese Rotation trägt dazu bei, die Gefahr zu verringern, dass ein Angreifer das MQTT-Serverzertifikat und den privaten Schlüssel stiehlt, um sich als das Greengrass-Core-Gerät auszugeben.

Das Greengrass-Core-Gerät rotiert das MQTT-Serverzertifikat 24 Stunden vor dessen Ablauf. Das Greengrass-Core-Gerät generiert ein neues Zertifikat und startet den lokalen MQTT-Broker neu. In diesem Fall werden alle Client-Geräte, die mit dem Greengrass-Core-Gerät verbunden sind, getrennt. Client-Geräte können sich nach kurzer Zeit wieder mit dem Greengrass Core-Gerät verbinden.

## AWS IoT Richtlinien für den Betrieb auf Datenebene
<a name="iot-policies"></a>

Verwenden Sie AWS IoT Richtlinien, um den Zugriff auf die AWS IoT Greengrass Datenebenen AWS IoT Core und zu autorisieren. Die AWS IoT Core Datenebene bietet Operationen für Geräte, Benutzer und Anwendungen. Zu diesen Vorgängen gehört die Möglichkeit, eine Verbindung zu Themen herzustellen AWS IoT Core und diese zu abonnieren. Die AWS IoT Greengrass Datenebene ermöglicht den Betrieb von Greengrass-Geräten. Weitere Informationen finden Sie unter [AWS IoT Greengrass V2 politische Aktionen](#greengrass-policy-actions). Zu diesen Vorgängen gehört die Fähigkeit, Komponentenabhängigkeiten aufzulösen und Artefakte öffentlicher Komponenten herunterzuladen.

Eine AWS IoT Richtlinie ist ein JSON-Dokument, das einer [IAM-Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html#policies-grammar-json) ähnelt. Sie enthält eine oder mehrere Richtlinienanweisungen, die die folgenden Eigenschaften angeben:
+ `Effect`. Der Zugriffsmodus, der `Allow` oder sein kann`Deny`.
+ `Action`. Die Liste der Aktionen, die von der Richtlinie zugelassen oder verweigert werden.
+ `Resource`. Die Liste der Ressourcen, für die die Aktion zulässig oder verweigert ist.

AWS IoT Richtlinien unterstützen `*` als Platzhalterzeichen und behandeln MQTT-Platzhalterzeichen (`+`und`#`) als wörtliche Zeichenketten. *Weitere Informationen zum Platzhalter finden Sie unter [Verwenden von `*` Platzhaltern in Ressourcen im Benutzerhandbuch](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html#reference_policies_elements_resource_wildcards). ARNs AWS Identity and Access Management *

Weitere Informationen finden Sie unter [AWS IoT -Richtlinien](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policies.html) und [AWS IoT -Richtlinienaktionen](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) im *AWS IoT Core -Entwicklerhandbuch*.

**Wichtig**  
<a name="thing-policy-variable-not-supported"></a>[Ding-Richtlinienvariablen](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) werden in AWS IoT Richtlinien für Kerngeräte oder Greengrass-Datenebenenoperationen nicht unterstützt. Stattdessen können Sie einen Platzhalter verwenden, der für mehrere Geräte mit ähnlichen Namen steht. Sie können beispielsweise angeben, ob `MyGreengrassDevice*` ein Treffer gefunden werden soll `MyGreengrassDevice1``MyGreengrassDevice2`, usw. 

**Anmerkung**  
AWS IoT Core ermöglicht es Ihnen, AWS IoT Dinggruppen Richtlinien zuzuweisen, um Berechtigungen für Gerätegruppen zu definieren. Dinggruppenrichtlinien ermöglichen keinen Zugriff auf AWS IoT Greengrass Datenebenenoperationen. Um einer Sache den Zugriff auf einen Vorgang auf der AWS IoT Greengrass Datenebene zu gewähren, fügen Sie die Berechtigung zu einer AWS IoT Richtlinie hinzu, die Sie dem Zertifikat der Sache hinzufügen.

### AWS IoT Greengrass V2 politische Aktionen
<a name="greengrass-policy-actions"></a>

AWS IoT Greengrass V2 definiert die folgenden Richtlinienaktionen, die Greengrass-Kerngeräte und Client-Geräte in AWS IoT Richtlinien verwenden können. Um eine Ressource für eine Richtlinienaktion anzugeben, verwenden Sie den Amazon-Ressourcennamen (ARN) der Ressource.Hauptaktionen auf dem Gerät

`greengrass:GetComponentVersionArtifact`  <a name="greengrass-get-component-version-artifact-action"></a>
Erteilt die Erlaubnis, eine vorsignierte URL zum Herunterladen eines öffentlichen Komponentenartefakts oder eines Lambda-Komponentenartefakts abzurufen.  
Diese Berechtigung wird ausgewertet, wenn ein Kerngerät eine Bereitstellung erhält, die eine öffentliche Komponente oder ein Lambda mit Artefakten spezifiziert. Wenn das Kerngerät bereits über das Artefakt verfügt, lädt es das Artefakt nicht erneut herunter.  
Art der Ressource: `componentVersion`  
ARN-Format der Ressource: `arn:aws:greengrass:region:account-id:components:component-name:versions:component-version`

`greengrass:ResolveComponentCandidates`  <a name="greengrass-resolve-component-candidates-action"></a>
Erteilt die Berechtigung, eine Liste von Komponenten zu identifizieren, die die Komponenten-, Versions- und Plattformanforderungen für eine Bereitstellung erfüllen. Wenn die Anforderungen miteinander in Konflikt stehen oder keine Komponenten vorhanden sind, die die Anforderungen erfüllen, gibt dieser Vorgang einen Fehler zurück und die Bereitstellung auf dem Gerät schlägt fehl.  
Diese Berechtigung wird ausgewertet, wenn ein Kerngerät eine Bereitstellung erhält, die Komponenten spezifiziert.  
Ressourcentyp: Keiner  
ARN-Format der Ressource: `*`

`greengrass:GetDeploymentConfiguration`  <a name="greengrass-get-deployment-configuration-action"></a>
Erteilt die Erlaubnis, eine vorsignierte URL zum Herunterladen eines umfangreichen Bereitstellungsdokuments abzurufen.  
Diese Berechtigung wird ausgewertet, wenn ein Kerngerät eine Bereitstellung empfängt, die ein Bereitstellungsdokument mit einer Größe von mehr als 7 KB (wenn die Bereitstellung auf ein Objekt abzielt) oder 31 KB (wenn die Bereitstellung auf eine Dinggruppe abzielt) angibt. Das Bereitstellungsdokument umfasst Komponentenkonfigurationen, Bereitstellungsrichtlinien und Bereitstellungsmetadaten. Weitere Informationen finden Sie unter [AWS IoT Greengrass Komponenten auf Geräten bereitstellen](manage-deployments.md).  
Diese Funktion ist für Version 2.3.0 und höher der [Greengrass](greengrass-nucleus-component.md) Nucleus-Komponente verfügbar.  
Ressourcentyp: Keiner  
ARN-Format der Ressource: `*`

`greengrass:ListThingGroupsForCoreDevice`  <a name="greengrass-list-thing-groups-for-core-device-action"></a>
Erteilt die Berechtigung, die Dinggruppenhierarchie eines Kerngeräts abzurufen.  
Diese Berechtigung wird überprüft, wenn ein Kerngerät eine Bereitstellung von erhält AWS IoT Greengrass. Das Kerngerät verwendet diese Aktion, um festzustellen, ob es seit der letzten Bereitstellung aus einer Dinggruppe entfernt wurde. Wenn das Kerngerät aus einer Dinggruppe entfernt wurde und diese Dinggruppe das Ziel einer Bereitstellung auf dem Kerngerät ist, entfernt das Kerngerät die durch diese Bereitstellung installierten Komponenten.  
Diese Funktion wird von Version 2.5.0 und höher der [Greengrass](greengrass-nucleus-component.md) Nucleus-Komponente verwendet.  
Ressourcentyp: `thing` (Kerngerät)  
ARN-Format der Ressource: `arn:aws:iot:region:account-id:thing/core-device-thing-name`

`greengrass:VerifyClientDeviceIdentity`  <a name="greengrass-verify-client-device-identity-action"></a>
Erteilt die Berechtigung zur Überprüfung der Identität eines Client-Geräts, das eine Verbindung zu einem Core-Gerät herstellt.  
Diese Berechtigung wird ausgewertet, wenn ein Kerngerät die [Authentifizierungskomponente für das Client-Gerät](client-device-auth-component.md) ausführt und eine MQTT-Verbindung von einem Client-Gerät empfängt. Das Client-Gerät präsentiert sein AWS IoT Gerätezertifikat. Anschließend sendet das Kerngerät das Gerätezertifikat an den AWS IoT Greengrass Cloud-Dienst, um die Identität des Client-Geräts zu überprüfen. Weitere Informationen finden Sie unter [Interagieren Sie mit lokalen IoT-Geräten](interact-with-local-iot-devices.md).  
Ressourcentyp: Keiner  
ARN-Format der Ressource: `*`

`greengrass:VerifyClientDeviceIoTCertificateAssociation`  <a name="greengrass-verify-client-device-iot-certificate-association-action"></a>
Erteilt die Berechtigung, zu überprüfen, ob ein Client-Gerät mit einem AWS IoT Zertifikat verknüpft ist.  
Diese Berechtigung wird ausgewertet, wenn ein Kerngerät die [Authentifizierungskomponente für das Clientgerät](client-device-auth-component.md) ausführt und ein Client-Gerät autorisiert, eine Verbindung über MQTT herzustellen. Weitere Informationen finden Sie unter [Interagieren Sie mit lokalen IoT-Geräten](interact-with-local-iot-devices.md).  
Damit ein Core-Gerät diesen Vorgang nutzen kann, muss die [Greengrass-Servicerolle](greengrass-service-role.md) mit Ihrer verknüpft sein AWS-Konto und die `iot:DescribeCertificate` entsprechende Genehmigung erteilt werden.
Ressourcentyp: `thing` (Client-Gerät)  
ARN-Format der Ressource: `arn:aws:iot:region:account-id:thing/client-device-thing-name`

`greengrass:PutCertificateAuthorities`  <a name="greengrass-put-certificate-authorities-action"></a>
Erteilt die Berechtigung zum Hochladen von Zertifikaten der Zertifizierungsstelle (CA), die Client-Geräte herunterladen können, um das Kerngerät zu verifizieren.  
Diese Berechtigung wird ausgewertet, wenn ein Kerngerät die [Authentifizierungskomponente für Clientgeräte](client-device-auth-component.md) installiert und ausführt. Diese Komponente erstellt eine lokale Zertifizierungsstelle und verwendet diesen Vorgang, um ihre CA-Zertifikate hochzuladen. Client-Geräte laden diese CA-Zertifikate herunter, wenn sie den [Discover-Vorgang](#greengrass-discover-action) verwenden, um Kerngeräte zu finden, mit denen sie eine Verbindung herstellen können. Wenn Client-Geräte eine Verbindung zu einem MQTT-Broker auf einem Kerngerät herstellen, verwenden sie diese CA-Zertifikate, um die Identität des Kerngeräts zu überprüfen. Weitere Informationen finden Sie unter [Interagieren Sie mit lokalen IoT-Geräten](interact-with-local-iot-devices.md).  
Ressourcentyp: Keiner  
ARN-Format: `*`

`greengrass:GetConnectivityInfo`  <a name="greengrass-get-connectivity-info-action"></a>
Erteilt die Berechtigung zum Abrufen von Konnektivitätsinformationen für ein Kerngerät. Diese Informationen beschreiben, wie Client-Geräte eine Verbindung zum Kerngerät herstellen können.  
Diese Berechtigung wird ausgewertet, wenn ein Kerngerät die [Authentifizierungskomponente für das Clientgerät](client-device-auth-component.md) installiert und ausführt. Diese Komponente verwendet die Konnektivitätsinformationen, um gültige CA-Zertifikate zu generieren, die während des [PutCertificateAuthories](#greengrass-put-certificate-authorities-action)Vorgangs in den AWS IoT Greengrass Cloud-Dienst hochgeladen werden. Client-Geräte verwenden diese CA-Zertifikate, um die Identität des Kerngeräts zu überprüfen. Weitere Informationen finden Sie unter [Interagieren Sie mit lokalen IoT-Geräten](interact-with-local-iot-devices.md).  
Sie können diesen Vorgang auch auf der AWS IoT Greengrass Steuerungsebene verwenden, um Konnektivitätsinformationen für ein Kerngerät anzuzeigen. Weitere Informationen finden Sie unter [GetConnectivityInfo](https://docs.aws.amazon.com/greengrass/v1/apireference/getconnectivityinfo-get.html) in der *AWS IoT Greengrass V1 -API-Referenz*.  
Ressourcentyp: `thing` (Kerngerät)  
ARN-Format der Ressource: `arn:aws:iot:region:account-id:thing/core-device-thing-name`

`greengrass:UpdateConnectivityInfo`  <a name="greengrass-update-connectivity-info-action"></a>
Erteilt die Erlaubnis, die Konnektivitätsinformationen für ein Kerngerät zu aktualisieren. Diese Informationen beschreiben, wie Client-Geräte eine Verbindung zum Kerngerät herstellen können.  
Diese Berechtigung wird ausgewertet, wenn auf einem Core-Gerät die [IP-Detektorkomponente](ip-detector-component.md) ausgeführt wird. Diese Komponente identifiziert die Informationen, die Client-Geräte benötigen, um eine Verbindung zum Kerngerät im lokalen Netzwerk herzustellen. Anschließend verwendet diese Komponente diesen Vorgang, um die Konnektivitätsinformationen in den AWS IoT Greengrass Cloud-Dienst hochzuladen, sodass Client-Geräte diese Informationen mit dem [Discover-Vorgang](#greengrass-discover-action) abrufen können. Weitere Informationen finden Sie unter [Interagieren Sie mit lokalen IoT-Geräten](interact-with-local-iot-devices.md).  
Sie können diesen Vorgang auch auf der AWS IoT Greengrass Steuerungsebene verwenden, um die Konnektivitätsinformationen für ein Kerngerät manuell zu aktualisieren. Weitere Informationen finden Sie unter [UpdateConnectivityInfo](https://docs.aws.amazon.com/greengrass/v1/apireference/updateconnectivityinfo-put.html) in der *AWS IoT Greengrass V1 -API-Referenz*.  
Ressourcentyp: `thing` (Kerngerät)  
ARN-Format der Ressource: `arn:aws:iot:region:account-id:thing/core-device-thing-name`Aktionen auf Client-Geräten

`greengrass:Discover`  <a name="greengrass-discover-action"></a>
Erteilt die Berechtigung, Verbindungsinformationen für Kerngeräte zu ermitteln, mit denen ein Clientgerät eine Verbindung herstellen kann. Diese Informationen beschreiben, wie das Clientgerät eine Verbindung zu den Kerngeräten herstellen kann. Ein Clientgerät kann mithilfe des [BatchAssociateClientDeviceWithCoreDevice](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html)Vorgangs nur die Kerngeräte erkennen, denen Sie es zugeordnet haben. Weitere Informationen finden Sie unter [Interagieren Sie mit lokalen IoT-Geräten](interact-with-local-iot-devices.md).  
Ressourcentyp: `thing` (Client-Gerät)  
ARN-Format der Ressource: `arn:aws:iot:region:account-id:thing/client-device-thing-name`

## Aktualisieren Sie die AWS IoT Richtlinie eines Kerngeräts
<a name="update-core-device-iot-policy"></a>

Sie können die AWS IoT Greengrass und AWS IoT -Konsolen oder die AWS IoT API verwenden, um die AWS IoT Richtlinien eines Kerngeräts einzusehen und zu aktualisieren.

**Anmerkung**  
Wenn Sie das [AWS IoT Greengrass Core-Softwareinstallationsprogramm zur Bereitstellung von Ressourcen](quick-installation.md) verwendet haben, verfügt Ihr Kerngerät über eine AWS IoT Richtlinie, die den Zugriff auf alle AWS IoT Greengrass Aktionen ermöglicht (`greengrass:*`). Sie können diese Schritte befolgen, um den Zugriff nur auf die Aktionen zu beschränken, die ein Kerngerät verwendet.

### Überprüfen und aktualisieren Sie die AWS IoT Richtlinie eines Kerngeräts (Konsole)
<a name="update-core-device-iot-policy-console"></a>

1. <a name="update-iot-policy-console-open-greengrass-console"></a>Wählen Sie im Navigationsmenü der [AWS IoT Greengrass Konsole](https://console.aws.amazon.com/greengrass) die Option **Core-Geräte** aus.

1. <a name="update-iot-policy-console-choose-core-device"></a>Wählen Sie auf der Seite **Core-Geräte** das zu aktualisierende Core-Gerät aus.

1. <a name="update-iot-policy-console-choose-core-device-thing"></a>Wählen Sie auf der Seite mit den Details zum Kerngerät den Link zum **Ding** des Kerngeräts aus. Dieser Link öffnet die Seite mit den Ding-Details in der AWS IoT Konsole.

1. <a name="update-iot-policy-console-choose-thing-security"></a>Wählen Sie auf der Seite mit den Ding-Details die Option **Zertifikate** aus.

1. <a name="update-iot-policy-console-choose-thing-certificate"></a>Wählen Sie auf der Registerkarte **Zertifikate** das aktive Zertifikat der Sache aus.

1. <a name="update-iot-policy-console-choose-certificate-policies"></a>Wählen Sie auf der Seite mit den Zertifikatsdetails **die Option Richtlinien** aus.

1. <a name="update-iot-policy-console-choose-policy"></a>Wählen Sie auf der Registerkarte **Richtlinien** die AWS IoT Richtlinie aus, die Sie überprüfen und aktualisieren möchten. Sie können jeder Richtlinie, die mit dem aktiven Zertifikat des Kerngeräts verknüpft ist, die erforderlichen Berechtigungen hinzufügen.
**Anmerkung**  <a name="quick-installation-iot-policies-note"></a>
Wenn Sie das [AWS IoT Greengrass Core-Softwareinstallationsprogramm zur Bereitstellung von Ressourcen](quick-installation.md) verwendet haben, gibt es zwei AWS IoT Richtlinien. Wir empfehlen, dass Sie die genannte Richtlinie wählen **GreengrassV2IoTThingPolicy**, falls sie existiert. Kerngeräte, die Sie mit dem Schnellinstallationsprogramm erstellen, verwenden standardmäßig diesen Richtliniennamen. Wenn Sie dieser Richtlinie Berechtigungen hinzufügen, gewähren Sie diese Berechtigungen auch anderen Kerngeräten, die diese Richtlinie verwenden.

1. <a name="update-iot-policy-console-edit-policy"></a>Wählen Sie in der Richtlinienübersicht die Option **Aktive Version bearbeiten** aus.

1. Überprüfen Sie die Richtlinie und fügen Sie nach Bedarf Berechtigungen hinzu, entfernen oder bearbeiten Sie sie.

1. <a name="update-iot-policy-console-set-as-active-version"></a>Um eine neue Richtlinienversion als aktive Version festzulegen, wählen Sie unter **Status der Richtlinienversion** die Option **Die bearbeitete Version als aktive Version für diese Richtlinie festlegen** aus.

1. <a name="update-iot-policy-console-save-policy"></a>Wählen Sie **Als neue Version speichern** aus.

### Überprüfen und aktualisieren Sie die AWS IoT Richtlinie eines Kerngeräts (AWS CLI)
<a name="update-core-device-iot-policy-cli"></a>

1. <a name="update-iot-policy-cli-list-thing-principals"></a>Führe die Principals für das Gerät auf, für das das Kerngerät zuständig ist AWS IoT . Bei den Ding-Prinzipalen kann es sich um X.509-Gerätezertifikate oder andere Identifikationen handeln. Führen Sie den folgenden Befehl aus und *MyGreengrassCore* ersetzen Sie ihn durch den Namen des Kerngeräts.

   ```
   aws iot list-thing-principals --thing-name MyGreengrassCore
   ```

   Der Vorgang gibt eine Antwort zurück, in der die Ding-Prinzipale des Kerngeräts aufgeführt sind.

   ```
   {
       "principals": [
           "arn:aws:iot:us-west-2:123456789012:cert/certificateId"
       ]
   }
   ```

1. <a name="update-iot-policy-cli-identify-active-certificate"></a>Identifizieren Sie das aktive Zertifikat des Kerngeräts. Führen Sie den folgenden Befehl aus und *certificateId* ersetzen Sie ihn durch die ID jedes Zertifikats aus dem vorherigen Schritt, bis Sie das aktive Zertifikat gefunden haben. Die Zertifikat-ID ist die hexadezimale Zeichenfolge am Ende des Zertifikat-ARN. Das `--query` Argument gibt an, dass nur der Status des Zertifikats ausgegeben werden soll.

   ```
   aws iot describe-certificate --certificate-id certificateId --query 'certificateDescription.status'
   ```

   Die Operation gibt den Status des Zertifikats als Zeichenfolge zurück. Wenn das Zertifikat beispielsweise aktiv ist, wird bei diesem Vorgang eine Ausgabe ausgegeben`"ACTIVE"`.

1. <a name="update-iot-policy-cli-list-certificate-policies"></a>Listet die AWS IoT Richtlinien auf, die an das Zertifikat angehängt sind. Führen Sie den folgenden Befehl aus und ersetzen Sie den Zertifikat-ARN durch den ARN des Zertifikats.

   ```
   aws iot list-principal-policies --principal arn:aws:iot:us-west-2:123456789012:cert/certificateId
   ```

   Der Vorgang gibt eine Antwort zurück, in der die AWS IoT Richtlinien aufgeführt sind, die an das Zertifikat angehängt sind.

   ```
   {
       "policies": [
           {
               "policyName": "GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias",
               "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias"
           },
           {
               "policyName": "GreengrassV2IoTThingPolicy",
               "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy"
           }
       ]
   }
   ```

1. <a name="update-iot-policy-cli-choose-policy"></a>Wählen Sie die Richtlinie aus, die Sie anzeigen und aktualisieren möchten.
**Anmerkung**  <a name="quick-installation-iot-policies-note"></a>
Wenn Sie das [AWS IoT Greengrass Core-Softwareinstallationsprogramm zur Bereitstellung von Ressourcen](quick-installation.md) verwendet haben, gelten zwei AWS IoT Richtlinien. Wir empfehlen, dass Sie die genannte Richtlinie wählen **GreengrassV2IoTThingPolicy**, falls sie existiert. Kerngeräte, die Sie mit dem Schnellinstallationsprogramm erstellen, verwenden standardmäßig diesen Richtliniennamen. Wenn Sie dieser Richtlinie Berechtigungen hinzufügen, gewähren Sie diese Berechtigungen auch anderen Kerngeräten, die diese Richtlinie verwenden.

1. <a name="update-iot-policy-cli-get-policy-document"></a>Holen Sie sich das Dokument der Richtlinie. Führen Sie den folgenden Befehl aus und *GreengrassV2IoTThingPolicy* ersetzen Sie ihn durch den Namen der Richtlinie.

   ```
   aws iot get-policy --policy-name GreengrassV2IoTThingPolicy
   ```

   Der Vorgang gibt eine Antwort zurück, die das Dokument der Richtlinie und andere Informationen zur Richtlinie enthält. Das Richtliniendokument ist ein JSON-Objekt, das als Zeichenfolge serialisiert ist. 

   ```
   {
       "policyName": "GreengrassV2IoTThingPolicy",
       "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy",
       "policyDocument": "{\
     \\"Version\\": \\"2012-10-17		 	 	 \\",\
     \\"Statement\\": [\
       {\
         \\"Effect\\": \\"Allow\\",\
         \\"Action\\": [\
                   \\"iot:Connect\\",\
                   \\"iot:Publish\\",\
                   \\"iot:Subscribe\\",\
                   \\"iot:Receive\\",\
                   \\"greengrass:*\\"\
   ],\
         \\"Resource\\": \\"*\\"\
       }\
     ]\
   }",
       "defaultVersionId": "1",
       "creationDate": "2021-02-05T16:03:14.098000-08:00",
       "lastModifiedDate": "2021-02-05T16:03:14.098000-08:00",
       "generationId": "f19144b798534f52c619d44f771a354f1b957dfa2b850625d9f1d0fde530e75f"
   }
   ```

1. <a name="update-iot-policy-cli-create-policy-document-file"></a>Verwenden Sie einen Online-Konverter oder ein anderes Tool, um die Zeichenfolge des Richtliniendokuments in ein JSON-Objekt zu konvertieren, und speichern Sie sie dann in einer Datei mit dem Namen`iot-policy.json`.

   Wenn Sie beispielsweise das [jq-Tool](https://stedolan.github.io/jq/) installiert haben, können Sie den folgenden Befehl ausführen, um das Richtliniendokument abzurufen, es in ein JSON-Objekt zu konvertieren und das Richtliniendokument als JSON-Objekt zu speichern.

   ```
   aws iot get-policy --policy-name GreengrassV2IoTThingPolicy --query 'policyDocument' | jq fromjson >> iot-policy.json
   ```

1. Überprüfen Sie das Richtliniendokument und fügen Sie nach Bedarf Berechtigungen hinzu, entfernen oder bearbeiten Sie sie.

   <a name="nano-command-intro-existing-file"></a>Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU nano zu öffnen.

   ```
   nano iot-policy.json
   ```

   Wenn Sie fertig sind, ähnelt das Richtliniendokument möglicherweise der [AWS IoT Minimalrichtlinie für Kerngeräte](#greengrass-core-minimal-iot-policy).

1. <a name="update-iot-policy-cli-create-policy-version"></a>Speichern Sie die Änderungen als neue Version der Richtlinie. Führen Sie den folgenden Befehl aus und *GreengrassV2IoTThingPolicy* ersetzen Sie ihn durch den Namen der Richtlinie.

   ```
   aws iot create-policy-version --policy-name GreengrassV2IoTThingPolicy --policy-document file://iot-policy.json --set-as-default
   ```

   Der Vorgang gibt eine Antwort zurück, die dem folgenden Beispiel ähnelt, wenn er erfolgreich ist.

   ```
   {
       "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy",
       "policyDocument": "{\
     \\"Version\\": \\"2012-10-17		 	 	 \\",\
     \\"Statement\\": [\
       {\
         \\"Effect\\": \\"Allow\\",\
         \\"Action\\": [\
   \\t\\t\\"iot:Connect\\",\
   \\t\\t\\"iot:Publish\\",\
   \\t\\t\\"iot:Subscribe\\",\
   \\t\\t\\"iot:Receive\\",\
   \\t\\t\\"greengrass:*\\"\
         ],\
         \\"Resource\\": \\"*\\"\
       }\
     ]\
   }",
       "policyVersionId": "2",
       "isDefaultVersion": true
   }
   ```

## Minimale AWS IoT Richtlinie für AWS IoT Greengrass V2 Kerngeräte
<a name="greengrass-core-minimal-iot-policy"></a>

**Wichtig**  
Spätere Versionen der [Greengrass Nucleus-Komponente](greengrass-nucleus-component.md) erfordern zusätzliche Berechtigungen für die AWS IoT Minimalrichtlinie. Möglicherweise müssen Sie die [AWS IoT Richtlinien Ihrer Kerngeräte aktualisieren, um](#update-core-device-iot-policy) zusätzliche Berechtigungen zu gewähren.  
Core-Geräte, auf denen Greengrass Nucleus v2.5.0 und höher ausgeführt wird, verwenden die `greengrass:ListThingGroupsForCoreDevice` Berechtigung, Komponenten zu deinstallieren, wenn Sie ein Kerngerät aus einer Dinggruppe entfernen.
Core-Geräte, auf denen Greengrass Nucleus v2.3.0 und höher ausgeführt wird, verwenden die `greengrass:GetDeploymentConfiguration` Berechtigung, umfangreiche Bereitstellungskonfigurationsdokumente zu unterstützen.

Die folgende Beispielrichtlinie enthält den Mindestsatz von Aktionen, die erforderlich sind, um eine grundlegende Greengrass-Funktionalität für Ihr Core-Gerät zu unterstützen.
+ Die `Connect` Richtlinie enthält den `*` Platzhalter hinter dem Namen des Kerngeräts (z. B.). `core-device-thing-name*` Das Kerngerät verwendet dasselbe Gerätezertifikat, um mehrere gleichzeitige Abonnements abzuschließen AWS IoT Core, aber die Client-ID in einer Verbindung entspricht möglicherweise nicht exakt dem Namen des Kerngeräts. Nach den ersten 50 Abonnements verwendet `core-device-thing-name#number` das Kerngerät die Client-ID, wobei die Anzahl für alle weiteren 50 Abonnements `number` erhöht wird. Wenn ein Kerngerät mit dem Namen beispielsweise 150 gleichzeitige Abonnements `MyCoreDevice` erstellt, verwendet es den folgenden Client: IDs
  + Abonnements 1 bis 50: `MyCoreDevice`
  + Abonnements 51 bis 100: `MyCoreDevice#2`
  + Abonnements 101 bis 150: `MyCoreDevice#3`

  Der Platzhalter ermöglicht es dem Core-Gerät, eine Verbindung herzustellen, wenn es diese Clients verwendet IDs , die über ein Suffix verfügen.
+ Die Richtlinie listet die MQTT-Themen und Themenfilter auf, für die das Core-Gerät Nachrichten veröffentlichen, abonnieren und empfangen kann, einschließlich Themen für den Schattenstatus. Um den Nachrichtenaustausch zwischen AWS IoT Core Greengrass-Komponenten und Client-Geräten zu unterstützen, geben Sie die Themen und Themenfilter an, die Sie zulassen möchten. Weitere Informationen finden Sie unter [Beispiele für Veröffentlichungs-/Abonnement-Richtlinien](https://docs.aws.amazon.com/iot/latest/developerguide/pub-sub-policy.html) im *AWS IoT Core -Entwicklerhandbuch*.
+ Die Richtlinie gewährt die Erlaubnis, Telemetriedaten zum folgenden Thema zu veröffentlichen.

  ```
  $aws/things/core-device-thing-name/greengrass/health/json
  ```

  Sie können diese Berechtigung für Kerngeräte entfernen, auf denen Sie Telemetrie deaktivieren. Weitere Informationen finden Sie unter [Erfassung von Telemetriedaten zur Systemintegrität von AWS IoT Greengrass Kerngeräten](telemetry.md).
+ Die Richtlinie gewährt die Berechtigung, über einen Rollenalias eine IAM-Rolle anzunehmen. AWS IoT Das Kerngerät verwendet diese Rolle, die als Token-Austauschrolle bezeichnet wird, um AWS Anmeldeinformationen abzurufen, die es zur Authentifizierung AWS von Anfragen verwenden kann. Weitere Informationen finden Sie unter [Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS](device-service-role.md).

  Wenn Sie die AWS IoT Greengrass Core-Software installieren, erstellen und fügen Sie eine zweite AWS IoT Richtlinie hinzu, die nur diese Berechtigung beinhaltet. Wenn Sie diese Berechtigung in die primäre AWS IoT Richtlinie Ihres Core-Geräts aufnehmen, können Sie die andere AWS IoT Richtlinie trennen und löschen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Connect"
            ],
            "Resource": "arn:aws:iot:us-east-1:123456789012:client/core-device-thing-name*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive",
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/greengrass/health/json",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/greengrassv2/health/json",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/jobs/*",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/shadow/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name/jobs/*",
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name/shadow/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iot:AssumeRoleWithCertificate",
            "Resource": "arn:aws:iot:us-east-1:123456789012:rolealias/token-exchange-role-alias-name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:GetComponentVersionArtifact",
                "greengrass:ResolveComponentCandidates",
                "greengrass:GetDeploymentConfiguration",
                "greengrass:ListThingGroupsForCoreDevice"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Minimale AWS IoT Richtlinie zur Unterstützung von Client-Geräten
<a name="client-device-support-minimal-iot-policy"></a>

Die folgende Beispielrichtlinie umfasst die Mindestanzahl von Aktionen, die zur Unterstützung der Interaktion mit Client-Geräten auf einem Kerngerät erforderlich sind. Um Client-Geräte zu unterstützen, muss ein Core-Gerät zusätzlich zur AWS IoT [Minimalrichtlinie für den Basisbetrieb über die in dieser AWS IoT Richtlinie festgelegten](#greengrass-core-minimal-iot-policy) Berechtigungen verfügen.
+ Die Richtlinie ermöglicht es dem Kerngerät, seine eigenen Konnektivitätsinformationen zu aktualisieren. Diese Berechtigung (`greengrass:UpdateConnectivityInfo`) ist nur erforderlich, wenn Sie die [IP-Detektorkomponente](ip-detector-component.md) auf dem Kerngerät bereitstellen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name-gci/shadow/get"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name-gci/shadow/update/delta",
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name-gci/shadow/get/accepted"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name-gci/shadow/update/delta",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name-gci/shadow/get/accepted"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:PutCertificateAuthorities",
                "greengrass:VerifyClientDeviceIdentity"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:VerifyClientDeviceIoTCertificateAssociation"
            ],
            "Resource": "arn:aws:iot:us-east-1:123456789012:thing/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:GetConnectivityInfo",
                "greengrass:UpdateConnectivityInfo"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:thing/core-device-thing-name"
            ]
        }
    ]
}
```

------

## Minimale AWS IoT Richtlinie für Client-Geräte
<a name="client-device-minimal-iot-policy"></a>

Die folgende Beispielrichtlinie umfasst die Mindestanzahl an Aktionen, die ein Client-Gerät benötigt, um Kerngeräte zu erkennen, mit denen es sich über MQTT verbindet und kommuniziert. Die AWS IoT Richtlinie des Client-Geräts muss die `greengrass:Discover` Aktion beinhalten, die es dem Gerät ermöglicht, Verbindungsinformationen für die zugehörigen Greengrass-Core-Geräte zu ermitteln. Geben Sie in `Resource` diesem Abschnitt den Amazon-Ressourcennamen (ARN) des Client-Geräts an, nicht den ARN des Greengrass-Core-Geräts.
+ Die Richtlinie ermöglicht die Kommunikation zu allen MQTT-Themen. Um die besten Sicherheitspraktiken einzuhalten, beschränken Sie die `iot:Publish` `iot:Receive` Berechtigungen`iot:Subscribe`, und auf die Mindestanzahl von Themen, die ein Client-Gerät für Ihren Anwendungsfall benötigt.
+ Die Richtlinie ermöglicht es dem Gerät, zentrale Geräte für alle AWS IoT Dinge zu erkennen. Um die besten Sicherheitsvorkehrungen zu befolgen, beschränken Sie die `greengrass:Discover` Zugriffsrechte auf das AWS IoT Ding des Client-Geräts oder auf einen Platzhalter, der einer Reihe von AWS IoT Dingen entspricht.
**Wichtig**  
<a name="thing-policy-variable-not-supported"></a>[Ding-Richtlinienvariablen](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) werden in AWS IoT Richtlinien für Kerngeräte oder Greengrass-Datenebenenoperationen nicht unterstützt. Stattdessen können Sie einen Platzhalter verwenden, der für mehrere Geräte mit ähnlichen Namen steht. Sie können beispielsweise angeben, ob `MyGreengrassDevice*` ein Treffer gefunden werden soll `MyGreengrassDevice1``MyGreengrassDevice2`, usw. 
+ Die AWS IoT Richtlinie eines Client-Geräts erfordert normalerweise keine Berechtigungen oder `iot:DeleteThingShadow` Aktionen `iot:GetThingShadow``iot:UpdateThingShadow`, da das Greengrass-Core-Gerät Schattensynchronisierungsvorgänge für Client-Geräte abwickelt. Damit das Core-Gerät Shadows von Client-Geräten verarbeiten kann, überprüfen Sie, ob die AWS IoT Richtlinie des Core-Geräts diese Aktionen zulässt und ob der `Resource` Abschnitt auch die ARNs Client-Geräte enthält.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Connect"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:Discover"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:thing/*"
            ]
        }
    ]
}
```

------

# Identitäts- und Zugriffsmanagement für AWS IoT Greengrass
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) hilft einem Administrator AWS-Service , den Zugriff auf Ressourcen sicher zu AWS kontrollieren. IAM-Administratoren kontrollieren, wer *authentifiziert* (angemeldet) und *autorisiert* werden kann (über Berechtigungen verfügt), um Ressourcen zu verwenden. AWS IoT Greengrass IAM ist ein Programm AWS-Service , das Sie ohne zusätzliche Kosten nutzen können.

**Anmerkung**  
In diesem Thema werden die Konzepte und Funktionen von IAM beschrieben. Informationen zu den IAM-Funktionen, die von unterstützt werden AWS IoT Greengrass, finden Sie unter. [Wie AWS IoT Greengrass funktioniert mit IAM](security_iam_service-with-iam.md)

## Zielgruppe
<a name="security_iam_audience"></a>

Wie Sie AWS Identity and Access Management (IAM) verwenden, hängt von Ihrer Rolle ab:
+ **Servicebenutzer** – Fordern Sie von Ihrem Administrator Berechtigungen an, wenn Sie nicht auf Features zugreifen können (siehe [Behebung von Identitäts- und Zugriffsproblemen für AWS IoT Greengrass](security_iam_troubleshoot.md)).
+ **Serviceadministrator** – Bestimmen Sie den Benutzerzugriff und stellen Sie Berechtigungsanfragen (siehe [Wie AWS IoT Greengrass funktioniert mit IAM](security_iam_service-with-iam.md)).
+ **IAM-Administrator** – Schreiben Sie Richtlinien zur Zugriffsverwaltung (siehe [Beispiele für identitätsbasierte Richtlinien für AWS IoT Greengrass](security_iam_id-based-policy-examples.md)).

## Authentifizierung mit Identitäten
<a name="security_iam_authentication"></a>

Authentifizierung ist die Art und Weise, wie Sie sich AWS mit Ihren Identitätsdaten anmelden. Sie müssen sich als IAM-Benutzer authentifizieren oder eine IAM-Rolle annehmen. Root-Benutzer des AWS-Kontos

Sie können sich als föderierte Identität anmelden, indem Sie Anmeldeinformationen aus einer Identitätsquelle wie AWS IAM Identity Center (IAM Identity Center), Single Sign-On-Authentifizierung oder Anmeldeinformationen verwenden. Google/Facebook Weitere Informationen zum Anmelden finden Sie unter [So melden Sie sich bei Ihrem AWS-Konto an](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) im *Benutzerhandbuch für AWS-Anmeldung *.

 AWS Bietet für den programmatischen Zugriff ein SDK und eine CLI zum kryptografischen Signieren von Anfragen. Weitere Informationen finden Sie unter [AWS Signature Version 4 for API requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) im *IAM-Benutzerhandbuch*.

### AWS-Konto Root-Benutzer
<a name="security_iam_authentication-rootuser"></a>

 Wenn Sie einen erstellen AWS-Konto, beginnen Sie mit einer Anmeldeidentität, dem sogenannten AWS-Konto *Root-Benutzer*, der vollständigen Zugriff auf alle AWS-Services Ressourcen hat. Wir raten ausdrücklich davon ab, den Root-Benutzer für Alltagsaufgaben zu verwenden. Eine Liste der Aufgaben, für die Sie sich als Root-Benutzer anmelden müssen, finden Sie unter [Tasks that require root user credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) im *IAM-Benutzerhandbuch*. 

### IAM-Benutzer und -Gruppen
<a name="security_iam_authentication-iamuser"></a>

Ein *[IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* ist eine Identität mit bestimmten Berechtigungen für eine einzelne Person oder Anwendung. Wir empfehlen die Verwendung temporärer Anmeldeinformationen anstelle von IAM-Benutzern mit langfristigen Anmeldeinformationen. Weitere Informationen finden Sie im *IAM-Benutzerhandbuch* unter [Erfordern, dass menschliche Benutzer für den Zugriff AWS mithilfe temporärer Anmeldeinformationen einen Verbund mit einem Identitätsanbieter](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) verwenden müssen.

Eine [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) spezifiziert eine Sammlung von IAM-Benutzern und erleichtert die Verwaltung von Berechtigungen für große Gruppen von Benutzern. Weitere Informationen finden Sie unter [Anwendungsfälle für IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) im *IAM-Benutzerhandbuch*.

### IAM-Rollen
<a name="security_iam_authentication-iamrole"></a>

Eine *[IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* ist eine Identität mit spezifischen Berechtigungen, die temporäre Anmeldeinformationen bereitstellt. Sie können eine Rolle übernehmen, indem Sie [von einer Benutzer- zu einer IAM-Rolle (Konsole) wechseln](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) AWS CLI oder einen AWS API-Vorgang aufrufen. Weitere Informationen finden Sie unter [Methoden, um eine Rolle zu übernehmen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) im *IAM-Benutzerhandbuch*.

IAM-Rollen sind nützlich für den Verbundbenutzer-Zugriff, temporäre IAM-Benutzerberechtigungen, kontoübergreifenden Zugriff, serviceübergreifenden Zugriff und Anwendungen, die auf Amazon EC2 laufen. Weitere Informationen finden Sie unter [Kontoübergreifender Ressourcenzugriff in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) im *IAM-Benutzerhandbuch*.

## Verwalten des Zugriffs mit Richtlinien
<a name="security_iam_access-manage"></a>

Sie kontrollieren den Zugriff, AWS indem Sie Richtlinien erstellen und diese an AWS Identitäten oder Ressourcen anhängen. Eine Richtlinie definiert Berechtigungen, wenn sie mit einer Identität oder Ressource verknüpft sind. AWS bewertet diese Richtlinien, wenn ein Principal eine Anfrage stellt. Die meisten Richtlinien werden AWS als JSON-Dokumente gespeichert. Weitere Informationen zu JSON-Richtliniendokumenten finden Sie unter [Übersicht über JSON-Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) im *IAM-Benutzerhandbuch*.

Mit Hilfe von Richtlinien legen Administratoren fest, wer Zugriff auf was hat, indem sie definieren, welches **Prinzipal** welche **Aktionen** auf welchen **Ressourcen**und unter welchen **Bedingungen**durchführen darf.

Standardmäßig haben Benutzer, Gruppen und Rollen keine Berechtigungen. Ein IAM-Administrator erstellt IAM-Richtlinien und fügt sie zu Rollen hinzu, die die Benutzer dann übernehmen können. IAM-Richtlinien definieren Berechtigungen unabhängig von der Methode, die zur Ausführung der Operation verwendet wird.

### Identitätsbasierte Richtlinien
<a name="security_iam_access-manage-id-based-policies"></a>

Identitätsbasierte Richtlinien sind JSON-Berechtigungsrichtliniendokumente, die Sie einer Identität (Benutzer, Gruppe oder Rolle) anfügen können. Diese Richtlinien steuern, welche Aktionen Identitäten für welche Ressourcen und unter welchen Bedingungen ausführen können. Informationen zum Erstellen identitätsbasierter Richtlinien finden Sie unter [Definieren benutzerdefinierter IAM-Berechtigungen mit vom Kunden verwalteten Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) im *IAM-Benutzerhandbuch*.

Identitätsbasierte Richtlinien können *Inline-Richtlinien* (direkt in eine einzelne Identität eingebettet) oder *verwaltete Richtlinien* (eigenständige Richtlinien, die mit mehreren Identitäten verbunden sind) sein. Informationen dazu, wie Sie zwischen verwalteten und Inline-Richtlinien wählen, finden Sie unter [Choose between managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) im *IAM-Benutzerhandbuch*.

### Ressourcenbasierte Richtlinien
<a name="security_iam_access-manage-resource-based-policies"></a>

Ressourcenbasierte Richtlinien sind JSON-Richtliniendokumente, die Sie an eine Ressource anfügen. Beispiele hierfür sind *Vertrauensrichtlinien für IAM-Rollen* und Amazon S3*-Bucket-Richtlinien*. In Services, die ressourcenbasierte Richtlinien unterstützen, können Service-Administratoren sie verwenden, um den Zugriff auf eine bestimmte Ressource zu steuern. Sie müssen in einer ressourcenbasierten Richtlinie [einen Prinzipal angeben](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).

Ressourcenbasierte Richtlinien sind Richtlinien innerhalb dieses Diensts. Sie können AWS verwaltete Richtlinien von IAM nicht in einer ressourcenbasierten Richtlinie verwenden.

### Zugriffskontrolllisten () ACLs
<a name="security_iam_access-manage-acl"></a>

Zugriffskontrolllisten (ACLs) steuern, welche Principals (Kontomitglieder, Benutzer oder Rollen) über Zugriffsberechtigungen für eine Ressource verfügen. ACLs ähneln ressourcenbasierten Richtlinien, verwenden jedoch nicht das JSON-Richtliniendokumentformat.

Amazon S3 und Amazon VPC sind Beispiele für Dienste, die Unterstützung ACLs bieten. AWS WAF Weitere Informationen finden Sie unter [Übersicht über ACLs die Zugriffskontrollliste (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) im *Amazon Simple Storage Service Developer Guide*.

### Weitere Richtlinientypen
<a name="security_iam_access-manage-other-policies"></a>

AWS unterstützt zusätzliche Richtlinientypen, mit denen die maximalen Berechtigungen festgelegt werden können, die durch gängigere Richtlinientypen gewährt werden:
+ **Berechtigungsgrenzen** – Eine Berechtigungsgrenze legt die maximalen Berechtigungen fest, die eine identitätsbasierte Richtlinie einer IAM-Entität erteilen kann. Weitere Informationen finden Sie unter [Berechtigungsgrenzen für IAM-Entitäten](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) im *-IAM-Benutzerhandbuch*.
+ **Richtlinien zur Dienstkontrolle (SCPs)** — Geben Sie die maximalen Berechtigungen für eine Organisation oder Organisationseinheit in an AWS Organizations. Weitere Informationen finden Sie unter [Service-Kontrollrichtlinien](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) im *AWS Organizations -Benutzerhandbuch*.
+ **Richtlinien zur Ressourcenkontrolle (RCPs)** — Legen Sie die maximal verfügbaren Berechtigungen für Ressourcen in Ihren Konten fest. Weitere Informationen finden Sie im *AWS Organizations Benutzerhandbuch* unter [Richtlinien zur Ressourcenkontrolle (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html).
+ **Sitzungsrichtlinien** – Sitzungsrichtlinien sind erweiterte Richtlinien, die als Parameter übergeben werden, wenn Sie eine temporäre Sitzung für eine Rolle oder einen Verbundbenutzer erstellen. Weitere Informationen finden Sie unter [Sitzungsrichtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) im *IAM-Benutzerhandbuch*.

### Mehrere Richtlinientypen
<a name="security_iam_access-manage-multiple-policies"></a>

Wenn für eine Anfrage mehrere Arten von Richtlinien gelten, sind die daraus resultierenden Berechtigungen schwieriger zu verstehen. Informationen darüber, wie AWS bestimmt wird, ob eine Anfrage zulässig ist, wenn mehrere Richtlinientypen betroffen sind, finden Sie unter [Bewertungslogik für Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) im *IAM-Benutzerhandbuch*.

## Weitere Informationen finden Sie auch unter
<a name="security_iam_service-see-also"></a>
+ [Wie AWS IoT Greengrass funktioniert mit IAM](security_iam_service-with-iam.md)
+ [Beispiele für identitätsbasierte Richtlinien für AWS IoT Greengrass](security_iam_id-based-policy-examples.md)
+ [Behebung von Identitäts- und Zugriffsproblemen für AWS IoT Greengrass](security_iam_troubleshoot.md)

# Wie AWS IoT Greengrass funktioniert mit IAM
<a name="security_iam_service-with-iam"></a>

Bevor Sie IAM verwenden, um den Zugriff auf zu verwalten AWS IoT Greengrass, sollten Sie sich mit den IAM-Funktionen vertraut machen, die Sie mit verwenden können. AWS IoT Greengrass


| IAM-Feature | Von Greengrass unterstützt? | 
| --- | --- | 
| [Identitätsbasierte Richtlinien mit Berechtigungen auf Ressourcenebene](#security_iam_service-with-iam-id-based-policies) | Ja | 
| [Ressourcenbasierte Richtlinien](#security_iam_service-with-iam-resource-based-policies) | Nein | 
| [Zugriffskontrolllisten () ACLs](#security_iam_service-with-iam-acls) | Nein | 
| [Auf Tags basierende Autorisierung](#security_iam_service-with-iam-tags) | Ja | 
| [Temporäre Anmeldeinformationen](#security_iam_service-with-iam-roles-tempcreds) | Ja | 
| [Service-verknüpfte Rollen](#security_iam_service-with-iam-roles-service-linked) | Nein | 
| [Servicerollen](#security_iam_service-with-iam-roles-service-linked) | Ja | 

Einen allgemeinen Überblick darüber, wie andere AWS Dienste mit IAM funktionieren, finden Sie im IAM-Benutzerhandbuch unter [AWS Dienste, die mit *IAM* funktionieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).

## Identitätsbasierte Richtlinien für AWS IoT Greengrass
<a name="security_iam_service-with-iam-id-based-policies"></a>

Mit identitätsbasierten IAM-Richtlinien können Sie zulässige oder verweigerte Aktionen und Ressourcen sowie die Bedingungen angeben, unter denen Aktionen zugelassen oder verweigert werden. AWS IoT Greengrass unterstützt bestimmte Aktionen, Ressourcen und Bedingungsschlüssel. Weitere Informationen zu allen Elementen, die Sie in einer Richtlinie verwenden, finden Sie unter [Referenz zu den IAM-JSON-Richtlinienelementen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) im *IAM-Benutzerhandbuch*.

### Aktionen
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. Das heißt, welcher **Prinzipal** **Aktionen** für welche **Ressourcen** und unter welchen **Bedingungen** ausführen kann.

Das Element `Action` einer JSON-Richtlinie beschreibt die Aktionen, mit denen Sie den Zugriff in einer Richtlinie zulassen oder verweigern können. Nehmen Sie Aktionen in eine Richtlinie auf, um Berechtigungen zur Ausführung des zugehörigen Vorgangs zu erteilen.

Bei Richtlinienaktionen wird das `greengrass:` Präfix vor der Aktion AWS IoT Greengrass verwendet. Um beispielsweise jemandem zu ermöglichen, mithilfe des `ListCoreDevices` API-Vorgangs die wichtigsten Geräte aufzulisten AWS-Konto, nehmen Sie die `greengrass:ListCoreDevices` Aktion in seine Richtlinie auf. Richtlinienerklärungen müssen `Action` entweder ein `NotAction` Oder-Element enthalten. AWS IoT Greengrass definiert einen eigenen Satz von Aktionen, die Aufgaben beschreiben, die Sie mit diesem Dienst ausführen können.

Um mehrere Aktionen in einer einzigen Anweisung anzugeben, listen Sie sie in Klammern (`[``]`) auf und trennen Sie sie wie folgt durch Kommas:

```
"Action": [
  "greengrass:action1",
  "greengrass:action2",
  "greengrass:action3"
]
```

Sie können Platzhalter (`*`) verwenden, um mehrere Aktionen anzugeben. Beispielsweise können Sie alle Aktionen festlegen, die mit dem Wort `List` beginnen, einschließlich der folgenden Aktion:

```
"Action": "greengrass:List*"
```

**Anmerkung**  
Es wird empfohlen, die Verwendung von Platzhaltern zu vermeiden, um alle verfügbaren Aktionen für einen Service anzugeben. Als bewährte Methode sollten Sie in einer Richtlinie die geringsten Berechtigungen mit eng begrenztem Umfang gewähren. Weitere Informationen finden Sie unter [Erteilen von Mindestberechtigungen](security-best-practices.md#least-privilege).

Die vollständige Liste der AWS IoT Greengrass [Aktionen finden Sie AWS IoT Greengrass im *IAM-Benutzerhandbuch* unter Definierte Aktionen von](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions).

### Ressourcen
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. Das heißt, welcher **Prinzipal** **Aktionen** für welche **Ressourcen** und unter welchen **Bedingungen** ausführen kann.

Das JSON-Richtlinienelement `Resource` gibt die Objekte an, auf welche die Aktion angewendet wird. Als Best Practice geben Sie eine Ressource mit dem zugehörigen [Amazon-Ressourcennamen (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) an. Verwenden Sie für Aktionen, die keine Berechtigungen auf Ressourcenebene unterstützen, einen Platzhalter (\$1), um anzugeben, dass die Anweisung für alle Ressourcen gilt.

```
"Resource": "*"
```

Die folgende Tabelle enthält die AWS IoT Greengrass Ressource ARNs , die im `Resource` Element einer Richtlinienerklärung verwendet werden kann. Eine Zuordnung der unterstützten Berechtigungen für AWS IoT Greengrass Aktionen auf Ressourcenebene finden Sie unter [Actions Defined by AWS IoT Greengrass](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) im *IAM-Benutzerhandbuch*.

Einige AWS IoT Greengrass Aktionen (z. B. einige Listenoperationen) können nicht für eine bestimmte Ressource ausgeführt werden. In diesen Fällen müssen Sie allein den Platzhalter verwenden.

```
"Resource": "*"
```

Um mehrere Ressourcen ARNs in einer Anweisung anzugeben, listen Sie sie in Klammern (`[``]`) auf und trennen Sie sie wie folgt durch Kommas:

```
"Resource": [
  "resource-arn1",
  "resource-arn2",
  "resource-arn3"
]
```

Weitere Informationen zu ARN-Formaten finden Sie unter [Amazon Resource Names (ARNs) und AWS Service-Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in der. *Allgemeine Amazon Web Services-Referenz*

### Bedingungsschlüssel
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. Das heißt, welcher **Prinzipal** **Aktionen** für welche **Ressourcen** und unter welchen **Bedingungen** ausführen kann.

Das Element `Condition` gibt an, wann Anweisungen auf der Grundlage definierter Kriterien ausgeführt werden. Sie können bedingte Ausdrücke erstellen, die [Bedingungsoperatoren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) verwenden, z. B. ist gleich oder kleiner als, damit die Bedingung in der Richtlinie mit Werten in der Anforderung übereinstimmt. Eine Übersicht aller AWS globalen Bedingungsschlüssel finden Sie unter [Kontextschlüssel für AWS globale Bedingungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) im *IAM-Benutzerhandbuch*.

### Beispiele
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Beispiele für AWS IoT Greengrass identitätsbasierte Richtlinien finden Sie unter. [Beispiele für identitätsbasierte Richtlinien für AWS IoT Greengrass](security_iam_id-based-policy-examples.md)

## Ressourcenbasierte Richtlinien für AWS IoT Greengrass
<a name="security_iam_service-with-iam-resource-based-policies"></a>

AWS IoT Greengrass unterstützt keine [ressourcenbasierten](security-iam.md#security_iam_access-manage-resource-based-policies) Richtlinien.

## Zugriffskontrolllisten () ACLs
<a name="security_iam_service-with-iam-acls"></a>

AWS IoT Greengrass unterstützt nicht [ACLs](security-iam.md#security_iam_access-manage-acl).

## Autorisierung auf der Grundlage von AWS IoT Greengrass Tags
<a name="security_iam_service-with-iam-tags"></a>

Sie können Tags an unterstützte AWS IoT Greengrass Ressourcen anhängen oder Tags in einer Anfrage an übergeben AWS IoT Greengrass. Um den Zugriff basierend auf Tags zu steuern, stellen Sie Tag-Informationen im [Bedingungselement](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) einer Richtlinie unter Verwendung der Bedingungsschlüssel `aws:ResourceTag/${TagKey}`, `aws:RequestTag/${TagKey}` oder `aws:TagKeys` bereit. Weitere Informationen finden Sie unter [Kennzeichnen Sie Ihre AWS IoT Greengrass Version 2 Ressourcen](tag-resources.md).

## IAM-Rollen für AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles"></a>

Eine [IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) ist eine Entität in Ihrem AWS-Konto mit spezifischen Berechtigungen.

### Verwenden temporärer Anmeldeinformationen mit AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Temporäre Anmeldeinformationen werden verwendet, um sich bei einem Verbund anzumelden, eine IAM-Rolle anzunehmen oder eine kontoübergreifende Rolle anzunehmen. Sie erhalten temporäre Sicherheitsanmeldedaten, indem Sie AWS STS API-Operationen wie [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)oder aufrufen. [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)

Auf dem Greengrass-Kern werden den Greengrass-Komponenten temporäre Anmeldeinformationen für die [Geräterolle](device-service-role.md) zur Verfügung gestellt. Wenn Ihre Komponenten das AWS SDK verwenden, müssen Sie keine Logik hinzufügen, um die Anmeldeinformationen zu erhalten, da das AWS SDK dies für Sie erledigt.

### Service-verknüpfte Rollen
<a name="security_iam_service-with-iam-roles-service-linked"></a>

AWS IoT Greengrass unterstützt keine [dienstbezogenen Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role).

### Servicerollen
<a name="security_iam_service-with-iam-roles-service"></a>

Dieses Feature ermöglicht einem Service das Annehmen einer [Servicerolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) in Ihrem Namen. Diese Rolle gewährt dem Service Zugriff auf Ressourcen in anderen Diensten, um eine Aktion in Ihrem Namen auszuführen. Servicerollen werden in Ihrem IAM-Konto angezeigt und gehören zum Konto. Dies bedeutet, dass ein IAM-Administrator die Berechtigungen für diese Rolle ändern kann. Dies kann jedoch die Funktionalität des Dienstes beeinträchtigen.

AWS IoT Greengrass Kerngeräte verwenden eine Servicerolle, damit Greengrass-Komponenten und Lambda-Funktionen in Ihrem Namen auf einige Ihrer AWS Ressourcen zugreifen können. Weitere Informationen finden Sie unter [Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS](device-service-role.md).

AWS IoT Greengrass verwendet eine Servicerolle, um in Ihrem Namen auf einige Ihrer AWS Ressourcen zuzugreifen. Weitere Informationen finden Sie unter [Greengrass-Servicerolle](greengrass-service-role.md).

# Beispiele für identitätsbasierte Richtlinien für AWS IoT Greengrass
<a name="security_iam_id-based-policy-examples"></a>

IAM-Benutzer besitzen keine Berechtigungen zum Erstellen oder Ändern von AWS IoT Greengrass -Ressourcen. Sie können auch keine Aufgaben mit der AWS-Managementkonsole AWS CLI, oder AWS API ausführen. Ein IAM-Administrator muss IAM-Richtlinien erstellen, die Benutzern und Rollen die Berechtigung zum Ausführen bestimmter API-Operationen für die angegebenen Ressourcen gewähren, die diese benötigen. Der Administrator muss diese Richtlinien anschließend den IAM-Benutzern oder -Gruppen anfügen, die diese Berechtigungen benötigen.

## Best Practices für Richtlinien
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Identitätsbasierte Richtlinien legen fest, ob jemand AWS IoT Greengrass Ressourcen in Ihrem Konto erstellen, darauf zugreifen oder sie löschen kann. Dies kann zusätzliche Kosten für Ihr verursachen AWS-Konto. Beachten Sie beim Erstellen oder Bearbeiten identitätsbasierter Richtlinien die folgenden Richtlinien und Empfehlungen:
+ **Erste Schritte mit AWS verwalteten Richtlinien und Umstellung auf Berechtigungen mit den geringsten Rechten** — Verwenden Sie die *AWS verwalteten Richtlinien*, die Berechtigungen für viele gängige Anwendungsfälle gewähren, um damit zu beginnen, Ihren Benutzern und Workloads Berechtigungen zu gewähren. Sie sind in Ihrem verfügbar. AWS-Konto Wir empfehlen Ihnen, die Berechtigungen weiter zu reduzieren, indem Sie vom AWS Kunden verwaltete Richtlinien definieren, die speziell auf Ihre Anwendungsfälle zugeschnitten sind. Weitere Informationen finden Sie unter [Von AWS verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) oder [Von AWS verwaltete Richtlinien für Auftragsfunktionen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) im *IAM-Benutzerhandbuch*.
+ **Anwendung von Berechtigungen mit den geringsten Rechten** – Wenn Sie mit IAM-Richtlinien Berechtigungen festlegen, gewähren Sie nur die Berechtigungen, die für die Durchführung einer Aufgabe erforderlich sind. Sie tun dies, indem Sie die Aktionen definieren, die für bestimmte Ressourcen unter bestimmten Bedingungen durchgeführt werden können, auch bekannt als *die geringsten Berechtigungen*. Weitere Informationen zur Verwendung von IAM zum Anwenden von Berechtigungen finden Sie unter [ Richtlinien und Berechtigungen in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) im *IAM-Benutzerhandbuch*.
+ **Verwenden von Bedingungen in IAM-Richtlinien zur weiteren Einschränkung des Zugriffs** – Sie können Ihren Richtlinien eine Bedingung hinzufügen, um den Zugriff auf Aktionen und Ressourcen zu beschränken. Sie können beispielsweise eine Richtlinienbedingung schreiben, um festzulegen, dass alle Anforderungen mithilfe von SSL gesendet werden müssen. Sie können auch Bedingungen verwenden, um Zugriff auf Serviceaktionen zu gewähren, wenn diese für einen bestimmten Zweck verwendet werden AWS-Service, z. CloudFormation B. Weitere Informationen finden Sie unter [IAM-JSON-Richtlinienelemente: Bedingung](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) im *IAM-Benutzerhandbuch*.
+ **Verwenden von IAM Access Analyzer zur Validierung Ihrer IAM-Richtlinien, um sichere und funktionale Berechtigungen zu gewährleisten** – IAM Access Analyzer validiert neue und vorhandene Richtlinien, damit die Richtlinien der IAM-Richtliniensprache (JSON) und den bewährten IAM-Methoden entsprechen. IAM Access Analyzer stellt mehr als 100 Richtlinienprüfungen und umsetzbare Empfehlungen zur Verfügung, damit Sie sichere und funktionale Richtlinien erstellen können. Weitere Informationen finden Sie unter [Richtlinienvalidierung mit IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) im *IAM-Benutzerhandbuch*.
+ **Multi-Faktor-Authentifizierung (MFA) erforderlich** — Wenn Sie ein Szenario haben, das IAM-Benutzer oder einen Root-Benutzer in Ihrem System erfordert AWS-Konto, aktivieren Sie MFA für zusätzliche Sicherheit. Um MFA beim Aufrufen von API-Vorgängen anzufordern, fügen Sie Ihren Richtlinien MFA-Bedingungen hinzu. Weitere Informationen finden Sie unter [Sicherer API-Zugriff mit MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) im *IAM-Benutzerhandbuch*.

Weitere Informationen zu bewährten Methoden in IAM finden Sie unter [Best Practices für die Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.

## Beispiele für Richtlinien
<a name="security_iam_id-based-policy-examples-list"></a>

Im folgenden Beispiel erteilen benutzerdefinierte Richtlinien Berechtigungen für häufig auftretende Szenarien.

**Topics**
+ [Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer](#security_iam_id-based-policy-examples-view-own-permissions)

Informationen dazu, wie Sie unter Verwendung dieser beispielhaften JSON-Richtliniendokumente eine identitätsbasierte IAM-Richtlinie erstellen, finden Sie unter [Erstellen von Richtlinien auf der JSON-Registerkarte](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) im *IAM-Benutzerhandbuch*.

### Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

In diesem Beispiel wird gezeigt, wie Sie eine Richtlinie erstellen, die IAM-Benutzern die Berechtigung zum Anzeigen der eingebundenen Richtlinien und verwalteten Richtlinien gewährt, die ihrer Benutzeridentität angefügt sind. Diese Richtlinie umfasst Berechtigungen zum Ausführen dieser Aktion auf der Konsole oder programmgesteuert mithilfe der API oder. AWS CLI AWS 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS
<a name="device-service-role"></a>

AWS IoT Greengrass Kerngeräte verwenden den Anbieter AWS IoT Core für Anmeldeinformationen, um Anrufe an Dienste zu autorisieren. AWS Der Anbieter AWS IoT Core für Anmeldeinformationen ermöglicht es Geräten, ihre X.509-Zertifikate als eindeutige Geräteidentität zur Authentifizierung AWS von Anfragen zu verwenden. Dadurch entfällt die Notwendigkeit, eine AWS Zugriffsschlüssel-ID und einen geheimen Zugriffsschlüssel auf Ihren AWS IoT Greengrass Kerngeräten zu speichern. Weitere Informationen finden Sie unter [Autorisieren von direkten Aufrufen von AWS Diensten](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) im *AWS IoT Core Entwicklerhandbuch*.

Wenn Sie die AWS IoT Greengrass Core-Software ausführen, können Sie wählen, ob Sie die AWS Ressourcen bereitstellen möchten, die das Kerngerät benötigt. Dazu gehört auch die AWS Identity and Access Management (IAM-) Rolle, die Ihr Kerngerät über den Anbieter für AWS IoT Core Anmeldeinformationen übernimmt. Verwenden Sie das `--provision true` Argument, um eine Rolle und Richtlinien zu konfigurieren, die es dem Kerngerät ermöglichen, temporäre AWS Anmeldeinformationen abzurufen. Dieses Argument konfiguriert auch einen AWS IoT Rollenalias, der auf diese IAM-Rolle verweist. Sie können den Namen der zu verwendenden IAM-Rolle und den AWS IoT Rollenalias angeben. Wenn Sie diese anderen Namensparameter `--provision true` ohne diese anderen Namensparameter angeben, erstellt und verwendet das Greengrass-Core-Gerät die folgenden Standardressourcen:
+ IAM-Rolle: `GreengrassV2TokenExchangeRole`

  Diese Rolle hat eine benannte Richtlinie `GreengrassV2TokenExchangeRoleAccess` und eine Vertrauensbeziehung, die es ermöglicht, diese Rolle `credentials.iot.amazonaws.com` zu übernehmen. Die Richtlinie umfasst die Mindestberechtigungen für das Kerngerät.
**Wichtig**  
Diese Richtlinie beinhaltet nicht den Zugriff auf Dateien in S3-Buckets. Sie müssen der Rolle Berechtigungen hinzufügen, damit Kerngeräte Komponentenartefakte aus S3-Buckets abrufen können. Weitere Informationen finden Sie unter [Erlauben Sie den Zugriff auf S3-Buckets für Komponentenartefakte](#device-service-role-access-s3-bucket).
+ AWS IoT Rollenalias: `GreengrassV2TokenExchangeRoleAlias`

  Dieser Rollenalias bezieht sich auf die IAM-Rolle.

Weitere Informationen finden Sie unter [Schritt 3: Installieren Sie die AWS IoT Greengrass Core-Software](install-greengrass-v2.md).

Sie können den Rollenalias auch für ein vorhandenes Kerngerät festlegen. Konfigurieren Sie dazu den `iotRoleAlias` Konfigurationsparameter der [Greengrass Nucleus-Komponente](greengrass-nucleus-component.md).

Sie können temporäre AWS Anmeldeinformationen für diese IAM-Rolle erwerben, um AWS Operationen in Ihren benutzerdefinierten Komponenten auszuführen. Weitere Informationen finden Sie unter [Interagieren Sie mit AWS Diensten](interact-with-aws-services.md).

**Topics**
+ [Berechtigungen für Servicerollen für Kerngeräte](#device-service-role-permissions)
+ [Erlauben Sie den Zugriff auf S3-Buckets für Komponentenartefakte](#device-service-role-access-s3-bucket)

## Berechtigungen für Servicerollen für Kerngeräte
<a name="device-service-role-permissions"></a>

Die Rolle ermöglicht es dem folgenden Dienst, die Rolle zu übernehmen:
+ `credentials.iot.amazonaws.com`

Wenn Sie die AWS IoT Greengrass Core-Software verwenden, um diese Rolle zu erstellen, verwendet sie die folgende Berechtigungsrichtlinie, damit Core-Geräte eine Verbindung herstellen und Protokolle an diese senden können AWS. Der Name der Richtlinie ist standardmäßig der Name der IAM-Rolle, der mit endet. `Access` Wenn Sie beispielsweise den Standard-IAM-Rollennamen verwenden, lautet der Name dieser Richtlinie. `GreengrassV2TokenExchangeRoleAccess`

------
#### [ Greengrass nucleus v2.5.0 and later ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ v2.4.x ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ Earlier than v2.4.0 ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "iot:Connect",
        "iot:Publish",
        "iot:Subscribe",
        "iot:Receive",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------

## Erlauben Sie den Zugriff auf S3-Buckets für Komponentenartefakte
<a name="device-service-role-access-s3-bucket"></a>

Die standardmäßige Core-Geräterolle erlaubt es Core-Geräten nicht, auf S3-Buckets zuzugreifen. Um Komponenten bereitzustellen, die Artefakte in S3-Buckets enthalten, müssen Sie die `s3:GetObject` Berechtigung hinzufügen, Kerngeräten das Herunterladen von Komponentenartefakten zu gestatten. Sie können der Core-Geräterolle eine neue Richtlinie hinzufügen, um diese Berechtigung zu erteilen.

**Um eine Richtlinie hinzuzufügen, die den Zugriff auf Komponentenartefakte in Amazon S3 ermöglicht**

1. Erstellen Sie eine Datei mit dem Namen `component-artifact-policy.json` und kopieren Sie den folgenden JSON-Code in die Datei. Diese Richtlinie ermöglicht den Zugriff auf alle Dateien in einem S3-Bucket. Ersetzen Sie amzn-s3-demo-bucket durch den Namen des S3-Buckets, damit das Kerngerät darauf zugreifen kann.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
       }
     ]
   }
   ```

------

1. Führen Sie den folgenden Befehl aus, um die Richtlinie aus dem Richtliniendokument in zu erstellen. `component-artifact-policy.json`

------
#### [ Linux or Unix ]

   ```
   aws iam create-policy \
     --policy-name MyGreengrassV2ComponentArtifactPolicy \
     --policy-document file://component-artifact-policy.json
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam create-policy ^
     --policy-name MyGreengrassV2ComponentArtifactPolicy ^
     --policy-document file://component-artifact-policy.json
   ```

------
#### [ PowerShell ]

   ```
   aws iam create-policy `
     --policy-name MyGreengrassV2ComponentArtifactPolicy `
     --policy-document file://component-artifact-policy.json
   ```

------

   Kopieren Sie den Amazon Resource Name (ARN) der Richtlinie aus den Richtlinienmetadaten in der Ausgabe. Sie verwenden diesen ARN, um diese Richtlinie im nächsten Schritt an die zentrale Geräterolle anzuhängen.

1. Führen Sie den folgenden Befehl aus, um die Richtlinie an die zentrale Geräterolle anzuhängen. *GreengrassV2TokenExchangeRole*Ersetzen Sie es durch den Namen der Rolle, die Sie bei der Ausführung der AWS IoT Greengrass Core-Software angegeben haben. Ersetzen Sie dann den Richtlinien-ARN durch den ARN aus dem vorherigen Schritt.

------
#### [ Linux or Unix ]

   ```
   aws iam attach-role-policy \
     --role-name GreengrassV2TokenExchangeRole \
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam attach-role-policy ^
     --role-name GreengrassV2TokenExchangeRole ^
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------
#### [ PowerShell ]

   ```
   aws iam attach-role-policy `
     --role-name GreengrassV2TokenExchangeRole `
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------

   Wenn der Befehl keine Ausgabe hat, war er erfolgreich, und Ihr Kerngerät kann auf Artefakte zugreifen, die Sie in diesen S3-Bucket hochladen.

# Minimale IAM-Richtlinie für das Installationsprogramm zur Bereitstellung von Ressourcen
<a name="provision-minimal-iam-policy"></a>

Wenn Sie die AWS IoT Greengrass Core-Software installieren, können Sie die erforderlichen AWS Ressourcen wie ein AWS IoT Ding und eine IAM-Rolle für Ihr Gerät bereitstellen. Sie können auch lokale Entwicklungstools auf dem Gerät bereitstellen. Das Installationsprogramm benötigt AWS Anmeldeinformationen, damit es diese Aktionen in Ihrem ausführen kann AWS-Konto. Weitere Informationen finden Sie unter [Installieren Sie die AWS IoT Greengrass Core-Software](install-greengrass-core-v2.md).

Die folgende Beispielrichtlinie umfasst die Mindestanzahl an Aktionen, die das Installationsprogramm zur Bereitstellung dieser Ressourcen benötigt. Diese Berechtigungen sind erforderlich, wenn Sie das `--provision` Argument für das Installationsprogramm angeben. *account-id*Ersetzen Sie es durch Ihre AWS-Konto ID und *GreengrassV2TokenExchangeRole* ersetzen Sie es durch den Namen der Token-Austauschrolle, die Sie mit dem `--tes-role-name` [Installer-Argument](configure-installer.md) angeben.

**Anmerkung**  
Die `DeployDevTools` Richtlinienanweisung ist nur erforderlich, wenn Sie das `--deploy-dev-tools` Argument für das Installationsprogramm angeben.

------
#### [ Greengrass nucleus v2.5.0 and later ]

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
                "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------
#### [ Earlier than v2.5.0 ]

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
            "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
    "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------

# Greengrass-Servicerolle
<a name="greengrass-service-role"></a>

<a name="greengrass-service-role-intro"></a>Die Greengrass-Servicerolle ist eine AWS Identity and Access Management (IAM) -Servicerolle, die den AWS IoT Greengrass Zugriff auf Ressourcen von AWS Diensten in Ihrem Namen autorisiert. Diese Rolle ermöglicht es, die Identität von Client-Geräten AWS IoT Greengrass zu überprüfen und die Verbindungsinformationen der Kerngeräte zu verwalten.

**Anmerkung**  
AWS IoT Greengrass V1 verwendet diese Rolle auch, um wichtige Aufgaben auszuführen. Weitere Informationen finden Sie unter [Greengrass service role](https://docs.aws.amazon.com/greengrass/v1/developerguide/service-role.html) im *AWS IoT Greengrass V1 Developer Guide*.

Um auf Ihre Ressourcen zugreifen AWS IoT Greengrass zu können, muss die Greengrass-Servicerolle mit Ihrer verknüpft AWS-Konto und AWS IoT Greengrass als vertrauenswürdige Entität angegeben werden. Die Rolle muss die [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy)verwaltete Richtlinie oder eine benutzerdefinierte Richtlinie enthalten, die entsprechende Berechtigungen für die von Ihnen verwendeten AWS IoT Greengrass Funktionen definiert. AWS verwaltet diese Richtlinie, die den Satz von Berechtigungen definiert, die für den Zugriff auf Ihre AWS Ressourcen AWS IoT Greengrass verwendet werden. Weitere Informationen finden Sie unter [AWS verwaltete Richtlinie: AWSGreengrass ResourceAccessRolePolicy](security-iam-aws-managed-policies.md#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy).

Sie können dieselbe Greengrass-Servicerolle überall wiederverwenden AWS-Regionen, müssen sie jedoch an jedem AWS-Region Ort, an dem Sie sie verwenden AWS IoT Greengrass, Ihrem Konto zuordnen. Wenn die Servicerolle in der aktuellen Version nicht konfiguriert ist AWS-Region, können die Kerngeräte die Client-Geräte nicht verifizieren und die Verbindungsinformationen nicht aktualisieren.

In den folgenden Abschnitten wird beschrieben, wie Sie die Greengrass-Servicerolle mit dem AWS-Managementkonsole oder AWS CLI erstellen und verwalten.

**Topics**
+ [Die Greengrass-Servicerolle verwalten (Konsole)](#manage-greengrass-service-role-console)
+ [Die Greengrass-Servicerolle (CLI) verwalten](#manage-service-role-cli)
+ [Weitere Informationen finden Sie auch unter](#service-role-see-also)

**Anmerkung**  
Zusätzlich zu der Servicerolle, die den Zugriff auf Service-Ebene autorisiert, weisen Sie *Greengrass-Kerngeräten eine Token-Austauschrolle* zu. Die Token-Exchange-Rolle ist eine separate IAM-Rolle, die steuert, wie Greengrass-Komponenten und Lambda-Funktionen auf dem Kerngerät auf Dienste zugreifen können. AWS Weitere Informationen finden Sie unter [Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS](device-service-role.md).

## Die Greengrass-Servicerolle verwalten (Konsole)
<a name="manage-greengrass-service-role-console"></a>

Die AWS IoT Konsole macht es einfach, Ihre Greengrass-Servicerolle zu verwalten. Wenn Sie beispielsweise die Client-Geräteerkennung für ein Core-Gerät konfigurieren, prüft die Konsole, ob Ihr Gerät derzeit AWS-Region mit einer Greengrass-Servicerolle verknüpft AWS-Konto ist. Andernfalls kann die Konsole eine Servicerolle für Sie erstellen und konfigurieren. Weitere Informationen finden Sie unter [Erstellen der Greengrass-Servicerolle (Konsole)](#create-greengrass-service-role-console).

Sie können die Konsole für die folgenden Rollenverwaltungsaufgaben verwenden:

**Topics**
+ [Suchen Ihrer Greengrass-Servicerolle (Konsole)](#get-greengrass-service-role-console)
+ [Erstellen der Greengrass-Servicerolle (Konsole)](#create-greengrass-service-role-console)
+ [Ändern der Greengrass-Servicerolle (Konsole)](#update-greengrass-service-role-console)
+ [Trennen der Greengrass-Servicerolle (Konsole)](#remove-greengrass-service-role-console)

**Anmerkung**  
Der Benutzer, der bei der Konsole angemeldet ist, muss über Berechtigungen zum Anzeigen, Erstellen oder Ändern der Servicerolle verfügen.

### Suchen Ihrer Greengrass-Servicerolle (Konsole)
<a name="get-greengrass-service-role-console"></a>

Gehen Sie wie folgt vor, um die Servicerolle zu finden, die in der aktuellen Version AWS IoT Greengrass verwendet wird AWS-Region.

1. <a name="open-iot-console"></a>Navigieren Sie zur [AWS IoT -Konsole](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>Wählen Sie im Navigationsbereich **Settings** (Einstellungen).

1. Scrollen Sie zum Abschnitt **Greengrass service role (Greengrass-Servicerolle)**, um Ihre Servicerolle und deren Richtlinien anzuzeigen.

   Wenn Sie keine Servicerolle sehen, kann die Konsole eine für Sie erstellen oder konfigurieren. Weitere Informationen finden Sie unter [Erstellen der Greengrass-Servicerolle](#create-greengrass-service-role-console).

### Erstellen der Greengrass-Servicerolle (Konsole)
<a name="create-greengrass-service-role-console"></a>

Die Konsole kann eine standardmäßige Greengrass-Servicerolle für Sie erstellen und konfigurieren. Diese Rolle hat die folgenden Eigenschaften.


| Eigenschaft | Wert | 
| --- | --- | 
| Name | Greengrass\$1ServiceRole | 
| Trusted entity (Vertrauenswürdige Entität) | AWS service: greengrass | 
| Richtlinie | [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy) | 

**Anmerkung**  
Wenn Sie diese Rolle mit dem [AWS IoT Greengrass V1 Geräte-Setup-Skript](https://docs.aws.amazon.com/greengrass/v1/developerguide/quick-start.html) erstellen, lautet der Rollenname`GreengrassServiceRole_random-string`.

Wenn Sie die Client-Geräteerkennung für ein Core-Gerät konfigurieren, prüft die Konsole, ob Ihrem AWS-Konto in der aktuellen AWS-Region Version eine Greengrass-Servicerolle zugeordnet ist. Falls nicht, werden Sie von der Konsole aufgefordert, in Ihrem Namen Lese- und Schreibzugriff auf AWS Dienste zuzulassen AWS IoT Greengrass .

Wenn Sie die Erlaubnis erteilen, überprüft die Konsole, ob eine Rolle mit dem Namen in Ihrer `Greengrass_ServiceRole` AWS-Konto vorhanden ist.
+ Wenn die Rolle vorhanden ist, ordnet die Konsole die Servicerolle Ihrer AWS-Konto in der aktuellen AWS-Region Version zu.
+ Wenn die Rolle nicht existiert, erstellt die Konsole eine standardmäßige Greengrass-Servicerolle und fügt sie Ihrer aktuellen Rolle AWS-Konto hinzu. AWS-Region

**Anmerkung**  
Wenn Sie eine Servicerolle mit benutzerdefinierten Rollenrichtlinien erstellen möchten, verwenden Sie die IAM-Konsole, um die Rolle zu erstellen oder zu ändern. Weitere Informationen finden Sie unter [Erstellen einer Rolle zum Delegieren von Berechtigungen für einen AWS Dienst](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) oder [Ändern einer Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) im *IAM-Benutzerhandbuch*. Stellen Sie sicher, dass die Rolle Berechtigungen erteilt, die der verwalteten Richtlinie `AWSGreengrassResourceAccessRolePolicy` für die verwendeten Funktionen und Ressourcen entsprechen. Wir empfehlen, dass Sie auch die Kontextschlüssel `aws:SourceArn` und die `aws:SourceAccount` globalen Bedingungsschlüssel in Ihre Vertrauensrichtlinie aufnehmen, um das Sicherheitsproblem „*Confused Deputy*“ zu vermeiden. Die Bedingungskontextschlüssel schränken den Zugriff so ein, dass nur Anfragen zugelassen werden, die vom angegebenen Konto und Greengrass-Workspace stammen. Weitere Informationen zum Confused-Deputy-Problem finden Sie [Serviceübergreifende Confused-Deputy-Prävention](cross-service-confused-deputy-prevention.md).  
Wenn Sie eine Servicerolle erstellen, kehren Sie zur AWS IoT Konsole zurück und fügen Sie die Rolle Ihrer AWS-Konto hinzu. Sie können dies unter der **Greengrass-Servicerolle** auf der Seite **Einstellungen** tun.

### Ändern der Greengrass-Servicerolle (Konsole)
<a name="update-greengrass-service-role-console"></a>

Gehen Sie wie folgt vor, um eine andere Greengrass-Servicerolle auszuwählen, die Sie Ihrer AWS-Region aktuell AWS-Konto in der Konsole ausgewählten zuordnen möchten.

1. <a name="open-iot-console"></a>Navigieren Sie zur [AWS IoT -Konsole](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>Wählen Sie im Navigationsbereich **Settings** (Einstellungen).

1. Wählen Sie unter **Greengrass-Servicerolle** die Option **Rolle ändern** aus.

   Das Dialogfeld „**Greengrass-Serverolle aktualisieren**“ wird geöffnet und zeigt die IAM-Rollen in Ihrem System an AWS-Konto , die AWS IoT Greengrass als vertrauenswürdige Entität definiert sind.

1. Wählen Sie die Greengrass-Servicerolle aus, die Sie zuordnen möchten.

1. Wählen Sie **Rolle anhängen**.

### Trennen der Greengrass-Servicerolle (Konsole)
<a name="remove-greengrass-service-role-console"></a>

Gehen Sie wie folgt vor, um die Greengrass-Servicerolle von Ihrem aktuellen AWS Konto zu trennen. AWS-Region Dadurch werden die Berechtigungen für den Zugriff AWS IoT Greengrass auf AWS Dienste in der aktuellen Version aufgehoben. AWS-Region

**Wichtig**  
Durch das Trennen der Servicerolle können aktive Operationen unterbrochen werden.

1. <a name="open-iot-console"></a>Navigieren Sie zur [AWS IoT -Konsole](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>Wählen Sie im Navigationsbereich **Settings** (Einstellungen).

1. Wählen Sie unter **Greengrass-Servicerolle die Option Rolle** **trennen** aus.

1. Wählen Sie im Bestätigungsdialogfeld **Trennen** aus.

**Anmerkung**  
Wenn Sie die Rolle nicht mehr benötigen, können Sie sie in der IAM-Konsole löschen. Weitere Informationen zum Löschen von Rollen finden Sie unter [Löschen von Rollen oder Instance-Profilen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) im *IAM-Benutzerhandbuch*.  
Andere Rollen ermöglichen möglicherweise AWS IoT Greengrass den Zugriff auf Ihre Ressourcen. Um alle Rollen zu finden, mit denen AWS IoT Greengrass Sie in Ihrem Namen Berechtigungen übernehmen können, suchen Sie in der IAM-Konsole auf der Seite **Rollen** in der Spalte **Vertrauenswürdige Entitäten** nach Rollen, die **AWS service: greengrass** enthalten.

## Die Greengrass-Servicerolle (CLI) verwalten
<a name="manage-service-role-cli"></a>

Bei den folgenden Verfahren gehen wir davon aus, dass der für die Verwendung Ihres AWS-Konto installiert und konfiguriert AWS Command Line Interface ist. Weitere Informationen finden Sie unter [Installation, Aktualisierung und Deinstallation](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) [von AWS CLI und Konfiguration von AWS CLI im AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) *Benutzerhandbuch*.

Sie können das AWS CLI für die folgenden Rollenverwaltungsaufgaben verwenden:

**Topics**
+ [Abrufen der Greengrass-Servicerolle (CLI)](#get-service-role)
+ [Erstellen der Greengrass-Servicerolle (CLI)](#create-service-role)
+ [Entfernen der Greengrass-Servicerolle (CLI)](#remove-service-role)

### Abrufen der Greengrass-Servicerolle (CLI)
<a name="get-service-role"></a>

Verwenden Sie das folgende Verfahren, um herauszufinden, ob eine Greengrass-Servicerolle mit Ihrer AWS-Konto in einem AWS-Region verknüpft ist.
+ Rufen Sie die Servicerolle ab. *region*Ersetzen Sie durch Ihre AWS-Region (zum Beispiel`us-west-2`).

  ```
  aws greengrassv2 get-service-role-for-account --region region
  ```

  Wenn Ihrem Konto bereits eine Greengrass-Servicerolle zugeordnet ist, gibt die Anfrage die folgenden Rollenmetadaten zurück.

  ```
  {
    "associatedAt": "timestamp",
    "roleArn": "arn:aws:iam::account-id:role/path/role-name"
  }
  ```

  Wenn die Anfrage keine Rollenmetadaten zurückgibt, müssen Sie die Servicerolle erstellen (falls sie nicht existiert) und sie Ihrem Konto in der AWS-Region zuordnen.

### Erstellen der Greengrass-Servicerolle (CLI)
<a name="create-service-role"></a>

Gehen Sie wie folgt vor, um eine Rolle zu erstellen und sie Ihrer Rolle zuzuordnen AWS-Konto.

**Um die Servicerolle mit IAM zu erstellen**

1. Erstellen Sie eine Rolle mit einer Vertrauensrichtlinie, die es ermöglicht, die Rolle AWS IoT Greengrass zu übernehmen. In diesem Beispiel wird eine Rolle namens `Greengrass_ServiceRole` erstellt, aber Sie können einen anderen Namen verwenden. Wir empfehlen, dass Sie auch die Kontextschlüssel `aws:SourceArn` und die `aws:SourceAccount` globalen Bedingungsschlüssel in Ihre Vertrauensrichtlinie aufnehmen, um das Sicherheitsproblem „*Confused Deputy*“ zu vermeiden. Die Bedingungskontextschlüssel schränken den Zugriff so ein, dass nur Anfragen zugelassen werden, die vom angegebenen Konto und Greengrass-Workspace stammen. Weitere Informationen zum Confused-Deputy-Problem finden Sie [Serviceübergreifende Confused-Deputy-Prävention](cross-service-confused-deputy-prevention.md).

------
#### [ Linux or Unix ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:region:account-id:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "account-id"
           }
         }
       }
     ]
   }'
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"greengrass.amazonaws.com\"},\"Action\":\"sts:AssumeRole\",\"Condition\":{\"ArnLike\":{\"aws:SourceArn\":\"arn:aws:greengrass:region:account-id:*\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
   ```

------
#### [ PowerShell ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:region:account-id:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "account-id"
           }
         }
       }
     ]
   }'
   ```

------

1. Kopieren Sie den Rollen-ARN aus den Rollenmetadaten in der Ausgabe. Sie verknüpfen die Servicerolle mithilfe des ARN mit Ihrem Konto.

1. Fügen Sie der Rolle die `AWSGreengrassResourceAccessRolePolicy`-Richtlinie an.

   ```
   aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy
   ```

**Um die Servicerolle mit Ihrem zu verknüpfen AWS-Konto**
+ Weisen Sie die Rolle Ihrem Konto zu. *role-arn*Ersetzen Sie durch die Servicerolle *region* ARN und durch Ihre AWS-Region (z. B.`us-west-2`).

  ```
  aws greengrassv2 associate-service-role-to-account --role-arn role-arn --region region
  ```

  Bei Erfolg gibt die Anfrage die folgende Antwort zurück.

  ```
  {
    "associatedAt": "timestamp"
  }
  ```

### Entfernen der Greengrass-Servicerolle (CLI)
<a name="remove-service-role"></a>

Gehen Sie wie folgt vor, um die Greengrass-Servicerolle von Ihrer zu trennen. AWS-Konto
+ Haben Sie die Zuordnung der Servicerolle bei Ihrem Konto auf. *region*Ersetzen Sie durch Ihre AWS-Region (zum Beispiel). `us-west-2`

  ```
  aws greengrassv2 disassociate-service-role-from-account --region region
  ```

  Bei erfolgreicher Durchführung wird die folgende Meldung zurückgegeben.

  ```
  {
    "disassociatedAt": "timestamp"
  }
  ```
**Anmerkung**  
Sie sollten die Servicerolle löschen, wenn Sie sie in keiner verwenden AWS-Region. Verwenden Sie zuerst [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html), um die verwaltete `AWSGreengrassResourceAccessRolePolicy`-Richtlinie von der Rolle zu lösen, und verwenden Sie dann [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html), um die Rolle zu löschen. Weitere Informationen zum Löschen von Rollen finden Sie unter [Löschen von Rollen oder Instance-Profilen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) im *IAM-Benutzerhandbuch*.

## Weitere Informationen finden Sie auch unter
<a name="service-role-see-also"></a>
+ [Erstellen einer Rolle zum Delegieren von Berechtigungen für einen AWS Dienst](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) im *IAM-Benutzerhandbuch*
+ [Ändern einer Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) im *IAM-Benutzerhandbuch*
+ [Löschen von Rollen oder Instanzprofilen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) im *IAM-Benutzerhandbuch*
+ AWS IoT Greengrass Befehle in der *AWS CLI Befehlsreferenz*
  + [associate-service-role-to-Konto](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/associate-service-role-to-account.html)
  + [disassociate-service-role-from-konto](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/disassociate-service-role-from-account.html)
  + [get-service-role-for-konto](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/get-service-role-for-account.html)
+ *IAM-Befehle in der Befehlsreferenz AWS CLI *
  + [attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)
  + [create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)
  + [delete-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html)
  + [delete-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html)

# AWS verwaltete Richtlinien für AWS IoT Greengrass
<a name="security-iam-aws-managed-policies"></a>

Eine AWS verwaltete Richtlinie ist eine eigenständige Richtlinie, die von erstellt und verwaltet wird AWS. AWS Verwaltete Richtlinien dienen dazu, Berechtigungen für viele gängige Anwendungsfälle bereitzustellen, sodass Sie damit beginnen können, Benutzern, Gruppen und Rollen Berechtigungen zuzuweisen.

Beachten Sie, dass AWS verwaltete Richtlinien für Ihre speziellen Anwendungsfälle möglicherweise keine Berechtigungen mit den geringsten Rechten gewähren, da sie für alle AWS Kunden verfügbar sind. Wir empfehlen Ihnen, die Berechtigungen weiter zu reduzieren, indem Sie [vom Kunden verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) definieren, die speziell auf Ihre Anwendungsfälle zugeschnitten sind.

Sie können die in AWS verwalteten Richtlinien definierten Berechtigungen nicht ändern. Wenn die in einer AWS verwalteten Richtlinie definierten Berechtigungen AWS aktualisiert werden, wirkt sich das Update auf alle Prinzidentitäten (Benutzer, Gruppen und Rollen) aus, denen die Richtlinie zugeordnet ist. AWS aktualisiert eine AWS verwaltete Richtlinie höchstwahrscheinlich, wenn eine neue Richtlinie eingeführt AWS-Service wird oder neue API-Operationen für bestehende Dienste verfügbar werden.

Weitere Informationen finden Sie unter [Von AWS verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) im *IAM-Benutzerhandbuch*.

**Topics**
+ [AWS verwaltete Richtlinie: AWSGreengrass FullAccess](#aws-managed-policies-AWSGreengrassFullAccess)
+ [AWS verwaltete Richtlinie: AWSGreengrass ReadOnlyAccess](#aws-managed-policies-AWSGreengrassReadOnlyAccess)
+ [AWS verwaltete Richtlinie: AWSGreengrass ResourceAccessRolePolicy](#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy)
+ [AWS IoT Greengrass Aktualisierungen der AWS verwalteten Richtlinien](#aws-managed-policy-updates)

## AWS verwaltete Richtlinie: AWSGreengrass FullAccess
<a name="aws-managed-policies-AWSGreengrassFullAccess"></a>

Sie können die `AWSGreengrassFullAccess`-Richtlinie an Ihre IAM-Identitäten anfügen.

Diese Richtlinie gewährt Administratorberechtigungen, die einem Principal vollen Zugriff auf alle AWS IoT Greengrass Aktionen gewähren.

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `greengrass`— Ermöglicht Principals vollen Zugriff auf alle AWS IoT Greengrass Aktionen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS verwaltete Richtlinie: AWSGreengrass ReadOnlyAccess
<a name="aws-managed-policies-AWSGreengrassReadOnlyAccess"></a>

Sie können die `AWSGreengrassReadOnlyAccess`-Richtlinie an Ihre IAM-Identitäten anfügen.

Diese Richtlinie gewährt nur Leseberechtigungen, die es einem Prinzipal ermöglichen, Informationen darin anzuzeigen, aber nicht zu ändern. AWS IoT Greengrass Principals mit diesen Berechtigungen können beispielsweise die Liste der auf einem Greengrass-Core-Gerät bereitgestellten Komponenten einsehen, aber sie können keine Bereitstellung erstellen, um die Komponenten zu ändern, die auf diesem Gerät ausgeführt werden.

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `greengrass`— Ermöglicht es Prinzipalen, Aktionen durchzuführen, bei denen entweder eine Liste von Elementen oder Details zu einem Element zurückgegeben wird. Dazu gehören API-Operationen, die mit `List` oder `Get` beginnen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:List*",
                "greengrass:Get*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS verwaltete Richtlinie: AWSGreengrass ResourceAccessRolePolicy
<a name="aws-managed-policies-AWSGreengrassResourceAccessRolePolicy"></a>

Sie können die `AWSGreengrassResourceAccessRolePolicy` Richtlinie an Ihre IAM-Entitäten anhängen. AWS IoT Greengrass ordnet diese Richtlinie auch einer Servicerolle zu, mit der Sie Aktionen AWS IoT Greengrass in Ihrem Namen ausführen können. Weitere Informationen finden Sie unter [Greengrass-Servicerolle](greengrass-service-role.md).

Diese Richtlinie gewährt Administratorberechtigungen, mit denen AWS IoT Greengrass Sie wichtige Aufgaben ausführen können, z. B. das Abrufen Ihrer Lambda-Funktionen, AWS IoT das Verwalten von Geräteschatten und das Überprüfen von Greengrass-Client-Geräten.

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen.
+ `greengrass`— Verwalte Greengrass-Ressourcen.
+ `iot`(`*Shadow`) — AWS IoT Verwaltet Schatten, deren Namen die folgenden speziellen Identifikatoren enthalten. Diese Berechtigungen sind erforderlich, um mit Kerngeräten kommunizieren zu AWS IoT Greengrass können.
  + `*-gci`— AWS IoT Greengrass verwendet diesen Shadow, um Informationen zur Konnektivität von Kerngeräten zu speichern, sodass Client-Geräte Kerngeräte erkennen und eine Verbindung zu ihnen herstellen können.
  + `*-gcm`— AWS IoT Greengrass V1 verwendet diesen Shadow, um das Kerngerät darüber zu informieren, dass das Zertifikat der Greengrass-Gruppe (CA) rotiert wurde.
  + `*-gda`— AWS IoT Greengrass V1 verwendet diesen Shadow, um das Kerngerät über eine Bereitstellung zu informieren.
  + `GG_*`— Unbenutzt.
+ `iot`(`DescribeThing`und`DescribeCertificate`) — Informationen über AWS IoT Dinge und Zertifikate abrufen. Diese Berechtigungen sind erforderlich, damit Client-Geräte verifiziert werden AWS IoT Greengrass können, die eine Verbindung zu einem Core-Gerät herstellen. Weitere Informationen finden Sie unter [Interagieren Sie mit lokalen IoT-Geräten](interact-with-local-iot-devices.md).
+ `lambda`— Ruft Informationen über AWS Lambda Funktionen ab. Diese Berechtigung ist erforderlich, damit AWS IoT Greengrass V1 Lambda-Funktionen auf Greengrass-Kernen bereitstellen kann. Weitere Informationen finden Sie unter [Ausführen der Lambda-Funktion auf dem AWS IoT Greengrass Kern](https://docs.aws.amazon.com/greengrass/v1/developerguide/lambda-functions.html) im *AWS IoT Greengrass V1-Entwicklerhandbuch*.
+ `secretsmanager`— Ruft den Wert von AWS Secrets Manager Geheimnissen ab, deren Namen mit `greengrass-` beginnen. Diese Berechtigung ist erforderlich, damit AWS IoT Greengrass V1 Secrets Manager auf Greengrass-Kernen bereitstellen kann. Weitere Informationen finden Sie unter [Deploy Secrets to the AWS IoT Greengrass Core](https://docs.aws.amazon.com/greengrass/v1/developerguide/secrets.html) im *AWS IoT Greengrass V1-Entwicklerhandbuch*.
+ `s3`— Ruft Dateiobjekte aus S3-Buckets ab, deren Namen `greengrass` oder `sagemaker` enthalten. Diese Berechtigungen sind erforderlich, damit AWS IoT Greengrass V1 Ressourcen für maschinelles Lernen bereitstellen kann, die Sie in S3-Buckets speichern. Weitere Informationen finden Sie unter [Ressourcen für maschinelles Lernen](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html#ml-resources) im *AWS IoT Greengrass V1-Entwicklerhandbuch*.
+ `sagemaker`— Rufen Sie Informationen über Amazon SageMaker AI-Inferenzmodelle für maschinelles Lernen ab. Diese Berechtigung ist erforderlich, damit AWS IoT Greengrass V1 ML-Modelle auf Greengrass-Kernen bereitstellen kann. Weitere Informationen finden Sie unter [Perform Machine Learning-Inferenz](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html) im *AWS IoT Greengrass V1-Entwicklerhandbuch*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGreengrassAccessToShadows",
            "Action": [
                "iot:DeleteThingShadow",
                "iot:GetThingShadow",
                "iot:UpdateThingShadow"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:*:*:thing/GG_*",
                "arn:aws:iot:*:*:thing/*-gcm",
                "arn:aws:iot:*:*:thing/*-gda",
                "arn:aws:iot:*:*:thing/*-gci"
            ]
        },
        {
            "Sid": "AllowGreengrassToDescribeThings",
            "Action": [
                "iot:DescribeThing"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:thing/*"
        },
        {
            "Sid": "AllowGreengrassToDescribeCertificates",
            "Action": [
                "iot:DescribeCertificate"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:cert/*"
        },
        {
            "Sid": "AllowGreengrassToCallGreengrassServices",
            "Action": [
                "greengrass:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetLambdaFunctions",
            "Action": [
                "lambda:GetFunction",
                "lambda:GetFunctionConfiguration"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetGreengrassSecrets",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:secretsmanager:*:*:secret:greengrass-*"
        },
        {
            "Sid": "AllowGreengrassAccessToS3Objects",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*Greengrass*",
                "arn:aws:s3:::*GreenGrass*",
                "arn:aws:s3:::*greengrass*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*sagemaker*"
            ]
        },
        {
            "Sid": "AllowGreengrassAccessToS3BucketLocation",
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassAccessToSageMakerTrainingJobs",
            "Action": [
                "sagemaker:DescribeTrainingJob"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:sagemaker:*:*:training-job/*"
            ]
        }
    ]
}
```

------

## AWS IoT Greengrass Aktualisierungen der AWS verwalteten Richtlinien
<a name="aws-managed-policy-updates"></a>

Sie können Details zu Aktualisierungen AWS verwalteter Richtlinien AWS IoT Greengrass ab dem Zeitpunkt einsehen, zu dem dieser Dienst mit der Erfassung dieser Änderungen begann. Abonnieren Sie den RSS-Feed auf der Seite [AWS IoT Greengrass V2-Dokumentenverlauf, um automatische Benachrichtigungen über Änderungen an dieser Seite](document-history.md) zu erhalten.


| Änderungen | Beschreibung | Date | 
| --- | --- | --- | 
|  AWS IoT Greengrass hat begonnen, Änderungen zu verfolgen  |  AWS IoT Greengrass hat begonnen, Änderungen für die AWS verwalteten Richtlinien zu verfolgen.  |  2. Juli 2021  | 

# Serviceübergreifende Confused-Deputy-Prävention
<a name="cross-service-confused-deputy-prevention"></a>

Das Problem des verwirrten Stellvertreters ist ein Sicherheitsproblem, bei dem eine Entität, die keine Berechtigung zur Durchführung einer Aktion hat, eine privilegiertere Entität zur Durchführung der Aktion zwingen kann. In AWS kann ein dienstübergreifendes Identitätswechsels zu einem Problem mit dem verwirrten Stellvertreter führen. Ein dienstübergreifender Identitätswechsel kann auftreten, wenn ein Dienst (der *Anruf-Dienst*) einen anderen Dienst anruft (den *aufgerufenen Dienst*). Der aufrufende Service kann manipuliert werden, um seine Berechtigungen zu verwenden, um Aktionen auf die Ressourcen eines anderen Kunden auszuführen, für die er sonst keine Zugriffsberechtigung haben sollte. Um dies zu verhindern, bietet AWS Tools, mit denen Sie Ihre Daten für alle Services mit Serviceprinzipalen schützen können, die Zugriff auf Ressourcen in Ihrem Konto erhalten haben. 

Wir empfehlen, die Kontextschlüssel [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)und die [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)globalen Bedingungsschlüssel in Ressourcenrichtlinien zu verwenden, um die Berechtigungen einzuschränken, die der AWS IoT Greengrass Ressource einen anderen Dienst gewähren. Wenn Sie beide globalen Bedingungskontextschlüssel verwenden, müssen der `aws:SourceAccount`-Wert und das Konto im `aws:SourceArn`-Wert dieselbe Konto-ID verwenden, wenn sie in derselben Richtlinienanweisung verwendet werden.

Der Wert von `aws:SourceArn` muss die Greengrass-Kundenressource sein, die der `sts:AssumeRole` Anfrage zugeordnet ist.

Der effektivste Weg, um sich vor dem Confused-Deputy-Problem zu schützen, ist die Verwendung des globalen Bedingungskontext-Schlüssels `aws:SourceArn` mit dem vollständigen ARN der Ressource. Wenn Sie den vollständigen ARN der Ressource nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie den globalen Bedingungskontext-Schlüssel `aws:SourceArn` mit Platzhaltern (`*`) für die unbekannten Teile des ARN. Beispiel, `arn:aws:greengrass::account-id:*`. 

Ein Beispiel für eine Richtlinie, die die Kontextschlüssel `aws:SourceArn` und die `aws:SourceAccount` globalen Bedingungsschlüssel verwendet, finden Sie unter[Erstellen der Greengrass-Servicerolle](greengrass-service-role.md#create-service-role).

# Behebung von Identitäts- und Zugriffsproblemen für AWS IoT Greengrass
<a name="security_iam_troubleshoot"></a>

Verwenden Sie die folgenden Informationen, um häufig auftretende Probleme zu diagnostizieren und zu beheben, die bei der Arbeit mit AWS IoT Greengrass und IAM auftreten können.

**Topics**
+ [Ich bin nicht berechtigt, eine Aktion durchzuführen in AWS IoT Greengrass](#security_iam_troubleshoot-no-permissions)
+ [Ich bin nicht berechtigt, IAM auszuführen: PassRole](#security_iam_troubleshoot-passrole)
+ [Ich bin Administrator und möchte anderen Zugriff gewähren AWS IoT Greengrass](#security_iam_troubleshoot-admin-delegate)
+ [Ich möchte Personen außerhalb von mir den Zugriff auf meine Ressourcen ermöglichen AWS-Konto AWS IoT Greengrass](#security_iam_troubleshoot-cross-account-access)

Hilfe zur allgemeinen Problembehandlung finden Sie unter [Problembehebung AWS IoT Greengrass V2](troubleshooting.md).

## Ich bin nicht berechtigt, eine Aktion durchzuführen in AWS IoT Greengrass
<a name="security_iam_troubleshoot-no-permissions"></a>

Wenn Sie die Fehlermeldung erhalten, dass Sie nicht zur Ausführung einer Aktion autorisiert sind, müssen Sie sich an Ihren Administrator wenden, um Unterstützung zu erhalten. Ihr Administrator ist die Person, die Ihnen Ihren Benutzernamen und Ihr Passwort bereitgestellt hat.

Der folgende Beispielfehler tritt auf, wenn der `mateojackson` IAM-Benutzer versucht, Details zu einem Kerngerät anzuzeigen, aber nicht über die `greengrass:GetCoreDevice` entsprechenden Berechtigungen verfügt.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: greengrass:GetCoreDevice on resource: arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore
```

In diesem Fall bittet Mateo seinen Administrator um die Aktualisierung seiner Richtlinien, um unter Verwendung der Aktion `arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore` auf die Ressource `greengrass:GetCoreDevice` zugreifen zu können.

Im Folgenden sind allgemeine IAM-Probleme aufgeführt, die bei der Arbeit mit auftreten können. AWS IoT Greengrass

## Ich bin nicht berechtigt, IAM auszuführen: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Wenn Sie die Fehlermeldung erhalten, dass Sie nicht zum Durchführen der `iam:PassRole`-Aktion autorisiert sind, müssen Ihre Richtlinien aktualisiert werden, um eine Rolle an AWS IoT Greengrassübergeben zu können.

Einige AWS-Services ermöglichen es Ihnen, eine bestehende Rolle an diesen Dienst zu übergeben, anstatt eine neue Servicerolle oder eine dienstverknüpfte Rolle zu erstellen. Hierzu benötigen Sie Berechtigungen für die Übergabe der Rolle an den Dienst.

Der folgende Beispielfehler tritt auf, wenn ein IAM-Benutzer mit dem Namen `marymajor` versucht, die Konsole zu verwenden, um eine Aktion in AWS IoT Greengrass auszuführen. Die Aktion erfordert jedoch, dass der Service über Berechtigungen verfügt, die durch eine Servicerolle gewährt werden. Mary besitzt keine Berechtigungen für die Übergabe der Rolle an den Dienst.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

In diesem Fall müssen die Richtlinien von Mary aktualisiert werden, um die Aktion `iam:PassRole` ausführen zu können.

Wenn Sie Hilfe benötigen, wenden Sie sich an Ihren AWS Administrator. Ihr Administrator hat Ihnen Ihre Anmeldeinformationen zur Verfügung gestellt.

## Ich bin Administrator und möchte anderen Zugriff gewähren AWS IoT Greengrass
<a name="security_iam_troubleshoot-admin-delegate"></a>

Um anderen den Zugriff zu ermöglichen AWS IoT Greengrass, müssen Sie den Personen oder Anwendungen, die Zugriff benötigen, die entsprechenden Berechtigungen erteilen. Wenn Sie Personen und Anwendungen verwalten, weisen Sie Benutzern oder Gruppen Berechtigungssätze zu, um deren Zugriffsebene zu definieren. AWS IAM Identity Center Mit Berechtigungssätzen werden automatisch IAM-Richtlinien erstellt und den IAM-Rollen zugewiesen, die der Person oder Anwendung zugeordnet sind. Weitere Informationen finden Sie im *AWS IAM Identity Center Benutzerhandbuch* unter [Berechtigungssätze](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html).

Wenn Sie IAM Identity Center nicht verwenden, müssen Sie IAM-Entitäten (Benutzer oder Rollen) für die Personen oder Anwendungen erstellen, die Zugriff benötigen. Anschließend müssen Sie der Entität eine Richtlinie anfügen, die dieser die korrekten Berechtigungen in AWS IoT Greengrass gewährt. Nachdem die Berechtigungen erteilt wurden, stellen Sie dem Benutzer oder Anwendungsentwickler die Anmeldeinformationen zur Verfügung. Sie werden diese Anmeldeinformationen für den Zugriff verwenden AWS. *Weitere Informationen zum Erstellen von IAM-Benutzern, -Gruppen, -Richtlinien und -Berechtigungen finden Sie im [IAM-Benutzerhandbuch unter IAM-Identitäten](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) [sowie Richtlinien und Berechtigungen in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).*

## Ich möchte Personen außerhalb von mir den Zugriff auf meine Ressourcen ermöglichen AWS-Konto AWS IoT Greengrass
<a name="security_iam_troubleshoot-cross-account-access"></a>

Sie können eine IAM-Rolle erstellen, mit der Benutzer in anderen Konten oder Personen außerhalb Ihrer Organisation auf Ihre AWS Ressourcen zugreifen können. Sie können angeben, welchen Personen vertraut werden soll, so dass diese die Rolle übernehmen können. *Weitere Informationen finden Sie im IAM-Benutzerhandbuch unter [AWS-Konto Gewähren des Zugriffs für einen IAM-Benutzer in einem anderen AWS-Konto , das Ihnen gehört](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)[, und Bereitstellen des Zugriffs für Drittanbieter](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html).*

AWS IoT Greengrass unterstützt keinen kontenübergreifenden Zugriff auf der Grundlage ressourcenbasierter Richtlinien oder Zugriffskontrolllisten (). ACLs

# Geräteverkehr über einen Proxy oder eine Firewall zulassen
<a name="allow-device-traffic"></a>

Greengrass-Kerngeräte und Greengrass-Komponenten führen ausgehende Anfragen an AWS Dienste und andere Websites durch. Aus Sicherheitsgründen können Sie den ausgehenden Datenverkehr auf eine kleine Anzahl von Endpunkten und Ports beschränken. Sie können die folgenden Informationen zu Endpunkten und Ports verwenden, um den Geräteverkehr über einen Proxy, eine Firewall oder eine [Amazon VPC-Sicherheitsgruppe](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) zu begrenzen. Weitere Informationen zur Konfiguration eines Core-Geräts für die Verwendung eines Proxys finden Sie unter. [Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy](configure-greengrass-core-v2.md#configure-alpn-network-proxy)

**Topics**
+ [Endpunkte für den Basisbetrieb](#core-endpoints)
+ [Endpunkte für die Installation mit automatischer Bereitstellung](#automatic-provisioning-endpoints)
+ [Endpunkte für AWS von -bereitgestellte Komponenten](#public-component-endpoints)

## Endpunkte für den Basisbetrieb
<a name="core-endpoints"></a>

Greengrass-Core-Geräte verwenden die folgenden Endpunkte und Ports für den Basisbetrieb.

### Endpunkte abrufen AWS IoT
<a name="retrieve-iot-endpoints"></a>

Holen Sie sich die AWS IoT Endpunkte für Sie und speichern Sie sie AWS-Konto, um sie später zu verwenden. Ihr Gerät verwendet diese Endpunkte, um eine Verbindung herzustellen. AWS IoT Gehen Sie wie folgt vor:

1. Holen Sie sich den AWS IoT Datenendpunkt für Ihren AWS-Konto.

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   Die Antwort sieht dem folgenden Beispiel ähnlich, wenn die Anfrage erfolgreich ist.

   ```
   {
     "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
   }
   ```

1. Rufen Sie den Endpunkt der AWS IoT Anmeldeinformationen für Ihren AWS-Konto ab.

   ```
   aws iot describe-endpoint --endpoint-type iot:CredentialProvider
   ```

   Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

   ```
   {
     "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
   }
   ```


| Endpoint | Port | Erforderlich | Description | 
| --- | --- | --- | --- | 
|  `greengrass-ats.iot.region.amazonaws.com`  | 8443 oder 443 | Ja |  Wird für Datenebenenoperationen verwendet, z. B. für die Installation von Bereitstellungen und die Arbeit mit Client-Geräten.  | 
|  `device-data-prefix-ats.iot.region.amazonaws.com`  |  MQTT: 8883 oder 443 HTTPS: 8443 oder 443  | Ja |  Wird für Datenebenenoperationen zur Geräteverwaltung verwendet, z. B. für MQTT-Kommunikation und Shadow-Synchronisierung mit. AWS IoT Core  | 
|  `device-credentials-prefix.credentials.iot.region.amazonaws.com`  | 443 | Ja |  Wird zum Abrufen von AWS Anmeldeinformationen verwendet, die das Kerngerät verwendet, um Komponentenartefakte von Amazon S3 herunterzuladen und andere Operationen auszuführen. Weitere Informationen finden Sie unter [Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS](device-service-role.md).  | 
|  `*.s3.amazonaws.com` `*.s3.region.amazonaws.com`  | 443 | Ja |  Wird für Bereitstellungen verwendet. Dieses Format beinhaltet das `*` Zeichen, da Endpunktpräfixe intern gesteuert werden und sich jederzeit ändern können.  | 
|  `data.iot.region.amazonaws.com`  | 443 | Nein |  Erforderlich, wenn auf dem Kerngerät eine Version von [Greengrass Nucleus](greengrass-nucleus-component.md) vor v2.4.0 ausgeführt wird und es für die Verwendung eines Netzwerk-Proxys konfiguriert ist. Das Kerngerät verwendet diesen Endpunkt für die MQTT-Kommunikation mit einem Proxy AWS IoT Core . Weitere Informationen finden Sie unter [Konfigurieren Sie einen Netzwerk-Proxy](configure-greengrass-core-v2.md#configure-network-proxy).  | 

## Endpunkte für die Installation mit automatischer Bereitstellung
<a name="automatic-provisioning-endpoints"></a>

Greengrass-Core-Geräte verwenden die folgenden Endpunkte und Ports, wenn Sie [die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung installieren](quick-installation.md).


| Endpoint | Port | Erforderlich | Description | 
| --- | --- | --- | --- | 
|  `iot.region.amazonaws.com`  | 443 | Ja |  Wird verwendet, um AWS IoT Ressourcen zu erstellen und Informationen über vorhandene Ressourcen abzurufen. AWS IoT   | 
|  `iam.amazonaws.com`  | 443 | Ja |  Wird verwendet, um IAM-Ressourcen zu erstellen und Informationen über vorhandene IAM-Ressourcen abzurufen.  | 
|  `sts.region.amazonaws.com`  | 443 | Ja |  Wird verwendet, um die ID Ihres abzurufen. AWS-Konto  | 
|  `greengrass.region.amazonaws.com`  | 443 | Nein |  Erforderlich, wenn Sie das `--deploy-dev-tools` Argument verwenden, um die Greengrass-CLI-Komponente auf dem Kerngerät bereitzustellen.  | 

## Endpunkte für AWS von -bereitgestellte Komponenten
<a name="public-component-endpoints"></a>

Greengrass-Core-Geräte verwenden zusätzliche Endpunkte, je nachdem, welche Softwarekomponenten sie ausführen. Die Endpunkte, die für jede AWS bereitgestellte Komponente erforderlich sind, finden Sie im Abschnitt „**Anforderungen**“ auf der jeweiligen Komponentenseite in diesem Entwicklerhandbuch. Weitere Informationen finden Sie unter [AWS-mitgelieferte Komponenten](public-components.md).

# Konformitätsvalidierung für AWS IoT Greengrass
<a name="compliance-validation"></a>

Informationen darüber, ob AWS-Service ein [AWS-Services in den Geltungsbereich bestimmter Compliance-Programme fällt, finden Sie unter Umfang nach Compliance-Programm AWS-Services unter](https://aws.amazon.com/compliance/services-in-scope/) . Wählen Sie dort das Compliance-Programm aus, an dem Sie interessiert sind. Allgemeine Informationen finden Sie unter [AWS Compliance-Programme AWS](https://aws.amazon.com/compliance/programs/) .

Sie können Prüfberichte von Drittanbietern unter herunterladen AWS Artifact. Weitere Informationen finden Sie unter [Berichte herunterladen unter ](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

Ihre Verantwortung für die Einhaltung der Vorschriften bei der Nutzung AWS-Services hängt von der Vertraulichkeit Ihrer Daten, den Compliance-Zielen Ihres Unternehmens und den geltenden Gesetzen und Vorschriften ab. Weitere Informationen zu Ihrer Verantwortung für die Einhaltung der Vorschriften bei der Nutzung AWS-Services finden Sie in der [AWS Sicherheitsdokumentation](https://docs.aws.amazon.com/security/).

# FIPS-Endpunkte
<a name="FIPS"></a>

AWS IoT Greengrass unterstützt die Verwendung von FIPS-Endpunkten ([Federal Information Processing Standard (FIPS) 140-2)](https://aws.amazon.com/compliance/fips/). Wenn der FIPS-Modus aktiviert ist, sollten alle Datenübertragungen, einschließlich der HTTP- und MQTT-Protokolle, zu AWS Cloud Diensten Verbindungen mit den entsprechenden FIPS-konformen Endpunkten ([FIPS](https://aws.amazon.com/compliance/fips/) — Amazon Web Services ()) aufrufen und herstellen.AWS

MQTT-Kommunikation zur AWS IoT Nutzung des FIPS-Endpunkts der IoT-Datenebene ([Verbindung zu FIPS-Endpunkten - AWS IoT Core) und der von AWS IoT ihm entwickelten FIPS-konformen](https://docs.aws.amazon.com/iot/latest/developerguide/iot-connect-fips.html#iot-connect-fips-data) kryptografischen Bibliothek aws-lc. AWS

Für HTTP-Kommunikation in Greengrass:
+ Für Nucleus- und Plugin-Komponenten werden alle SDK-HTTP-Clients mit FIPS-Endpunkten konfiguriert, indem die Systemeigenschaft AWS\$1USE\$1FIPS\$1ENDPOINT auf true gesetzt wird;
+ Bei generischen Komponenten beginnen alle Komponenten damit, dass die Systemeigenschaft auf true AWS\$1USE\$1FIPS\$1ENDPOINT gesetzt ist. Dieser Prozess stellt sicher, dass die SDK-HTTP-Clients, die von diesen generischen Komponenten verwendet werden, Anfragen an FIPS-konforme Endpunkte senden.

**Anmerkung**  
Im Fall von Stream Manager übergibt Nucleus die Umgebungsvariable \$1FIPS\$1MODE. AWS\$1GG Diese Umgebungsvariable ermöglicht es den im Stream Manager verwendeten HTTP-Clients, den entsprechenden FIPS-konformen Endpunkt zu identifizieren und eine Verbindung zu diesem herzustellen.

AWS IoT Greengrass bietet zwei Methoden zur Aktivierung des FIPS-Modus: Bereitstellung und Bereitstellung. Um den FIPS-Modus zu aktivieren, müssen Sie den Konfigurationsparameter `fipsMode` auf true setzen. Nucleus setzt dann die Systemeigenschaft AWS\$1USE\$1FIPS\$1ENDPOINT auf true und gibt sie als Umgebungsvariable an alle anderen Komponenten weiter. Lädt außerdem ein Root-CA-Zertifikat (CA3) herunter und hängt es an die bestehende RootCA.pem (oder .pem) -Datei an. AWS IoT Greengrass AmazonRoot CA1 Wenn Sie FIPS über eine neue Bereitstellung aktivieren, wird Nucleus neu gestartet, um sicherzustellen, dass die Systemeigenschaft nach der Aktivierung des FIPS-Modus wirksam wird.

 Neben der Konfiguration des `fipsMode` Parameters müssen Sie auch die `iotDataEndpoint` Parameter `iotCredEndpoint` und `greengrassDataEndpoint` konfigurieren. Weitere Informationen finden Sie im entsprechenden Dokument unten.

## Aktivieren Sie FIPS-Endpunkte bei der Bereitstellung
<a name="FIPS-deployment"></a>

Besorgen Sie sich die AWS IoT Endgeräte für Sie und speichern Sie sie AWS-Konto, um sie später zu verwenden. Ihr Gerät verwendet diese Endpunkte, um eine Verbindung herzustellen. AWS IoT Es sind zwei Endpunkte erforderlich, der `iotDataEndpoint` und der. `iotCredEndpoint` Gehen Sie wie folgt vor:

1. Rufen Sie den FIPS-Datenendpunkt für Ihre Region in den [AWS IoT Core FIPS-Datenebenen-Endpunkten](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints) ab. Der FIPS-Datenendpunkt für Sie AWS-Konto sollte wie folgt aussehen: *data.iot-fips.us-west-2.amazonaws.com*

1. Rufen Sie den Endpunkt der FIPS-Anmeldeinformationen für Ihre Region auf den Endpunkten der [AWS IoT Core FIPS-Datenebene ab](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Der Endpunkt der FIPS-Anmeldeinformationen für Sie AWS-Konto sollte wie folgt aussehen: *data.credentials.iot-fips.us-west-2.amazonaws.com*

Um FIPS dann bei einer Bereitstellung zu aktivieren, müssen Sie die folgende Konfiguration auf Nucleus anwenden. Die Konfiguration, die in der Bereitstellung zusammengeführt werden soll, lautet wie folgt.

------
#### [ Console ]

**Konfiguration, die zusammengeführt werden soll**  

```
{
  "fipsMode": "true",
  "iotDataEndpoint": "data.iot-fips.us-west-2.amazonaws.com",
  "greengrassDataPlaneEndpoint": "iotData",
  "iotCredEndpoint": "data.credentials.iot-fips.us-west-2.amazonaws.com"
}
```

------
#### [ AWS CLI ]

Der folgende Befehl erstellt eine Bereitstellung auf einem Core-Gerät.

```
aws greengrassv2 create-deployment --cli-input-json file://dashboard-deployment.json
```

Die `dashboard-deployment.json` Datei enthält das folgende JSON-Dokument.

```
{
  "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
  "deploymentName": "Deployment for MyGreengrassCore",
  "components": {
    "aws.greengrass.Nucleus": {
      "componentVersion": "2.13.0",
      "configurationUpdate": {
        "merge":{\"fipsMode\":\"true\",\"iotDataEndpoint\":\"data.iot-fips.us-west-2.amazonaws.com\",\"greengrassDataPlaneEndpoint\":\"iotData\",\"iotCredEndpoint\":\"data.credentials.iot-fips.us-west-2.amazonaws.com\"}"
      }
    }
  }
}
```

------
#### [ Greengrass CLI ]

Der folgende [Greengrass-CLI-Befehl](greengrass-cli-component.md) erstellt eine lokale Bereitstellung auf einem Core-Gerät.

```
sudo greengrass-cli deployment create \
  --recipeDir recipes \
  --artifactDir artifacts \
  --merge "aws.greengrass.Nucleus=2.13.0" \
  --update-config dashboard-configuration.json
```

Die `dashboard-configuration.json` Datei enthält das folgende JSON-Dokument.

```
{
  "aws.greengrass.Nucleus": {
    "MERGE": {
       "fipsMode": "true",
       "iotDataEndpoint": "data.iot-fips.us-west-2.amazonaws.com",
       "greengrassDataPlaneEndpoint": "iotData",
       "iotCredEndpoint": "data.credentials.iot-fips.us-west-2.amazonaws.com"

    }
  }
}
```

------

## Installieren Sie Nucleus mit FIPS-Endpunkten mit manueller Ressourcenbereitstellung
<a name="FIPS-manual-installation"></a>

Manuelles Bereitstellen von AWS Ressourcen für AWS IoT Greengrass V2 Kerngeräte mit FIPS-Endpunkten

**Wichtig**  <a name="install-greengrass-core-requirements-note"></a>
Bevor Sie die AWS IoT Greengrass Core-Software herunterladen, überprüfen Sie, ob Ihr Kerngerät die [Anforderungen](greengrass-nucleus-component.md#greengrass-v2-requirements) für die Installation und Ausführung der AWS IoT Greengrass Core-Software v2.0 erfüllt.

**Topics**
+ [Endpunkte abrufen AWS IoT](#w2ab1c58c44c23b9)
+ [Erstelle ein Ding AWS IoT](#create-iot-thing)
+ [Erstellen Sie das Ding-Zertifikat](#create-thing-certificate-fips)
+ [Erstellen Sie eine Token-Austausch-Rolle](#create-token-exchange-role)
+ [Laden Sie Zertifikate auf das Gerät herunter](#download-thing-certificates)
+ [Richten Sie die Geräteumgebung ein](#set-up-device-environment)
+ [Laden Sie die AWS IoT Greengrass Core-Software herunter](#download-greengrass-core-v2)
+ [Installieren Sie die Core-Software AWS IoT Greengrass](#run-greengrass-core-v2-installer-manual-fips)

### Endpunkte abrufen AWS IoT
<a name="w2ab1c58c44c23b9"></a>

Holen Sie sich die AWS IoT Endpunkte für Sie und speichern Sie sie AWS-Konto, um sie später zu verwenden. Ihr Gerät verwendet diese Endpunkte, um eine Verbindung herzustellen. AWS IoT Es sind zwei Endpunkte erforderlich, der `iotDataEndpoint` und der. `iotCredEndpoint` Gehen Sie wie folgt vor:

1. Rufen Sie den FIPS-Datenendpunkt für Ihre Region in den [AWS IoT Core FIPS-Datenebenen-Endpunkten](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints) ab. Der FIPS-Datenendpunkt für Sie AWS-Konto sollte wie folgt aussehen: *data.iot-fips.us-west-2.amazonaws.com*

1. Rufen Sie den Endpunkt der FIPS-Anmeldeinformationen für Ihre Region auf den Endpunkten der [AWS IoT Core FIPS-Datenebene ab](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Der Endpunkt der FIPS-Anmeldeinformationen für Sie AWS-Konto sollte wie folgt aussehen: *data.credentials.iot-fips.us-west-2.amazonaws.com*

### Erstelle ein Ding AWS IoT
<a name="create-iot-thing"></a>

AWS IoT *Dinge* stehen für Geräte und logische Entitäten, mit denen eine Verbindung hergestellt wird AWS IoT. Greengrass-Core-Geräte sind AWS IoT Dinge. Wenn Sie ein Gerät als Objekt registrieren AWS IoT , kann dieses Gerät ein digitales Zertifikat zur Authentifizierung verwenden. AWS

In diesem Abschnitt erstellen Sie eine AWS IoT Sache, die Ihr Gerät repräsentiert.

**Um ein AWS IoT Ding zu erstellen**

1. Erstelle AWS IoT etwas für dein Gerät. Führen Sie auf Ihrem Entwicklungscomputer den folgenden Befehl aus.
   + *MyGreengrassCore*Ersetzen Sie es durch den Namen des zu verwendenden Dings. Dieser Name ist auch der Name Ihres Greengrass-Core-Geräts.
**Anmerkung**  <a name="install-argument-thing-name-constraint"></a>
Der Name der Sache darf keine Doppelpunkte (`:`) enthalten.

   ```
   aws iot create-thing --thing-name MyGreengrassCore
   ```

   Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

   ```
   {
     "thingName": "MyGreengrassCore",
     "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
     "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42"
   }
   ```

1. (Optional) Fügen Sie das AWS IoT Ding einer neuen oder vorhandenen Dinggruppe hinzu. Sie verwenden Dinggruppen, um Flotten von Greengrass-Kerngeräten zu verwalten. Wenn Sie Softwarekomponenten auf Ihren Geräten bereitstellen, können Sie einzelne Geräte oder Gerätegruppen gezielt ansprechen. Sie können ein Gerät zu einer Dinggruppe mit einer aktiven Greengrass-Bereitstellung hinzufügen, um die Softwarekomponenten dieser Dinggruppe auf dem Gerät bereitzustellen. Gehen Sie wie folgt vor:

   1. (Optional) Erstellen Sie eine AWS IoT Dinggruppe.
      + *MyGreengrassCoreGroup*Ersetzen Sie durch den Namen der zu erstellenden Dinggruppe.
**Anmerkung**  <a name="install-argument-thing-group-name-constraint"></a>
Der Name der Dinggruppe darf keine Doppelpunkte (`:`) enthalten.

      ```
      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup
      ```

      Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

      ```
      {
        "thingGroupName": "MyGreengrassCoreGroup",
        "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
        "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa"
      }
      ```

   1. Fügt das AWS IoT Ding einer Dinggruppe hinzu.
      + Ersetze es *MyGreengrassCore* durch den Namen deines AWS IoT Dings.
      + Ersetze es *MyGreengrassCoreGroup* durch den Namen der Dinggruppe.

      ```
      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup
      ```

      Der Befehl hat keine Ausgabe, wenn die Anfrage erfolgreich ist.

### Erstellen Sie das Ding-Zertifikat
<a name="create-thing-certificate-fips"></a>

<a name="create-thing-certificate-intro-1"></a>Wenn Sie ein Gerät als AWS IoT Ding registrieren, kann dieses Gerät ein digitales Zertifikat zur Authentifizierung verwenden. AWS Dieses Zertifikat ermöglicht dem Gerät die Kommunikation mit AWS IoT und AWS IoT Greengrass.

<a name="create-thing-certificate-intro-2"></a>In diesem Abschnitt erstellen und laden Sie Zertifikate herunter, mit denen Ihr Gerät eine Verbindung herstellen kann AWS.

<a name="create-thing-certificate-intro-3"></a>Wenn Sie die AWS IoT Greengrass Core-Software so konfigurieren möchten, dass sie ein Hardware-Sicherheitsmodul (HSM) verwendet, um den privaten Schlüssel und das Zertifikat sicher zu speichern, gehen Sie wie folgt vor, um das Zertifikat aus einem privaten Schlüssel in einem HSM zu erstellen. Folgen Sie andernfalls den Schritten zum Erstellen des Zertifikats und des privaten Schlüssels im AWS IoT Dienst. Die Hardware-Sicherheitsfunktion ist nur auf Linux-Geräten verfügbar. Weitere Informationen zur Hardwaresicherheit und zu den Voraussetzungen für ihre Verwendung finden Sie unter[Integration von Hardware-Sicherheit](hardware-security.md).

#### Erstellen Sie das Zertifikat und den privaten Schlüssel im AWS IoT Dienst
<a name="create-thing-certificate-cloud"></a><a name="create-thing-certificate-cloud-steps"></a>

**Um das Ding-Zertifikat zu erstellen**

1. Erstellen Sie einen Ordner, in den Sie die Zertifikate für das AWS IoT Ding herunterladen.

   ```
   mkdir greengrass-v2-certs
   ```

1. Erstellen Sie die Zertifikate für das AWS IoT Ding und laden Sie sie herunter.

   ```
   aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile greengrass-v2-certs/device.pem.crt --public-key-outfile greengrass-v2-certs/public.pem.key --private-key-outfile greengrass-v2-certs/private.pem.key
   ```

   Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----",
     "keyPair": {
       "PublicKey": "-----BEGIN PUBLIC KEY-----\
   MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\
   MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\
   59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\
   hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\
   FQIDAQAB\
   -----END PUBLIC KEY-----\
   ",
       "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\
   key omitted for security reasons\
   -----END RSA PRIVATE KEY-----\
   "
     }
   }
   ```

   Speichern Sie den Amazon-Ressourcennamen (ARN) des Zertifikats, um das Zertifikat später zu konfigurieren.

#### Erstellen Sie das Zertifikat aus einem privaten Schlüssel in einem HSM
<a name="create-thing-certificate-hardware-security"></a>

**Anmerkung**  
Diese Funktion ist für Version 2.5.3 und höher der [Greengrass](greengrass-nucleus-component.md) Nucleus-Komponente verfügbar. AWS IoT Greengrass unterstützt diese Funktion derzeit nicht auf Windows Core-Geräten. 

**Um das Ding-Zertifikat zu erstellen**

1. Initialisieren Sie auf dem Core-Gerät ein PKCS \$111 -Token im HSM und generieren Sie einen privaten Schlüssel. Der private Schlüssel muss ein RSA-Schlüssel mit einer RSA-2048-Schlüsselgröße (oder größer) oder ein ECC-Schlüssel sein.
**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.

   In der Dokumentation zu Ihrem HSM erfahren Sie, wie Sie das Token initialisieren und den privaten Schlüssel generieren. Wenn Ihr HSM Objekte unterstützt IDs, geben Sie bei der Generierung des privaten Schlüssels eine Objekt-ID an. Speichern Sie die Slot-ID, die Benutzer-PIN, die Objektbezeichnung und die Objekt-ID (falls Ihr HSM eine verwendet), die Sie bei der Initialisierung des Tokens und der Generierung des privaten Schlüssels angeben. Sie verwenden diese Werte später, wenn Sie das Ding-Zertifikat in das HSM importieren und die Core-Software konfigurieren. AWS IoT Greengrass 

1. Erstellen Sie eine Zertifikatsignieranforderung (CSR) aus dem privaten Schlüssel. AWS IoT verwendet diese CSR, um ein Ding-Zertifikat für den privaten Schlüssel zu erstellen, den Sie im HSM generiert haben. Informationen zum Erstellen einer CSR aus dem privaten Schlüssel finden Sie in der Dokumentation zu Ihrem HSM. Die CSR ist eine Datei, wie z. `iotdevicekey.csr`

1. Kopieren Sie die CSR vom Gerät auf Ihren Entwicklungscomputer. Wenn SSH und SCP auf dem Entwicklungscomputer und dem Gerät aktiviert sind, können Sie den `scp` Befehl auf Ihrem Entwicklungscomputer verwenden, um die CSR zu übertragen. *device-ip-address*Ersetzen Sie es durch die IP-Adresse Ihres Geräts und *\$1/iotdevicekey.csr* ersetzen Sie es durch den Pfad zur CSR-Datei auf dem Gerät.

   ```
   scp device-ip-address:~/iotdevicekey.csr iotdevicekey.csr
   ```

1. Erstellen Sie auf Ihrem Entwicklungscomputer einen Ordner, in den Sie das Zertifikat für das AWS IoT Ding herunterladen.

   ```
   mkdir greengrass-v2-certs
   ```

1. Verwenden Sie die CSR-Datei, um das Zertifikat für das AWS IoT Ding zu erstellen und auf Ihren Entwicklungscomputer herunterzuladen.

   ```
   aws iot create-certificate-from-csr --set-as-active --certificate-signing-request=file://iotdevicekey.csr --certificate-pem-outfile greengrass-v2-certs/device.pem.crt
   ```

   Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----"
   }
   ```

   Speichern Sie den ARN des Zertifikats, um das Zertifikat später zu konfigurieren.

Als Nächstes konfigurieren Sie das Ding-Zertifikat. Weitere Informationen finden Sie unter [Konfigurieren Sie das Ding-Zertifikat](manual-installation.md#configure-thing-certificate).

### Erstellen Sie eine Token-Austausch-Rolle
<a name="create-token-exchange-role"></a>

<a name="installation-create-token-exchange-role-intro"></a>Greengrass-Core-Geräte verwenden eine IAM-Servicerolle, die so genannte *Token-Exchange-Rolle*, um Aufrufe von Diensten zu autorisieren. AWS Das Gerät verwendet den AWS IoT Anmeldeinformationsanbieter, um temporäre AWS Anmeldeinformationen für diese Rolle abzurufen. Dadurch kann das Gerät mit Amazon Logs interagieren AWS IoT, Protokolle an Amazon CloudWatch Logs senden und benutzerdefinierte Komponentenartefakte von Amazon S3 herunterladen. Weitere Informationen finden Sie unter [Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS](device-service-role.md).

<a name="installation-create-token-exchange-role-alias-intro"></a>Sie verwenden einen AWS IoT *Rollenalias*, um die Token-Austauschrolle für Greengrass-Core-Geräte zu konfigurieren. Rollenaliase ermöglichen es Ihnen, die Token-Austauschrolle für ein Gerät zu ändern, aber die Gerätekonfiguration beizubehalten. Weitere Informationen finden Sie im [*AWS IoT Core Entwicklerhandbuch* unter Autorisieren von direkten Aufrufen von AWS Diensten](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html).

In diesem Abschnitt erstellen Sie eine Token-Exchange-IAM-Rolle und einen AWS IoT Rollenalias, der auf die Rolle verweist. Wenn Sie bereits ein Greengrass-Core-Gerät eingerichtet haben, können Sie dessen Token-Austauschrolle und seinen Rollenalias verwenden, anstatt neue zu erstellen. Anschließend konfigurieren Sie das Gerät so, dass es AWS IoT diese Rolle und diesen Alias verwendet.

**Um eine Token-Exchange-IAM-Rolle zu erstellen**

1. <a name="create-token-exchange-role-create-iam-role"></a>Erstellen Sie eine IAM-Rolle, die Ihr Gerät als Token-Austauschrolle verwenden kann. Gehen Sie wie folgt vor:

   1. Erstellen Sie eine Datei, die das Dokument mit der Vertrauensrichtlinie enthält, das für die Token-Austauschrolle erforderlich ist.

      <a name="nano-command-intro"></a>Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.

      ```
      nano device-role-trust-policy.json
      ```

      Kopieren Sie den folgenden JSON-Code in die Datei.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "credentials.iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. Erstellen Sie die Token-Austauschrolle mit dem Dokument zur Vertrauensrichtlinie.
      + *GreengrassV2TokenExchangeRole*Ersetzen Sie es durch den Namen der zu erstellenden IAM-Rolle.

      ```
      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json
      ```

      Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

      ```
      {
        "Role": {
          "Path": "/",
          "RoleName": "GreengrassV2TokenExchangeRole",
          "RoleId": "AROAZ2YMUHYHK5OKM77FB",
          "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
          "CreateDate": "2021-02-06T00:13:29+00:00",
          "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Principal": {
                  "Service": "credentials.iot.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
              }
            ]
          }
        }
      ```

   1. Erstellen Sie eine Datei, die das Dokument mit der Zugriffsrichtlinie enthält, das für die Token-Austauschrolle erforderlich ist.

      <a name="nano-command-intro"></a>Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.

      ```
      nano device-role-access-policy.json
      ```

      Kopieren Sie den folgenden JSON-Code in die Datei.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents",
              "logs:DescribeLogStreams",
              "s3:GetBucketLocation"
            ],
            "Resource": "*"
          }
        ]
      }
      ```
**Anmerkung**  
Diese Zugriffsrichtlinie erlaubt keinen Zugriff auf Komponentenartefakte in S3-Buckets. Um benutzerdefinierte Komponenten bereitzustellen, die Artefakte in Amazon S3 definieren, müssen Sie der Rolle Berechtigungen hinzufügen, damit Ihr Kerngerät Komponentenartefakte abrufen kann. Weitere Informationen finden Sie unter [Erlauben Sie den Zugriff auf S3-Buckets für Komponentenartefakte](device-service-role.md#device-service-role-access-s3-bucket).  
Wenn Sie noch keinen S3-Bucket für Komponentenartefakte haben, können Sie diese Berechtigungen später hinzufügen, nachdem Sie einen Bucket erstellt haben.

   1. Erstellen Sie die IAM-Richtlinie anhand des Richtliniendokuments.
      + *GreengrassV2TokenExchangeRoleAccess*Ersetzen Sie es durch den Namen der zu erstellenden IAM-Richtlinie.

      ```
      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json
      ```

      Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

      ```
      {
        "Policy": {
          "PolicyName": "GreengrassV2TokenExchangeRoleAccess",
          "PolicyId": "ANPAZ2YMUHYHACI7C5Z66",
          "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
          "Path": "/",
          "DefaultVersionId": "v1",
          "AttachmentCount": 0,
          "PermissionsBoundaryUsageCount": 0,
          "IsAttachable": true,
          "CreateDate": "2021-02-06T00:37:17+00:00",
          "UpdateDate": "2021-02-06T00:37:17+00:00"
        }
      }
      ```

   1. Hängen Sie die IAM-Richtlinie an die Token-Exchange-Rolle an.
      + Ersetzen Sie *GreengrassV2TokenExchangeRole* durch den Namen der IAM-Rolle.
      + Ersetzen Sie den Richtlinien-ARN durch den ARN der IAM-Richtlinie, die Sie im vorherigen Schritt erstellt haben.

      ```
      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
      ```

      Der Befehl hat keine Ausgabe, wenn die Anfrage erfolgreich ist.

1. <a name="create-token-exchange-role-create-iot-role-alias"></a>Erstellen Sie einen AWS IoT Rollenalias, der auf die Token-Exchange-Rolle verweist.
   + *GreengrassCoreTokenExchangeRoleAlias*Ersetzen Sie ihn durch den Namen des Rollenalias, den Sie erstellen möchten.
   + Ersetzen Sie den Rollen-ARN durch den ARN der IAM-Rolle, die Sie im vorherigen Schritt erstellt haben.

   ```
   aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole
   ```

   Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

   ```
   {
     "roleAlias": "GreengrassCoreTokenExchangeRoleAlias",
     "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
   }
   ```
**Anmerkung**  
Um einen Rollenalias zu erstellen, benötigen Sie die Berechtigung, die Token-Exchange-IAM-Rolle zu übergeben. AWS IoT Wenn Sie beim Versuch, einen Rollenalias zu erstellen, eine Fehlermeldung erhalten, überprüfen Sie, ob Ihr AWS Benutzer über diese Berechtigung verfügt. *Weitere Informationen finden Sie im [Benutzerhandbuch unter Erteilen von Benutzerberechtigungen zur Übergabe einer Rolle an einen AWS Dienst](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).AWS Identity and Access Management *

1. Erstellen und fügen Sie eine AWS IoT Richtlinie hinzu, die es Ihrem Greengrass-Core-Gerät ermöglicht, den Rollenalias zu verwenden, um die Token-Austauschrolle zu übernehmen. Wenn Sie bereits ein Greengrass-Core-Gerät eingerichtet haben, können Sie dessen AWS IoT Rollenalias-Richtlinie anhängen, anstatt eine neue zu erstellen. Gehen Sie wie folgt vor:

   1. (Optional) Erstellen Sie eine Datei, die das AWS IoT Richtliniendokument enthält, das für den Rollenalias erforderlich ist.

      <a name="nano-command-intro"></a>Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.

      ```
      nano greengrass-v2-iot-role-alias-policy.json
      ```

      Kopieren Sie den folgenden JSON-Code in die Datei.
      + Ersetzen Sie den Ressourcen-ARN durch den ARN Ihres Rollenalias.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iot:AssumeRoleWithCertificate",
            "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
          }
        ]
      }
      ```

   1. Erstellen Sie eine AWS IoT Richtlinie aus dem Richtliniendokument.
      + *GreengrassCoreTokenExchangeRoleAliasPolicy*Ersetzen Sie es durch den Namen der zu erstellenden AWS IoT Richtlinie.

      ```
      aws iot create-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --policy-document file://greengrass-v2-iot-role-alias-policy.json
      ```

      Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

      ```
      {
        "policyName": "GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyDocument": "{
          \\"Version\\":\\"2012-10-17		 	 	 \\",
          \\"Statement\\": [
            {
              \\"Effect\\": \\"Allow\\",
              \\"Action\\": \\"iot:AssumeRoleWithCertificate\\",
              \\"Resource\\": \\"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\\"
            }
          ]
        }",
        "policyVersionId": "1"
      }
      ```

   1. Hängen Sie die AWS IoT Richtlinie an das Zertifikat der AWS IoT Sache an.
      + *GreengrassCoreTokenExchangeRoleAliasPolicy*Ersetzen Sie es durch den Namen der AWS IoT Rollenalias-Richtlinie.
      + Ersetzen Sie den Ziel-ARN durch den ARN des Zertifikats für Ihr AWS IoT Ding.

      ```
      aws iot attach-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
      ```

      Der Befehl hat keine Ausgabe, wenn die Anfrage erfolgreich ist.

### Laden Sie Zertifikate auf das Gerät herunter
<a name="download-thing-certificates"></a>

Zuvor haben Sie das Zertifikat Ihres Geräts auf Ihren Entwicklungscomputer heruntergeladen. In diesem Abschnitt kopieren Sie das Zertifikat auf Ihr Kerngerät, um das Gerät mit den Zertifikaten einzurichten, mit denen es eine Verbindung herstellt AWS IoT. Sie laden auch das Zertifikat der Amazon Root Certificate Authority (CA) herunter. Wenn Sie ein HSM verwenden, importieren Sie in diesem Abschnitt auch die Zertifikatsdatei in das HSM.
+ Wenn Sie das Ding-Zertifikat und den privaten Schlüssel zuvor im AWS IoT Dienst erstellt haben, folgen Sie den Schritten, um die Zertifikate mit dem privaten Schlüssel und den Zertifikatsdateien herunterzuladen.
+ Wenn Sie das Ding-Zertifikat zuvor aus einem privaten Schlüssel in einem Hardware-Sicherheitsmodul (HSM) erstellt haben, gehen Sie wie folgt vor, um die Zertifikate mit dem privaten Schlüssel und dem Zertifikat in ein HSM herunterzuladen.

#### Laden Sie Zertifikate mit privatem Schlüssel und Zertifikatsdateien herunter
<a name="download-thing-certificates-without-hardware-security"></a>

**Um Zertifikate auf das Gerät herunterzuladen**

1. <a name="installation-copy-thing-certificate-to-device"></a>Kopieren Sie das AWS IoT Ding-Zertifikat von Ihrem Entwicklungscomputer auf das Gerät. Wenn SSH und SCP auf dem Entwicklungscomputer und dem Gerät aktiviert sind, können Sie den `scp` Befehl auf Ihrem Entwicklungscomputer verwenden, um das Zertifikat zu übertragen. *device-ip-address*Ersetzen Sie es durch die IP-Adresse Ihres Geräts.

   ```
   scp -r greengrass-v2-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Erstellen Sie den Greengrass-Stammordner auf dem Gerät. Sie werden später die AWS IoT Greengrass Core-Software in diesem Ordner installieren.
**Anmerkung**  
Windows hat eine Pfadlängenbegrenzung von 260 Zeichen. Wenn Sie Windows verwenden, verwenden Sie einen Stammordner wie `C:\greengrass\v2` oder, `D:\greengrass\v2` um die Greengrass-Komponentenpfade unter der Obergrenze von 260 Zeichen zu halten.

------
#### [ Linux or Unix ]
   + Ersetzen Sie es `/greengrass/v2` durch den Ordner, den Sie verwenden möchten.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + *C:\$1greengrass\$1v2*Ersetzen Sie durch den zu verwendenden Ordner.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + *C:\$1greengrass\$1v2*Ersetzen Sie durch den zu verwendenden Ordner.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Nur Linux) Legen Sie die Berechtigungen des übergeordneten Elements des Greengrass-Stammordners fest.
   + */greengrass*Ersetzen Sie es durch das übergeordnete Objekt des Stammordners.

   ```
   sudo chmod 755 /greengrass
   ```

1. Kopieren Sie die AWS IoT Ding-Zertifikate in den Greengrass-Stammordner.

------
#### [ Linux or Unix ]
   + `/greengrass/v2`Ersetzen Sie es durch den Greengrass-Stammordner.

   ```
   sudo cp -R ~/greengrass-v2-certs/* /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Ersetzen Sie es *C:\$1greengrass\$1v2* durch den Ordner, den Sie verwenden möchten.

   ```
   robocopy %USERPROFILE%\greengrass-v2-certs C:\greengrass\v2 /E
   ```

------
#### [ PowerShell ]
   + *C:\$1greengrass\$1v2*Ersetzen Sie durch den zu verwendenden Ordner.

   ```
   cp -Path ~\greengrass-v2-certs\* -Destination C:\greengrass\v2
   ```

------

1. Laden Sie das Zertifikat der Amazon Root Certificate Authority (CA) herunter. AWS IoT Zertifikate sind standardmäßig mit dem Root-CA-Zertifikat von Amazon verknüpft. Laden Sie das CA1 Zertifikat und das [CA3Zertifikat](https://www.amazontrust.com/repository/) herunter.

------
#### [ Linux or Unix ]
   + Ersetzen Sie `/greengrass/v2` oder *C:\$1greengrass\$1v2* durch den Greengrass-Stammordner.

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

#### Laden Sie Zertifikate mit dem privaten Schlüssel und dem Zertifikat in ein HSM herunter
<a name="download-thing-certificates-with-hardware-security"></a>

**Anmerkung**  
Diese Funktion ist für Version 2.5.3 und höher der [Greengrass](greengrass-nucleus-component.md) Nucleus-Komponente verfügbar. AWS IoT Greengrass unterstützt diese Funktion derzeit nicht auf Windows Core-Geräten. 

**Um Zertifikate auf das Gerät herunterzuladen**

1. <a name="installation-copy-thing-certificate-to-device"></a>Kopieren Sie das AWS IoT Ding-Zertifikat von Ihrem Entwicklungscomputer auf das Gerät. Wenn SSH und SCP auf dem Entwicklungscomputer und dem Gerät aktiviert sind, können Sie den `scp` Befehl auf Ihrem Entwicklungscomputer verwenden, um das Zertifikat zu übertragen. *device-ip-address*Ersetzen Sie es durch die IP-Adresse Ihres Geräts.

   ```
   scp -r greengrass-v2-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Erstellen Sie den Greengrass-Stammordner auf dem Gerät. Sie werden später die AWS IoT Greengrass Core-Software in diesem Ordner installieren.
**Anmerkung**  
Windows hat eine Pfadlängenbegrenzung von 260 Zeichen. Wenn Sie Windows verwenden, verwenden Sie einen Stammordner wie `C:\greengrass\v2` oder, `D:\greengrass\v2` um die Greengrass-Komponentenpfade unter der Obergrenze von 260 Zeichen zu halten.

------
#### [ Linux or Unix ]
   + Ersetzen Sie es `/greengrass/v2` durch den Ordner, den Sie verwenden möchten.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + *C:\$1greengrass\$1v2*Ersetzen Sie durch den zu verwendenden Ordner.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + *C:\$1greengrass\$1v2*Ersetzen Sie durch den zu verwendenden Ordner.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Nur Linux) Legen Sie die Berechtigungen des übergeordneten Elements des Greengrass-Stammordners fest.
   + */greengrass*Ersetzen Sie es durch das übergeordnete Objekt des Stammordners.

   ```
   sudo chmod 755 /greengrass
   ```

1. Importieren Sie die Ding-Zertifikatsdatei,`~/greengrass-v2-certs/device.pem.crt`, in das HSM. In der Dokumentation zu Ihrem HSM erfahren Sie, wie Sie Zertifikate in Ihr HSM importieren können. Importieren Sie das Zertifikat mit demselben Token, derselben Slot-ID, derselben Benutzer-PIN, derselben Objektbezeichnung und Objekt-ID (falls Ihr HSM eine verwendet), mit denen Sie zuvor den privaten Schlüssel im HSM generiert haben.
**Anmerkung**  
Wenn Sie den privaten Schlüssel zuvor ohne Objekt-ID generiert haben und das Zertifikat eine Objekt-ID hat, setzen Sie die Objekt-ID des privaten Schlüssels auf denselben Wert wie das Zertifikat. In der Dokumentation zu Ihrem HSM erfahren Sie, wie Sie die Objekt-ID für das Objekt mit dem privaten Schlüssel festlegen.

1. (Optional) Löschen Sie die Ding-Zertifikatsdatei, sodass sie nur im HSM existiert.

   ```
   rm ~/greengrass-v2-certs/device.pem.crt
   ```

1. Laden Sie das Zertifikat der Amazon Root Certificate Authority (CA) herunter. AWS IoT Zertifikate sind standardmäßig mit dem Root-CA-Zertifikat von Amazon verknüpft. Laden Sie sowohl das als CA1 auch das [CA3Zertifikat](https://www.amazontrust.com/repository/) herunter.

------
#### [ Linux or Unix ]
   + Ersetzen Sie `/greengrass/v2` oder *C:\$1greengrass\$1v2* durch den Greengrass-Stammordner.

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

### Richten Sie die Geräteumgebung ein
<a name="set-up-device-environment"></a>

Folgen Sie den Schritten in diesem Abschnitt, um ein Linux- oder Windows-Gerät einzurichten, das als Ihr AWS IoT Greengrass Kerngerät verwendet werden soll.

#### Richten Sie ein Linux-Gerät ein
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Um ein Linux-Gerät einzurichten für AWS IoT Greengrass V2**

1. Installieren Sie die Java-Runtime, die für die Ausführung der AWS IoT Greengrass Core-Software erforderlich ist. Wir empfehlen, dass Sie die [Langzeit-Support-Versionen von Amazon Corretto](https://aws.amazon.com/corretto/) oder [OpenJDK](https://openjdk.java.net/) verwenden. Version 8 oder höher ist erforderlich. Die folgenden Befehle zeigen Ihnen, wie Sie OpenJDK auf Ihrem Gerät installieren.
   + Für Debian- oder Ubuntu-basierte Distributionen:

     ```
     sudo apt install default-jdk
     ```
   + Für Red Hat-basierte Distributionen:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Für Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Für Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Führen Sie nach Abschluss der Installation den folgenden Befehl aus, um zu überprüfen, ob Java auf Ihrem Linux-Gerät ausgeführt wird.

   ```
   java -version
   ```

   Der Befehl druckt die Version von Java, die auf dem Gerät ausgeführt wird. Bei einer Debian-basierten Distribution könnte die Ausgabe beispielsweise dem folgenden Beispiel ähneln.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Optional) Erstellen Sie den Standardsystembenutzer und die Standardgruppe, die Komponenten auf dem Gerät ausführen. Sie können auch festlegen, dass der AWS IoT Greengrass Core-Software-Installer diesen Benutzer und diese Gruppe während der Installation mit dem `--component-default-user` Installer-Argument erstellt. Weitere Informationen finden Sie unter [Argumente des Installers](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Stellen Sie sicher, dass der Benutzer, der die AWS IoT Greengrass Core-Software ausführt (in der Regel`root`), über die erforderlichen Rechte verfügt, die Software `sudo` mit jedem beliebigen Benutzer und jeder Gruppe auszuführen.

   1. Führen Sie den folgenden Befehl aus, um die `/etc/sudoers` Datei zu öffnen.

      ```
      sudo visudo
      ```

   1. Stellen Sie sicher, dass die Berechtigung für den Benutzer wie im folgenden Beispiel aussieht.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. *(Optional) Um [containerisierte Lambda-Funktionen auszuführen](run-lambda-functions.md), müssen Sie [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1 aktivieren und Sie müssen die *Speicher* - und Geräte-Cgroups aktivieren und mounten.* Wenn Sie nicht vorhaben, containerisierte Lambda-Funktionen auszuführen, können Sie diesen Schritt überspringen.

   Um diese Cgroups-Optionen zu aktivieren, starten Sie das Gerät mit den folgenden Linux-Kernelparametern.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Informationen zum Anzeigen und Einstellen der Kernel-Parameter für Ihr Gerät finden Sie in der Dokumentation zu Ihrem Betriebssystem und Bootloader. Folgen Sie den Anweisungen, um die Kernel-Parameter dauerhaft einzustellen.

1. Installieren Sie alle anderen erforderlichen Abhängigkeiten auf Ihrem Gerät, wie in der Liste der Anforderungen unter angegeben[Anforderungen an Speichergeräte](greengrass-nucleus-component.md#greengrass-v2-requirements).

#### Richten Sie ein Windows-Gerät ein
<a name="set-up-windows-device-environment"></a>

**Anmerkung**  
Diese Funktion ist für Version 2.5.0 und höher der [Greengrass](greengrass-nucleus-component.md) Nucleus-Komponente verfügbar.<a name="set-up-windows-device-environment-procedure"></a>

**Um ein Windows-Gerät einzurichten für AWS IoT Greengrass V2**

1. Installieren Sie die Java-Runtime, die für die Ausführung der AWS IoT Greengrass Core-Software erforderlich ist. Wir empfehlen, dass Sie die [Langzeit-Support-Versionen von Amazon Corretto](https://aws.amazon.com/corretto/) oder [OpenJDK](https://openjdk.java.net/) verwenden. Version 8 oder höher ist erforderlich.

1. Prüfen Sie, ob Java in der Systemvariablen [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) verfügbar ist, und fügen Sie es hinzu, falls nicht. Auf dem LocalSystem Konto wird die AWS IoT Greengrass Core-Software ausgeführt, sodass Sie der Systemvariablen PATH statt der Benutzervariablen PATH für Ihren Benutzer Java hinzufügen müssen. Gehen Sie wie folgt vor:

   1. Drücken Sie die Windows-Taste, um das Startmenü zu öffnen.

   1. Geben Sie **environment variables** ein, um im Startmenü nach den Systemoptionen zu suchen.

   1. Wählen Sie in den Suchergebnissen des Startmenüs **die Option Systemumgebungsvariablen bearbeiten** aus, um das Fenster mit den **Systemeigenschaften** zu öffnen.

   1. Wählen Sie **Umgebungsvariablen...** um das Fenster **Umgebungsvariablen** zu öffnen.

   1. Wählen Sie unter **Systemvariablen** die Option **Pfad** und dann **Bearbeiten** aus. Im Fenster **Umgebungsvariable bearbeiten** können Sie jeden Pfad in einer separaten Zeile anzeigen.

   1. Überprüfen Sie, ob der Pfad zum `bin` Ordner der Java-Installation vorhanden ist. Der Pfad könnte dem folgenden Beispiel ähneln.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Wenn der `bin` Ordner der Java-Installation in **Path** fehlt, wählen Sie **Neu**, um ihn hinzuzufügen, und **klicken Sie dann auf OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Öffnen Sie die Windows-Eingabeaufforderung (`cmd.exe`) als Administrator.

1. <a name="set-up-windows-device-environment-create"></a>Erstellen Sie den Standardbenutzer für das LocalSystem Konto auf dem Windows-Gerät. *password*Durch ein sicheres Passwort ersetzen.

   ```
   net user /add ggc_user password
   ```
**Tipp**  <a name="windows-password-expiration-tip"></a>
Abhängig von Ihrer Windows-Konfiguration ist das Benutzerkennwort möglicherweise so eingestellt, dass es an einem Datum in der future abläuft. Um sicherzustellen, dass Ihre Greengrass-Anwendungen weiterhin funktionieren, verfolgen Sie, wann das Passwort abläuft, und aktualisieren Sie es, bevor es abläuft. Sie können das Benutzerkennwort auch so einrichten, dass es niemals abläuft.  
Führen Sie den folgenden Befehl aus, um zu überprüfen, wann ein Benutzer und sein Passwort ablaufen.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Führen Sie den folgenden Befehl aus, um das Passwort eines Benutzers so einzustellen, dass es nie abläuft.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Wenn Sie Windows 10 oder höher verwenden und der [`wmic`Befehl veraltet ist](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), führen Sie den folgenden PowerShell Befehl aus.  

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Laden Sie das [PsExecProgramm](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) von Microsoft herunter und installieren Sie es auf dem Gerät. 

1. <a name="set-up-windows-device-credentials"></a>Verwenden Sie das PsExec Hilfsprogramm, um den Benutzernamen und das Passwort für den Standardbenutzer in der Credential Manager-Instanz für das LocalSystem Konto zu speichern. *password*Ersetzen Sie es durch das zuvor festgelegte Benutzerkennwort.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Wenn das **PsExec License Agreement**geöffnet wird, stimmen Sie **Accept**der Lizenz zu und führen Sie den Befehl aus.
**Anmerkung**  
Auf Windows-Geräten wird auf dem LocalSystem Konto der Greengrass-Nucleus ausgeführt, und Sie müssen das PsExec Hilfsprogramm verwenden, um die Standardbenutzerinformationen im LocalSystem Konto zu speichern. Wenn Sie die Credential Manager-Anwendung verwenden, werden diese Informationen nicht im Konto, sondern im Windows-Konto des aktuell angemeldeten Benutzers gespeichert. LocalSystem 

### Laden Sie die AWS IoT Greengrass Core-Software herunter
<a name="download-greengrass-core-v2"></a>

Sie können die neueste Version der AWS IoT Greengrass Core-Software von der folgenden Adresse herunterladen:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**Anmerkung**  
Sie können eine bestimmte Version der AWS IoT Greengrass Core-Software von der folgenden Adresse herunterladen. Ersetzen Sie es *version* durch die Version, die Sie herunterladen möchten.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Um die AWS IoT Greengrass Core-Software herunterzuladen**

1. <a name="installation-download-ggc-software-step"></a>Laden Sie die Core-Software auf Ihrem AWS IoT Greengrass Core-Gerät in eine Datei mit dem Namen herunter`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Mit dem Download dieser Software stimmen Sie der [Greengrass Core-Software-Lizenzvereinbarung](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf) zu.

1. <a name="verify-gg-nucleus-signature"></a>(Optional) Um die Greengrass Nucleus-Softwaresignatur zu überprüfen
**Anmerkung**  
Diese Funktion ist mit Greengrass Nucleus Version 2.9.5 und höher verfügbar.

   1. Verwenden Sie den folgenden Befehl, um die Signatur Ihres Greengrass-Kernartefakts zu überprüfen:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Der Dateiname kann je nach installierter JDK-Version anders aussehen. Ersetzen Sie es *`jdk17.0.6_10`* durch die JDK-Version, die Sie installiert haben.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Der Dateiname sieht je nach installierter JDK-Version möglicherweise anders aus. Ersetzen Sie es *`jdk17.0.6_10`* durch die JDK-Version, die Sie installiert haben.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. Der `jarsigner` Aufruf liefert eine Ausgabe, die die Ergebnisse der Überprüfung angibt.

      1. Wenn die Greengrass Nucleus-Zip-Datei signiert ist, enthält die Ausgabe die folgende Anweisung:

         ```
         jar verified.
         ```

      1. Wenn die Greengrass Nucleus-Zip-Datei nicht signiert ist, enthält die Ausgabe die folgende Anweisung:

         ```
         jar is unsigned.
         ```

   1. Wenn Sie die `-certs` Option Jarsigner zusammen mit den `-verbose` Optionen `-verify` und angegeben haben, enthält die Ausgabe auch detaillierte Informationen zum Unterzeichnerzertifikat.

1. <a name="installation-unzip-ggc-software-step"></a>Entpacken Sie die AWS IoT Greengrass Core-Software in einen Ordner auf Ihrem Gerät. *GreengrassInstaller*Ersetzen Sie es durch den Ordner, den Sie verwenden möchten.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Optional) Führen Sie den folgenden Befehl aus, um die Version der AWS IoT Greengrass Core-Software zu sehen.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**Wichtig**  <a name="installer-folder-2.4.0-warning"></a>
Wenn Sie eine Version von Greengrass Nucleus vor v2.4.0 installieren, entfernen Sie diesen Ordner nicht, nachdem Sie die AWS IoT Greengrass Core-Software installiert haben. Die AWS IoT Greengrass Core-Software verwendet die Dateien in diesem Ordner zur Ausführung.  
Wenn Sie die neueste Version der Software heruntergeladen haben, installieren Sie v2.4.0 oder höher, und Sie können diesen Ordner entfernen, nachdem Sie die AWS IoT Greengrass Core-Software installiert haben.

### Installieren Sie die Core-Software AWS IoT Greengrass
<a name="run-greengrass-core-v2-installer-manual-fips"></a>

Führen Sie das Installationsprogramm mit Argumenten aus, die die folgenden Aktionen angeben:
+ Installieren Sie die Installation aus einer Teilkonfigurationsdatei, in der angegeben ist, dass die AWS Ressourcen und Zertifikate verwendet werden sollen, die Sie zuvor erstellt haben. Die AWS IoT Greengrass Core-Software verwendet eine Konfigurationsdatei, die die Konfiguration jeder Greengrass-Komponente auf dem Gerät spezifiziert. Das Installationsprogramm erstellt aus der von Ihnen bereitgestellten Teilkonfigurationsdatei eine vollständige Konfigurationsdatei.
+ <a name="install-argument-component-default-user"></a>Geben Sie an, dass der `ggc_user` Systembenutzer Softwarekomponenten auf dem Kerngerät ausführen soll. Auf Linux-Geräten gibt dieser Befehl auch an, dass die `ggc_group` Systemgruppe verwendet werden soll, und das Installationsprogramm erstellt den Systembenutzer und die Systemgruppe für Sie.
+ <a name="install-argument-system-service"></a>Richten Sie die AWS IoT Greengrass Core-Software als Systemdienst ein, der beim Booten ausgeführt wird. Auf Linux-Geräten erfordert dies das [Systemd-Init-System](https://en.wikipedia.org/wiki/Systemd).
**Wichtig**  <a name="windows-system-service-requirement-important-note"></a>
Auf Windows Core-Geräten müssen Sie die AWS IoT Greengrass Core-Software als Systemdienst einrichten.

Weitere Hinweise zu den Argumenten, die Sie angeben können, finden Sie unter[Argumente des Installers](configure-installer.md).

**Anmerkung**  
<a name="jvm-tuning-note"></a>Wenn Sie AWS IoT Greengrass auf einem Gerät mit begrenztem Arbeitsspeicher arbeiten, können Sie die Speichermenge steuern, die die AWS IoT Greengrass Core-Software verwendet. Um die Speicherzuweisung zu steuern, können Sie im `jvmOptions` Konfigurationsparameter Ihrer Nucleus-Komponente die Optionen für die JVM-Heap-Größe festlegen. Weitere Informationen finden Sie unter [Steuern Sie die Speicherzuweisung mit JVM-Optionen](configure-greengrass-core-v2.md#jvm-tuning).
+ Wenn Sie das Ding-Zertifikat und den privaten Schlüssel zuvor im AWS IoT Dienst erstellt haben, folgen Sie den Schritten, um die AWS IoT Greengrass Core-Software mit privaten Schlüssel- und Zertifikatsdateien zu installieren.
+ Wenn Sie das Ding-Zertifikat zuvor mit einem privaten Schlüssel in einem Hardware-Sicherheitsmodul (HSM) erstellt haben, folgen Sie den Schritten, um die AWS IoT Greengrass Core-Software mit dem privaten Schlüssel und dem Zertifikat in einem HSM zu installieren.

#### Installieren Sie die AWS IoT Greengrass Core-Software mit privaten Schlüssel- und Zertifikatsdateien
<a name="FIPS-manual-installation-without-hardware-security"></a>

**Um die AWS IoT Greengrass Core-Software zu installieren**

1. <a name="installer-check-greengrass-core-software-version"></a>Überprüfen Sie die Version der AWS IoT Greengrass Core-Software.
   + *GreengrassInstaller*Ersetzen Sie es durch den Pfad zu dem Ordner, der die Software enthält.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Verwenden Sie einen Texteditor, um eine Konfigurationsdatei mit dem Namen `config.yaml` zu erstellen, die dem Installationsprogramm zur Verfügung gestellt werden soll.

   <a name="nano-command-intro"></a>Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Kopieren Sie den folgenden YAML-Inhalt in die Datei. Diese Teilkonfigurationsdatei spezifiziert Systemparameter und Greengrass-Nukleus-Parameter.

   ```
   ---
   system:
     certificateFilePath: "/greengrass/v2/device.pem.crt"
     privateKeyPath: "/greengrass/v2/private.pem.key"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.17.0"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
   ```

   Führen Sie dann die folgenden Schritte aus:
   + Ersetzen Sie jede Instanz von `/greengrass/v2` durch den Greengrass-Stammordner.
   + Ersetze es *MyGreengrassCore* durch den Namen der AWS IoT Sache.
   + *2.17.0*Ersetzen Sie durch die Version der AWS IoT Greengrass Core-Software.
   + *us-west-2*Ersetzen Sie durch den AWS-Region Ort, an dem Sie die Ressourcen erstellt haben.
   + *GreengrassCoreTokenExchangeRoleAlias*Ersetzen Sie es durch den Namen des Alias der Token-Exchange-Rolle.
   + Ersetzen Sie den *iotDataEndpoint* durch Ihren AWS IoT Datenendpunkt.
   + Ersetzen Sie den Endpunkt *iotCredEndpoint* durch Ihren AWS IoT Anmeldeinformationen-Endpunkt.

1. Führen Sie das Installationsprogramm aus und geben Sie `--init-config` an, dass Sie die Konfigurationsdatei bereitstellen möchten.
   + Ersetzen Sie `/greengrass/v2` oder *C:\$1greengrass\$1v2* durch den Greengrass-Stammordner.
   + Ersetzen Sie jede Instanz von *GreengrassInstaller* durch den Ordner, in den Sie das Installationsprogramm entpackt haben.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**Wichtig**  <a name="windows-system-service-installer-argument-important-note"></a>
Auf Windows Core-Geräten müssen Sie angeben, `--setup-system-service true` dass die AWS IoT Greengrass Core-Software als Systemdienst eingerichtet werden soll.

   <a name="installer-setup-system-service-output-message"></a>Wenn Sie dies angeben`--setup-system-service true`, gibt das Installationsprogramm aus, `Successfully set up Nucleus as a system service` ob es die Software als Systemdienst eingerichtet und ausgeführt hat. Andernfalls gibt das Installationsprogramm keine Meldung aus, wenn es die Software erfolgreich installiert hat.
**Anmerkung**  <a name="installer-deploy-dev-tools-without-provision"></a>
Sie können das `deploy-dev-tools` Argument nicht verwenden, um lokale Entwicklungstools bereitzustellen, wenn Sie das Installationsprogramm ohne das `--provision true` Argument ausführen. Informationen zur direkten Bereitstellung der Greengrass-CLI auf Ihrem Gerät finden Sie unter[Greengrass-Befehlszeilenschnittstelle](gg-cli.md).

1. <a name="installer-verify-installation"></a>Überprüfen Sie die Installation, indem Sie sich die Dateien im Stammordner ansehen.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Wenn die Installation erfolgreich war, enthält der Stammordner mehrere Ordner, z. B. `config``packages`, und`logs`.

#### Installieren Sie die AWS IoT Greengrass Core-Software mit dem privaten Schlüssel und dem Zertifikat in einem HSM
<a name="FIPS-manual-installation-with-hardware-security"></a>

**Anmerkung**  
Diese Funktion ist für Version 2.5.3 und höher der [Greengrass](greengrass-nucleus-component.md) Nucleus-Komponente verfügbar. AWS IoT Greengrass unterstützt diese Funktion derzeit nicht auf Windows Core-Geräten. 

**Um die AWS IoT Greengrass Core-Software zu installieren**

1. <a name="installer-check-greengrass-core-software-version"></a>Überprüfen Sie die Version der AWS IoT Greengrass Core-Software.
   + *GreengrassInstaller*Ersetzen Sie es durch den Pfad zu dem Ordner, der die Software enthält.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Damit die AWS IoT Greengrass Core-Software den privaten Schlüssel und das Zertifikat im HSM verwenden kann, installieren Sie bei der Installation der AWS IoT Greengrass Core-Software die [PKCS \$111 -Anbieterkomponente](pkcs11-provider-component.md). Die PKCS \$111 -Provider-Komponente ist ein Plugin, das Sie während der Installation konfigurieren können. Sie können die neueste Version der PKCS \$111 -Provider-Komponente von der folgenden Adresse 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)

   Laden Sie das PKCS \$111 -Provider-Plugin in eine Datei mit dem Namen herunter. `aws.greengrass.crypto.Pkcs11Provider.jar` *GreengrassInstaller*Ersetzen Sie es durch den Ordner, den Sie verwenden möchten.

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar > GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar
   ```

   <a name="core-software-license"></a>Mit dem Download dieser Software stimmen Sie der [Greengrass Core-Software-Lizenzvereinbarung](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf) zu.

1. Verwenden Sie einen Texteditor, um eine Konfigurationsdatei mit dem Namen `config.yaml` zu erstellen, die dem Installationsprogramm zur Verfügung gestellt werden soll.

   <a name="nano-command-intro"></a>Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Kopieren Sie den folgenden YAML-Inhalt in die Datei. Diese Teilkonfigurationsdatei spezifiziert Systemparameter, Greengrass-Nukleus-Parameter und PKCS \$111 -Anbieterparameter.

   ```
   ---
   system:
     certificateFilePath: "/greengrass/v2/device.pem.crt"
     privateKeyPath: "/greengrass/v2/private.pem.key"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.17.0"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
   ```

   Führen Sie dann die folgenden Schritte aus:
   + Ersetzen Sie jede Instanz von *iotdevicekey* in PKCS \$111 URIs durch die Objektbezeichnung, in der Sie den privaten Schlüssel erstellt und das Zertifikat importiert haben.
   + Ersetzen Sie jede Instanz von `/greengrass/v2` durch den Greengrass-Stammordner.
   + Ersetze es *MyGreengrassCore* durch den Namen der AWS IoT Sache.
   + *2.17.0*Ersetzen Sie durch die Version der AWS IoT Greengrass Core-Software.
   + *us-west-2*Ersetzen Sie durch den AWS-Region Ort, an dem Sie die Ressourcen erstellt haben.
   + *GreengrassCoreTokenExchangeRoleAlias*Ersetzen Sie es durch den Namen des Alias der Token-Exchange-Rolle.
   + Ersetzen Sie den `iotDataEndpoint` durch Ihren AWS IoT Datenendpunkt.
   + Ersetzen Sie den Endpunkt `iotCredEndpoint` durch Ihren AWS IoT Anmeldeinformationen-Endpunkt.
   + Ersetzen Sie die Konfigurationsparameter für die `aws.greengrass.crypto.Pkcs11Provider` Komponente durch die Werte für die HSM-Konfiguration auf dem Kerngerät.

1. Führen Sie das Installationsprogramm aus und geben Sie `--init-config` an, dass die Konfigurationsdatei bereitgestellt werden soll.
   + `/greengrass/v2`Ersetzen Sie es durch den Greengrass-Stammordner.
   + Ersetzen Sie jede Instanz von *GreengrassInstaller* durch den Ordner, in den Sie das Installationsprogramm entpackt haben.

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```
**Wichtig**  <a name="windows-system-service-installer-argument-important-note"></a>
Auf Windows Core-Geräten müssen Sie angeben, `--setup-system-service true` dass die AWS IoT Greengrass Core-Software als Systemdienst eingerichtet werden soll.

   <a name="installer-setup-system-service-output-message"></a>Wenn Sie dies angeben`--setup-system-service true`, gibt das Installationsprogramm aus, `Successfully set up Nucleus as a system service` ob es die Software als Systemdienst eingerichtet und ausgeführt hat. Andernfalls gibt das Installationsprogramm keine Meldung aus, wenn es die Software erfolgreich installiert hat.
**Anmerkung**  <a name="installer-deploy-dev-tools-without-provision"></a>
Sie können das `deploy-dev-tools` Argument nicht verwenden, um lokale Entwicklungstools bereitzustellen, wenn Sie das Installationsprogramm ohne das `--provision true` Argument ausführen. Informationen zur direkten Bereitstellung der Greengrass-CLI auf Ihrem Gerät finden Sie unter[Greengrass-Befehlszeilenschnittstelle](gg-cli.md).

1. <a name="installer-verify-installation"></a>Überprüfen Sie die Installation, indem Sie sich die Dateien im Stammordner ansehen.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Wenn die Installation erfolgreich war, enthält der Stammordner mehrere Ordner, z. B. `config``packages`, und`logs`.

<a name="install-greengrass-core-run-software"></a>Wenn Sie die AWS IoT Greengrass Core-Software als Systemdienst installiert haben, führt das Installationsprogramm die Software für Sie aus. Andernfalls müssen Sie die Software manuell ausführen. Weitere Informationen finden Sie unter [Führen Sie die AWS IoT Greengrass Core-Software aus](run-greengrass-core-v2.md).

<a name="install-greengrass-core-next-steps-intro"></a>Weitere Informationen zur Konfiguration und Verwendung der Software finden Sie unter: AWS IoT Greengrass<a name="install-greengrass-core-next-steps-links"></a>
+ [Konfiguration der AWS IoT Greengrass Core-Software](configure-greengrass-core-v2.md)
+ [AWS IoT Greengrass Komponenten entwickeln](develop-greengrass-components.md)
+ [AWS IoT Greengrass Komponenten auf Geräten bereitstellen](manage-deployments.md)
+ [Greengrass-Befehlszeilenschnittstelle](gg-cli.md)

## Installieren Sie FIPS-Endpunkte mit Flottenbereitstellung
<a name="FIPS-fleet-provisioning"></a>

Diese Funktion ist für Version 2.4.0 und höher der [Greengrass](greengrass-nucleus-component.md) Nucleus-Komponente verfügbar.

Installieren Sie FIPS-Endpunkte auf Ihrer AWS IoT Greengrass Core-Software mit AWS IoT Flottenbereitstellung für Ihre Kerngeräte.

**Anmerkung**  
Das Fleet Provisioning Plugin für [Greengrass Nucleus](greengrass-nucleus-component.md) unterstützt derzeit nicht das Speichern von privaten Schlüssel- und Zertifikatsdateien in einem Hardware-Sicherheitsmodul (HSM). Um ein HSM zu verwenden, [installieren Sie die AWS IoT Greengrass Core-Software](#FIPS-fleet-provisioning) mit manueller Bereitstellung.

Um die AWS IoT Greengrass Core-Software mit AWS IoT Flottenbereitstellung zu installieren, müssen Sie Ressourcen in Ihrem einrichten, die für AWS-Konto die Bereitstellung von Greengrass-Core-Geräten AWS IoT verwendet werden. Zu diesen Ressourcen gehören eine Bereitstellungsvorlage, Antragszertifikate und eine IAM-Rolle für den [Tokenaustausch](device-service-role.md). Nachdem Sie diese Ressourcen erstellt haben, können Sie sie wiederverwenden, um mehrere Kerngeräte in einer Flotte bereitzustellen. Weitere Informationen finden Sie unter [AWS IoT Flottenbereitstellung für Greengrass-Kerngeräte einrichten](fleet-provisioning-setup.md).

**Wichtig**  <a name="install-greengrass-core-requirements-note"></a>
Bevor Sie die AWS IoT Greengrass Core-Software herunterladen, überprüfen Sie, ob Ihr Kerngerät die [Anforderungen](greengrass-nucleus-component.md#greengrass-v2-requirements) für die Installation und Ausführung der AWS IoT Greengrass Core-Software v2.0 erfüllt.

**Topics**
+ [Voraussetzungen](#fleet-provisioning-prerequisites)
+ [Endpunkte abrufen AWS IoT](#retrieve-iot-endpoints)
+ [Laden Sie Zertifikate auf das Gerät herunter](#download-claim-certificates)
+ [Richten Sie die Geräteumgebung ein](#set-up-device-environment-fleet-provisioning)
+ [Laden Sie die AWS IoT Greengrass Core-Software herunter](#download-greengrass-core-v2-fleet)
+ [Laden Sie das AWS IoT Fleet Provisioning Plugin herunter](#download-fleet-provisioning-plugin)
+ [Installieren Sie die AWS IoT Greengrass Core-Software](#run-greengrass-core-v2-installer-fleet-provisioning)

### Voraussetzungen
<a name="fleet-provisioning-prerequisites"></a>

Um die AWS IoT Greengrass Core-Software mit AWS IoT Flottenbereitstellung zu installieren, müssen Sie zunächst die [AWS IoT Flottenbereitstellung für Greengrass-Kerngeräte einrichten](fleet-provisioning-setup.md). Nachdem Sie diese Schritte einmal abgeschlossen haben, können Sie Fleet Provisioning verwenden, um die AWS IoT Greengrass Core-Software auf einer beliebigen Anzahl von Geräten zu installieren.

### Endpunkte abrufen AWS IoT
<a name="retrieve-iot-endpoints"></a>

Holen Sie sich die FIPS-Endpunkte für Sie und speichern Sie sie AWS-Konto, um sie später zu verwenden. Ihr Gerät verwendet diese Endpunkte, um eine Verbindung herzustellen. AWS IoT Gehen Sie wie folgt vor:

1. Rufen Sie den FIPS-Datenendpunkt für Ihre Region in den [AWS IoT Core FIPS-Datenebenen-Endpunkten](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints) ab. Der FIPS-Datenendpunkt für Sie AWS-Konto sollte wie folgt aussehen: *data.iot-fips.us-west-2.amazonaws.com*

1. Rufen Sie den Endpunkt der FIPS-Anmeldeinformationen für Ihre Region auf den Endpunkten der [AWS IoT Core FIPS-Datenebene ab](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Der Endpunkt der FIPS-Anmeldeinformationen für Sie AWS-Konto sollte wie folgt aussehen: *data.credentials.iot-fips.us-west-2.amazonaws.com*

### Laden Sie Zertifikate auf das Gerät herunter
<a name="download-claim-certificates"></a>

Das Gerät verwendet ein Anspruchszertifikat und einen privaten Schlüssel, um seine Anfrage zur Bereitstellung von AWS Ressourcen zu authentifizieren und ein X.509-Gerätezertifikat zu erwerben. Sie können das Antragszertifikat und den privaten Schlüssel bei der Herstellung in das Gerät einbetten oder das Zertifikat und den Schlüssel bei der Installation auf das Gerät kopieren. In diesem Abschnitt kopieren Sie das Antragszertifikat und den privaten Schlüssel auf das Gerät. Sie laden auch das Zertifikat der Amazon Root Certificate Authority (CA) auf das Gerät herunter.

**Wichtig**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
Private Schlüssel für Provisioning Claim sollten jederzeit gesichert sein, auch auf Greengrass-Core-Geräten. Wir empfehlen Ihnen, anhand von CloudWatch Kennzahlen und Protokollen von Amazon nach Hinweisen auf Missbrauch zu suchen, wie z. B. die unbefugte Verwendung des Antragszertifikats zur Bereitstellung von Geräten. Wenn Sie einen Missbrauch feststellen, deaktivieren Sie das Provisioning Claim Certificate, sodass es nicht für die Bereitstellung von Geräten verwendet werden kann. Weitere Informationen finden Sie unter [Überwachung AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) im *AWS IoT Core Entwicklerhandbuch*.  
Damit Sie die Anzahl der Geräte und die Geräte, die sich bei Ihnen registrieren, besser verwalten können, können Sie AWS-Konto bei der Erstellung einer Flottenbereitstellungsvorlage einen Pre-Provisioning-Hook angeben. Ein Pre-Provisioning-Hook ist eine AWS Lambda Funktion, die Vorlagenparameter validiert, die Geräte bei der Registrierung angeben. Sie können beispielsweise einen Pre-Provisioning-Hook erstellen, der eine Geräte-ID mit einer Datenbank vergleicht, um sicherzustellen, dass das Gerät über eine Bereitstellungsberechtigung verfügt. *Weitere Informationen finden Sie unter [Pre-Provisioning Hooks](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) im Developer Guide.AWS IoT Core *

**So laden Sie Anspruchszertifikate auf das Gerät herunter**

1. Kopieren Sie das Antragszertifikat und den privaten Schlüssel auf das Gerät. Wenn SSH und SCP auf dem Entwicklungscomputer und dem Gerät aktiviert sind, können Sie den `scp` Befehl auf Ihrem Entwicklungscomputer verwenden, um das Anspruchszertifikat und den privaten Schlüssel zu übertragen. Mit dem folgenden Beispielbefehl werden diese Dateien in einem Ordner mit dem Namen `claim-certs` auf Ihrem Entwicklungscomputer auf das Gerät übertragen. *device-ip-address*Ersetzen Sie es durch die IP-Adresse Ihres Geräts.

   ```
   scp -r claim-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Erstellen Sie den Greengrass-Stammordner auf dem Gerät. Sie werden später die AWS IoT Greengrass Core-Software in diesem Ordner installieren.
**Anmerkung**  
Windows hat eine Pfadlängenbegrenzung von 260 Zeichen. Wenn Sie Windows verwenden, verwenden Sie einen Stammordner wie `C:\greengrass\v2` oder, `D:\greengrass\v2` um die Greengrass-Komponentenpfade unter der Obergrenze von 260 Zeichen zu halten.

------
#### [ Linux or Unix ]
   + Ersetzen Sie es `/greengrass/v2` durch den Ordner, den Sie verwenden möchten.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + *C:\$1greengrass\$1v2*Ersetzen Sie durch den zu verwendenden Ordner.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + *C:\$1greengrass\$1v2*Ersetzen Sie durch den zu verwendenden Ordner.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Nur Linux) Legen Sie die Berechtigungen des übergeordneten Elements des Greengrass-Stammordners fest.
   + */greengrass*Ersetzen Sie es durch das übergeordnete Objekt des Stammordners.

   ```
   sudo chmod 755 /greengrass
   ```

1. Verschieben Sie die Anspruchszertifikate in den Greengrass-Stammordner.
   + Ersetzen Sie `/greengrass/v2` oder *C:\$1greengrass\$1v2* durch den Greengrass-Stammordner.

------
#### [ Linux or Unix ]

   ```
   sudo mv ~/claim-certs /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   move %USERPROFILE%\claim-certs C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   mv -Path ~\claim-certs -Destination C:\greengrass\v2
   ```

------

1. Laden Sie sowohl das CA1 Zertifikat als auch das [CA3Zertifikat](https://www.amazontrust.com/repository/) herunter.

------
#### [ Linux or Unix ]

   ```
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

### Richten Sie die Geräteumgebung ein
<a name="set-up-device-environment-fleet-provisioning"></a>

Folgen Sie den Schritten in diesem Abschnitt, um ein Linux- oder Windows-Gerät einzurichten, das als Ihr AWS IoT Greengrass Kerngerät verwendet werden soll.

#### Richten Sie ein Linux-Gerät ein
<a name="set-up-linux-device-environment-fleet-provisioning"></a><a name="set-up-linux-device-environment-procedure"></a>

**Um ein Linux-Gerät einzurichten für AWS IoT Greengrass V2**

1. Installieren Sie die Java-Runtime, die für die Ausführung der AWS IoT Greengrass Core-Software erforderlich ist. Wir empfehlen, dass Sie die [Langzeit-Support-Versionen von Amazon Corretto](https://aws.amazon.com/corretto/) oder [OpenJDK](https://openjdk.java.net/) verwenden. Version 8 oder höher ist erforderlich. Die folgenden Befehle zeigen Ihnen, wie Sie OpenJDK auf Ihrem Gerät installieren.
   + Für Debian- oder Ubuntu-basierte Distributionen:

     ```
     sudo apt install default-jdk
     ```
   + Für Red Hat-basierte Distributionen:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Für Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Für Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Führen Sie nach Abschluss der Installation den folgenden Befehl aus, um zu überprüfen, ob Java auf Ihrem Linux-Gerät ausgeführt wird.

   ```
   java -version
   ```

   Der Befehl druckt die Version von Java, die auf dem Gerät ausgeführt wird. Bei einer Debian-basierten Distribution könnte die Ausgabe beispielsweise dem folgenden Beispiel ähneln.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Optional) Erstellen Sie den Standardsystembenutzer und die Standardgruppe, die Komponenten auf dem Gerät ausführen. Sie können auch festlegen, dass der AWS IoT Greengrass Core-Software-Installer diesen Benutzer und diese Gruppe während der Installation mit dem `--component-default-user` Installer-Argument erstellt. Weitere Informationen finden Sie unter [Argumente des Installers](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Stellen Sie sicher, dass der Benutzer, der die AWS IoT Greengrass Core-Software ausführt (in der Regel`root`), über die erforderlichen Rechte verfügt, die Software `sudo` mit jedem beliebigen Benutzer und jeder Gruppe auszuführen.

   1. Führen Sie den folgenden Befehl aus, um die `/etc/sudoers` Datei zu öffnen.

      ```
      sudo visudo
      ```

   1. Stellen Sie sicher, dass die Berechtigung für den Benutzer wie im folgenden Beispiel aussieht.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. *(Optional) Um [containerisierte Lambda-Funktionen auszuführen](run-lambda-functions.md), müssen Sie [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1 aktivieren und Sie müssen die *Speicher* - und Geräte-Cgroups aktivieren und mounten.* Wenn Sie nicht vorhaben, containerisierte Lambda-Funktionen auszuführen, können Sie diesen Schritt überspringen.

   Um diese Cgroups-Optionen zu aktivieren, starten Sie das Gerät mit den folgenden Linux-Kernelparametern.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Informationen zum Anzeigen und Einstellen der Kernel-Parameter für Ihr Gerät finden Sie in der Dokumentation zu Ihrem Betriebssystem und Bootloader. Folgen Sie den Anweisungen, um die Kernel-Parameter dauerhaft einzustellen.

1. Installieren Sie alle anderen erforderlichen Abhängigkeiten auf Ihrem Gerät, wie in der Liste der Anforderungen unter angegeben[Anforderungen an Speichergeräte](greengrass-nucleus-component.md#greengrass-v2-requirements).

#### Richten Sie ein Windows-Gerät ein
<a name="set-up-windows-device-environment-fleet-provisioning"></a>

**Anmerkung**  
Diese Funktion ist für Version 2.5.0 und höher der [Greengrass](greengrass-nucleus-component.md) Nucleus-Komponente verfügbar.<a name="set-up-windows-device-environment-procedure"></a>

**Um ein Windows-Gerät einzurichten für AWS IoT Greengrass V2**

1. Installieren Sie die Java-Runtime, die für die Ausführung der AWS IoT Greengrass Core-Software erforderlich ist. Wir empfehlen, dass Sie die [Langzeit-Support-Versionen von Amazon Corretto](https://aws.amazon.com/corretto/) oder [OpenJDK](https://openjdk.java.net/) verwenden. Version 8 oder höher ist erforderlich.

1. Prüfen Sie, ob Java in der Systemvariablen [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) verfügbar ist, und fügen Sie es hinzu, falls nicht. Auf dem LocalSystem Konto wird die AWS IoT Greengrass Core-Software ausgeführt, sodass Sie der Systemvariablen PATH statt der Benutzervariablen PATH für Ihren Benutzer Java hinzufügen müssen. Gehen Sie wie folgt vor:

   1. Drücken Sie die Windows-Taste, um das Startmenü zu öffnen.

   1. Geben Sie **environment variables** ein, um im Startmenü nach den Systemoptionen zu suchen.

   1. Wählen Sie in den Suchergebnissen des Startmenüs **die Option Systemumgebungsvariablen bearbeiten** aus, um das Fenster mit den **Systemeigenschaften** zu öffnen.

   1. Wählen Sie **Umgebungsvariablen...** um das Fenster **Umgebungsvariablen** zu öffnen.

   1. Wählen Sie unter **Systemvariablen** die Option **Pfad** und dann **Bearbeiten** aus. Im Fenster **Umgebungsvariable bearbeiten** können Sie jeden Pfad in einer separaten Zeile anzeigen.

   1. Überprüfen Sie, ob der Pfad zum `bin` Ordner der Java-Installation vorhanden ist. Der Pfad könnte dem folgenden Beispiel ähneln.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Wenn der `bin` Ordner der Java-Installation in **Path** fehlt, wählen Sie **Neu**, um ihn hinzuzufügen, und **klicken Sie dann auf OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Öffnen Sie die Windows-Eingabeaufforderung (`cmd.exe`) als Administrator.

1. <a name="set-up-windows-device-environment-create"></a>Erstellen Sie den Standardbenutzer für das LocalSystem Konto auf dem Windows-Gerät. *password*Durch ein sicheres Passwort ersetzen.

   ```
   net user /add ggc_user password
   ```
**Tipp**  <a name="windows-password-expiration-tip"></a>
Abhängig von Ihrer Windows-Konfiguration ist das Benutzerkennwort möglicherweise so eingestellt, dass es an einem Datum in der future abläuft. Um sicherzustellen, dass Ihre Greengrass-Anwendungen weiterhin funktionieren, verfolgen Sie, wann das Passwort abläuft, und aktualisieren Sie es, bevor es abläuft. Sie können das Benutzerkennwort auch so einrichten, dass es niemals abläuft.  
Führen Sie den folgenden Befehl aus, um zu überprüfen, wann ein Benutzer und sein Passwort ablaufen.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Führen Sie den folgenden Befehl aus, um das Passwort eines Benutzers so einzustellen, dass es nie abläuft.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Wenn Sie Windows 10 oder höher verwenden und der [`wmic`Befehl veraltet ist](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), führen Sie den folgenden PowerShell Befehl aus.  

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Laden Sie das [PsExecProgramm](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) von Microsoft herunter und installieren Sie es auf dem Gerät. 

1. <a name="set-up-windows-device-credentials"></a>Verwenden Sie das PsExec Hilfsprogramm, um den Benutzernamen und das Passwort für den Standardbenutzer in der Credential Manager-Instanz für das LocalSystem Konto zu speichern. *password*Ersetzen Sie es durch das zuvor festgelegte Benutzerkennwort.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Wenn das **PsExec License Agreement**geöffnet wird, stimmen Sie **Accept**der Lizenz zu und führen Sie den Befehl aus.
**Anmerkung**  
Auf Windows-Geräten wird auf dem LocalSystem Konto der Greengrass-Nucleus ausgeführt, und Sie müssen das PsExec Hilfsprogramm verwenden, um die Standardbenutzerinformationen im LocalSystem Konto zu speichern. Wenn Sie die Credential Manager-Anwendung verwenden, werden diese Informationen nicht im Konto, sondern im Windows-Konto des aktuell angemeldeten Benutzers gespeichert. LocalSystem 

### Laden Sie die AWS IoT Greengrass Core-Software herunter
<a name="download-greengrass-core-v2-fleet"></a>

Sie können die neueste Version der AWS IoT Greengrass Core-Software von der folgenden Adresse herunterladen:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**Anmerkung**  
Sie können eine bestimmte Version der AWS IoT Greengrass Core-Software von der folgenden Adresse herunterladen. Ersetzen Sie es *version* durch die Version, die Sie herunterladen möchten.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Um die AWS IoT Greengrass Core-Software herunterzuladen**

1. <a name="installation-download-ggc-software-step"></a>Laden Sie die Core-Software auf Ihrem AWS IoT Greengrass Core-Gerät in eine Datei mit dem Namen herunter`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Mit dem Download dieser Software stimmen Sie der [Greengrass Core-Software-Lizenzvereinbarung](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf) zu.

1. <a name="verify-gg-nucleus-signature"></a>(Optional) Um die Greengrass Nucleus-Softwaresignatur zu überprüfen
**Anmerkung**  
Diese Funktion ist mit Greengrass Nucleus Version 2.9.5 und höher verfügbar.

   1. Verwenden Sie den folgenden Befehl, um die Signatur Ihres Greengrass-Kernartefakts zu überprüfen:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Der Dateiname kann je nach installierter JDK-Version anders aussehen. Ersetzen Sie es *`jdk17.0.6_10`* durch die JDK-Version, die Sie installiert haben.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Der Dateiname sieht je nach installierter JDK-Version möglicherweise anders aus. Ersetzen Sie es *`jdk17.0.6_10`* durch die JDK-Version, die Sie installiert haben.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. Der `jarsigner` Aufruf liefert eine Ausgabe, die die Ergebnisse der Überprüfung angibt.

      1. Wenn die Greengrass Nucleus-Zip-Datei signiert ist, enthält die Ausgabe die folgende Anweisung:

         ```
         jar verified.
         ```

      1. Wenn die Greengrass Nucleus-Zip-Datei nicht signiert ist, enthält die Ausgabe die folgende Anweisung:

         ```
         jar is unsigned.
         ```

   1. Wenn Sie die `-certs` Option Jarsigner zusammen mit den `-verbose` Optionen `-verify` und angegeben haben, enthält die Ausgabe auch detaillierte Informationen zum Unterzeichnerzertifikat.

1. <a name="installation-unzip-ggc-software-step"></a>Entpacken Sie die AWS IoT Greengrass Core-Software in einen Ordner auf Ihrem Gerät. *GreengrassInstaller*Ersetzen Sie es durch den Ordner, den Sie verwenden möchten.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Optional) Führen Sie den folgenden Befehl aus, um die Version der AWS IoT Greengrass Core-Software zu sehen.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**Wichtig**  <a name="installer-folder-2.4.0-warning"></a>
Wenn Sie eine Version von Greengrass Nucleus vor v2.4.0 installieren, entfernen Sie diesen Ordner nicht, nachdem Sie die AWS IoT Greengrass Core-Software installiert haben. Die AWS IoT Greengrass Core-Software verwendet die Dateien in diesem Ordner zur Ausführung.  
Wenn Sie die neueste Version der Software heruntergeladen haben, installieren Sie v2.4.0 oder höher, und Sie können diesen Ordner entfernen, nachdem Sie die AWS IoT Greengrass Core-Software installiert haben.

### Laden Sie das AWS IoT Fleet Provisioning Plugin herunter
<a name="download-fleet-provisioning-plugin"></a>

Sie können die neueste Version des AWS IoT Fleet Provisioning-Plug-ins von der folgenden Adresse herunterladen:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim](https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar)-latest.jar

**Anmerkung**  
Sie können eine bestimmte Version des AWS IoT Fleet Provisioning-Plug-ins von der folgenden Adresse herunterladen. Ersetzen Sie es *version* durch die Version, die Sie herunterladen möchten. Weitere Informationen zu den einzelnen Versionen des Fleet Provisioning-Plug-ins finden Sie unter[AWS IoT Changelog des Plug-ins für die Flottenbereitstellung](fleet-provisioning-changelog.md).  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-version.jar
```

Das Fleet Provisioning Plugin ist Open Source. Den Quellcode finden Sie im [AWS IoT Fleet Provisioning Plugin](https://github.com/aws-greengrass/aws-greengrass-fleet-provisioning-by-claim) unter. GitHub

**Um das AWS IoT Fleet Provisioning Plugin herunterzuladen**
+ Laden Sie auf Ihrem Gerät das AWS IoT Fleet Provisioning-Plugin in eine Datei mit dem Namen herunter. `aws.greengrass.FleetProvisioningByClaim.jar` *GreengrassInstaller*Ersetzen Sie es durch den Ordner, den Sie verwenden möchten.

------
#### [ Linux or Unix ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ Windows Command Prompt (CMD) ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ PowerShell ]

  ```
  iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar -OutFile GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------

  <a name="core-software-license"></a>Mit dem Download dieser Software stimmen Sie der [Greengrass Core-Software-Lizenzvereinbarung](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf) zu.

### Installieren Sie die AWS IoT Greengrass Core-Software
<a name="run-greengrass-core-v2-installer-fleet-provisioning"></a>

Führen Sie das Installationsprogramm mit Argumenten aus, die die folgenden Aktionen angeben:
+ Die Installation erfolgt aus einer Teilkonfigurationsdatei, in der angegeben ist, dass das Fleet Provisioning-Plugin zur Bereitstellung von AWS Ressourcen verwendet werden soll. Die AWS IoT Greengrass Core-Software verwendet eine Konfigurationsdatei, die die Konfiguration jeder Greengrass-Komponente auf dem Gerät spezifiziert. Das Installationsprogramm erstellt eine vollständige Konfigurationsdatei aus der Teilkonfigurationsdatei, die Sie bereitstellen, und den AWS Ressourcen, die das Fleet Provisioning-Plugin erstellt.
+ <a name="install-argument-component-default-user"></a>Geben Sie an, dass der `ggc_user` Systembenutzer zur Ausführung von Softwarekomponenten auf dem Kerngerät verwendet werden soll. Auf Linux-Geräten gibt dieser Befehl auch an, dass die `ggc_group` Systemgruppe verwendet werden soll, und das Installationsprogramm erstellt den Systembenutzer und die Systemgruppe für Sie.
+ <a name="install-argument-system-service"></a>Richten Sie die AWS IoT Greengrass Core-Software als Systemdienst ein, der beim Booten ausgeführt wird. Auf Linux-Geräten erfordert dies das [Systemd-Init-System](https://en.wikipedia.org/wiki/Systemd).
**Wichtig**  <a name="windows-system-service-requirement-important-note"></a>
Auf Windows Core-Geräten müssen Sie die AWS IoT Greengrass Core-Software als Systemdienst einrichten.

Weitere Hinweise zu den Argumenten, die Sie angeben können, finden Sie unter[Argumente des Installers](configure-installer.md).

**Anmerkung**  
<a name="jvm-tuning-note"></a>Wenn Sie AWS IoT Greengrass auf einem Gerät mit begrenztem Arbeitsspeicher arbeiten, können Sie die Speichermenge steuern, die die AWS IoT Greengrass Core-Software verwendet. Um die Speicherzuweisung zu steuern, können Sie im `jvmOptions` Konfigurationsparameter Ihrer Nucleus-Komponente die Optionen für die JVM-Heap-Größe festlegen. Weitere Informationen finden Sie unter [Steuern Sie die Speicherzuweisung mit JVM-Optionen](configure-greengrass-core-v2.md#jvm-tuning).

**Um die Core-Software zu installieren AWS IoT Greengrass**

1. <a name="installer-check-greengrass-core-software-version"></a>Überprüfen Sie die Version der AWS IoT Greengrass Core-Software.
   + *GreengrassInstaller*Ersetzen Sie es durch den Pfad zu dem Ordner, der die Software enthält.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Verwenden Sie einen Texteditor, um eine Konfigurationsdatei mit dem Namen `config.yaml` zu erstellen, die dem Installationsprogramm zur Verfügung gestellt werden soll.

   <a name="nano-command-intro"></a>Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Kopieren Sie den folgenden YAML-Inhalt in die Datei. Diese Teilkonfigurationsdatei spezifiziert Parameter für das Fleet Provisioning Plugin. Weitere Informationen zu den Optionen, die Sie angeben können, finden Sie unter[Konfigurieren Sie das AWS IoT Flottenbereitstellungs-Plugin](fleet-provisioning-configuration.md).

------
#### [ Linux or Unix ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.17.0"
       configuration:
         fipsMode: "true"
         greengrassDataPlaneEndpoint: "iotData"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "/greengrass/v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "/greengrass/v2/claim-certs/claim.pem.crt"
         claimCertificatePrivateKeyPath: "/greengrass/v2/claim-certs/claim.private.pem.key"
         rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

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

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.17.0"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "C:\\greengrass\\v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "C:\\greengrass\\v2\\claim-certs\\claim.pem.crt"
         claimCertificatePrivateKeyPath: "C:\\greengrass\\v2\\claim-certs\\claim.private.pem.key"
         rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------

   Führen Sie dann die folgenden Schritte aus:
   + *2.17.0*Ersetzen Sie es durch die Version der AWS IoT Greengrass Core-Software.
   + Ersetzen Sie jede Instanz von `/greengrass/v2` oder *C:\$1greengrass\$1v2* durch den Greengrass-Stammordner.
**Anmerkung**  
Auf Windows-Geräten müssen Sie Pfadtrennzeichen als doppelte umgekehrte Schrägstriche (`\\`) angeben, z. B. `C:\\greengrass\\v2`
   + *us-west-2*Ersetzen Sie durch die AWS Region, in der Sie die Provisioning-Vorlage und andere Ressourcen erstellt haben.
   + Ersetzen Sie das `iotDataEndpoint` durch Ihren AWS IoT Datenendpunkt.
   + Ersetzen Sie den Endpunkt `iotCredentialEndpoint` durch Ihren AWS IoT Anmeldeinformationen-Endpunkt.
   + *GreengrassCoreTokenExchangeRoleAlias*Ersetzen Sie es durch den Namen des Alias der Token-Exchange-Rolle.
   + *GreengrassFleetProvisioningTemplate*Ersetzen Sie es durch den Namen der Vorlage für die Flottenbereitstellung.
   + Ersetzen Sie den `claimCertificatePath` durch den Pfad zum Antragszertifikat auf dem Gerät.
   + Ersetzen Sie den `claimCertificatePrivateKeyPath` durch den Pfad zum privaten Schlüssel des Anspruchszertifikats auf dem Gerät.
   + Ersetzen Sie die Vorlagenparameter (`templateParameters`) durch die Werte, die zur Bereitstellung des Geräts verwendet werden sollen. Dieses Beispiel bezieht sich auf die [Beispielvorlage](fleet-provisioning-setup.md#example-fleet-provisioning-template), die `ThingGroupName` Parameter definiert`ThingName`.

1. Führen Sie das Installationsprogramm aus. Geben Sie `--trusted-plugin` an, ob das Fleet Provisioning Plug-in bereitgestellt werden soll, und geben Sie `--init-config` an, dass die Konfigurationsdatei bereitgestellt werden soll.
   + `/greengrass/v2`Ersetzen Sie es durch den Greengrass-Stammordner.
   + Ersetzen Sie jede Instanz von *GreengrassInstaller* durch den Ordner, in den Sie das Installationsprogramm entpackt haben.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**Wichtig**  <a name="windows-system-service-installer-argument-important-note"></a>
Auf Windows Core-Geräten müssen Sie angeben, `--setup-system-service true` dass die AWS IoT Greengrass Core-Software als Systemdienst eingerichtet werden soll.

   <a name="installer-setup-system-service-output-message"></a>Wenn Sie dies angeben`--setup-system-service true`, gibt das Installationsprogramm aus, `Successfully set up Nucleus as a system service` ob es die Software als Systemdienst eingerichtet und ausgeführt hat. Andernfalls gibt das Installationsprogramm keine Meldung aus, wenn es die Software erfolgreich installiert hat.
**Anmerkung**  <a name="installer-deploy-dev-tools-without-provision"></a>
Sie können das `deploy-dev-tools` Argument nicht verwenden, um lokale Entwicklungstools bereitzustellen, wenn Sie das Installationsprogramm ohne das `--provision true` Argument ausführen. Informationen zur direkten Bereitstellung der Greengrass-CLI auf Ihrem Gerät finden Sie unter[Greengrass-Befehlszeilenschnittstelle](gg-cli.md).

1. <a name="installer-verify-installation"></a>Überprüfen Sie die Installation, indem Sie sich die Dateien im Stammordner ansehen.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Wenn die Installation erfolgreich war, enthält der Stammordner mehrere Ordner, z. B. `config``packages`, und`logs`.

<a name="install-greengrass-core-run-software"></a>Wenn Sie die AWS IoT Greengrass Core-Software als Systemdienst installiert haben, führt das Installationsprogramm die Software für Sie aus. Andernfalls müssen Sie die Software manuell ausführen. Weitere Informationen finden Sie unter [Führen Sie die AWS IoT Greengrass Core-Software aus](run-greengrass-core-v2.md).

<a name="install-greengrass-core-next-steps-intro"></a>Weitere Informationen zur Konfiguration und Verwendung der Software finden Sie unter: AWS IoT Greengrass<a name="install-greengrass-core-next-steps-links"></a>
+ [Konfiguration der AWS IoT Greengrass Core-Software](configure-greengrass-core-v2.md)
+ [AWS IoT Greengrass Komponenten entwickeln](develop-greengrass-components.md)
+ [AWS IoT Greengrass Komponenten auf Geräten bereitstellen](manage-deployments.md)
+ [Greengrass-Befehlszeilenschnittstelle](gg-cli.md)

## Installieren Sie FIPS-Endpunkte mit auto Ressourcenbereitstellung
<a name="FIPS-auto-installation"></a>

Die AWS IoT Greengrass Core-Software enthält ein Installationsprogramm, das Ihr Gerät als Greengrass-Core-Gerät einrichtet. Um ein Gerät schnell einzurichten, kann das Installationsprogramm das AWS IoT AWS IoT Ding, die Dinggruppe, die AWS IoT IAM-Rolle und den Rollenalias bereitstellen, die das Kerngerät für den Betrieb benötigt. Das Installationsprogramm kann auch die lokalen Entwicklungstools auf dem Kerngerät bereitstellen, sodass Sie das Gerät verwenden können, um benutzerdefinierte Softwarekomponenten zu entwickeln und zu testen. Das Installationsprogramm benötigt AWS Anmeldeinformationen, um diese Ressourcen bereitzustellen und die Bereitstellung zu erstellen.

Wenn Sie keine AWS Anmeldeinformationen für das Gerät angeben können, können Sie die AWS Ressourcen bereitstellen, die das Kerngerät für den Betrieb benötigt. Sie können die Entwicklungstools auch auf einem Kerngerät bereitstellen, um es als Entwicklungsgerät zu verwenden. Auf diese Weise können Sie dem Gerät weniger Berechtigungen zuweisen, wenn Sie das Installationsprogramm ausführen. Weitere Informationen finden Sie unter [Installieren Sie die AWS IoT Greengrass Core-Software mit manueller Ressourcenbereitstellung](manual-installation.md).

**Wichtig**  <a name="install-greengrass-core-requirements-note"></a>
Bevor Sie die AWS IoT Greengrass Core-Software herunterladen, überprüfen Sie, ob Ihr Kerngerät die [Anforderungen](greengrass-nucleus-component.md#greengrass-v2-requirements) für die Installation und Ausführung der AWS IoT Greengrass Core-Software v2.0 erfüllt.

**Topics**
+ [Richten Sie die Geräteumgebung ein](#set-up-device-environment)
+ [Geben Sie AWS Anmeldeinformationen für das Gerät ein](#provide-installer-aws-credentials-auto)
+ [Laden Sie die AWS IoT Greengrass Core-Software herunter](#download-greengrass-core-v2-auto)
+ [Installieren Sie die Core-Software AWS IoT Greengrass](#run-greengrass-core-v2-installer-auto)

### Richten Sie die Geräteumgebung ein
<a name="set-up-device-environment"></a>

Folgen Sie den Schritten in diesem Abschnitt, um ein Linux- oder Windows-Gerät einzurichten, das als Ihr AWS IoT Greengrass Kerngerät verwendet werden soll.

#### Richten Sie ein Linux-Gerät ein
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Um ein Linux-Gerät einzurichten für AWS IoT Greengrass V2**

1. Installieren Sie die Java-Runtime, die für die Ausführung der AWS IoT Greengrass Core-Software erforderlich ist. Wir empfehlen, dass Sie die [Langzeit-Support-Versionen von Amazon Corretto](https://aws.amazon.com/corretto/) oder [OpenJDK](https://openjdk.java.net/) verwenden. Version 8 oder höher ist erforderlich. Die folgenden Befehle zeigen Ihnen, wie Sie OpenJDK auf Ihrem Gerät installieren.
   + Für Debian- oder Ubuntu-basierte Distributionen:

     ```
     sudo apt install default-jdk
     ```
   + Für Red Hat-basierte Distributionen:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Für Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Für Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Führen Sie nach Abschluss der Installation den folgenden Befehl aus, um zu überprüfen, ob Java auf Ihrem Linux-Gerät ausgeführt wird.

   ```
   java -version
   ```

   Der Befehl druckt die Version von Java, die auf dem Gerät ausgeführt wird. Bei einer Debian-basierten Distribution könnte die Ausgabe beispielsweise dem folgenden Beispiel ähneln.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Optional) Erstellen Sie den Standardsystembenutzer und die Standardgruppe, die Komponenten auf dem Gerät ausführen. Sie können auch festlegen, dass der AWS IoT Greengrass Core-Software-Installer diesen Benutzer und diese Gruppe während der Installation mit dem `--component-default-user` Installer-Argument erstellt. Weitere Informationen finden Sie unter [Argumente des Installers](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Stellen Sie sicher, dass der Benutzer, der die AWS IoT Greengrass Core-Software ausführt (in der Regel`root`), über die erforderlichen Rechte verfügt, die Software `sudo` mit jedem beliebigen Benutzer und jeder Gruppe auszuführen.

   1. Führen Sie den folgenden Befehl aus, um die `/etc/sudoers` Datei zu öffnen.

      ```
      sudo visudo
      ```

   1. Stellen Sie sicher, dass die Berechtigung für den Benutzer wie im folgenden Beispiel aussieht.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. *(Optional) Um [containerisierte Lambda-Funktionen auszuführen](run-lambda-functions.md), müssen Sie [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1 aktivieren und Sie müssen die *Speicher* - und Geräte-Cgroups aktivieren und mounten.* Wenn Sie nicht vorhaben, containerisierte Lambda-Funktionen auszuführen, können Sie diesen Schritt überspringen.

   Um diese Cgroups-Optionen zu aktivieren, starten Sie das Gerät mit den folgenden Linux-Kernelparametern.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Informationen zum Anzeigen und Einstellen der Kernel-Parameter für Ihr Gerät finden Sie in der Dokumentation zu Ihrem Betriebssystem und Bootloader. Folgen Sie den Anweisungen, um die Kernel-Parameter dauerhaft einzustellen.

1. Installieren Sie alle anderen erforderlichen Abhängigkeiten auf Ihrem Gerät, wie in der Liste der Anforderungen unter angegeben[Anforderungen an Speichergeräte](greengrass-nucleus-component.md#greengrass-v2-requirements).

#### Richten Sie ein Windows-Gerät ein
<a name="set-up-windows-device-environment"></a>

**Anmerkung**  
Diese Funktion ist für Version 2.5.0 und höher der [Greengrass](greengrass-nucleus-component.md) Nucleus-Komponente verfügbar.<a name="set-up-windows-device-environment-procedure"></a>

**Um ein Windows-Gerät einzurichten für AWS IoT Greengrass V2**

1. Installieren Sie die Java-Runtime, die für die Ausführung der AWS IoT Greengrass Core-Software erforderlich ist. Wir empfehlen, dass Sie die [Langzeit-Support-Versionen von Amazon Corretto](https://aws.amazon.com/corretto/) oder [OpenJDK](https://openjdk.java.net/) verwenden. Version 8 oder höher ist erforderlich.

1. Prüfen Sie, ob Java in der Systemvariablen [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) verfügbar ist, und fügen Sie es hinzu, falls nicht. Auf dem LocalSystem Konto wird die AWS IoT Greengrass Core-Software ausgeführt, sodass Sie der Systemvariablen PATH statt der Benutzervariablen PATH für Ihren Benutzer Java hinzufügen müssen. Gehen Sie wie folgt vor:

   1. Drücken Sie die Windows-Taste, um das Startmenü zu öffnen.

   1. Geben Sie **environment variables** ein, um im Startmenü nach den Systemoptionen zu suchen.

   1. Wählen Sie in den Suchergebnissen des Startmenüs **die Option Systemumgebungsvariablen bearbeiten** aus, um das Fenster mit den **Systemeigenschaften** zu öffnen.

   1. Wählen Sie **Umgebungsvariablen...** um das Fenster **Umgebungsvariablen** zu öffnen.

   1. Wählen Sie unter **Systemvariablen** die Option **Pfad** und dann **Bearbeiten** aus. Im Fenster **Umgebungsvariable bearbeiten** können Sie jeden Pfad in einer separaten Zeile anzeigen.

   1. Überprüfen Sie, ob der Pfad zum `bin` Ordner der Java-Installation vorhanden ist. Der Pfad könnte dem folgenden Beispiel ähneln.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Wenn der `bin` Ordner der Java-Installation in **Path** fehlt, wählen Sie **Neu**, um ihn hinzuzufügen, und **klicken Sie dann auf OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Öffnen Sie die Windows-Eingabeaufforderung (`cmd.exe`) als Administrator.

1. <a name="set-up-windows-device-environment-create"></a>Erstellen Sie den Standardbenutzer für das LocalSystem Konto auf dem Windows-Gerät. *password*Durch ein sicheres Passwort ersetzen.

   ```
   net user /add ggc_user password
   ```
**Tipp**  <a name="windows-password-expiration-tip"></a>
Abhängig von Ihrer Windows-Konfiguration ist das Benutzerkennwort möglicherweise so eingestellt, dass es an einem Datum in der future abläuft. Um sicherzustellen, dass Ihre Greengrass-Anwendungen weiterhin funktionieren, verfolgen Sie, wann das Passwort abläuft, und aktualisieren Sie es, bevor es abläuft. Sie können das Benutzerkennwort auch so einrichten, dass es niemals abläuft.  
Führen Sie den folgenden Befehl aus, um zu überprüfen, wann ein Benutzer und sein Passwort ablaufen.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Führen Sie den folgenden Befehl aus, um das Passwort eines Benutzers so einzustellen, dass es nie abläuft.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Wenn Sie Windows 10 oder höher verwenden und der [`wmic`Befehl veraltet ist](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), führen Sie den folgenden PowerShell Befehl aus.  

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Laden Sie das [PsExecProgramm](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) von Microsoft herunter und installieren Sie es auf dem Gerät. 

1. <a name="set-up-windows-device-credentials"></a>Verwenden Sie das PsExec Hilfsprogramm, um den Benutzernamen und das Passwort für den Standardbenutzer in der Credential Manager-Instanz für das LocalSystem Konto zu speichern. *password*Ersetzen Sie es durch das zuvor festgelegte Benutzerkennwort.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Wenn das **PsExec License Agreement**geöffnet wird, stimmen Sie **Accept**der Lizenz zu und führen Sie den Befehl aus.
**Anmerkung**  
Auf Windows-Geräten wird auf dem LocalSystem Konto der Greengrass-Nucleus ausgeführt, und Sie müssen das PsExec Hilfsprogramm verwenden, um die Standardbenutzerinformationen im LocalSystem Konto zu speichern. Wenn Sie die Credential Manager-Anwendung verwenden, werden diese Informationen nicht im Konto, sondern im Windows-Konto des aktuell angemeldeten Benutzers gespeichert. LocalSystem 

### Geben Sie AWS Anmeldeinformationen für das Gerät ein
<a name="provide-installer-aws-credentials-auto"></a>

Geben Sie Ihre AWS Anmeldeinformationen für Ihr Gerät ein, damit das Installationsprogramm die erforderlichen AWS Ressourcen bereitstellen kann. Weitere Informationen zu den erforderlichen Berechtigungen finden Sie unter [Minimale IAM-Richtlinie für das Installationsprogramm zur Bereitstellung von Ressourcen](provision-minimal-iam-policy.md).

**Um AWS Anmeldeinformationen für das Gerät bereitzustellen**
+ <a name="installer-export-aws-credentials"></a>Geben Sie Ihre AWS Anmeldeinformationen für das Gerät ein, damit das Installationsprogramm die AWS IoT und IAM-Ressourcen für Ihr Kerngerät bereitstellen kann. Um die Sicherheit zu erhöhen, empfehlen wir Ihnen, temporäre Anmeldeinformationen für eine IAM-Rolle zu erwerben, die nur die für die Bereitstellung erforderlichen Mindestberechtigungen gewährt. Weitere Informationen finden Sie unter [Minimale IAM-Richtlinie für das Installationsprogramm zur Bereitstellung von Ressourcen](provision-minimal-iam-policy.md).
**Anmerkung**  
Das Installationsprogramm speichert oder speichert Ihre Anmeldeinformationen nicht.

  Führen Sie auf Ihrem Gerät einen der folgenden Schritte aus, um die Anmeldeinformationen abzurufen und sie dem AWS IoT Greengrass Core-Software-Installationsprogramm zur Verfügung zu stellen:
  + (Empfohlen) Verwenden Sie temporäre Anmeldeinformationen von AWS IAM Identity Center

    1. Geben Sie die Zugriffsschlüssel-ID, den geheimen Zugriffsschlüssel und das Sitzungstoken aus dem IAM Identity Center ein. Weitere Informationen finden Sie unter **Manuelles Aktualisieren von Anmeldeinformationen im Abschnitt** [Temporäre Anmeldeinformationen abrufen und aktualisieren](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials) im *IAM Identity Center-Benutzerhandbuch*.

    1. Führen Sie die folgenden Befehle aus, um die Anmeldeinformationen für die AWS IoT Greengrass Core-Software bereitzustellen.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="
       ```

------
  + Verwenden Sie temporäre Sicherheitsanmeldedaten aus einer IAM-Rolle:

    1. Geben Sie die Zugriffsschlüssel-ID, den geheimen Zugriffsschlüssel und das Sitzungstoken aus einer IAM-Rolle an, die Sie annehmen. Weitere Informationen zum Abrufen dieser Anmeldeinformationen finden Sie unter [Temporäre Sicherheitsanmeldeinformationen anfordern](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) im *IAM-Benutzerhandbuch*.

    1. Führen Sie die folgenden Befehle aus, um die Anmeldeinformationen für die AWS IoT Greengrass Core-Software bereitzustellen.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="
       ```

------
  + Verwenden Sie langfristige Anmeldeinformationen von einem IAM-Benutzer:

    1. Geben Sie die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel für Ihren IAM-Benutzer an. Sie können einen IAM-Benutzer für die Bereitstellung erstellen, den Sie später löschen. Informationen zur IAM-Richtlinie, die dem Benutzer zur Verfügung gestellt werden soll, finden Sie unter. [Minimale IAM-Richtlinie für das Installationsprogramm zur Bereitstellung von Ressourcen](provision-minimal-iam-policy.md) Weitere Informationen zum Abrufen langfristiger Anmeldeinformationen finden Sie unter [Verwaltung von Zugriffsschlüsseln für IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) im *IAM-Benutzerhandbuch*.

    1. Führen Sie die folgenden Befehle aus, um die Anmeldeinformationen für die AWS IoT Greengrass Core-Software bereitzustellen.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       ```

------

    1. (Optional) Wenn Sie einen IAM-Benutzer für die Bereitstellung Ihres Greengrass-Geräts erstellt haben, löschen Sie den Benutzer.

    1. (Optional) Wenn Sie die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel eines vorhandenen IAM-Benutzers verwendet haben, aktualisieren Sie die Schlüssel für den Benutzer, sodass sie nicht mehr gültig sind. Weitere Informationen finden Sie im *AWS Identity and Access Management Benutzerhandbuch* unter [Aktualisieren von Zugriffsschlüsseln](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey).

### Laden Sie die AWS IoT Greengrass Core-Software herunter
<a name="download-greengrass-core-v2-auto"></a>

Sie können die neueste Version der AWS IoT Greengrass Core-Software von der folgenden Adresse herunterladen:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**Anmerkung**  
Sie können eine bestimmte Version der AWS IoT Greengrass Core-Software von der folgenden Adresse herunterladen. Ersetzen Sie es *version* durch die Version, die Sie herunterladen möchten.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Um die AWS IoT Greengrass Core-Software herunterzuladen**

1. <a name="installation-download-ggc-software-step"></a>Laden Sie die Core-Software auf Ihrem AWS IoT Greengrass Core-Gerät in eine Datei mit dem Namen herunter`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Mit dem Download dieser Software stimmen Sie der [Greengrass Core-Software-Lizenzvereinbarung](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf) zu.

1. <a name="verify-gg-nucleus-signature"></a>(Optional) Um die Greengrass Nucleus-Softwaresignatur zu überprüfen
**Anmerkung**  
Diese Funktion ist mit Greengrass Nucleus Version 2.9.5 und höher verfügbar.

   1. Verwenden Sie den folgenden Befehl, um die Signatur Ihres Greengrass-Kernartefakts zu überprüfen:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Der Dateiname kann je nach installierter JDK-Version anders aussehen. Ersetzen Sie es *`jdk17.0.6_10`* durch die JDK-Version, die Sie installiert haben.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Der Dateiname sieht je nach installierter JDK-Version möglicherweise anders aus. Ersetzen Sie es *`jdk17.0.6_10`* durch die JDK-Version, die Sie installiert haben.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. Der `jarsigner` Aufruf liefert eine Ausgabe, die die Ergebnisse der Überprüfung angibt.

      1. Wenn die Greengrass Nucleus-Zip-Datei signiert ist, enthält die Ausgabe die folgende Anweisung:

         ```
         jar verified.
         ```

      1. Wenn die Greengrass Nucleus-Zip-Datei nicht signiert ist, enthält die Ausgabe die folgende Anweisung:

         ```
         jar is unsigned.
         ```

   1. Wenn Sie die `-certs` Option Jarsigner zusammen mit den `-verbose` Optionen `-verify` und angegeben haben, enthält die Ausgabe auch detaillierte Informationen zum Unterzeichnerzertifikat.

1. <a name="installation-unzip-ggc-software-step"></a>Entpacken Sie die AWS IoT Greengrass Core-Software in einen Ordner auf Ihrem Gerät. *GreengrassInstaller*Ersetzen Sie es durch den Ordner, den Sie verwenden möchten.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Optional) Führen Sie den folgenden Befehl aus, um die Version der AWS IoT Greengrass Core-Software zu sehen.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**Wichtig**  <a name="installer-folder-2.4.0-warning"></a>
Wenn Sie eine Version von Greengrass Nucleus vor v2.4.0 installieren, entfernen Sie diesen Ordner nicht, nachdem Sie die AWS IoT Greengrass Core-Software installiert haben. Die AWS IoT Greengrass Core-Software verwendet die Dateien in diesem Ordner zur Ausführung.  
Wenn Sie die neueste Version der Software heruntergeladen haben, installieren Sie v2.4.0 oder höher, und Sie können diesen Ordner entfernen, nachdem Sie die AWS IoT Greengrass Core-Software installiert haben.

### Installieren Sie die Core-Software AWS IoT Greengrass
<a name="run-greengrass-core-v2-installer-auto"></a>

Führen Sie das Installationsprogramm mit Argumenten aus, die Folgendes angeben:
+ <a name="install-argument-aws-resources"></a>Erstellen Sie die AWS Ressourcen, die das Kerngerät für den Betrieb benötigt.
+ <a name="install-argument-component-default-user"></a>Geben Sie an, dass der `ggc_user` Systembenutzer Softwarekomponenten auf dem Kerngerät ausführen soll. Auf Linux-Geräten gibt dieser Befehl auch an, dass die `ggc_group` Systemgruppe verwendet werden soll, und das Installationsprogramm erstellt den Systembenutzer und die Systemgruppe für Sie.
+ <a name="install-argument-system-service"></a>Richten Sie die AWS IoT Greengrass Core-Software als Systemdienst ein, der beim Booten ausgeführt wird. Auf Linux-Geräten erfordert dies das [Systemd-Init-System](https://en.wikipedia.org/wiki/Systemd).
**Wichtig**  <a name="windows-system-service-requirement-important-note"></a>
Auf Windows Core-Geräten müssen Sie die AWS IoT Greengrass Core-Software als Systemdienst einrichten.

Um ein Entwicklungsgerät mit lokalen Entwicklungstools einzurichten, geben Sie das `--deploy-dev-tools true` Argument an. Die Bereitstellung der lokalen Entwicklungstools kann nach Abschluss der Installation bis zu einer Minute dauern. 

Weitere Hinweise zu den Argumenten, die Sie angeben können, finden Sie unter[Argumente des Installers](configure-installer.md).

**Anmerkung**  
<a name="jvm-tuning-note"></a>Wenn Sie AWS IoT Greengrass auf einem Gerät mit begrenztem Arbeitsspeicher arbeiten, können Sie die Speichermenge steuern, die die AWS IoT Greengrass Core-Software verwendet. Um die Speicherzuweisung zu steuern, können Sie im `jvmOptions` Konfigurationsparameter Ihrer Nucleus-Komponente die Optionen für die JVM-Heap-Größe festlegen. Weitere Informationen finden Sie unter [Steuern Sie die Speicherzuweisung mit JVM-Optionen](configure-greengrass-core-v2.md#jvm-tuning).

**Um die Core-Software zu installieren AWS IoT Greengrass**

1. Verwenden Sie einen Texteditor, um eine Konfigurationsdatei mit dem Namen `config.yaml` zu erstellen, die dem Installationsprogramm zur Verfügung gestellt werden soll.

   <a name="nano-command-intro"></a>Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Kopieren Sie den folgenden YAML-Inhalt in die Datei. Diese Teilkonfigurationsdatei spezifiziert Systemparameter und Greengrass-Nukleus-Parameter.

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       configuration:
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
   ```
   + *us-west-2*Ersetzen Sie durch den AWS-Region Ort, an dem Sie die Ressourcen erstellt haben.
   + Ersetzen Sie das *iotDataEndpoint* durch Ihren AWS IoT Datenendpunkt.
   + Ersetzen Sie den Endpunkt *iotCredEndpoint* durch Ihren AWS IoT Anmeldeinformationen-Endpunkt.

1. Führen Sie das AWS IoT Greengrass Core-Installationsprogramm aus. Ersetzen Sie die Argumentwerte in Ihrem Befehl wie folgt.
**Anmerkung**  
Windows hat eine Pfadlängenbegrenzung von 260 Zeichen. Wenn Sie Windows verwenden, verwenden Sie einen Stammordner wie `C:\greengrass\v2` oder, `D:\greengrass\v2` um die Greengrass-Komponentenpfade unter der Obergrenze von 260 Zeichen zu halten.<a name="installer-replace-arguments"></a>

   1. `/greengrass/v2`oder*C:\$1greengrass\$1v2*: Der Pfad zum Stammordner, der für die Installation der AWS IoT Greengrass Core-Software verwendet werden soll.

   1. *GreengrassInstaller*. Der Pfad zu dem Ordner, in den Sie das AWS IoT Greengrass Core-Softwareinstallationsprogramm entpackt haben.

   1. *region*. Das, AWS-Region in dem Ressourcen gefunden oder erstellt werden sollen.

   1. *MyGreengrassCore*. Der Name der AWS IoT Sache für Ihr Greengrass-Core-Gerät. Wenn das Ding nicht existiert, erstellt es das Installationsprogramm. Das Installationsprogramm lädt die Zertifikate herunter, um sich als das AWS IoT Ding zu authentifizieren. Weitere Informationen finden Sie unter [Geräteauthentifizierung und Autorisierung für AWS IoT Greengrass](device-auth.md).
**Anmerkung**  <a name="install-argument-thing-name-constraint"></a>
Der Name der Sache darf keine Doppelpunkte (`:`) enthalten.

   1. *MyGreengrassCoreGroup*. Der Name der AWS IoT Dinggruppe für Ihr Greengrass-Core-Gerät. Wenn die Dinggruppe nicht existiert, erstellt das Installationsprogramm sie und fügt ihr das Ding hinzu. Wenn die Dinggruppe vorhanden ist und über eine aktive Bereitstellung verfügt, lädt das Kerngerät die in der Bereitstellung angegebene Software herunter und führt sie aus.
**Anmerkung**  <a name="install-argument-thing-group-name-constraint"></a>
Der Name der Dinggruppe darf keine Doppelpunkte (`:`) enthalten.

   1. *GreengrassV2IoTThingPolicy*. Der Name der AWS IoT Richtlinie, die es den Greengrass-Core-Geräten ermöglicht, mit AWS IoT und AWS IoT Greengrass zu kommunizieren. Wenn die AWS IoT Richtlinie nicht existiert, erstellt das Installationsprogramm eine zulässige AWS IoT Richtlinie mit diesem Namen. Sie können die Berechtigungen dieser Richtlinie für Ihren Anwendungsfall einschränken. Weitere Informationen finden Sie unter [Minimale AWS IoT Richtlinie für AWS IoT Greengrass V2 Kerngeräte](device-auth.md#greengrass-core-minimal-iot-policy).

   1. *GreengrassV2TokenExchangeRole*. Der Name der IAM-Rolle, die es dem Greengrass-Core-Gerät ermöglicht, temporäre AWS Anmeldeinformationen abzurufen. Wenn die Rolle nicht existiert, erstellt das Installationsprogramm sie und erstellt und fügt eine Richtlinie mit dem Namen hinzu. `GreengrassV2TokenExchangeRoleAccess` Weitere Informationen finden Sie unter [Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS](device-service-role.md).

   1. *GreengrassCoreTokenExchangeRoleAlias*. Der Alias für die IAM-Rolle, der es dem Greengrass-Core-Gerät ermöglicht, später temporäre Anmeldeinformationen abzurufen. Wenn der Rollenalias nicht existiert, erstellt ihn das Installationsprogramm und verweist ihn auf die von Ihnen angegebene IAM-Rolle. Weitere Informationen finden Sie unter [Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS](device-service-role.md).

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --aws-region region \
     --thing-name MyGreengrassCore \
     --thing-group-name MyGreengrassCoreGroup \
     --thing-policy-name GreengrassV2IoTThingPolicy \
     --tes-role-name GreengrassV2TokenExchangeRole \
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias \
     --component-default-user ggc_user:ggc_group \
     --provision true \
     --init-config ./GreengrassInstaller/config.yaml \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --aws-region region ^
     --thing-name MyGreengrassCore ^
     --thing-group-name MyGreengrassCoreGroup ^
     --thing-policy-name GreengrassV2IoTThingPolicy ^
     --tes-role-name GreengrassV2TokenExchangeRole ^
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias ^
     --component-default-user ggc_user ^
     --provision true ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --aws-region region `
     --thing-name MyGreengrassCore `
     --thing-group-name MyGreengrassCoreGroup `
     --thing-policy-name GreengrassV2IoTThingPolicy `
     --tes-role-name GreengrassV2TokenExchangeRole `
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias `
     --component-default-user ggc_user `
     --provision true `
     --setup-system-service true
   ```

------
**Wichtig**  <a name="windows-system-service-installer-argument-important-note"></a>
Auf Windows Core-Geräten müssen Sie angeben, `--setup-system-service true` dass die AWS IoT Greengrass Core-Software als Systemdienst eingerichtet werden soll.

   Das Installationsprogramm druckt die folgenden Meldungen, wenn es erfolgreich ist:
   + Wenn Sie angeben`--provision`, druckt das Installationsprogramm, `Successfully configured Nucleus with provisioned resource details` ob es die Ressourcen erfolgreich konfiguriert hat.
   + Wenn Sie dies angeben`--deploy-dev-tools`, druckt das Installationsprogramm, `Configured Nucleus to deploy aws.greengrass.Cli component` ob es die Einrichtung erfolgreich erstellt hat.
   + Wenn Sie dies angeben`--setup-system-service true`, gibt das Installationsprogramm aus, `Successfully set up Nucleus as a system service` ob es die Software als Dienst eingerichtet und ausgeführt hat.
   + Wenn Sie nichts angeben`--setup-system-service true`, gibt das Installationsprogramm aus, `Launched Nucleus successfully` ob es erfolgreich war und die Software ausgeführt hat.

1. Überspringen Sie diesen Schritt, wenn Sie [Grüngraskern](greengrass-nucleus-component.md) v2.0.4 oder höher installiert haben. Wenn Sie die neueste Version der Software heruntergeladen haben, haben Sie v2.0.4 oder höher installiert.

   Führen Sie den folgenden Befehl aus, um die erforderlichen Dateiberechtigungen für Ihren AWS IoT Greengrass Core-Software-Stammordner festzulegen. `/greengrass/v2`Ersetzen Sie es durch den Stammordner, den Sie in Ihrem Installationsbefehl angegeben haben, und */greengrass* durch den übergeordneten Ordner für Ihren Stammordner.

   ```
   sudo chmod 755 /greengrass/v2 && sudo chmod 755 /greengrass
   ```

<a name="install-greengrass-core-run-software"></a>Wenn Sie die AWS IoT Greengrass Core-Software als Systemdienst installiert haben, führt das Installationsprogramm die Software für Sie aus. Andernfalls müssen Sie die Software manuell ausführen. Weitere Informationen finden Sie unter [Führen Sie die AWS IoT Greengrass Core-Software aus](run-greengrass-core-v2.md).

**Anmerkung**  
Standardmäßig erlaubt die IAM-Rolle, die das Installationsprogramm erstellt, keinen Zugriff auf Komponentenartefakte in S3-Buckets. Um benutzerdefinierte Komponenten bereitzustellen, die Artefakte in Amazon S3 definieren, müssen Sie der Rolle Berechtigungen hinzufügen, damit Ihr Kerngerät Komponentenartefakte abrufen kann. Weitere Informationen finden Sie unter [Erlauben Sie den Zugriff auf S3-Buckets für Komponentenartefakte](device-service-role.md#device-service-role-access-s3-bucket).  
Wenn Sie noch keinen S3-Bucket für Komponentenartefakte haben, können Sie diese Berechtigungen später hinzufügen, nachdem Sie einen Bucket erstellt haben.

<a name="install-greengrass-core-next-steps-intro"></a>Weitere Informationen zur Konfiguration und Verwendung der Software finden Sie unter: AWS IoT Greengrass<a name="install-greengrass-core-next-steps-links"></a>
+ [Konfiguration der AWS IoT Greengrass Core-Software](configure-greengrass-core-v2.md)
+ [AWS IoT Greengrass Komponenten entwickeln](develop-greengrass-components.md)
+ [AWS IoT Greengrass Komponenten auf Geräten bereitstellen](manage-deployments.md)
+ [Greengrass-Befehlszeilenschnittstelle](gg-cli.md)

## Komponenten von Erstanbietern zur FIPS-Konformität
<a name="FIPS-compliance"></a>


|  |  | 
| --- | --- | 
| aws.greengrass.Nucleus | data.iot-fips.us-east-1.amazonaws.com | 
|  | greengrass-fips.us-east-1.amazonaws.com | 
|  | data.credentials.iot-fips.us-east-1.amazonaws.com | 
| aws.greengrass.TokenExchangeService | data.credentials.iot-fips.us-east-1.amazonaws.com | 
| aws.greengrass.Cli |  | 
| aws.greengrass.StreamManager | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/FIPS.html) Stream Manager unterstützt keinen AWS IoT Analytics FIPS-Endpunkt  | 
| aws.greengrass.LogManager | logs-fips. us-east-1.amazonaws.com | 
| aws.greengrass.crypto.Pkcs11Provider |  | 
| aws.greengrass.ShadowManager |  | 
| aws.greengrass.DockerApplicationManager | ecr-fips. us-east-1.amazonaws.com | 
| aws.greengrass.SecretManager | SecretsManager-FIPS. us-east-1.amazonaws.com | 
| aws.greengrass.telemetry.NucleusEmitter |  | 
| aws.greengrass.clientdevices.IPDetector |  | 
| aws.greengrass.DiskSpooler |  | 

# Resilienz in AWS IoT Greengrass
<a name="disaster-recovery-resiliency"></a>

Die AWS globale Infrastruktur basiert auf den Regionen und Availability Zones von Amazon Web Services. Jede AWS-Region bietet mehrere physisch getrennte und isolierte Availability Zones, die über Netzwerke mit niedriger Latenz, hohem Durchsatz und hoher Redundanz miteinander verbunden sind. Mithilfe von Availability Zones können Sie Anwendungen und Datenbanken erstellen und ausführen, die automatisch Failover zwischen Zonen ausführen, ohne dass es zu Unterbrechungen kommt. Availability Zones sind besser verfügbar, fehlertoleranter und skalierbarer als herkömmliche Infrastrukturen mit einem oder mehreren Rechenzentren. 

Weitere Informationen finden Sie unter [AWS -Globale Infrastruktur](https://aws.amazon.com/about-aws/global-infrastructure/).

Zusätzlich zur AWS globalen Infrastruktur AWS IoT Greengrass bietet es mehrere Funktionen, die Sie bei der Erfüllung Ihrer Datenausfallsicherheit und Ihrer Backup-Anforderungen unterstützen.
+ Sie können ein Greengrass-Core-Gerät so konfigurieren, dass es Protokolle in das lokale Dateisystem und in CloudWatch Logs schreibt. Wenn das Core-Gerät die Konnektivität verliert, kann es weiterhin Nachrichten im Dateisystem protokollieren. Wenn es wieder eine Verbindung herstellt, schreibt es die Protokollnachrichten in CloudWatch Logs. Weitere Informationen finden Sie unter [AWS IoT Greengrass Protokolle überwachen](monitor-logs.md).
+ Wenn ein Core-Gerät während einer Bereitstellung die Stromversorgung verliert, nimmt es die Bereitstellung wieder auf, nachdem die AWS IoT Greengrass Core-Software erneut gestartet wurde.
+ Wenn ein Core-Gerät die Internetverbindung verliert, können Greengrass-Client-Geräte weiterhin über das lokale Netzwerk kommunizieren.
+ Sie können Greengrass-Komponenten erstellen, die [Stream-Manager-Streams](manage-data-streams.md) lesen und die Daten an lokale Speicherziele senden.

# Infrastruktursicherheit in AWS IoT Greengrass
<a name="infrastructure-security"></a>

Als verwalteter Service AWS IoT Greengrass ist er durch die AWS globalen Netzwerksicherheitsverfahren geschützt, die im Whitepaper [Amazon Web Services: Sicherheitsprozesse im Überblick](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf) beschrieben sind.

Sie verwenden AWS veröffentlichte API-Aufrufe, um AWS IoT Greengrass über das Netzwerk darauf zuzugreifen. Clients müssen Transport Layer Security (TLS) 1.2 oder höher unterstützen. Wir empfehlen TLS 1.3 oder höher. Clients müssen außerdem Cipher Suites mit PFS (Perfect Forward Secrecy) wie DHE (Ephemeral Diffie-Hellman) oder ECDHE (Elliptic Curve Ephemeral Diffie-Hellman) unterstützen. Die meisten modernen Systeme wie Java 7 und höher unterstützen diese Modi.

Anforderungen müssen mit einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel signiert sein, der mit einem IAM-Prinzipal verknüpft ist. Alternativ können Sie mit [AWS -Security-Token-Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) temporäre Sicherheitsanmeldeinformationen erstellen, um die Anforderungen zu signieren.

In einer AWS IoT Greengrass Umgebung verwenden Geräte X.509-Zertifikate und kryptografische Schlüssel, um sich mit dem zu verbinden und zu authentifizieren. AWS Cloud Weitere Informationen finden Sie unter [Geräteauthentifizierung und Autorisierung für AWS IoT Greengrass](device-auth.md).

# Konfiguration und Schwachstellenanalyse in AWS IoT Greengrass
<a name="vulnerability-analysis-and-management"></a>

IoT-Umgebungen können aus einer großen Anzahl von Geräten mit unterschiedlichsten Funktionen bestehen und sind langlebig und geografisch verteilt. Aufgrund dieser Merkmale ist die Geräteeinrichtung komplex und fehleranfällig. Und da Geräte bezüglich Rechenleistung, Arbeitsspeicher und Speicherkapazitäten eingeschränkt sind, können Verschlüsselung und andere Formen der Sicherheit auf den Geräten selbst nur limitiert eingesetzt werden. Außerdem verwenden Geräte häufig Software mit bekannten Schwachstellen. Diese Faktoren machen IoT-Geräte zu einem attraktiven Ziel für Hacker und erschweren die kontinuierliche Sicherung.

AWS IoT Device Defender begegnet diesen Herausforderungen durch die Bereitstellung von Tools zur Identifizierung von Sicherheitsproblemen und Abweichungen von bewährten Verfahren. Sie können AWS IoT Device Defender damit verbundene Geräte analysieren, prüfen und überwachen, um ungewöhnliches Verhalten zu erkennen und Sicherheitsrisiken zu minimieren. AWS IoT Device Defender kann Geräte überprüfen, um sicherzustellen, dass sie den bewährten Sicherheitsmethoden entsprechen, und abnormales Verhalten auf Geräten erkennen. Auf diese Weise können Sie einheitliche Sicherheitsrichtlinien für alle Ihre Geräte durchsetzen und schnell reagieren, wenn Geräte kompromittiert werden. IForWeitere Informationen finden Sie in den folgenden Themen:
+ Die [Device Defender-Komponente](device-defender-component.md)
+ [AWS IoT Device Defender](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender.html) im *Entwicklerhandbuch für AWS IoT Core *.

In AWS IoT Greengrass Umgebungen sollten Sie sich der folgenden Überlegungen bewusst sein:
+ Es liegt in Ihrer Verantwortung, Ihre physischen Geräte, das Dateisystem auf Ihren Geräten und das lokale Netzwerk zu sichern.
+ AWS IoT Greengrass erzwingt keine Netzwerkisolierung für benutzerdefinierte Greengrass-Komponenten, unabhängig davon, ob sie in einem Greengrass-Container ausgeführt werden oder nicht. Daher ist es für Greengrass-Komponenten möglich, mit jedem anderen Prozess zu kommunizieren, der im System oder außerhalb über das Netzwerk ausgeführt wird.

# Codeintegrität in AWS IoT Greengrass V2
<a name="code-integrity"></a>

AWS IoT Greengrass stellt Softwarekomponenten von den beiden Geräten bereit AWS Cloud , auf denen die AWS IoT Greengrass Core-Software ausgeführt wird. Zu diesen Softwarekomponenten [AWS gehören bereitgestellte Komponenten](public-components.md) und [benutzerdefinierte Komponenten](create-components.md), die Sie auf Ihre hochladen. AWS-Konto Jede Komponente besteht aus einem Rezept. Das Rezept definiert die Metadaten der Komponente und eine beliebige Anzahl von Artefakten, bei denen es sich um Binärdateien der Komponenten handelt, wie z. B. kompilierter Code und statische Ressourcen. Komponentenartefakte werden in Amazon S3 gespeichert.

Bei der Entwicklung und Bereitstellung von Greengrass-Komponenten folgen Sie diesen grundlegenden Schritten, die mit Komponentenartefakten auf Ihren AWS-Konto und auf Ihren Geräten funktionieren:

1. Erstellen Sie Artefakte und laden Sie sie in S3-Buckets hoch.

1. Erstellen Sie eine Komponente aus einem Rezept und Artefakten im AWS IoT Greengrass Service, der für jedes Artefakt einen [kryptografischen Hash](https://en.wikipedia.org/wiki/Cryptographic_hash_function) berechnet.

1. Stellen Sie eine Komponente auf Greengrass-Core-Geräten bereit, die jedes Artefakt herunterladen und dessen Integrität überprüfen.

AWS ist dafür verantwortlich, die Integrität von Artefakten aufrechtzuerhalten, nachdem Sie Artefakte in S3-Buckets hochgeladen haben, auch wenn Sie Komponenten auf Greengrass-Kerngeräten bereitstellen. Sie sind dafür verantwortlich, Software-Artefakte zu sichern, bevor Sie die Artefakte in S3-Buckets hochladen. Sie sind auch dafür verantwortlich, den Zugriff auf Ressourcen in Ihren Ressourcen zu sichern AWS-Konto, einschließlich der S3-Buckets, in die Sie Komponentenartefakte hochladen.

**Anmerkung**  
Amazon S3 bietet eine Funktion namens S3 Object Lock, mit der Sie sich vor Änderungen an Komponentenartefakten in Ihren AWS-Konto S3-Buckets schützen können. Sie können S3 Object Lock verwenden, um zu verhindern, dass Komponentenartefakte gelöscht oder überschrieben werden. Weitere Informationen finden Sie unter [Verwenden von S3 Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) im *Amazon Simple Storage Service-Benutzerhandbuch*.

Wenn eine öffentliche Komponente AWS veröffentlicht wird und wenn Sie eine benutzerdefinierte Komponente hochladen, AWS IoT Greengrass berechnet für jedes Komponentenartefakt einen kryptografischen Digest. AWS IoT Greengrass aktualisiert das Komponentenrezept so, dass es den Digest jedes Artefakts und den Hash-Algorithmus, der zur Berechnung dieses Digest verwendet wurde, enthält. Dieser Digest garantiert die Integrität des Artefakts, denn wenn sich das Artefakt beim AWS Cloud oder während des Herunterladens ändert, stimmt sein Datei-Digest nicht mit dem Digest überein, der im Komponentenrezept gespeichert ist. AWS IoT Greengrass Weitere Informationen finden Sie in der Rezeptreferenz für Komponenten unter [Artefakte](component-recipe-reference.md#manifest-artifacts-definition).

Wenn Sie eine Komponente auf einem Kerngerät bereitstellen, lädt die AWS IoT Greengrass Core-Software das Komponentenrezept und jedes Komponentenartefakt herunter, das durch das Rezept definiert wird. Die AWS IoT Greengrass Core-Software berechnet den Digest jeder heruntergeladenen Artefaktdatei und vergleicht ihn mit dem Digest dieses Artefakts im Rezept. Wenn die Digests nicht übereinstimmen, schlägt die Bereitstellung fehl und die AWS IoT Greengrass Core-Software löscht die heruntergeladenen Artefakte aus dem Dateisystem des Geräts. Weitere Informationen darüber, wie Verbindungen zwischen den Kerngeräten und E gesichert AWS IoT Greengrass werden, finden Sie unter. [Verschlüsselung während der Übertragung](encryption-in-transit.md)

Sie sind für die Sicherung von Komponentenartefaktdateien auf den Dateisystemen Ihrer Kerngeräte verantwortlich. Die AWS IoT Greengrass Core-Software speichert Artefakte in dem `packages` Ordner im Greengrass-Stammordner. Sie können AWS IoT Device Defender sie zur Analyse, Prüfung und Überwachung von Kerngeräten verwenden. Weitere Informationen finden Sie unter [Konfiguration und Schwachstellenanalyse in AWS IoT Greengrass](vulnerability-analysis-and-management.md).

# AWS IoT Greengrass und Schnittstellen-VPC-Endpunkte ()AWS PrivateLink
<a name="vpc-interface-endpoints"></a>

Sie können eine private Verbindung zwischen Ihrer VPC und der AWS IoT Greengrass Steuerungsebene herstellen, indem Sie einen *VPC-Schnittstellen-Endpunkt* erstellen. Sie können diesen Endpunkt verwenden, um Komponenten, Bereitstellungen und Kerngeräte im Service zu verwalten. AWS IoT Greengrass Schnittstellenendpunkte werden mit einer Technologie betrieben [AWS PrivateLink](https://aws.amazon.com/privatelink), mit der Sie AWS IoT Greengrass APIs privat ohne Internet-Gateway, NAT-Gerät, VPN-Verbindung oder AWS Direct Connect-Verbindung zugreifen können. Instances in Ihrer VPC benötigen keine öffentlichen IP-Adressen für die Kommunikation. AWS IoT Greengrass APIs Datenverkehr zwischen Ihrer VPC und AWS IoT Greengrass verlässt das Amazon-Netzwerk nicht.

Jeder Schnittstellenendpunkt wird durch eine oder mehrere [Elastic-Network-Schnittstellen](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) in Ihren Subnetzen dargestellt. 

Weitere Informationen finden Sie unter [Schnittstellen-VPC-Endpunkte (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) im *Amazon-VPC-Benutzerhandbuch*.

**Topics**
+ [Überlegungen zu AWS IoT Greengrass VPC-Endpunkten](#vpc-endpoint-considerations)
+ [Erstellen Sie einen VPC-Schnittstellen-Endpunkt für den Betrieb auf AWS IoT Greengrass Steuerungsebene](#create-vpc-endpoint-control-plane)
+ [Erstellen einer VPC-Endpunktrichtlinie für AWS IoT Greengrass](#vpc-endpoint-policy)
+ [Betreiben Sie ein AWS IoT Greengrass Kerngerät in VPC](#vpc-operate-device-vpce)

## Überlegungen zu AWS IoT Greengrass VPC-Endpunkten
<a name="vpc-endpoint-considerations"></a>

Bevor Sie einen Schnittstellen-VPC-Endpunkt für einrichten AWS IoT Greengrass, lesen Sie die [Eigenschaften und Einschränkungen des Schnittstellenendpunkts](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-interface-limitations) im *Amazon VPC-Benutzerhandbuch*. Beachten Sie außerdem die folgenden Überlegungen:
+ AWS IoT Greengrass unterstützt Aufrufe aller API-Aktionen auf der Kontrollebene von Ihrer VPC aus. Die Steuerungsebene umfasst Operationen wie [CreateDeployment](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateDeployment.html)und [ListEffectiveDeployments](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_ListEffectiveDeployments.html). Die Steuerungsebene umfasst *keine* Operationen wie [ResolveComponentCandidates](device-auth.md#iot-policies)und [Discover](greengrass-discover-api.md), bei denen es sich um Operationen auf der Datenebene handelt.
+ VPC-Endpunkte für AWS IoT Greengrass werden derzeit in AWS China Regionen nicht unterstützt.

## Erstellen Sie einen VPC-Schnittstellen-Endpunkt für den Betrieb auf AWS IoT Greengrass Steuerungsebene
<a name="create-vpc-endpoint-control-plane"></a>

Sie können einen VPC-Endpunkt für die AWS IoT Greengrass Kontrollebene entweder mit der Amazon VPC-Konsole oder mit AWS Command Line Interface ()AWS CLI erstellen. Weitere Informationen finden Sie unter [Erstellung eines Schnittstellenendpunkts](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) im *Benutzerhandbuch für Amazon VPC*.

Erstellen Sie einen VPC-Endpunkt für die AWS IoT Greengrass Verwendung des folgenden Dienstnamens: 
+ com.amazonaws. *region*. grünes Gras

Wenn Sie privates DNS für den Endpunkt aktivieren, können Sie API-Anfragen an die AWS IoT Greengrass Verwendung des Standard-DNS-Namens für die Region stellen, z. B. `greengrass.us-east-1.amazonaws.com` Die Option für ein privates DNS ist standardmäßig aktiviert.

Weitere Informationen finden Sie unter [Zugriff auf einen Service über einen Schnittstellenendpunkt](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#access-service-though-endpoint) im *Benutzerhandbuch für Amazon VPC*.

## Erstellen einer VPC-Endpunktrichtlinie für AWS IoT Greengrass
<a name="vpc-endpoint-policy"></a>

Sie können Ihrem VPC-Endpunkt eine Endpunktrichtlinie hinzufügen, die den Zugriff auf den Betrieb der AWS IoT Greengrass Kontrollebene steuert. Die Richtlinie gibt die folgenden Informationen an:
+ Prinzipal, der die Aktionen ausführen kann
+ Die Aktionen, die der Prinzipal ausführen kann.
+ Die Ressourcen, mit denen der Principal Aktionen ausführen kann.

Weitere Informationen finden Sie unter [Steuerung des Zugriffs auf Services mit VPC-Endpunkten](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) im *Amazon-VPC-Benutzerhandbuch*.

**Example Beispiel: VPC-Endpunktrichtlinie für Aktionen AWS IoT Greengrass**  
Im Folgenden finden Sie ein Beispiel für eine Endpunktrichtlinie für AWS IoT Greengrass. Wenn diese Richtlinie an einen Endpunkt angehängt ist, gewährt sie allen Prinzipalen auf allen Ressourcen Zugriff auf die aufgelisteten AWS IoT Greengrass Aktionen.  

```
{
    "Statement": [
        {
            "Principal": "*",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "greengrass:ListEffectiveDeployments"
            ],
            "Resource": "*"
        }
    ]
}
```

## Betreiben Sie ein AWS IoT Greengrass Kerngerät in VPC
<a name="vpc-operate-device-vpce"></a>

Sie können ein Greengrass-Core-Gerät betreiben und Bereitstellungen in VPC ohne öffentlichen Internetzugang durchführen. Sie müssen mindestens die folgenden VPC-Endpunkte mit den entsprechenden DNS-Aliasen einrichten. Weitere Informationen zum Erstellen und Verwenden von VPC-Endpoints finden Sie unter [Erstellen eines VPC-Endpoints](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) im *Amazon VPC-Benutzerhandbuch*.

**Anmerkung**  
Die VPC-Funktion zum automatischen Erstellen eines DNS-Eintrags ist für AWS IoT data und AWS IoT Credentials deaktiviert. Um diese Endpunkte zu verbinden, müssen Sie manuell einen privaten DNS-Eintrag erstellen. Weitere Informationen finden Sie unter [Privates DNS für Schnittstellenendpunkte](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#vpce-private-dns). Weitere Informationen zu AWS IoT Core VPC-Einschränkungen finden Sie unter [Einschränkungen von VPC-Endpunkten](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#VPC-limitations). 

### Voraussetzungen
<a name="vpc-endpoint-prerequisites"></a>
+ Sie müssen die AWS IoT Greengrass Core-Software mithilfe der manuellen Bereitstellungsschritte installieren. Weitere Informationen finden Sie unter [Installieren Sie die AWS IoT Greengrass Core-Software mit manueller Ressourcenbereitstellung](manual-installation.md).

### Einschränkungen
<a name="vpc-endpoint-limitaions"></a>
+ Der Betrieb eines Greengrass-Core-Geräts in VPC wird in den Regionen China und nicht unterstützt. AWS GovCloud (US) Regions
+ [Weitere Informationen zu den Einschränkungen von VPC-Endpunkten AWS IoT data und den VPC-Endpunkten von AWS IoT Anmeldeinformationsanbietern finden Sie unter Einschränkungen.](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#VPC-limitations)

### Richten Sie Ihr Greengrass-Core-Gerät für den Betrieb in VPC ein
<a name="vpc-endpoint-operate-gg-core"></a>

****

1. Holen Sie sich die AWS IoT Endpunkte für Sie und speichern Sie sie AWS-Konto, um sie später zu verwenden. Ihr Gerät verwendet diese Endpunkte, um eine Verbindung herzustellen. AWS IoT Gehen Sie wie folgt vor:

   1. Holen Sie sich den AWS IoT Datenendpunkt für Ihren AWS-Konto.

      ```
      aws iot describe-endpoint --endpoint-type iot:Data-ATS
      ```

      Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

      ```
      {
        "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
      }
      ```

   1. Rufen Sie den Endpunkt der AWS IoT Anmeldeinformationen für Ihren AWS-Konto ab.

      ```
      aws iot describe-endpoint --endpoint-type iot:CredentialProvider
      ```

      Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

      ```
      {
        "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
      }
      ```

1. Erstellen Sie eine Amazon VPC-Schnittstelle für AWS IoT data Endpoints und AWS IoT Anmeldeinformationen:

   1. **Navigieren Sie zur [VPC](https://console.aws.amazon.com/vpc/home#/endpoints)-**Endpunkte**-Konsole, wählen Sie im linken Menü unter **Virtual Private Cloud** die Option **Endpunkte** und dann Endpunkt erstellen** aus.

   1. Geben Sie auf der Seite **Endpunkt erstellen** die folgenden Informationen an:
      + Wählen Sie **AWS-Service s** als **Servicekategorie** aus.
      + Suchen Sie nach dem **Servicenamen**, indem Sie das Schlüsselwort `iot` eingeben. Wählen Sie in der Liste der angezeigten `iot`-Services den Endpunkt aus. 

        Wenn Sie einen VPC-Endpunkt für die AWS IoT Core Datenebene erstellen, wählen Sie den AWS IoT Core Datenebenen-API-Endpunkt für Ihre Region aus. Der Endpunkt wird das Format `com.amazonaws.region.iot.data` haben. 

        Wenn Sie einen VPC-Endpunkt für den AWS IoT Core Credential Provider erstellen, wählen Sie den AWS IoT Core Credential Provider-Endpunkt für Ihre Region aus. Der Endpunkt wird das Format `com.amazonaws.region.iot.credentials` haben.
**Anmerkung**  
Der Dienstname für die AWS IoT Core Datenebene in der Region China wird das folgende Format haben`cn.com.amazonaws.region.iot.data`. Das Erstellen von VPC-Endpunkten für den AWS IoT Core Anmeldeinformationsanbieter wird in der Region China nicht unterstützt.
      + Wählen Sie für **VPC** und **Subnetze** die VPC aus, in der Sie den Endpunkt erstellen möchten, und die Availability Zones (AZs), in denen Sie das Endpunktnetzwerk erstellen möchten.
      + Wählen Sie für **DNS-Namen aktivieren** die Option **Für diesen Endpunkt aktivieren**. Weder die AWS IoT Core Datenebene noch der AWS IoT Core Anmeldeinformationsanbieter unterstützen bisher private DNS-Namen.
      + Wählen Sie für **Sicherheitsgruppe** die Sicherheitsgruppen aus, die Sie den Endpunktnetzwerkschnittstellen zuordnen möchten.
      + Optional können Sie Tags hinzufügen oder entfernen. Tags sind Name-Wert-Paare, die Sie verwenden, um sie Ihrem Endpunkt zuzuordnen. 

   1. Wählen Sie **VPC-Endpunkt erstellen**, um den Schnittstellenendpunkt zu erstellen.

1. Nachdem Sie den AWS PrivateLink Endpunkt erstellt haben, sehen Sie auf der Registerkarte „**Details**“ Ihres Endpunkts eine Liste mit DNS-Namen. Sie können einen dieser DNS-Namen verwenden, die Sie in diesem Abschnitt erstellt haben, um [Ihre private gehostete Zone zu konfigurieren](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#connect-iot-core-create-phz-lns).

1. Erstellen Sie einen Amazon S3 S3-Endpunkt. Weitere Informationen finden Sie unter [Erstellen eines VPC-Endpunkts für Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#s3-creating-vpc).

1. Wenn Sie von [Greengrass AWS bereitgestellte Komponenten](https://docs.aws.amazon.com/greengrass/v2/developerguide/public-components.html) verwenden, sind möglicherweise zusätzliche Endpunkte und Konfigurationen erforderlich. Um die Anforderungen der Endgeräte einzusehen, wählen Sie die Komponente aus der Liste der AWS bereitgestellten Komponenten aus und schauen Sie sich den Abschnitt Anforderungen an. In den [Anforderungen für die Log Manager-Komponente](log-manager-component.md#log-manager-component-requirements) wird beispielsweise angegeben, dass diese Komponente in der Lage sein muss, ausgehende Anfragen an den Endpunkt auszuführen. `logs.region.amazonaws.com`

   Wenn Sie Ihre eigene Komponente verwenden, müssen Sie möglicherweise die Abhängigkeiten überprüfen und zusätzliche Tests durchführen, um festzustellen, ob zusätzliche Endpunkte erforderlich sind.

1. In der Greengrass-Nukleus-Konfiguration `greengrassDataPlaneEndpoint` muss auf eingestellt sein**iotdata**. Weitere Informationen finden Sie unter [Greengrass Nucleus-Konfiguration](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration).

1. Wenn Sie sich in der `us-east-1` Region befinden, setzen Sie den Konfigurationsparameter `s3EndpointType` **REGIONAL** in der Greengrass Nucleus-Konfiguration auf. Diese Funktion ist für Greengrass Nucleus-Versionen 2.11.3 oder höher verfügbar.

**Example Beispiel: Komponentenkonfiguration**  

```
{
"aws.greengrass.Nucleus": {
   "configuration": {
      "awsRegion": "us-east-1",
      "iotCredEndpoint": "xxxxxx.credentials.iot.region.amazonaws.com",
      "iotDataEndpoint": "xxxxxx-ats.iot.region.amazonaws.com",
      "greengrassDataPlaneEndpoint": "iotdata",
      "s3EndpointType": "REGIONAL"
      ...
     }
   }
}
```

Die folgende Tabelle enthält Informationen zu den entsprechenden benutzerdefinierten privaten DNS-Aliasen.


| Service | Name des VPC-Endpunkt-Service | VPC-Endpunkttyp | Benutzerdefinierter privater DNS-Alias | Hinweise | 
| --- | --- | --- | --- | --- | 
|  AWS IoT data  | `com.amazonaws.region.iot.data` | Schnittstelle |  `prefix-ats.iot.region.amazonaws.com`  |  Der private DNS-Eintrag sollte mit dem AWS IoT data Endpunkt Ihres Kontos übereinstimmen:`aws iot describe–endpoint ––endpoint–type iot:Data-ATS`.  | 
| AWS IoT Erweitern Sie im angezeigten Detailbereich die Option | `com.amazonaws.region.iot.credentials` | Schnittstelle | `prefix.credentials.iot.region.amazonaws.com` | Der private DNS-Eintrag sollte mit dem Endpunkt Ihrer AWS IoT Kontoanmeldeinformationen übereinstimmen:`aws iot describe–endpoint ––endpoint–type iot:CredentialProvider`. | 
| Amazon S3 | `com.amazonaws.region.s3` | Schnittstelle |  | Der DNS-Eintrag wird automatisch erstellt. | 

# Bewährte Sicherheitsmethoden für AWS IoT Greengrass
<a name="security-best-practices"></a>

Dieses Thema enthält bewährte Sicherheitsmethoden für AWS IoT Greengrass.

## Erteilen von Mindestberechtigungen
<a name="least-privilege"></a>

Folgen Sie dem Prinzip der geringsten Rechte für Ihre Komponenten, indem Sie sie als Benutzer ohne Zugriffsrechte ausführen. Komponenten sollten nicht als Root-Benutzer ausgeführt werden, es sei denn, dies ist unbedingt erforderlich.

Sie können die AWS IoT Greengrass Core-Software selbst auch als Nicht-Root-Benutzer ausführen, um die Rechte auf Ihrem Gerät weiter einzuschränken. Weitere Informationen finden Sie unter [AWS IoT Greengrass V2 Core-Geräte als Nicht-Root-Geräte einrichten](setup-greengrass-non-root.md).

Verwenden Sie die Mindestanzahl an Berechtigungen für IAM-Rollen. Beschränken Sie die Verwendung des `*` Platzhalters für die `Resource` Eigenschaften `Action` und in Ihren IAM-Richtlinien. Deklarieren Sie stattdessen, wenn möglich, eine endliche Menge von Aktionen und Ressourcen. Weitere Informationen zu den geringsten Berechtigungen und anderen bewährten Methoden für Richtlinien finden Sie unter [Best Practices für Richtlinien](security_iam_id-based-policy-examples.md#security_iam_service-with-iam-policy-best-practices).

Die bewährte Methode mit den geringsten Rechten gilt auch für AWS IoT Policen, die Sie mit Ihrem Greengrass-Kern verknüpfen.

## Anmeldeinformationen in Greengrass-Komponenten nicht hartcodieren
<a name="no-hardcoded-credentials"></a>

Kodieren Sie Anmeldeinformationen nicht fest in Ihren benutzerdefinierten Greengrass-Komponenten. So schützen Sie Ihre Anmeldeinformationen besser:
+ Um mit AWS Diensten zu interagieren, definieren Sie Berechtigungen für bestimmte Aktionen und Ressourcen in der [zentralen Gerätedienstrolle von Greengrass](device-service-role.md).
+ Verwenden Sie die [Secret Manager-Komponente](secret-manager-component.md), um Ihre Anmeldeinformationen zu speichern. Oder, wenn die Funktion das AWS SDK verwendet, verwenden Sie Anmeldeinformationen aus der standardmäßigen Anmeldeinformationsanbieterkette.

## Keine Protokollierung sensibler Informationen
<a name="protect-pii"></a>

Sie sollten die Protokollierung von Anmeldeinformationen und anderen persönlich identifizierbaren Informationen (PII) verhindern. Es wird empfohlen, die folgenden Sicherheitsvorkehrungen zu implementieren, auch wenn für den Zugriff auf lokale Protokolle auf einem Kerngerät Root-Rechte und für den Zugriff auf CloudWatch Protokolle IAM-Berechtigungen erforderlich sind.
+ Verwenden Sie keine sensiblen Informationen in MQTT-Themenpfaden.
+ Verwenden Sie keine sensiblen Informationen in Gerätenamen (Objektnamen), Typen und Attributen in der AWS IoT Core -Registrierung.
+ Protokollieren Sie keine vertraulichen Informationen in Ihren benutzerdefinierten Greengrass-Komponenten oder Lambda-Funktionen.
+ Verwenden Sie keine vertraulichen Informationen in den Namen und in den Ressourcen IDs von Greengrass:
  + Kerngeräte
  + Komponenten
  + Bereitstellungen
  + Logger

## Synchronisieren der internen Uhr Ihres Geräts
<a name="device-clock"></a>

Es ist wichtig, dass Sie eine genaue Uhrzeit auf Ihrem Gerät haben. X.509-Zertifikate haben ein Ablaufdatum und eine Ablaufzeit. Die Uhr auf Ihrem Gerät wird verwendet, um sicherzustellen, dass ein Serverzertifikat noch gültig ist. Geräteuhren können im Laufe der Zeit unpräzise werden, oder die Batterien werden entladen.

Weitere Informationen finden Sie in der bewährten Methode [Synchronisieren der internen Uhr Ihres Geräts](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html#device-clock) im *AWS IoT Core -Entwicklerhandbuch*.

## Cipher Suite-Empfehlungen
<a name="cipher-suites"></a>

Greengrass wählt standardmäßig die neuesten TLS Cipher Suites aus, die auf dem Gerät verfügbar sind. Erwägen Sie, die Verwendung älterer Cipher Suites auf dem Gerät zu deaktivieren. Zum Beispiel CBC-Verschlüsselungssammlungen. 

Weitere Informationen finden Sie in der [Java-Kryptografie-Konfiguration](https://www.java.com/configure_crypto.html).

## Weitere Informationen finden Sie auch unter
<a name="security-best-practices-see-also"></a>
+ Bewährte [Sicherheitsmethoden finden Sie AWS IoT Core im AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html) *Entwicklerhandbuch*
+ [Zehn goldene Sicherheitsregeln für industrielle IoT-Lösungen](https://aws.amazon.com/blogs/iot/ten-security-golden-rules-for-industrial-iot-solutions/) im *Internet der Dinge im AWS offiziellen Blog*

# AWS IoT Greengrass V2 Als Nicht-Root-Benutzer ausführen
<a name="run-greengrass-non-root"></a>

In der Regel installiert und führt der Root-Benutzer die AWS IoT Greengrass Core-Software auf Linux-Geräten aus. Um die Gerätesicherheit zu erhöhen, können Sie stattdessen einen Benutzer einrichten, der kein Root-Benutzer ist, der die AWS IoT Greengrass Core-Software ausführt. Dieser Abschnitt enthält Anleitungen zur Einrichtung von Konfigurationen ohne Root-Rechte.

Wenn Sie neue AWS IoT Greengrass V2 Core-Geräte einrichten und diese von Anfang an als Nicht-Root-Benutzer ausführen möchten, finden Sie weitere Informationen unter. [AWS IoT Greengrass V2 Core-Geräte als Nicht-Root-Geräte einrichten](setup-greengrass-non-root.md) Dieses Handbuch behandelt mehrere Lösungen, die auf Ihren Geräteeinschränkungen und Sicherheitsanforderungen basieren.

**Anmerkung**  
Die Nicht-Root-Konfigurationen in diesem Abschnitt gelten nur für Linux-Geräte. AWS IoT Greengrass Muss unter Windows als Systemdienst ausgeführt werden.

**Topics**
+ [Richten Sie AWS IoT Greengrass V2 Kerngeräte als Nicht-Root-Geräte ein](setup-greengrass-non-root.md)

# AWS IoT Greengrass V2 Core-Geräte als Nicht-Root-Geräte einrichten
<a name="setup-greengrass-non-root"></a>

Auf dieser Seite werden vier Lösungen für die Ausführung der AWS IoT Greengrass Core-Software als Nicht-Root-Benutzer vorgestellt. Sehen Sie sich die Vergleichstabelle an, um die Funktionen und Kompromisse der einzelnen Lösungen zu verstehen, und ermitteln Sie dann anhand des Entscheidungsablaufdiagramms, welche Lösung Ihren Anforderungen entspricht.

**Anmerkung**  
Die Nicht-Root-Lösungen auf dieser Seite gelten nur für AWS IoT Greengrass Nucleus auf Linux-Geräten. Windows ist nicht enthalten, da es unter Windows als Systemdienst ausgeführt werden AWS IoT Greengrass V2 muss. Informationen zur standardmäßigen Root-Installation unter Linux finden Sie unter[Installieren Sie die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung](quick-installation.md).  
Informationen zum Ausführen von AWS IoT Greengrass Nucleus Lite als Nicht-Root-Benutzer finden Sie unter [Podman im AWS IoT Greengrass Nucleus GitHub Lite-Repository verwenden](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/BUILD.md#optional-using-podman).

**Topics**
+ [Wählen Sie eine Nicht-Root-Lösung](#non-root-choose-solution)
+ [Lösung 1: AWS IoT Greengrass V2 Ohne Root-Zugriff einrichten](#non-root-solution-1)
+ [Lösung 2: Ohne Benutzertrennung der Komponenten AWS IoT Greengrass V2 als Root-Benutzer einrichten](#non-root-solution-2)
+ [Lösung 3: AWS IoT Greengrass V2 Als Nicht-Root-Benutzer einrichten und dabei die einzelnen Benutzer trennen](#non-root-solution-3)
+ [Lösung 4: AWS IoT Greengrass V2 Als Root-Benutzer mit eingeschränkten Funktionen einrichten](#non-root-solution-4)
+ [Linux-Funktionen werden benötigt von AWS IoT Greengrass V2](#linux-capabilities-reference)

## Wählen Sie eine Nicht-Root-Lösung
<a name="non-root-choose-solution"></a>

Verwenden Sie die folgende Tabelle, um die Nicht-Root-Lösungen zu vergleichen und ihre Vor- und Nachteile zu verstehen. Jede Lösung bietet je nach Ihren Sicherheitsanforderungen und Geräteeinschränkungen unterschiedliche Funktionen.


**Lösungen ohne Root-Rechte**  

| Lösung | Erfordert Root-Zugriff | Kann Komponenten unter verschiedenen Benutzern ausführen | Führt Greengrass als Systemdienst aus | Am besten geeignet für | 
| --- | --- | --- | --- | --- | 
| [Lösung 1: Kein Root-Zugriff](#non-root-solution-1) | Nein | Nein | Nein (Benutzerservice optional) | Geräte, auf denen Sie keinen Root-Zugriff haben | 
| [Lösung 2: Einzelbenutzer ohne Root](#non-root-solution-2) | Ja (nur Setup) | Nein | Ja | Greengrass als Nicht-Root-Benutzer ausführen, wobei alle Komponenten unter demselben Benutzer ausgeführt werden | 
| [Lösung 3: Kein Root, mehrere Benutzer](#non-root-solution-3) | Ja (nur Setup) | Ja | Ja | Greengrass als Nicht-Root-Benutzer ausführen, während Komponenten unter verschiedenen Benutzern ausgeführt werden | 
| [Lösung 4: Root mit eingeschränkten Funktionen](#non-root-solution-4) | Ja | Ja | Ja | Greengrass als Root mit einer begrenzten Anzahl von Linux-Funktionen ausführen | 

Das folgende Flussdiagramm führt Sie durch die Auswahl der geeigneten Lösung auf der Grundlage Ihrer Geräteeinschränkungen und -anforderungen.

![\[Flussdiagramm, das den Entscheidungsprozess für die Auswahl einer Nicht-Root-Lösung zeigt. Fragen Sie zunächst, ob Sie auf Ihrem Kerngerät Root-Zugriff haben. Falls nein, verwenden Sie Lösung 1. Falls ja, fragen Sie, ob Sie Komponenten unter verschiedenen Linux-Benutzern ausführen müssen. Falls nein, verwenden Sie Lösung 2. Falls ja, fragen Sie, ob Sie möchten, dass Greengrass als Root-Benutzer mit eingeschränkten Funktionen ausgeführt wird. Falls ja, verwenden Sie Lösung 4. Falls nein, verwenden Sie Lösung 3.\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/images/non-root-solution-decision-flow.png)


## Lösung 1: AWS IoT Greengrass V2 Ohne Root-Zugriff einrichten
<a name="non-root-solution-1"></a>

Verwenden Sie diese Lösung, wenn Sie auf dem Gerät keinen Root-Zugriff haben. In dieser Konfiguration wird die AWS IoT Greengrass Core-Software ausschließlich als Benutzer ohne Root-Rechte ausgeführt.

**Kompromisse**  
Diese Lösung hat die folgenden Einschränkungen:
+ **Keine Trennung der Komponenten durch Benutzer** — Alle Komponenten werden unter demselben Benutzer ausgeführt, der die AWS IoT Greengrass Core-Software ausführt. Sie können die `posixUser` Konfiguration nicht verwenden, um Komponenten unter verschiedenen Benutzern auszuführen.
+ **RequiresPrivilege ignoriert** — Die AWS IoT Greengrass Core-Software ignoriert die `RequiresPrivilege` Option in den Komponentenrezepten. Komponenten können keine erhöhten Rechte anfordern.
+ **Kein Systemdienst** — Sie können die AWS IoT Greengrass Core-Software nicht als Systemdienst installieren. Sie können ihn optional so konfigurieren AWS IoT Greengrass V2 , dass er als Systemd-Benutzerdienst ausgeführt wird.

**Voraussetzungen**  
Diese Lösung erfordert:
+ Ein Benutzerkonto auf dem Gerät, das kein Root-Konto ist
+ Schreibzugriff auf das Verzeichnis, in dem Sie die AWS IoT Greengrass Core-Software installieren möchten

**Zur Installation und Ausführung AWS IoT Greengrass V2 ohne Root-Zugriff**

1. Gehen Sie wie folgt vor[Installieren Sie die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung](quick-installation.md): Richten Sie Ihre Geräteumgebung ein, geben Sie Anmeldeinformationen ein und laden Sie die AWS IoT Greengrass Core-Software herunter.

1. Erstellen Sie das Installationsverzeichnis und stellen Sie sicher, dass es Ihrem Benutzer gehört.

   ```
   mkdir -p $HOME/greengrass/v2
   ```

1. Führen Sie das Installationsprogramm ohne aus`sudo`. Stellen `--component-default-user` Sie Ihren aktuellen Benutzer ein.

   ```
   java -Droot="$HOME/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --aws-region region \
     --thing-name MyGreengrassCore \
     --thing-group-name MyGreengrassCoreGroup \
     --thing-policy-name GreengrassV2IoTThingPolicy \
     --tes-role-name GreengrassV2TokenExchangeRole \
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias \
     --component-default-user $USER \
     --provision true
   ```

   Nicht verwenden`--setup-system-service true`, da Sie keinen Root-Zugriff haben, um einen Systemdienst zu erstellen.

**(Optional) Richten Sie einen Systemd-Benutzerdienst ein**  
Sie können einen Systemd-Benutzerdienst zur Verwaltung der AWS IoT Greengrass Core-Software konfigurieren. Dadurch kann die Software automatisch gestartet werden, wenn Sie sich anmelden.

**Um einen Systemd-Benutzerdienst einzurichten**

1. Stoppen Sie die AWS IoT Greengrass Core-Software, falls sie gerade läuft.

   ```
   kill $(cat $HOME/greengrass/v2/alts/loader.pid)
   ```

1. Erstellen Sie das Systemd-Benutzerdienstverzeichnis.

   ```
   mkdir -p $HOME/.config/systemd/user
   ```

1. Erstellen Sie die Servicedatei unter `$HOME/.config/systemd/user/greengrass.service` mit dem folgenden Inhalt.

   ```
   [Unit]
   Description=Greengrass Core
   
   [Service]
   Type=simple
   PIDFile=%h/greengrass/v2/alts/loader.pid
   RemainAfterExit=no
   Restart=on-failure
   RestartSec=10
   ExecStart=/bin/sh %h/greengrass/v2/alts/current/distro/bin/loader
   Environment="JAVA_HOME=/path/to/java"
   
   [Install]
   WantedBy=default.target
   ```

   In Systemd-Benutzereinheitendateien `%h` ist dies ein Spezifizierer, der in das Home-Verzeichnis des Benutzers aufgelöst wird, der den Dienst ausführt.

   Ersetzen Sie es */path/to/java* durch den Pfad zu Ihrer Java-Installation.

1. Aktivieren und starten Sie den Dienst.

   ```
   systemctl --user daemon-reload
   systemctl --user enable greengrass.service
   systemctl --user start greengrass.service
   ```

**Verhalten beim Neustart und beim OTA-Update**  
Das Verhalten hängt davon ab, ob Sie einen Systemd-Benutzerdienst konfiguriert haben.

Mit einem Benutzerdienst  
+ **Geräteneustart** — Die AWS IoT Greengrass Core-Software wird automatisch gestartet, wenn sich der Benutzer anmeldet.
+ **OTA-Update** — OTA-Updates sind erfolgreich und die Software wird automatisch neu gestartet.

Ohne Benutzerdienst  
+ **Geräteneustart** — Die AWS IoT Greengrass Core-Software wird nicht automatisch neu gestartet. Sie müssen es manuell starten.
+ **OTA-Update** — OTA-Updates sind erfolgreich, aber Sie müssen die AWS IoT Greengrass Core-Software danach manuell starten.

**Beschränkungen der Systemressourcen**  
Ressourcenbeschränkungen pro Komponente, die Cgroups verwenden, funktionieren in dieser Lösung nicht, da Benutzer, die keine Root-Benutzer sind, keine Cgroup-Verzeichnisse in erstellen können. `/sys/fs/cgroup/` Wenn Sie eine Komponente mit konfigurierten Ressourcenlimits bereitstellen, ignoriert die AWS IoT Greengrass Core-Software die konfigurierten Grenzwerte.

Sie können die folgenden Alternativen verwenden, um die Ressourcennutzung zu verwalten:
+ **Systemd-Benutzerdienstgrenzen** — Wenn Sie die AWS IoT Greengrass Core-Software als Systemd-Benutzerdienst ausführen, können Sie der Servicedatei unter Ressourcenbeschränkungen hinzufügen. `$HOME/.config/systemd/user/greengrass.service` Diese Grenzwerte gelten für den gesamten Service, einschließlich des Greengrass-Kerns und aller Komponenten.

  ```
  MemoryMax=2G
  CPUQuota=100%
  ```
+ **Greengrass Nucleus JVM-Grenzwerte** — Sie können den Greengrass Nucleus-Prozessspeicher einschränken, indem Sie JVM-Optionen konfigurieren. Weitere Informationen finden Sie unter [Konfiguration der AWS IoT Greengrass Core-Software](configure-greengrass-core-v2.md).

## Lösung 2: Ohne Benutzertrennung der Komponenten AWS IoT Greengrass V2 als Root-Benutzer einrichten
<a name="non-root-solution-2"></a>

Verwenden Sie diese Lösung, wenn Sie Root-Zugriff für die Ersteinrichtung haben und möchten, dass die AWS IoT Greengrass Core-Software als Nicht-Root-Systemdienst ausgeführt wird, Sie Komponenten aber nicht als verschiedene Benutzer ausführen müssen. Dies ähnelt Lösung 1, aber die Software wird als Systemdienst ausgeführt, der beim Systemstart automatisch gestartet wird.

**Kompromisse**  
Diese Lösung hat die folgenden Einschränkungen:
+ **Keine Trennung der Komponenten durch Benutzer** — Alle Komponenten werden unter demselben Benutzer ausgeführt, der die AWS IoT Greengrass Core-Software ausführt. Sie können die `posixUser` Konfiguration nicht verwenden, um Komponenten unter verschiedenen Benutzern auszuführen.
+ **RequiresPrivilege ignoriert** — Die AWS IoT Greengrass Core-Software ignoriert die `RequiresPrivilege` Option in den Komponentenrezepten. Komponenten können keine erhöhten Rechte anfordern.

**Voraussetzungen**  
Diese Lösung erfordert:
+ Root-Zugriff für die Ersteinrichtung
+ systemd auf deinem Gerät

**Zur Installation und Ausführung AWS IoT Greengrass V2 als Nicht-Root-Benutzer ohne Trennung der Komponenten durch Benutzer**

1. Gehen Sie wie folgt vor[Installieren Sie die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung](quick-installation.md): Richten Sie Ihre Geräteumgebung ein, geben Sie Anmeldeinformationen ein und laden Sie die AWS IoT Greengrass Core-Software herunter.

1. Erstellen Sie einen Benutzer ohne Root-Rechte, der die AWS IoT Greengrass Core-Software und alle Komponenten ausführt.

   ```
   sudo useradd --create-home gg_non_root
   ```

1. Melden Sie sich als Nicht-Root-Benutzer an und führen Sie das Installationsprogramm aus. Auf denselben Benutzer eingestellt`--component-default-user`. Verwenden Sie keinen Systemdienst `sudo` und richten Sie ihn nicht ein.

   ```
   java -Droot="/home/gg_non_root/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --aws-region region \
     --thing-name MyGreengrassCore \
     --thing-group-name MyGreengrassCoreGroup \
     --thing-policy-name GreengrassV2IoTThingPolicy \
     --tes-role-name GreengrassV2TokenExchangeRole \
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias \
     --component-default-user gg_non_root \
     --provision true \
     --setup-system-service false
   ```

1. Erstellen Sie als Root-Benutzer die Systemdienstdatei unter `/etc/systemd/system/greengrass.service` mit dem folgenden Inhalt.

   ```
   [Unit]
   Description=Greengrass Core
   After=network.target
   
   [Service]
   Type=simple
   User=gg_non_root
   PIDFile=/home/gg_non_root/greengrass/v2/alts/loader.pid
   RemainAfterExit=no
   Restart=on-failure
   RestartSec=10
   ExecStart=/bin/sh -c "exec /home/gg_non_root/greengrass/v2/alts/current/distro/bin/loader >> /home/gg_non_root/greengrass/v2/logs/loader.log 2>&1"
   KillMode=mixed
   NoNewPrivileges=true
   ProtectSystem=strict
   ReadWritePaths=/home/gg_non_root/greengrass /tmp
   
   [Install]
   WantedBy=multi-user.target
   ```

1. Stoppen Sie die laufende AWS IoT Greengrass Core-Instanz, aktivieren und starten Sie dann den Systemdienst.

   ```
   sudo systemctl daemon-reload
   sudo systemctl enable greengrass.service
   sudo systemctl start greengrass.service
   ```

**Verhalten beim Neustart und beim OTA-Update**  
In dieser Lösung:
+ Die AWS IoT Greengrass Core-Software wird als Systemdienst ausgeführt und bei einem Ausfall oder einem Neustart des Geräts automatisch neu gestartet.
+ OTA-Updates für die AWS IoT Greengrass Core-Software funktionieren. Der Dienst wird automatisch als konfigurierter Nicht-Root-Benutzer neu gestartet.

**Beschränkungen der Systemressourcen**  
Ressourcenbeschränkungen pro Komponente, die Cgroups verwenden, funktionieren in dieser Lösung nicht, da Benutzer ohne Linux-Fähigkeiten keine Cgroup-Verzeichnisse in erstellen können. `/sys/fs/cgroup/` Wenn Sie eine Komponente mit konfigurierten Ressourcenlimits bereitstellen, ignoriert die AWS IoT Greengrass Core-Software die konfigurierten Grenzwerte.

Sie können die folgenden Alternativen verwenden, um die Ressourcennutzung zu verwalten:
+ **Systemd-Servicebeschränkungen** — Sie können der Systemdienstdatei unter `/etc/systemd/system/greengrass.service` Ressourcenlimits hinzufügen. Diese Grenzwerte gelten für den gesamten Service, einschließlich des Greengrass-Kerns und aller Komponenten.

  ```
  MemoryMax=2G
  CPUQuota=100%
  ```
+ **Greengrass Nucleus JVM-Grenzwerte** — Sie können den Greengrass Nucleus-Prozessspeicher einschränken, indem Sie JVM-Optionen konfigurieren. Weitere Informationen finden Sie unter [Konfiguration der AWS IoT Greengrass Core-Software](configure-greengrass-core-v2.md).

## Lösung 3: AWS IoT Greengrass V2 Als Nicht-Root-Benutzer einrichten und dabei die einzelnen Benutzer trennen
<a name="non-root-solution-3"></a>

Verwenden Sie diese Lösung, wenn Sie Root-Zugriff für die Ersteinrichtung haben, die AWS IoT Greengrass Core-Software aber als Nicht-Root-Benutzer ausgeführt werden soll und gleichzeitig die Möglichkeit haben soll, Komponenten unter verschiedenen Benutzern auszuführen. Diese Konfiguration verwendet Linux-Funktionen und Sudoers, damit Benutzer, die keine Root-Benutzer sind, beim Ausführen von Komponenten zu anderen Benutzern wechseln können.

**Kompromisse**  
Diese Lösung hat die folgenden Einschränkungen:
+ **Erfordert eine Sudoers-Konfiguration** — Sie müssen Sudoers so konfigurieren, dass der AWS IoT Greengrass V2 Benutzer Befehle wie andere Benutzer ausführen kann.

**Voraussetzungen**  
Für diese Lösung ist Folgendes erforderlich:
+ Root-Zugriff für die Ersteinrichtung
+ Systemd Version 229 oder höher, die unterstützt`AmbientCapabilities`. Führen `systemctl --version` Sie den Befehl aus, um Ihre Version zu überprüfen.

**Um die Installation und Ausführung AWS IoT Greengrass V2 als Nicht-Root-Benutzer mit Benutzertrennung nach Komponenten durchzuführen**

1. Gehen Sie wie folgt vor[Installieren Sie die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung](quick-installation.md): Richten Sie Ihre Geräteumgebung ein, geben Sie Anmeldeinformationen ein und laden Sie die AWS IoT Greengrass Core-Software herunter.

1. Erstellen Sie einen Benutzer ohne Root-Rechte, der die AWS IoT Greengrass Core-Software ausführen wird.

   ```
   sudo useradd --create-home gg_non_root
   ```

1. Fügen Sie den Nicht-Root-Benutzer zu sudoers hinzu, damit er Befehle als Komponentenbenutzer ausführen kann. Erstellen Sie eine Datei unter. `/etc/sudoers.d/gg_non_root`

   ```
   gg_non_root ALL=(ggc_user:ggc_group) NOPASSWD: SETENV: /bin/sh, /bin/bash
   ```

   Wenn Sie Komponenten so konfigurieren, dass sie als zusätzliche Benutzer ausgeführt werden`posixUser`, fügen Sie für jeden Benutzer einen Sudoers-Eintrag hinzu. Beispiel:

   ```
   gg_non_root ALL=(ggc_user:ggc_group) NOPASSWD: SETENV: /bin/sh, /bin/bash
   gg_non_root ALL=(another_user:another_group) NOPASSWD: SETENV: /bin/sh, /bin/bash
   ```

1. Melden Sie sich als Nicht-Root-Benutzer an und führen Sie das Installationsprogramm aus. Verwenden Sie keinen Systemdienst `sudo` und richten Sie ihn nicht ein.

   ```
   java -Droot="/home/gg_non_root/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --aws-region region \
     --thing-name MyGreengrassCore \
     --thing-group-name MyGreengrassCoreGroup \
     --thing-policy-name GreengrassV2IoTThingPolicy \
     --tes-role-name GreengrassV2TokenExchangeRole \
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias \
     --component-default-user ggc_user:ggc_group \
     --provision true \
     --setup-system-service false
   ```

1. Erstellen Sie als Root-Benutzer die Systemdienstdatei unter `/etc/systemd/system/greengrass.service` mit dem folgenden Inhalt.

   ```
   [Unit]
   Description=Greengrass Core
   After=network.target
   
   [Service]
   Type=simple
   User=gg_non_root
   PIDFile=/home/gg_non_root/greengrass/v2/alts/loader.pid
   RemainAfterExit=no
   Restart=on-failure
   RestartSec=10
   ExecStart=/bin/sh -c "exec /home/gg_non_root/greengrass/v2/alts/current/distro/bin/loader >> /home/gg_non_root/greengrass/v2/logs/loader.log 2>&1"
   KillMode=mixed
   AmbientCapabilities=CAP_CHOWN CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID CAP_SYS_RESOURCE CAP_AUDIT_WRITE
   CapabilityBoundingSet=CAP_CHOWN CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID CAP_SYS_RESOURCE CAP_AUDIT_WRITE
   ProtectSystem=strict
   ReadWritePaths=/home/gg_non_root/greengrass /tmp
   
   [Install]
   WantedBy=multi-user.target
   ```

   Informationen zu den erforderlichen Funktionen finden Sie unter[Linux-Funktionen werden benötigt von AWS IoT Greengrass V2](#linux-capabilities-reference).
   + `AmbientCapabilities`gewährt dem Nicht-Root-Benutzer, der den Dienst ausführt, die angegebenen Linux-Funktionen. Dadurch kann die AWS IoT Greengrass Core-Software privilegierte Operationen wie das Wechseln von Benutzern beim Ausführen von Komponenten ausführen, ohne dass sie als Root ausgeführt wird.
   + `CapabilityBoundingSet`schränkt den maximalen Funktionsumfang ein, den der Dienst und seine untergeordneten Prozesse nutzen können. Funktionen, die nicht in diesem Satz enthalten sind, werden dauerhaft gelöscht.
   + `ProtectSystem=strict`macht das gesamte Dateisystem für den Dienst schreibgeschützt, wodurch Änderungen am Betriebssystem verhindert werden.
   + `ReadWritePaths`gibt die einzigen Verzeichnisse an, in die der Dienst schreiben kann.

1. Stoppen Sie die laufende AWS IoT Greengrass Core-Instanz, aktivieren und starten Sie dann den Systemdienst.

   ```
   sudo systemctl daemon-reload
   sudo systemctl enable greengrass.service
   sudo systemctl start greengrass.service
   ```

**Verhalten beim Neustart und beim OTA-Update**  
In dieser Lösung:
+ Die AWS IoT Greengrass Core-Software wird als Systemdienst ausgeführt und bei einem Ausfall oder einem Neustart des Geräts automatisch neu gestartet.
+ OTA-Updates für die AWS IoT Greengrass Core-Software funktionieren. Der Dienst wird automatisch als konfigurierter Nicht-Root-Benutzer neu gestartet.

**Beschränkungen der Systemressourcen**  
Die komponentenspezifischen Ressourcenbeschränkungen für Arbeitsspeicher und CPU funktionieren in dieser Lösung genauso wie bei der Ausführung der AWS IoT Greengrass Core-Software als Root-Benutzer.

## Lösung 4: AWS IoT Greengrass V2 Als Root-Benutzer mit eingeschränkten Funktionen einrichten
<a name="non-root-solution-4"></a>

Verwenden Sie diese Lösung, wenn Sie möchten, dass die AWS IoT Greengrass Core-Software als Root-Benutzer ausgeführt wird, jedoch mit eingeschränkten Linux-Funktionen. Diese Konfiguration bietet die volle Funktionalität der Ausführung als Root und begrenzt gleichzeitig die Angriffsfläche, indem die für die Software und ihre Komponenten verfügbaren Funktionen eingeschränkt werden.

**Kompromisse**  
Bei dieser Lösung sind die folgenden Überlegungen zu berücksichtigen:
+ **Komponenten mit RequiresPrivilege eingeschränkten Funktionen** — Komponenten, die die Software verwenden, werden mit denselben eingeschränkten Funktionen `RequiresPrivilege` ausgeführt wie die AWS IoT Greengrass Core-Software und nicht mit vollen Root-Rechten.

**Voraussetzungen**  
Diese Lösung erfordert:
+ Root-Zugriff
+ systemd auf deinem Gerät

**Zur Installation und Ausführung AWS IoT Greengrass V2 als Root-Benutzer mit eingeschränkten Funktionen**

1. Gehen Sie wie folgt vor[Installieren Sie die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung](quick-installation.md): Richten Sie Ihre Geräteumgebung ein, geben Sie Anmeldeinformationen ein und laden Sie die AWS IoT Greengrass Core-Software herunter.

1. Ändern Sie die Dienstvorlagendatei unter`GreengrassInstaller/bin/greengrass.service.template`, in dem Verzeichnis, in das Sie die AWS IoT Greengrass Core-Software heruntergeladen haben. Fügen Sie dem `[Service]` Abschnitt die folgenden Zeilen hinzu, bevor Sie das Installationsprogramm ausführen:

   ```
   CapabilityBoundingSet=CAP_CHOWN CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID CAP_SYS_RESOURCE CAP_AUDIT_WRITE
   ProtectSystem=strict
   ReadWritePaths=/greengrass /tmp
   ```
   + `CapabilityBoundingSet`ist eine Systemd-Sicherheitsfunktion, die die Linux-Funktionen einschränkt, die der AWS IoT Greengrass Core-Software und all ihren untergeordneten Prozessen zur Verfügung stehen. Durch die Konfiguration eines Bounding-Sets schränken Sie ein, was der Greengrass Nucleus-Prozess und seine Komponenten tun können, auch wenn sie als Root ausgeführt werden. Informationen zu den einzelnen Funktionen finden Sie unter. [Linux-Funktionen werden benötigt von AWS IoT Greengrass V2](#linux-capabilities-reference)
   + `ProtectSystem=strict`macht das gesamte Dateisystem für den Dienst schreibgeschützt, wodurch Änderungen am Betriebssystem verhindert werden. Dadurch wird systemd-Sandboxing bereitgestellt, das Systemdateien auch dann schützt, wenn eine schädliche Komponente mit erhöhten Rechten ausgeführt wird.
   + `ReadWritePaths`gibt die einzigen Verzeichnisse an, in die der Dienst schreiben kann. Zusammen mit `ProtectSystem=strict` beschränkt dies den Dienst darauf, nur in das AWS IoT Greengrass V2 Stammverzeichnis und zu schreiben`/tmp`.

1. Führen Sie das Installationsprogramm mit aus`--setup-system-service true`.

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --aws-region region \
     --thing-name MyGreengrassCore \
     --thing-group-name MyGreengrassCoreGroup \
     --thing-policy-name GreengrassV2IoTThingPolicy \
     --tes-role-name GreengrassV2TokenExchangeRole \
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias \
     --component-default-user ggc_user:ggc_group \
     --provision true \
     --setup-system-service true
   ```

**Verhalten bei Neustart und OTA-Update**  
In dieser Lösung:
+ Die AWS IoT Greengrass Core-Software wird als Systemdienst ausgeführt und bei einem Ausfall oder einem Neustart des Geräts automatisch neu gestartet.
+ OTA-Updates für die AWS IoT Greengrass Core-Software funktionieren. Die Software wird automatisch aktualisiert und neu gestartet.

**Beschränkungen der Systemressourcen**  
Die komponentenspezifischen Ressourcenbeschränkungen für Arbeitsspeicher und CPU funktionieren in dieser Lösung genauso wie bei der Ausführung der AWS IoT Greengrass Core-Software als Root-Benutzer.

## Linux-Funktionen werden benötigt von AWS IoT Greengrass V2
<a name="linux-capabilities-reference"></a>

In der folgenden Tabelle werden die Linux-Funktionen beschrieben, die für die AWS IoT Greengrass Core-Software erforderlich sind, wenn sie in Nicht-Root-Konfigurationen ausgeführt wird. Diese Funktionen werden in den Lösungen 3 und 4 verwendet.


**Erforderliche Linux-Funktionen**  

| Funktion | Description | Erforderlich für | 
| --- | --- | --- | 
| `CAP_CHOWN` | Nehmen Sie beliebige Änderungen an der Datei vor UIDs und GIDs | Änderung des Dateibesitzes je nachdem, welcher Benutzer die Komponente ausführt | 
| `CAP_DAC_OVERRIDE` | Umgehen Sie die Lese-, Schreib- und Ausführungsberechtigungsprüfungen für Dateien | Erlaubt dem Greengrass Nucleus-Benutzer, Dateien auszuführen, wenn sie für Skripte verwendet werden mit `RequiresPrivilege` | 
| `CAP_DAC_READ_SEARCH` | Umgehen Sie die Prüfungen der Datei-Leseberechtigungen und die Lese- und Ausführungsberechtigungsprüfungen für Verzeichn | Die Ordnerhierarchie durchgehen, auch wenn es sich um Ordner handelt, für die der Greengrass Nucleus-Benutzer keine Leserechte hat | 
| `CAP_FOWNER` | Umgehen Sie Berechtigungsprüfungen bei Vorgängen, bei denen normalerweise die Dateisystem-UID des Prozesses mit der UID der Datei übereinstimmen muss | Umgehen von Dateibesitzprüfungen | 
| `CAP_SETUID` | Nehmen Sie willkürliche Manipulationen am Prozess vor UIDs | `sudo`Wird verwendet, wenn Skripte als ein anderer Benutzer ausgeführt werden als der Benutzer, der den Greengrass-Nucleus ausführt | 
| `CAP_SETGID` | Nehmen Sie willkürliche Manipulationen am Prozess vor GIDs | `sudo`Wird verwendet, wenn Skripte als eine andere Gruppe ausgeführt werden als die Gruppe, die den Greengrass-Kern ausführt | 
| `CAP_SYS_RESOURCE` | Überschreiben Sie Ressourcenlimits | Festlegung von Ressourcenbeschränkungen für Komponentenprozesse, auch wenn in Bereitstellungen keine Grenzwerte angegeben sind | 
| `CAP_AUDIT_WRITE` | Schreiben Sie Datensätze in das Kernel-Auditing-Protokoll | `sudo`Erlaubt das Schreiben in das Kernel-Audit-Log | 