AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.
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.
Arbeiten mit geheimen Ressourcen
AWS IoT Greengrass verwendet Secret-Ressourcen zum Integrieren von Secrets aus AWS Secrets Manager in einer Greengrass-Gruppe. Eine geheime Ressource ist ein Verweis auf ein Secrets Manager Manager-Geheimnis. Weitere Informationen finden Sie unter Bereitstellen von Secrets für den AWS IoT Greengrass Core.
Auf dem AWS IoT Greengrass Kerngerät können Konnektoren und Lambda-Funktionen die geheime Ressource verwenden, um sich bei Diensten und Anwendungen zu authentifizieren, ohne dass Passwörter, Token oder andere Anmeldeinformationen fest codiert werden müssen.
Erstellen und Verwalten von Secrets
In einer Greengrass-Gruppe verweist eine geheime Ressource auf den ARN eines Secrets Manager-Geheimnisses. Wenn die geheime Ressource auf dem Core bereitgestellt wird, wird der Wert des Geheimnisses verschlüsselt und verbundenen Konnektoren und Lambda-Funktionen zur Verfügung gestellt. Weitere Informationen finden Sie unter Secrets-Verschlüsselung.
Sie verwenden Secrets Manager, um die Cloud-Versionen Ihrer Secrets zu erstellen und zu verwalten. Verwenden Sie AWS IoT Greengrass zum Erstellen, Verwalten und Bereitstellen Ihrer geheimen Ressourcen.
Wichtig
Wir empfehlen Ihnen, die bewährte Methode zur Rotation Ihrer Geheimnisse in Secrets Manager zu befolgen. Stellen Sie dann die Greengrass-Gruppe bereit, um die lokalen Kopien Ihrer Secrets zu aktualisieren. Weitere Informationen finden Sie im AWS Secrets ManagerBenutzerhandbuch unter Rotation Ihrer AWS Secrets Manager Secrets.
So machen Sie ein Secret auf dem Greengrass-Core verfügbar
Erstellen Sie ein Geheimnis in Secrets Manager. Dies ist die Cloud-Version Ihres Geheimnisses, die zentral in Secrets Manager gespeichert und verwaltet wird. Zu den Verwaltungsaufgaben gehören das Rotieren von geheimen Werten und das Anwenden von Ressourcenrichtlinien.
Erstellen Sie eine Secret-Ressource in AWS IoT Greengrass. Dies ist ein Gruppenressourcentyp, der über den ARN auf das Cloud-Secret verweist. Sie können ein Secret nur einmal pro Gruppe referenzieren.
Konfigurieren Sie Ihren Connector oder Ihre Lambda-Funktion. Sie müssen die Ressource mit einem Konnektor oder einer Funktion verknüpfen, indem Sie entsprechende Parameter oder Eigenschaften angeben. Dadurch kann von ihnen der Wert der lokal bereitgestellten geheimen Ressource ermittelt werden. Weitere Informationen finden Sie unter Verwendung lokaler Geheimnisse in Konnektoren und Lambda-Funktionen.
Bereitstellen der Greengrass-Gruppe Während der Bereitstellung ruft AWS IoT Greengrass den Wert des Cloud-Secrets ab und erstellt (oder aktualisiert) das lokale Secret auf dem Kern.
Secrets Manager protokolliert AWS CloudTrail jedes Mal ein Ereignis, wenn ein geheimer Wert AWS IoT Greengrass abgerufen wird. AWS IoT Greengrassprotokolliert keine Ereignisse im Zusammenhang mit der Bereitstellung oder Verwendung von lokalen Geheimnissen. Weitere Informationen zur Secrets Manager Manager-Protokollierung finden Sie unter Überwachen der Verwendung Ihrer AWS Secrets Manager Geheimnisse im AWS Secrets ManagerBenutzerhandbuch.
Einbinden von Staging-Bezeichnungen in geheime Ressourcen
Secrets Manager verwendet Staging-Labels, um bestimmte Versionen eines geheimen Werts zu identifizieren. Staging-Labels können systemdefiniert oder benutzerdefiniert sein. Secrets Manager weist das AWSCURRENT
Label der neuesten Version des geheimen Werts zu. Staging-Beschriftungen werden häufig verwendet, um die Rotation von Secrets zu verwalten. Weitere Informationen zur Versionierung von Secrets Manager finden Sie unter Wichtige Begriffe und Konzepte für AWS Secrets Manager im AWS Secrets ManagerBenutzerhandbuch.
Geheime Ressourcen enthalten immer das AWSCURRENT
Staging-Label, und sie können optional andere Staging-Labels enthalten, wenn sie von einer Lambda-Funktion oder einem Lambda-Konnektor benötigt werden. Während der Gruppenbereitstellung ruft AWS IoT Greengrass die Werte der Staging-Beschriftungen ab, die in der Gruppe referenziert sind, und erstellt oder aktualisiert dann die entsprechenden Werte auf dem Kern.
Erstellen und Verwalten von geheimen Ressourcen (Konsole)
Erstellen von geheimen Ressourcen (Konsole)
In der AWS IoT Greengrass Konsole erstellen und verwalten Sie geheime Ressourcen über den Tab Secrets auf der Ressourcenseite der Gruppe. Für Tutorials, die eine geheime Ressource erstellen und zu einer Gruppe hinzufügen, siehe Erstellen einer geheimen Ressource (Konsole) und Erste Schritte mit Greengrass-Konnektoren (Konsole).
Anmerkung
Alternativ können Sie mit der Konsole eine geheime und geheime Ressource erstellen, wenn Sie einen Connector oder eine Lambda-Funktion konfigurieren. Sie können dies auf der Seite „Parameter konfigurieren“ des Connectors oder auf der Seite „Ressourcen“ der Lambda-Funktion tun.
Verwalten von geheimen Ressourcen (Konsole)
Zu den Verwaltungsaufgaben für die geheimen Ressourcen in Ihrer Greengrass-Gruppe gehören das Hinzufügen geheimer Ressourcen zur Gruppe, das Entfernen geheimer Ressourcen aus der Gruppe und das Ändern der Staging-Labels, die in einer geheimen Ressource enthalten sind.
Wenn Sie in Secrets Manager auf ein anderes Secret verweisen, müssen Sie auch alle Connectoren bearbeiten, die das Secret verwenden:
-
Wählen Sie auf der Gruppenkonfigurationsseite die Option Connectors (Konnektoren) aus.
-
Klicken Sie im Konnektor-Kontextmenü auf Edit (Bearbeiten).
-
Die Seite Edit parameters (Parameter bearbeiten) Parameter wird eine Meldung angezeigt, um Sie zu informieren, dass sich der geheime ARN geändert hat. Wählen Sie Save (Speichern), um die Änderung zu bestätigen.
Wenn Sie ein Geheimnis in Secrets Manager löschen, entfernen Sie die entsprechende geheime Ressource aus der Gruppe und aus Konnektoren und Lambda-Funktionen, die darauf verweisen. Andernfalls wird während der Gruppenbereitstellung die Fehlermeldung AWS IoT Greengrass zurückgegeben, dass das Geheimnis nicht gefunden werden kann. Aktualisieren Sie auch Ihren Lambda-Funktionscode nach Bedarf.
Erstellen und Verwalten von geheimen Ressourcen (CLI)
Erstellen von geheimen Ressourcen (CLI)
In der AWS IoT Greengrass-API ist ein Secret ist eine Art Gruppenressource. Das folgende Beispiel erstellt eine Ressourcendefinition mit einer Startversion, die eine geheime Ressource namens MySecretResource
enthält. Ein Tutorial, das eine geheime Ressource erstellt und zu einer Gruppenversion hinzufügt, finden Sie unter Erste Schritte mit Greengrass-Konnektoren (CLI).
Die geheime Ressource verweist auf den ARN des entsprechenden Secrets Manager Manager-Geheimnisses und enthält zusätzlich zwei Staging-LabelsAWSCURRENT
, die immer enthalten sind.
aws greengrass create-resource-definition --name MyGreengrassResources --initial-version '{ "Resources": [ { "Id": "my-resource-id", "Name": "MySecretResource", "ResourceDataContainer": { "SecretsManagerSecretResourceData": { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:greengrass-SomeSecret-KUj89s", "AdditionalStagingLabelsToDownload": [ "Label1", "Label2" ] } } } ] }'
Verwalten von geheimen Ressourcen (CLI)
Zu den Verwaltungsaufgaben für die geheimen Ressourcen in Ihrer Greengrass-Gruppe gehören das Hinzufügen geheimer Ressourcen zur Gruppe, das Entfernen geheimer Ressourcen aus der Gruppe und das Ändern der Staging-Labels, die in einer geheimen Ressource enthalten sind.
In der AWS IoT Greengrass-API werden diese Änderungen mithilfe von Versionen implementiert.
Die AWS IoT Greengrass API verwendet Versionen, um Gruppen zu verwalten. Versionen sind unveränderlich. Um Gruppenkomponenten — z. B. die Client-Geräte, Funktionen und Ressourcen der Gruppe — hinzuzufügen oder zu ändern, müssen Sie Versionen neuer oder aktualisierter Komponenten erstellen. Anschließend erstellen und implementieren Sie eine Gruppenversion, die die Zielversion jeder Komponente enthält. Weitere Informationen zu Gruppen finden Sie unterAWS IoT Greengrass Gruppen.
So ändern Sie beispielsweise die Staging-Beschriftungen für eine geheime Ressource:
Erstellen Sie eine Version einer Ressourcendefinition, die die aktualisierte geheime Ressource enthält. Das folgende Beispiel fügt der geheimen Ressource aus dem vorherigen Abschnitt eine dritte Staging-Beschriftung hinzu.
Anmerkung
Um der Version weitere Ressourcen hinzuzufügen, nehmen Sie diese in das Array
Resources
auf.aws greengrass create-resource-definition --name MyGreengrassResources --initial-version '{ "Resources": [ { "Id": "my-resource-id", "Name": "MySecretResource", "ResourceDataContainer": { "SecretsManagerSecretResourceData": { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:greengrass-SomeSecret-KUj89s", "AdditionalStagingLabelsToDownload": [ "Label1", "Label2", "Label3" ] } } } ] }'
Wenn die ID der geheimen Ressource geändert wird, aktualisieren Sie Konnektoren und Funktionen, die die geheime Ressource verwenden. Aktualisieren Sie in den neuen Versionen den Parameter oder die Eigenschaft, die der Ressourcen-ID entspricht. Wenn der ARN des Secrets geändert wird, müssen Sie auch den entsprechenden Parameter für alle Konnektoren aktualisieren, die das Secret verwenden.
Anmerkung
Die Ressourcen-ID ist ein beliebiger Identifikator, der vom Kunden bereitgestellt wird.
Erstellen Sie eine Gruppenversion, die die Zielversion jeder Komponente enthält, die Sie an den Kern senden möchten.
Bereitstellen der Gruppenversion.
Ein Tutorial, das zeigt, wie man geheime Ressourcen, Konnektoren und Funktionen erstellt und bereitstellt, finden Sie unter Erste Schritte mit Greengrass-Konnektoren (CLI).
Wenn Sie ein Geheimnis in Secrets Manager löschen, entfernen Sie die entsprechende geheime Ressource aus der Gruppe und aus Konnektoren und Lambda-Funktionen, die darauf verweisen. Andernfalls wird während der Gruppenbereitstellung die Fehlermeldung AWS IoT Greengrass zurückgegeben, dass das Geheimnis nicht gefunden werden kann. Aktualisieren Sie auch Ihren Lambda-Funktionscode nach Bedarf. Sie können ein lokales Geheimnis entfernen, indem Sie eine Version der Ressourcendefinition bereitstellen, die die entsprechende geheime Ressource nicht enthält.
Verwendung lokaler Geheimnisse in Konnektoren und Lambda-Funktionen
Greengrass-Konnektoren und Lambda-Funktionen verwenden lokale Geheimnisse, um mit Diensten und Anwendungen zu interagieren. Der AWSCURRENT
-Wert wird standardmäßig verwendet, es sind aber auch Werte für andere Staging-Bezeichnungen in der Secret-Ressource verfügbar.
Konnektoren und Funktionen müssen konfiguriert werden, bevor sie auf lokale Secrets zugreifen. Dadurch wird die geheime Ressource mit dem Konnektor oder der Funktion verknüpft.
- Konnektoren
-
Wenn ein Konnektor Zugriff auf ein lokales Secret benötigt, stellt er Parameter zur Verfügung, die Sie mit den Informationen konfigurieren, die für den Zugriff auf das Secret erforderlich sind.
Informationen dazu, wie Sie dies in der AWS IoT Greengrass Konsole tun, finden Sie unter. Erste Schritte mit Greengrass-Konnektoren (Konsole)
Informationen, wie dazu mit der AWS IoT Greengrass-CLI vorzugehen ist, finden Sie unter Erste Schritte mit Greengrass-Konnektoren (CLI).
Weitere Informationen über die Anforderungen einzelner Konnektoren finden Sie unter AWSVon bereitgestellte Greengrass-Konnektoren.
Die Logik für den Zugriff und die Nutzung des Secrets ist in den Konnektor integriert.
- Lambda-Funktionen
-
Um einer Greengrass Lambda-Funktion den Zugriff auf ein lokales Geheimnis zu ermöglichen, konfigurieren Sie die Eigenschaften der Funktion.
Informationen dazu, wie Sie dies in der AWS IoT Greengrass Konsole tun, finden Sie unter. Erstellen einer geheimen Ressource (Konsole)
Dazu stellen Sie in der AWS IoT Greengrass-API die folgenden Informationen in der Eigenschaft
ResourceAccessPolicies
zur Verfügung.ResourceId
: Die ID der geheimen Ressource in der Greengrass-Gruppe. Dies ist die Ressource, die auf den ARN des entsprechenden Secrets Manager Manager-Geheimnisses verweist.Permission
: Die Art des Zugriffs, den die Funktion auf die Ressource hat. Nur die Berechtigungro
(schreibgeschützt) wird für geheime Ressourcen unterstützt.
Das folgende Beispiel erstellt eine Lambda-Funktion, die auf die
MyApiKey
geheime Ressource zugreifen kann.aws greengrass create-function-definition --name MyGreengrassFunctions --initial-version '{ "Functions": [ { "Id": "MyLambdaFunction", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:1", "FunctionConfiguration": { "Pinned": false, "MemorySize": 16384, "Timeout": 10, "Environment": { "ResourceAccessPolicies": [ { "ResourceId": "MyApiKey", "Permission": "ro" } ], "AccessSysfs": true } } } ] }'
Um zur Laufzeit auf lokale Geheimnisse zuzugreifen, rufen Greengrass Lambda-Funktionen die
get_secret_value
Funktion vomsecretsmanager
Client im AWS IoT Greengrass Core SDK (v1.3.0 oder höher) aus.Das folgende Beispiel zeigt, wie Sie das AWS IoT Greengrass Core SDK für Python verwenden, um ein Geheimnis abzurufen. Es übergibt den Namen des Geheimnisses an die
get_secret_value
Funktion.SecretId
kann der Name oder der ARN des Secrets Manager Manager-Geheimnisses sein (nicht der geheimen Ressource).import greengrasssdk secrets_client = greengrasssdk.client("secretsmanager") secret_name = "greengrass-MySecret-abc" def function_handler(event, context): response = secrets_client.get_secret_value(SecretId=secret_name) secret = response.get("SecretString")
Für Secrets vom Typ Text gibt die
get_secret_value
-Funktion eine Zeichenfolge zurück. Für Secrets des Binärtyps gibt sie eine base64-kodierte Zeichenfolge zurück.Wichtig
Stellen Sie sicher, dass Ihre benutzerdefinierten Lambda-Funktionen Secrets sicher behandeln und keine sensiblen Daten protokollieren, die in dem Secret gespeichert sind. Weitere Informationen finden Sie im Benutzerhandbuch unter Minimierung der Risiken beim Protokollieren und Debuggen Ihrer Lambda-Funktion. AWS Secrets Manager Obwohl sich diese Dokumentation speziell auf Rotationsfunktionen bezieht, gilt die Empfehlung auch für Greengrass Lambda-Funktionen.
Standardmäßig wird der aktuelle Wert des Secrets zurückgegeben. Dies ist die Version, der die
AWSCURRENT
-Staging-Bezeichnung zugeordnet ist. Um auf eine andere Version zuzugreifen, übergeben Sie den Namen der zugehörigen Staging-Bezeichnung für das optionaleVersionStage
-Argument. Beispiele:import greengrasssdk secrets_client = greengrasssdk.client("secretsmanager") secret_name = "greengrass-TestSecret" secret_version = "MyTargetLabel" # Get the value of a specific secret version def function_handler(event, context): response = secrets_client.get_secret_value( SecretId=secret_name, VersionStage=secret_version ) secret = response.get("SecretString")
Eine weitere Beispielfunktion, die
get_secret_value
aufruft, finden Sie unter Erstellen Sie ein Bereitstellungspaket für Lambda-Funktionen.