You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> **Note**: The JetPack 5 (ARM64) backend Docker image exceeds the Greengrass 2 GB artifact size limit. The build script automatically detects this and pushes images to ECR instead. The edge devices will pull from ECR during component installation, so the device's token exchange role also needs `ecr:GetAuthorizationToken`, `ecr:BatchGetImage`, and `ecr:GetDownloadUrlForLayer` permissions (see edge device policy below).
305
+
253
306
2.**Create edge device policy**:
254
307
- Policy name: `dda-greengrass-policy`
255
308
```json
@@ -274,6 +327,16 @@ DDA consists of several key components:
274
327
"arn:aws:s3:::*"
275
328
]
276
329
},
330
+
{
331
+
"Sid": "ECRPull",
332
+
"Effect": "Allow",
333
+
"Action": [
334
+
"ecr:GetAuthorizationToken",
335
+
"ecr:BatchGetImage",
336
+
"ecr:GetDownloadUrlForLayer"
337
+
],
338
+
"Resource": "*"
339
+
},
277
340
{
278
341
"Effect": "Allow",
279
342
"Action": [
@@ -301,32 +364,80 @@ DDA consists of several key components:
301
364
]
302
365
}
303
366
```
304
-
- Attach S3 permissions for component downloads
305
367
306
368
3.**Create IAM roles**:
307
-
- Build server role: `dda-build-role` (attach `dda-build-policy` + `AmazonSSMManagedInstanceCore`)
4.**Update the Greengrass Token Exchange Role** (created automatically during Greengrass provisioning):
373
+
374
+
The `GreengrassV2TokenExchangeRole` is the role that Greengrass components use at runtime to access AWS services. After provisioning the edge device, add these inline policies to it:
375
+
376
+
**Inline policy: `ECRPullAccess`** (required for JP5 ECR-based deployments):
377
+
```json
378
+
{
379
+
"Version": "2012-10-17",
380
+
"Statement": [
381
+
{
382
+
"Sid": "ECRPull",
383
+
"Effect": "Allow",
384
+
"Action": [
385
+
"ecr:GetAuthorizationToken",
386
+
"ecr:BatchGetImage",
387
+
"ecr:GetDownloadUrlForLayer"
388
+
],
389
+
"Resource": "*"
390
+
}
391
+
]
392
+
}
393
+
```
394
+
395
+
**Inline policy: `GreengrassComponentS3Access`** (required for downloading component artifacts):
396
+
```json
397
+
{
398
+
"Version": "2012-10-17",
399
+
"Statement": [
400
+
{
401
+
"Effect": "Allow",
402
+
"Action": [
403
+
"s3:GetObject",
404
+
"s3:GetObjectVersion"
405
+
],
406
+
"Resource": [
407
+
"arn:aws:s3:::dda-component-*/*"
408
+
]
409
+
}
410
+
]
411
+
}
412
+
```
413
+
414
+
> **Note**: The `GreengrassV2TokenExchangeRole` is separate from the `dda-greengrass-role` used for device provisioning. It's created by the Greengrass installer and used by components at runtime.
415
+
310
416
#### Step 1: Set up Build Environment
311
417
312
418
1.**Launch EC2 build instance**:
313
419
314
-
**The EC2 build instance depends on the edge device configuration:**
420
+
**The EC2 build instance must match the target edge device architecture:**
315
421
316
-
**If your edge device is ARM64 (Jetson Xavier, ARM64 systems):**
422
+
**If your edge device is ARM64 JetPack 4.6 (Jetson Xavier, L4T r32.x):**
317
423
```bash
318
-
# Launch Ubuntu 18.04 ARM64, g4dn.2xlarge
424
+
# Launch Ubuntu 18.04 ARM64 (e.g., a1.2xlarge or c6g.2xlarge)
425
+
# Storage: 512GB, Security: SSH (port 22)
426
+
# Attach IAM role: dda-build-role
427
+
```
428
+
429
+
**If your edge device is ARM64 JetPack 5 (Jetson Orin, L4T r35.x):**
430
+
```bash
431
+
# Launch Ubuntu 20.04 ARM64 (e.g., a1.2xlarge or c6g.2xlarge)
319
432
# Storage: 512GB, Security: SSH (port 22)
320
433
# Attach IAM role: dda-build-role
321
-
# AMI: Find Ubuntu 18.04 in AWS Marketplace → [Ryan to add details]
322
434
```
323
435
324
436
**If your edge device is x86_64 CPU (Intel/AMD systems):**
325
437
```bash
326
-
# Launch Ubuntu 20.04 x86_64, g4dn.2xlarge
438
+
# Launch Ubuntu 20.04 x86_64 (e.g., c5.2xlarge or g4dn.2xlarge)
327
439
# Storage: 512GB, Security: SSH (port 22)
328
440
# Attach IAM role: dda-build-role
329
-
# AMI: Ubuntu 20.04 → [Ryan to add details]
330
441
```
331
442
332
443
2.**Connect and setup**:
@@ -365,9 +476,21 @@ DDA consists of several key components:
> **Note**: For JetPack 5 builds, the Docker image exceeds the Greengrass 2 GB artifact limit. The build script automatically pushes to ECR and creates a component that pulls images at install time. Ensure the `dda-ecr-publish` policy is attached to your build role.
493
+
371
494
#### Step 3: Set up Edge Device
372
495
373
496
1.**For testing only. For real-world deployments: Continue from step 2 when using a Jetson or similar edge device.**:
0 commit comments