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 Flottenbereitstellung für Greengrass-Kerngeräte einrichten
Um die AWS IoT Greengrass Core-Software mit Flottenbereitstellung zu installieren, müssen Sie zunächst die folgenden Ressourcen in Ihrem einrichten. AWS-Konto Diese Ressourcen ermöglichen es Geräten, sich bei Greengrass-Core-Geräten zu registrieren AWS IoT und als solche zu arbeiten. Folgen Sie einmal den Schritten in diesem Abschnitt, um diese Ressourcen in Ihrem AWS-Konto zu erstellen und zu konfigurieren.
-
Eine IAM-Rolle für den Tokenaustausch, mit der Kerngeräte Aufrufe von Diensten autorisieren. AWS
-
Ein AWS IoT Rollenalias, der auf die Token-Exchange-Rolle verweist.
-
(Optional) Eine AWS IoT Richtlinie, anhand derer Kerngeräte Anrufe an die AWS IoT Greengrass Dienste AWS IoT und autorisieren. Diese AWS IoT Richtlinie muss die
iot:AssumeRoleWithCertificate
Berechtigung für den AWS IoT Rollenalias gewähren, der auf die Token-Exchange-Rolle verweist.Sie können eine einzige AWS IoT Richtlinie für alle Kerngeräte in Ihrer Flotte verwenden, oder Sie können Ihre Flottenbereitstellungsvorlage so konfigurieren, dass für jedes Kerngerät eine AWS IoT Richtlinie erstellt wird.
-
Eine Vorlage für die AWS IoT Flottenbereitstellung. Diese Vorlage muss Folgendes enthalten:
-
AWS IoT Irgendeine Ressource. Sie können eine Liste vorhandener Dinggruppen angeben, um Komponenten für jedes Gerät bereitzustellen, wenn es online geht.
-
Eine AWS IoT Richtlinienressource. Diese Ressource kann eine der folgenden Eigenschaften definieren:
-
Der Name einer vorhandenen AWS IoT Richtlinie. Wenn Sie diese Option wählen, verwenden die Kerngeräte, die Sie anhand dieser Vorlage erstellen, dieselbe AWS IoT Richtlinie, und Sie können ihre Berechtigungen als Flotte verwalten.
-
Ein AWS IoT Richtliniendokument. Wenn Sie diese Option wählen, verwendet jedes Core-Gerät, das Sie anhand dieser Vorlage erstellen, eine eigene AWS IoT Richtlinie, und Sie können die Berechtigungen für jedes einzelne Core-Gerät verwalten.
-
-
Eine AWS IoT Zertifikatsressource. Diese Zertifikatsressource muss den
AWS::IoT::Certificate::Id
Parameter verwenden, um das Zertifikat an das Kerngerät anzuhängen. Weitere Informationen finden Sie im AWS IoT Developer Guide unter Just-in-time Provisioning.
-
-
Ein AWS IoT Provisioning-Anspruchszertifikat und ein privater Schlüssel für die Flottenbereitstellungsvorlage. Sie können dieses Zertifikat und den privaten Schlüssel während der Herstellung in Geräte einbetten, sodass sich die Geräte selbst registrieren und bereitstellen können, wenn sie online gehen.
Wichtig
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 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 im Developer Guide.AWS IoT Core
-
Eine AWS IoT Richtlinie, die Sie dem Provisioning-Antragszertifikat beifügen, damit sich Geräte registrieren und die Flottenbereitstellungsvorlage verwenden können.
Themen
Erstellen Sie eine Token-Austauschrolle
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.
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.
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.
Um eine IAM-Rolle für den Token-Austausch zu erstellen
-
Erstellen Sie eine IAM-Rolle, die Ihr Gerät als Token-Austauschrolle verwenden kann. Gehen Sie wie folgt vor:
-
Erstellen Sie eine Datei, die das Dokument mit der Vertrauensrichtlinie enthält, das für die Token-Austauschrolle erforderlich ist.
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" } ] }
-
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.jsonDie 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" } ] } }
-
-
Erstellen Sie eine Datei, die das Dokument mit der Zugriffsrichtlinie enthält, das für die Token-Austauschrolle erforderlich ist.
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.
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.
-
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.jsonDie 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" } }
-
-
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-arnarn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
Der Befehl hat keine Ausgabe, wenn die Anfrage erfolgreich ist.
-
-
-
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-arnarn: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.AWS Identity and Access Management
-
Erstellen Sie eine AWS IoT Richtlinie
Nachdem Sie ein Gerät als Objekt registriert AWS IoT haben, kann dieses Gerät ein digitales Zertifikat zur Authentifizierung verwenden. AWS Dieses Zertifikat enthält eine oder mehrere AWS IoT Richtlinien, die die Berechtigungen definieren, die ein Gerät mit dem Zertifikat verwenden kann. Diese Richtlinien ermöglichen dem Gerät die Kommunikation mit AWS IoT und AWS IoT Greengrass.
Bei der AWS IoT Flottenbereitstellung stellen Geräte eine Verbindung her, AWS IoT um ein Gerätezertifikat zu erstellen und herunterzuladen. In der Flottenbereitstellungsvorlage, die Sie im nächsten Abschnitt erstellen, können Sie angeben, ob AWS IoT den Zertifikaten aller Geräte dieselbe AWS IoT Richtlinie zugewiesen wird oder ob für jedes Gerät eine neue Richtlinie erstellt wird.
In diesem Abschnitt erstellen Sie eine AWS IoT Richtlinie, die an die Zertifikate aller Geräte AWS IoT angehängt wird. Mit diesem Ansatz können Sie die Berechtigungen für alle Geräte als Flotte verwalten. Wenn Sie lieber für jedes Gerät eine neue AWS IoT Richtlinie erstellen möchten, können Sie diesen Abschnitt überspringen und bei der Definition Ihrer Flottenvorlage auf die darin enthaltene Richtlinie verweisen.
Um eine AWS IoT Richtlinie zu erstellen
-
Erstellen Sie eine AWS IoT Richtlinie, die die AWS IoT Berechtigungen für Ihre Flotte von Greengrass-Core-Geräten definiert. Die folgende Richtlinie ermöglicht den Zugriff auf alle MQTT-Themen und Greengrass-Operationen, sodass Ihr Gerät mit benutzerdefinierten Anwendungen und future Änderungen, die neue Greengrass-Operationen erfordern, funktioniert. Diese Richtlinie ermöglicht auch die
iot:AssumeRoleWithCertificate
Genehmigung, die es Ihren Geräten ermöglicht, die Token-Austauschrolle zu verwenden, die Sie im vorherigen Abschnitt erstellt haben. Sie können diese Richtlinie je nach Anwendungsfall einschränken. Weitere Informationen finden Sie unter Minimale AWS IoT Richtlinie für AWS IoT Greengrass V2 Kerngeräte.Gehen Sie wie folgt vor:
-
Erstellen Sie eine Datei, die das AWS IoT Richtliniendokument enthält, das für Greengrass-Core-Geräte erforderlich ist.
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-policy.json
Kopieren Sie den folgenden JSON-Code in die Datei.
-
Ersetzen Sie die
iot:AssumeRoleWithCertificate
Ressource durch den ARN des AWS IoT Rollenalias, den Sie im vorherigen Abschnitt erstellt haben.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect", "greengrass:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "
arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias
" } ] } -
-
Erstellen Sie eine AWS IoT Richtlinie aus dem Richtliniendokument.
-
GreengrassV2IoTThingPolicy
Ersetzen Sie es durch den Namen der zu erstellenden Richtlinie.
aws iot create-policy --policy-name
GreengrassV2IoTThingPolicy
--policy-document file://greengrass-v2-iot-policy.jsonDie Antwort ähnelt dem folgenden Beispiel, wenn die Anfrage erfolgreich ist.
{ "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": [ \"iot:Publish\", \"iot:Subscribe\", \"iot:Receive\", \"iot:Connect\", \"greengrass:*\" ], \"Resource\": [ \"*\" ] }, { \"Effect\": \"Allow\", \"Action\": \"iot:AssumeRoleWithCertificate\", \"Resource\": \"
arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias
\" } ] }", "policyVersionId": "1" } -
-
Erstellen Sie eine Vorlage für die Flottenbereitstellung
AWS IoT Vorlagen für die Flottenbereitstellung definieren, wie AWS IoT Dinge, Richtlinien und Zertifikate bereitgestellt werden. Um Greengrass-Kerngeräte mit dem Fleet Provisioning Plugin bereitzustellen, müssen Sie eine Vorlage erstellen, die Folgendes spezifiziert:
-
Irgendeine Ressource AWS IoT . Sie können eine Liste vorhandener Dinggruppen angeben, um Komponenten für jedes Gerät bereitzustellen, wenn es online geht.
-
Eine AWS IoT Richtlinienressource. Diese Ressource kann eine der folgenden Eigenschaften definieren:
-
Der Name einer vorhandenen AWS IoT Richtlinie. Wenn Sie diese Option wählen, verwenden die Kerngeräte, die Sie anhand dieser Vorlage erstellen, dieselbe AWS IoT Richtlinie, und Sie können ihre Berechtigungen als Flotte verwalten.
-
Ein AWS IoT Richtliniendokument. Wenn Sie diese Option wählen, verwendet jedes Core-Gerät, das Sie anhand dieser Vorlage erstellen, eine eigene AWS IoT Richtlinie, und Sie können die Berechtigungen für jedes einzelne Core-Gerät verwalten.
-
-
Eine AWS IoT Zertifikatsressource. Diese Zertifikatsressource muss den
AWS::IoT::Certificate::Id
Parameter verwenden, um das Zertifikat an das Kerngerät anzuhängen. Weitere Informationen finden Sie im AWS IoT Developer Guide unter Just-in-time Provisioning.
In der Vorlage können Sie angeben, dass das AWS IoT Ding zu einer Liste vorhandener Dinggruppen hinzugefügt werden soll. Wenn das Kerngerät AWS IoT Greengrass zum ersten Mal eine Verbindung herstellt, empfängt es Greengrass-Bereitstellungen für jede Dinggruppe, der es angehört. Sie können Dinggruppen verwenden, um die neueste Software auf jedem Gerät bereitzustellen, sobald es online ist. Weitere Informationen finden Sie unter AWS IoT Greengrass Komponenten auf Geräten bereitstellen.
Für den AWS IoT Dienst sind AWS-Konto bei der Bereitstellung von Geräten Berechtigungen zum Erstellen und Aktualisieren von AWS IoT Ressourcen auf Ihrem Gerät erforderlich. Um dem AWS IoT Dienst Zugriff zu gewähren, erstellen Sie eine IAM-Rolle und geben sie bei der Erstellung der Vorlage an. AWS IoT stellt eine verwaltete Richtlinie (AWSIoTThingsRegistrierung
In diesem Abschnitt erstellen Sie eine IAM-Rolle, die die Bereitstellung von Ressourcen für Geräte ermöglicht AWS IoT , und Sie erstellen eine Flottenbereitstellungsvorlage, die diese IAM-Rolle verwendet.
Um eine Vorlage für die Flottenbereitstellung zu erstellen
-
Erstellen Sie eine IAM-Rolle, die die Bereitstellung von Ressourcen in Ihrem übernehmen AWS IoT kann. AWS-Konto Gehen Sie wie folgt vor:
-
Erstellen Sie eine Datei, die das Dokument mit der Vertrauensrichtlinie enthält, mit dem AWS IoT Sie die Rolle übernehmen können.
Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.
nano aws-iot-trust-policy.json
Kopieren Sie den folgenden JSON-Code in die Datei.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Erstellen Sie eine IAM-Rolle mit dem Dokument zur Vertrauensrichtlinie.
-
GreengrassFleetProvisioningRole
Ersetzen Sie sie durch den Namen der zu erstellenden IAM-Rolle.
aws iam create-role --role-name
GreengrassFleetProvisioningRole
--assume-role-policy-document file://aws-iot-trust-policy.jsonDie Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.
{ "Role": { "Path": "/", "RoleName": "GreengrassFleetProvisioningRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole", "CreateDate": "2021-07-26T00:15:12+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } }
-
-
Lesen Sie sich die AWSIoTThingsRegistrierungsrichtlinie
durch, die den Zugriff auf alle Berechtigungen ermöglicht, die AWS IoT möglicherweise bei der Bereitstellung von Geräten verwendet werden. Sie können diese verwaltete Richtlinie verwenden oder eine benutzerdefinierte Richtlinie erstellen, die spezifische Berechtigungen für Ihren Anwendungsfall definiert. Wenn Sie sich dafür entscheiden, eine benutzerdefinierte Richtlinie zu erstellen, tun Sie dies jetzt. -
Fügen Sie die IAM-Richtlinie der Flottenbereitstellungsrolle hinzu.
-
Ersetzen Sie
GreengrassFleetProvisioningRole
durch den Namen der IAM-Rolle. -
Wenn Sie im vorherigen Schritt eine benutzerdefinierte Richtlinie erstellt haben, ersetzen Sie den Richtlinien-ARN durch den ARN der zu verwendenden IAM-Richtlinie.
aws iam attach-role-policy --role-name
GreengrassFleetProvisioningRole
--policy-arnarn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration
Der Befehl hat keine Ausgabe, wenn die Anfrage erfolgreich ist.
-
-
-
(Optional) Erstellen Sie einen Pre-Provisioning-Hook. Dabei handelt es sich um eine AWS Lambda Funktion, die Vorlagenparameter überprüft, die Geräte bei der Registrierung angeben. Sie können einen Pre-Provisioning-Hook verwenden, um mehr Kontrolle darüber zu erhalten, welche und wie viele Geräte in Ihrem Gerät integriert sind. AWS-KontoWeitere Informationen finden Sie unter Pre-Provisioning Hooks im Developer Guide.AWS IoT Core
-
Erstellen Sie eine Vorlage für die Flottenbereitstellung. Gehen Sie wie folgt vor:
-
Erstellen Sie eine Datei, die das Vorlagendokument für die Bereitstellung enthält.
Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.
nano greengrass-fleet-provisioning-template.json
Schreiben Sie das Provisioning-Vorlagendokument. Sie können mit der folgenden Beispielvorlage für die Bereitstellung beginnen, in der angegeben wird, dass ein Objekt mit den folgenden AWS IoT Eigenschaften erstellt werden soll:
-
Der Name der Sache ist der Wert, den Sie im
ThingName
Vorlagenparameter angeben. -
Das Ding ist ein Mitglied der Dinggruppe, die Sie im
ThingGroupName
Vorlagenparameter angeben. Die Dinggruppe muss in Ihrer vorhanden sein AWS-Konto. -
Dem Zertifikat der Sache ist die angegebene AWS IoT Richtlinie
GreengrassV2IoTThingPolicy
angehängt.
Weitere Informationen finden Sie unter Bereitstellungsvorlagen im AWS IoT Core Entwicklerhandbuch.
{ "Parameters": { "ThingName": { "Type": "String" }, "ThingGroupName": { "Type": "String" }, "AWS::IoT::Certificate::Id": { "Type": "String" } }, "Resources": { "
MyThing
": { "OverrideSettings": { "AttributePayload": "REPLACE", "ThingGroups": "REPLACE", "ThingTypeName": "REPLACE" }, "Properties": { "AttributePayload": {}, "ThingGroups": [ { "Ref": "ThingGroupName" } ], "ThingName": { "Ref": "ThingName" } }, "Type": "AWS::IoT::Thing" }, "MyPolicy
": { "Properties": { "PolicyName": "GreengrassV2IoTThingPolicy
" }, "Type": "AWS::IoT::Policy" }, "MyCertificate
": { "Properties": { "CertificateId": { "Ref": "AWS::IoT::Certificate::Id" }, "Status": "Active" }, "Type": "AWS::IoT::Certificate" } } }Anmerkung
MyThing
MyPolicy
, undMyCertificate
sind willkürliche Namen, die jede Ressourcenspezifikation in der Flottenbereitstellungsvorlage identifizieren. AWS IoT verwendet diese Namen nicht in den Ressourcen, die es anhand der Vorlage erstellt. Sie können diese Namen verwenden oder sie durch Werte ersetzen, die Ihnen helfen, die einzelnen Ressourcen in der Vorlage zu identifizieren. -
-
Erstellen Sie die Vorlage für die Flottenbereitstellung anhand des Vorlagendokuments für die Bereitstellung von Flotten.
-
GreengrassFleetProvisioningTemplate
Ersetzen Sie es durch den Namen der zu erstellenden Vorlage. -
Ersetzen Sie die Vorlagenbeschreibung durch eine Beschreibung für Ihre Vorlage.
-
Ersetzen Sie den ARN der Bereitstellungsrolle durch den ARN der Rolle, die Sie zuvor erstellt haben.
Anmerkung
Wenn Sie einen Pre-Provisioning-Hook erstellt haben, geben Sie den ARN der Lambda-Funktion des Pre-Provisioning-Hooks mit dem Argument an.
--pre-provisioning-hook
--pre-provisioning-hook targetArn=
arn:aws:lambda:us-west-2:123456789012:function:GreengrassPreProvisioningHook
Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.
{ "templateArn": "arn:aws:iot:us-west-2:123456789012:provisioningtemplate/GreengrassFleetProvisioningTemplate", "templateName": "GreengrassFleetProvisioningTemplate", "defaultVersionId": 1 }
-
-
Erstellen Sie ein Provisioning-Anspruchszertifikat und einen privaten Schlüssel
Anspruchszertifikate sind X.509-Zertifikate, die es Geräten ermöglichen, sich als AWS IoT Dinge zu registrieren und ein eindeutiges X.509-Gerätezertifikat abzurufen, das für den regulären Betrieb verwendet werden kann. Nachdem Sie ein Anspruchszertifikat erstellt haben, fügen Sie eine AWS IoT Richtlinie hinzu, die es Geräten ermöglicht, damit eindeutige Gerätezertifikate zu erstellen und diese mit einer Flottenbereitstellungsvorlage bereitzustellen. Geräte mit dem Antragszertifikat können nur mithilfe der Bereitstellungsvorlage bereitgestellt werden, die Sie in der AWS IoT Richtlinie zulassen.
In diesem Abschnitt erstellen Sie das Antragszertifikat und konfigurieren es für Geräte zur Verwendung mit der Flottenbereitstellungsvorlage, die Sie im vorherigen Abschnitt erstellt haben.
Wichtig
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 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 im Developer Guide.AWS IoT Core
Um ein Provisioning zu erstellen, beanspruchen Sie ein Zertifikat und einen privaten Schlüssel
-
Erstellen Sie einen Ordner, in den Sie das Anspruchszertifikat und den privaten Schlüssel herunterladen.
mkdir claim-certs
-
Erstellen und speichern Sie ein Zertifikat und einen privaten Schlüssel, um sie für die Bereitstellung zu verwenden. AWS IoT stellt Client-Zertifikate bereit, die von der Amazon Root Certificate Authority (CA) signiert wurden.
Die Antwort enthält Informationen über das Zertifikat, falls die Anfrage erfolgreich ist. Speichern Sie den ARN des Zertifikats, um ihn später zu verwenden.
-
Erstellen und fügen Sie eine AWS IoT Richtlinie hinzu, die es Geräten ermöglicht, das Zertifikat zu verwenden, um eindeutige Gerätezertifikate zu erstellen und diese mit der Flottenbereitstellungsvorlage bereitzustellen. Die folgende Richtlinie ermöglicht den Zugriff auf die MQTT-API zur Gerätebereitstellung. Weitere Informationen finden Sie unter MQTT-API zur Gerätebereitstellung im Entwicklerhandbuch.AWS IoT Core
Gehen Sie wie folgt vor:
-
Erstellen Sie eine Datei, die das AWS IoT Richtliniendokument enthält, das für Greengrass-Core-Geräte erforderlich ist.
Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.
nano greengrass-provisioning-claim-iot-policy.json
Kopieren Sie den folgenden JSON-Code in die Datei.
-
Ersetzen Sie jede Instanz von
region
durch die Instanz, für AWS-Region die Sie die Flottenbereitstellung eingerichtet haben. -
Ersetzen Sie jede Instanz von
account-id
durch Ihre AWS-Konto ID. -
Ersetzen Sie jede Instanz von
GreengrassFleetProvisioningTemplate
durch den Namen der Flottenbereitstellungsvorlage, die Sie im vorherigen Abschnitt erstellt haben.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:
region
:account-id
:topic/$aws/certificates/create/*", "arn:aws:iot:region
:account-id
:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate
/provision/*" ] }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:aws:iot:region
:account-id
:topicfilter/$aws/certificates/create/*", "arn:aws:iot:region
:account-id
:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate
/provision/*" ] } ] } -
-
Erstellen Sie eine AWS IoT Richtlinie anhand des Richtliniendokuments.
-
GreengrassProvisioningClaimPolicy
Ersetzen Sie es durch den Namen der zu erstellenden Richtlinie.
aws iot create-policy --policy-name
GreengrassProvisioningClaimPolicy
--policy-document file://greengrass-provisioning-claim-iot-policy.jsonDie Antwort ähnelt dem folgenden Beispiel, wenn die Anfrage erfolgreich ist.
{ "policyName": "GreengrassProvisioningClaimPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassProvisioningClaimPolicy", "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": \"iot:Connect\", \"Resource\": \"*\" }, { \"Effect\": \"Allow\", \"Action\": [ \"iot:Publish\", \"iot:Receive\" ], \"Resource\": [ \"arn:aws:iot:
region
:account-id
:topic/$aws/certificates/create/*\", \"arn:aws:iot:region
:account-id
:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate
/provision/*\" ] }, { \"Effect\": \"Allow\", \"Action\": \"iot:Subscribe\", \"Resource\": [ \"arn:aws:iot:region
:account-id
:topicfilter/$aws/certificates/create/*\", \"arn:aws:iot:region
:account-id
:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate
/provision/*\" ] } ] }", "policyVersionId": "1" } -
-
-
Fügen Sie die AWS IoT Richtlinie dem Provisioning Claim Certificate bei.
-
GreengrassProvisioningClaimPolicy
Ersetzen Sie es durch den Namen der Richtlinie, die angehängt werden soll. -
Ersetzen Sie den Ziel-ARN durch den ARN des Provisioning-Anspruchszertifikats.
aws iot attach-policy --policy-name
GreengrassProvisioningClaimPolicy
--targetarn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
Der Befehl hat keine Ausgabe, wenn die Anfrage erfolgreich ist.
-
Sie verfügen jetzt über ein Provisioning-Anspruchszertifikat und einen privaten Schlüssel, mit denen sich Geräte registrieren AWS IoT und sich selbst als Greengrass-Core-Geräte bereitstellen können. Sie können das Antragszertifikat und den privaten Schlüssel während der Herstellung in Geräte einbetten oder das Zertifikat und den Schlüssel auf die Geräte kopieren, bevor Sie die AWS IoT Greengrass Core-Software installieren. Weitere Informationen finden Sie unter Installieren Sie die AWS IoT Greengrass Core-Software mit AWS IoT Flottenbereitstellung.