Skip to content

Provisioning-JITP - #59

Closed
siddhesh92 wants to merge 5 commits into
aws:mainfrom
siddhesh92:main
Closed

siddhesh92 wants to merge 5 commits into
aws:mainfrom
siddhesh92:main

Conversation

@siddhesh92

Copy link
Copy Markdown

Issue #, if available:

Description of changes:

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@gadams999 gadams999 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, can you clean up the uneeded files? There should only be 1 .md file and any support images. I see ones for command1 copy that need to be removed. Also, all the sub folder should be removed as it affects the rendering of the section menu.


## Reference architecture

![JITP](JITP_arch_1.png)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the right diagram? It doesn't align to the steps below and seems to be missing AWS IoT Core.


![JITP](JITP_arch_1.png)
The details of this flow are as follows:
1. Private key and signed certificate pair is created using PKI. PKI can be self-managed or using a managed service like Amazon ACM.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are created
stored in device persistent storage? Or do you mean memory?

![JITP](JITP_arch_1.png)
The details of this flow are as follows:
1. Private key and signed certificate pair is created using PKI. PKI can be self-managed or using a managed service like Amazon ACM.
2. This pair is securely copied and stored on the device memory.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The private key and signed certificate are securely copied...

The details of this flow are as follows:
1. Private key and signed certificate pair is created using PKI. PKI can be self-managed or using a managed service like Amazon ACM.
2. This pair is securely copied and stored on the device memory.
3. Using JITP, the device connects to AWS IoT, and the certificate’s signature is verified

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AWS IoT Core
which certificate? client cert or server cert?

1. Private key and signed certificate pair is created using PKI. PKI can be self-managed or using a managed service like Amazon ACM.
2. This pair is securely copied and stored on the device memory.
3. Using JITP, the device connects to AWS IoT, and the certificate’s signature is verified
against the registered CA. After verification, a provisioning template registers the Thing,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no context for the registered CA. Maybe missing from the diagram and flow above?

1. Create an IAM role for your AWS IoT Core service and name it JITP_demo. Attach Policy AWSIoTThingsRegistration to this role.
![iam](iam.png)
2. Create a JITP template JSON file by running following commands
```json

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove json from code fence if not json. Do this throughout the file.

"roleArn":"<ROLE_ARN>"
}
```
4. Run the following register-ca-certificate command to register the device root CA as a CA certificate in AWS IoT Core. Make sure to set correct region at --region flag

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Highlight the command, e.g., register-ca-certificate, and region flag. Without being set as code, --region becomes and em dash.

---
#### Perform JITP
---
Now we have to create a Device certificate using self-signed root CA and on-board the device using JITP. If you have configured ACM or other PKI use your respective PKI to create a CSR and sign device certificate and skip to step 6.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now create (remove we)

openssl genrsa -out deviceCert.key 2048
```

3. Run the following OpenSSL command to create a device CSR. The example JITP template requires the ThingName value to equal the certificate’s CommonName value. The template also requires the CountryName value to equal the Country value in the CA certificate. Refer to the following example:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

renumber. You have 1, then 3. If you use 1 for every entry, this will auto number.

sudo python3 setup.py install
```

7. Navigate to Samples folder and execute the basicPubSub.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to the samples/ folder
the basicPubSub

Check grammar for this step.

@pabloariasmora

Copy link
Copy Markdown
Contributor

Closing this PR as the JITP implementation has been rewritten and merged via #107.

Reasoning:

  • This PR was open since November 2021 with reviewer feedback (from @gadams999) that was never addressed.
  • The repo structure has changed since then: implementations now live under device_bootstrap/ instead of deviceOnboarding/, and the format requires a single _index.md (no step subfolders).
  • The new implementation (Add Implementation: Provisioning - JITP #107) incorporates all the reviewer feedback from this PR, updates the Python SDK reference from v1 (deprecated) to v2, fixes code fence labels, removes hardcoded account IDs, and adds a Spanish translation.

Thank you @siddhesh92 for the original contribution. The content and flow you wrote served as the foundation for the rewrite.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants