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.
AWS IoT Greengrass V2 Core-Geräte als Nicht-Root-Geräte einrichten
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 unterInstallieren Sie die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung.
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
Themen
Wählen Sie eine Nicht-Root-Lösung
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ösung | Erfordert Root-Zugriff | Kann Komponenten unter verschiedenen Benutzern ausführen | Führt Greengrass als Systemdienst aus | Am besten geeignet für |
|---|---|---|---|---|
Nein |
Nein |
Nein (Benutzerservice optional) |
Geräte, auf denen Sie keinen Root-Zugriff haben |
|
Ja (nur Setup) |
Nein |
Ja |
Greengrass als Nicht-Root-Benutzer ausführen, wobei alle Komponenten unter demselben Benutzer ausgeführt werden |
|
Ja (nur Setup) |
Ja |
Ja |
Greengrass als Nicht-Root-Benutzer ausführen, während Komponenten unter verschiedenen Benutzern ausgeführt werden |
|
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.
Lösung 1: AWS IoT Greengrass V2 Ohne Root-Zugriff einrichten
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
posixUserKonfiguration nicht verwenden, um Komponenten unter verschiedenen Benutzern auszuführen.RequiresPrivilege ignoriert — Die AWS IoT Greengrass Core-Software ignoriert die
RequiresPrivilegeOption 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
-
Gehen Sie wie folgt vorInstallieren Sie die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung: Richten Sie Ihre Geräteumgebung ein, geben Sie Anmeldeinformationen ein und laden Sie die AWS IoT Greengrass Core-Software herunter.
-
Erstellen Sie das Installationsverzeichnis und stellen Sie sicher, dass es Ihrem Benutzer gehört.
mkdir -p $HOME/greengrass/v2 -
Führen Sie das Installationsprogramm ohne aus
sudo. Stellen--component-default-userSie Ihren aktuellen Benutzer ein.java -Droot="$HOME/greengrass/v2" -Dlog.store=FILE \ -jar ./GreengrassInstaller/lib/Greengrass.jar \ --aws-regionregion\ --thing-nameMyGreengrassCore\ --thing-group-nameMyGreengrassCoreGroup\ --thing-policy-nameGreengrassV2IoTThingPolicy\ --tes-role-nameGreengrassV2TokenExchangeRole\ --tes-role-alias-nameGreengrassCoreTokenExchangeRoleAlias\ --component-default-user $USER \ --provision trueNicht 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
-
Stoppen Sie die AWS IoT Greengrass Core-Software, falls sie gerade läuft.
kill $(cat $HOME/greengrass/v2/alts/loader.pid) -
Erstellen Sie das Systemd-Benutzerdienstverzeichnis.
mkdir -p $HOME/.config/systemd/user -
Erstellen Sie die Servicedatei unter
$HOME/.config/systemd/user/greengrass.servicemit 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.targetIn Systemd-Benutzereinheitendateien
%hist dies ein Spezifizierer, der in das Home-Verzeichnis des Benutzers aufgelöst wird, der den Dienst ausführt.Ersetzen Sie es
/path/to/javadurch den Pfad zu Ihrer Java-Installation. -
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.serviceDiese 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.
Lösung 2: Ohne Benutzertrennung der Komponenten AWS IoT Greengrass V2 als Root-Benutzer einrichten
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
posixUserKonfiguration nicht verwenden, um Komponenten unter verschiedenen Benutzern auszuführen.RequiresPrivilege ignoriert — Die AWS IoT Greengrass Core-Software ignoriert die
RequiresPrivilegeOption 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
-
Gehen Sie wie folgt vorInstallieren Sie die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung: Richten Sie Ihre Geräteumgebung ein, geben Sie Anmeldeinformationen ein und laden Sie die AWS IoT Greengrass Core-Software herunter.
-
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 -
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 Systemdienstsudound richten Sie ihn nicht ein.java -Droot="/home/gg_non_root/greengrass/v2" -Dlog.store=FILE \ -jar ./GreengrassInstaller/lib/Greengrass.jar \ --aws-regionregion\ --thing-nameMyGreengrassCore\ --thing-group-nameMyGreengrassCoreGroup\ --thing-policy-nameGreengrassV2IoTThingPolicy\ --tes-role-nameGreengrassV2TokenExchangeRole\ --tes-role-alias-nameGreengrassCoreTokenExchangeRoleAlias\ --component-default-user gg_non_root \ --provision true \ --setup-system-service false -
Erstellen Sie als Root-Benutzer die Systemdienstdatei unter
/etc/systemd/system/greengrass.servicemit 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 -
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.serviceRessourcenlimits 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.
Lösung 3: AWS IoT Greengrass V2 Als Nicht-Root-Benutzer einrichten und dabei die einzelnen Benutzer trennen
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ührensystemctl --versionSie 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
-
Gehen Sie wie folgt vorInstallieren Sie die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung: Richten Sie Ihre Geräteumgebung ein, geben Sie Anmeldeinformationen ein und laden Sie die AWS IoT Greengrass Core-Software herunter.
-
Erstellen Sie einen Benutzer ohne Root-Rechte, der die AWS IoT Greengrass Core-Software ausführen wird.
sudo useradd --create-home gg_non_root -
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_rootgg_non_root ALL=(ggc_user:ggc_group) NOPASSWD: SETENV: /bin/sh, /bin/bashWenn 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 -
Melden Sie sich als Nicht-Root-Benutzer an und führen Sie das Installationsprogramm aus. Verwenden Sie keinen Systemdienst
sudound richten Sie ihn nicht ein.java -Droot="/home/gg_non_root/greengrass/v2" -Dlog.store=FILE \ -jar ./GreengrassInstaller/lib/Greengrass.jar \ --aws-regionregion\ --thing-nameMyGreengrassCore\ --thing-group-nameMyGreengrassCoreGroup\ --thing-policy-nameGreengrassV2IoTThingPolicy\ --tes-role-nameGreengrassV2TokenExchangeRole\ --tes-role-alias-nameGreengrassCoreTokenExchangeRoleAlias\ --component-default-user ggc_user:ggc_group \ --provision true \ --setup-system-service false -
Erstellen Sie als Root-Benutzer die Systemdienstdatei unter
/etc/systemd/system/greengrass.servicemit 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.targetInformationen zu den erforderlichen Funktionen finden Sie unterLinux-Funktionen werden benötigt von AWS IoT Greengrass V2.
AmbientCapabilitiesgewä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.CapabilityBoundingSetschrä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=strictmacht das gesamte Dateisystem für den Dienst schreibgeschützt, wodurch Änderungen am Betriebssystem verhindert werden.ReadWritePathsgibt die einzigen Verzeichnisse an, in die der Dienst schreiben kann.
-
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
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
RequiresPrivilegeausgefü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
-
Gehen Sie wie folgt vorInstallieren Sie die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung: Richten Sie Ihre Geräteumgebung ein, geben Sie Anmeldeinformationen ein und laden Sie die AWS IoT Greengrass Core-Software herunter.
-
Ä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 /tmpCapabilityBoundingSetist 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 V2ProtectSystem=strictmacht 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.ReadWritePathsgibt die einzigen Verzeichnisse an, in die der Dienst schreiben kann. Zusammen mitProtectSystem=strictbeschränkt dies den Dienst darauf, nur in das AWS IoT Greengrass V2 Stammverzeichnis und zu schreiben/tmp.
-
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-regionregion\ --thing-nameMyGreengrassCore\ --thing-group-nameMyGreengrassCoreGroup\ --thing-policy-nameGreengrassV2IoTThingPolicy\ --tes-role-nameGreengrassV2TokenExchangeRole\ --tes-role-alias-nameGreengrassCoreTokenExchangeRoleAlias\ --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
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.
| Funktion | Description | Erforderlich für |
|---|---|---|
|
Nehmen Sie beliebige Änderungen an der Datei vor UIDs und GIDs |
Änderung des Dateibesitzes je nachdem, welcher Benutzer die Komponente ausführt |
|
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 |
|
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 |
|
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 |
|
Nehmen Sie willkürliche Manipulationen am Prozess vor UIDs |
|
|
Nehmen Sie willkürliche Manipulationen am Prozess vor GIDs |
|
|
Überschreiben Sie Ressourcenlimits |
Festlegung von Ressourcenbeschränkungen für Komponentenprozesse, auch wenn in Bereitstellungen keine Grenzwerte angegeben sind |
|
Schreiben Sie Datensätze in das Kernel-Auditing-Protokoll |
|