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.
J Bereitstellung ust-in-time
Sie können just-in-time Provisioning (JITP) verwenden, um Ihre Geräte bereitzustellen, wenn sie zum ersten Mal versuchen, eine Verbindung herzustellen. AWS IoT Zur Bereitstellung des Geräts müssen Sie die automatische Registrierung aktivieren und dem CA-Zertifikat, mit dem das Gerätezertifikat signiert wurde, eine Bereitstellungsvorlage zuordnen. Erfolge und Fehler bei der Bereitstellung werden wie Gerätebereitstellungsmetriken bei Amazon CloudWatch protokolliert.
Themen
Überblick über JITP
Wenn ein Gerät versucht, AWS IoT mithilfe eines Zertifikats, das mit einem registrierten CA-Zertifikat signiert ist, eine Verbindung herzustellen, wird die Vorlage aus dem CA-Zertifikat AWS IoT geladen und zum Aufrufen RegisterThingverwendet. Der JITP-Workflow registriert zuerst ein Zertifikat mit dem Statuswert PENDING_ACTIVATION
. Wenn die Gerätebereitstellung abgeschlossen ist, wird der Status des Zertifikats in ACTIVE
geändert.
AWS IoT definiert die folgenden Parameter, die Sie in Bereitstellungsvorlagen deklarieren und referenzieren können:
-
AWS::IoT::Certificate::Country
-
AWS::IoT::Certificate::Organization
-
AWS::IoT::Certificate::OrganizationalUnit
-
AWS::IoT::Certificate::DistinguishedNameQualifier
-
AWS::IoT::Certificate::StateName
-
AWS::IoT::Certificate::CommonName
-
AWS::IoT::Certificate::SerialNumber
-
AWS::IoT::Certificate::Id
Die Werte für diese Bereitstellungsvorlagenparameter werden auf die Angaben beschränkt, die JITP aus dem Betreff-Feld des Zertifikats des bereitzustellenden Geräts extrahieren kann. Das Zertifikat muss Werte für alle Parameter im Vorlagentext enthalten. Der AWS::IoT::Certificate::Id
-Parameter bezieht sich auf eine intern generierte ID und nicht auf eine ID, die im Zertifikat enthalten ist. Sie können den Wert dieser ID mithilfe der principal()
Funktion in einer AWS IoT Regel abrufen.
Anmerkung
Sie können Geräte mithilfe der AWS IoT Core just-in-time Bereitstellungsfunktion (JITP) bereitstellen, ohne die gesamte Vertrauenskette bei der ersten Verbindung eines Geräts an senden zu müssen. AWS IoT Core Die Vorlage des CA-Zertifikats ist optional, aber das Gerät muss die SNI-Erweiterung (Server Name Indication)
Beispielvorlagentext
Die folgende JSON-Datei ist ein Beispieltext für eine vollständige JITP-Vorlage.
{ "Parameters":{ "AWS::IoT::Certificate::CommonName":{ "Type":"String" }, "AWS::IoT::Certificate::SerialNumber":{ "Type":"String" }, "AWS::IoT::Certificate::Country":{ "Type":"String" }, "AWS::IoT::Certificate::Id":{ "Type":"String" } }, "Resources":{ "thing":{ "Type":"AWS::IoT::Thing", "Properties":{ "ThingName":{ "Ref":"AWS::IoT::Certificate::CommonName" }, "AttributePayload":{ "version":"v1", "serialNumber":{ "Ref":"AWS::IoT::Certificate::SerialNumber" } }, "ThingTypeName":"lightBulb-versionA", "ThingGroups":[ "v1-lightbulbs", { "Ref":"AWS::IoT::Certificate::Country" } ] }, "OverrideSettings":{ "AttributePayload":"MERGE", "ThingTypeName":"REPLACE", "ThingGroups":"DO_NOTHING" } }, "certificate":{ "Type":"AWS::IoT::Certificate", "Properties":{ "CertificateId":{ "Ref":"AWS::IoT::Certificate::Id" }, "Status":"ACTIVE" } }, "policy":{ "Type":"AWS::IoT::Policy", "Properties":{ "PolicyDocument":"{ \"Version\": \"2012-10-17\", \"Statement\": [{ \"Effect\": \"Allow\", \"Action\":[\"iot:Publish\"], \"Resource\": [\"arn:aws:iot:us-east-1:123456789012:topic/foo/bar\"] }] }" } } } }
Diese Beispielvorlage deklariert Werte für die Bereitstellungsparameter AWS::IoT::Certificate::CommonName
, AWS::IoT::Certificate::SerialNumber
, AWS::IoT::Certificate::Country
und AWS::IoT::Certificate::Id
, die aus dem Zertifikat extrahiert und im Abschnitt Resources
verwendet werden. Der JITP-Workflow führt anhand dieser Vorlage die folgenden Aktionen aus:
-
Ein Zertifikat registrieren und als seinen Status PENDING_ACTIVE einstellen.
-
Eine Objekt-Ressource erstellen.
-
Eine Richtlinien-Ressource erstellen.
-
Dem Zertifikat die Richtlinie anfügen.
-
Dem Objekt das Zertifikat anfügen.
-
Den Status des Zertifikats auf ACTIVE aktualisieren.
Die Gerätebereitstellung schlägt fehl, wenn das Zertifikat nicht alle im Parameters
Abschnitt der genannten Eigenschaften aufweist. templateBody
Wenn AWS::IoT::Certificate::Country
es beispielsweise in der Vorlage enthalten ist, das Zertifikat jedoch keine Country
-Eigenschaft besitzt, schlägt die Gerätebereitstellung fehl.
Sie können es auch CloudTrail zur Behebung von Problemen mit Ihrer JITP-Vorlage verwenden. Informationen zu den Metriken, die bei Amazon protokolliert werden CloudWatch, finden Sie unterGerätebereitstellungsmetriken. Weitere Informationen zur Bereitstellungsvorlagen finden Sie unter Bereitstellungsvorlagen.
Anmerkung
Während des Bereitstellungsprozesses ruft das just-in-time Provisioning (JITP) andere API-Operationen auf der AWS IoT Kontrollebene auf. Diese Aufrufe können die für Ihr Konto festgelegten AWS IoT -Drosselungskontingente überschreiten und zu gedrosselten Aufrufen führen. Wenden Sie sich an den AWS
-Kundenservice
Registrieren einer CA mithilfe der Bereitstellungsvorlage
Gehen Sie folgendermaßen vor, um eine CA mithilfe einer vollständigen Bereitstellungsvorlage zu registrieren:
-
Speichern Sie Ihre Bereitstellungsvorlage und die ARN-Informationen der Rolle wie im folgenden Beispiel als JSON-Datei:
{ "templateBody" : "{\r\n \"Parameters\" : {\r\n \"AWS::IoT::Certificate::CommonName\": {\r\n \"Type\": \"String\"\r\n },\r\n \"AWS::IoT::Certificate::SerialNumber\": {\r\n \"Type\": \"String\"\r\n },\r\n \"AWS::IoT::Certificate::Country\": {\r\n \"Type\": \"String\"\r\n },\r\n \"AWS::IoT::Certificate::Id\": {\r\n \"Type\": \"String\"\r\n }\r\n },\r\n \"Resources\": {\r\n \"thing\": {\r\n \"Type\": \"AWS::IoT::Thing\",\r\n \"Properties\": {\r\n \"ThingName\": {\r\n \"Ref\": \"AWS::IoT::Certificate::CommonName\"\r\n },\r\n \"AttributePayload\": {\r\n \"version\": \"v1\",\r\n \"serialNumber\": {\r\n \"Ref\": \"AWS::IoT::Certificate::SerialNumber\"\r\n }\r\n },\r\n \"ThingTypeName\": \"lightBulb-versionA\",\r\n \"ThingGroups\": [\r\n \"v1-lightbulbs\",\r\n {\r\n \"Ref\": \"AWS::IoT::Certificate::Country\"\r\n }\r\n ]\r\n },\r\n \"OverrideSettings\": {\r\n \"AttributePayload\": \"MERGE\",\r\n \"ThingTypeName\": \"REPLACE\",\r\n \"ThingGroups\": \"DO_NOTHING\"\r\n }\r\n },\r\n \"certificate\": {\r\n \"Type\": \"AWS::IoT::Certificate\",\r\n \"Properties\": {\r\n \"CertificateId\": {\r\n \"Ref\": \"AWS::IoT::Certificate::Id\"\r\n },\r\n \"Status\": \"ACTIVE\"\r\n },\r\n \"OverrideSettings\": {\r\n \"Status\": \"DO_NOTHING\"\r\n }\r\n },\r\n \"policy\": {\r\n \"Type\": \"AWS::IoT::Policy\",\r\n \"Properties\": {\r\n \"PolicyDocument\": \"{ \\\"Version\\\": \\\"2012-10-17\\\", \\\"Statement\\\": [{ \\\"Effect\\\": \\\"Allow\\\", \\\"Action\\\":[\\\"iot:Publish\\\"], \\\"Resource\\\": [\\\"arn:aws:iot:us-east-1:123456789012:topic\/foo\/bar\\\"] }] }\"\r\n }\r\n }\r\n }\r\n}", "roleArn" : "arn:aws:iam::123456789012:role/JITPRole" }
In diesem Beispiel muss der Wert des Feldes
templateBody
ein JSON-Objekt sein, das als Zeichenfolge mit Escapezeichen angegeben wird. Zulässig sind nur die Werte in der obigen Liste. Sie können eine Vielzahl von Tools verwenden, um die erforderliche JSON-Ausgabe zu erstellen, z. B.json.dumps
(Python) oderJSON.stringify
(Node). Der Wert von FeldroleARN
muss der ARN einer Rolle sein, derAWSIoTThingsRegistration
zugeordnet ist. Außerdem können Sie in Ihrer VorlagePolicyName
anstelle des Inline-PolicyDocument
wie im Beispiel verwenden. -
Registrieren Sie ein CA-Zertifikat mit der API-Operation RegisterCACertificate oder dem
register-ca-certificate
-CLI-Befehl. Geben Sie das Verzeichnis der Bereitstellungsvorlage und die ARN-Informationen der Rolle an, die Sie im vorherigen Schritt gespeichert haben:Im Folgenden finden Sie ein Beispiel für die Registrierung eines CA-Zertifikats im
DEFAULT
-Modus mithilfe von AWS CLI:aws iot register-ca-certificate --ca-certificate file://
your-ca-cert
--verification-cert file://your-verification-cert
--set-as-active --allow-auto-registration --registration-config file://your-template
Im Folgenden finden Sie ein Beispiel für die Registrierung eines CA-Zertifikats im
SNI_ONLY
-Modus mithilfe von AWS CLI:aws iot register-ca-certificate --ca-certificate file://
your-ca-cert
--certificate-modeSNI_ONLY
--set-as-active --allow-auto-registration --registration-config file://your-template
Weitere Informationen finden Sie unter Registrieren Ihres CA-Zertifikats.
-
(Optional) Aktualisieren Sie die Einstellungen für ein CA-Zertifikat mithilfe der API-Operation UpdateCACertificate oder des
update-ca-certificate
-CLI-Befehls.Im Folgenden finden Sie ein Beispiel für die Aktualisierung eines CA-Zertifikats mithilfe von AWS CLI:
aws iot update-ca-certificate --certificate-id
caCertificateId
--new-auto-registration-status ENABLE --registration-config file://your-template
Registrieren einer CA anhand des Bereitstellungsvorlagennamens
Gehen Sie folgendermaßen vor, um eine CA mit einem Bereitstellungsvorlagennamen zu registrieren:
-
Speichern Sie den Text Ihrer Bereitstellungsvorlage als JSON-Datei. Einen Beispielvorlagentext finden Sie unter Beispielvorlagentext.
-
Verwenden Sie die Template-API oder den
create-provisioning-template
CLI-Befehl, um eine CreateProvisioningTemplate zu erstellen:aws iot create-provisioning-template --template-name
your-template-name
\ --template-body file://your-template-body.json
--type JITP \ --provisioning-role-arnarn:aws:iam::123456789012:role/test
Anmerkung
Für die just-in-time Bereitstellung (JITP) müssen Sie den Vorlagentyp angeben, der
JITP
bei der Erstellung der Bereitstellungsvorlage verwendet werden soll. Weitere Informationen zum Vorlagentyp finden Sie unter CreateProvisioningVorlage in der AWS API-Referenz. -
Registrieren Sie ein CA-Zertifikat mit der RegisterCACertificate-API oder dem
register-ca-certificate
-CLI-Befehl:aws iot register-ca-certificate --ca-certificate file:
//your-ca-cert
--verification-certfile://your-verification-cert
\ --set-as-active --allow-auto-registration --registration-config templateName=your-template-name