Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Preparazione della sicurezza
Questa sezione illustra i principali requisiti di sicurezza per AWS IoT Device Management Software Package Catalog.
Resource-based authentication
Software Package Catalog utilizza l'autorizzazione basata sulle risorse per fornire maggiore sicurezza durante l'aggiornamento del software sul parco istanze. Ciò significa che è necessario creare una policy AWS Identity and Access Management (IAM) che conceda i diritti di esecuzionecreate,, read updatedelete, e list azioni per i pacchetti software e le versioni dei pacchetti e fare riferimento ai pacchetti software e alle versioni dei pacchetti software specifici che si desidera distribuire nella sezione. Resources Queste autorizzazioni sono necessarie anche per aggiornare la copia shadow con nome riservata. Puoi fare riferimento ai pacchetti software e alle versioni dei pacchetti includendo un nome della risorsa Amazon (ARN) per ciascuna entità.
Nota
Se intendi che la policy conceda i diritti per le chiamate API alla versione del pacchetto (ad esempio CreatePackageVersion UpdatePackageVersion,, DeletePackageVersion), devi includere nella policy sia il pacchetto software che gli ARN della versione del pacchetto. Se intendi che la policy conceda i diritti per le chiamate API dei pacchetti software (ad esempio CreatePackage UpdatePackage,, e DeletePackage), devi includere solo il pacchetto software ARN nella policy.
Struttura gli ARN del pacchetto software e della versione del pacchetto come riportato di seguito:
Pacchetto software:
arn:aws:iot:<region>:<accountID>:package/<packageName>/packageVersione del pacchetto:
arn:aws:iot:<region>:<accountID>:package/<packageName>/version/<versionName>
Nota
Sono disponibili altri diritti correlati che potrebbe essere necessario includere in questa policy. Ad esempio, potrebbe essere necessario includere un ARN per job, thinggroup e jobtemplate. Per ulteriori informazioni e un elenco completo delle opzioni delle policy, consulta Proteggere utenti e dispositivi con AWS IoT Jobs.
Ad esempio, se disponi di un pacchetto software e una versione del pacchetto denominati come segue:
AWS IoT cosa:
myThingNome pacchetto:
samplePackageVersione
1.0.0
L'aspetto della policy potrebbe essere simile all'esempio seguente:
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:createPackage", "iot:createPackageVersion", "iot:updatePackage", "iot:updatePackageVersion" ], "Resource": [ "arn:aws:iot:us-east-1:111122223333:package/samplePackage", "arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/1.0.0" ] }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow" ], "Resource": "arn:aws:iot:us-east-1:111122223333:thing/myThing/$package" } ] }
AWS IoT Diritti lavorativi per distribuire le versioni dei pacchetti
Per motivi di sicurezza, è importante concedere diritti per distribuire pacchetti e versioni dei pacchetti e assegnare un nome ai pacchetti e alle versioni dei pacchetti specifici che sono autorizzati a distribuire. A questo scopo, puoi creare un ruolo e una policy IAM che concedono l'autorizzazione per distribuire processi con versioni dei pacchetti. La policy deve specificare le versioni dei pacchetti di destinazione come una risorsa.
Policy IAM
La policy IAM concede il diritto per creare un processo che include il pacchetto e la versione denominati nella sezione Resource.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:CreateJob", "iot:CreateJobTemplate" ], "Resource":[ "arn:aws:iot:*:111122223333:job/<jobId>", "arn:aws:iot:*:111122223333:thing/<thingName>/$package", "arn:aws:iot:*:111122223333:thinggroup/<thingGroupName>", "arn:aws:iot:*:111122223333:jobtemplate/<jobTemplateName>", "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>" ] } ] }
Nota
Se desideri distribuire un job che disinstalla un pacchetto software e una versione del pacchetto, devi autorizzare un ARN in cui si trova la versione del pacchetto$null, come nel seguente:
arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null
AWS IoT Diritti di aggiornamento del job riservato denominato shadow
Per consentire ai processi di aggiornare la copia shadow con nome riservata quando il processo viene completato correttamente, devi creare un ruolo e una policy IAM. Sono disponibili due modi per eseguire questa operazione nella console AWS IoT . Il primo è quando crei un pacchetto software nella console. Se viene visualizzata una finestra di dialogo Abilita dipendenze per la gestione dei pacchetti, puoi scegliere di utilizzare un ruolo esistente o crearne uno nuovo. Oppure, nella console AWS IoT , scegli Impostazioni, seleziona Gestisci indicizzazione, quindi Gestisci indicizzazione per pacchetti e versioni dei dispositivi.
Nota
Se scegli che il servizio AWS IoT Job aggiorni la named shadow riservata quando un job viene completato con successo, la chiamata API viene conteggiata ai fini delle operazioni di Device Shadow e del registro e può comportare un costo. Per ulteriori informazioni, consulta Prezzi di AWS IoT Core
Quando utilizzi l'opzione Crea ruolo, il nome del ruolo generato inizia con aws-iot-role-update-shadows e contiene le seguenti policy:
Impostazione di un ruolo
- Permissions
-
La policy delle autorizzazioni concede i diritti per eseguire query sulla shadow oggetto e aggiornarla. Il parametro
$packagenell'ARN della risorsa ha come target la copia shadow con nome riservata.-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:DescribeEndpoint", "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow" ], "Resource": [ "arn:aws:iot:us-east-1:111122223333:thing/<thingName>/$package" ] } ] }
- Relazione di attendibilità
-
Oltre alla policy delle autorizzazioni, il ruolo richiede una relazione di attendibilità con AWS IoT Core in modo che l'entità possa assumere il ruolo e aggiornare la copia shadow con nome riservata.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Impostazione di una policy utente
- iam: autorizzazione PassRole
-
Infine, devi avere l'autorizzazione a passare il ruolo a AWS IoT Core quando chiami l'operazione UpdatePackageConfiguration API.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "iot:UpdatePackageConfiguration" ], "Resource": "arn:aws:iam::111122223333:role/<roleName>" } ] }
AWS IoT Autorizzazioni per il download dei lavori da Amazon S3
Il documento del processo viene salvato in Amazon S3. Fai riferimento a questo file quando effettui l'invio tramite Jobs. AWS IoT È necessario fornire AWS IoT a Jobs i diritti per scaricare il file (s3:GetObject). È inoltre necessario impostare una relazione di fiducia tra Amazon S3 e AWS IoT Jobs. Per istruzioni su come creare queste policy, consulta URL preassegnati in Gestione dei processi.
Autorizzazioni per aggiornare la distinta base del software per una versione del pacchetto
Per aggiornare la distinta base del software per una versione del pacchetto negli stati DraftPublished, o del Deprecated ciclo di vita, sono necessari un AWS Identity and Access Management ruolo e delle politiche per localizzare la nuova distinta base del software in Amazon S3 e aggiornare la versione del pacchetto in. AWS IoT Core
Innanzitutto, inserirai la distinta base del software aggiornata nel bucket Amazon S3 con versione e avvierai l'operazione API con il UpdatePackageVersion parametro incluso. sboms Successivamente, il responsabile autorizzato assumerà il ruolo IAM che hai creato, individuerà la distinta base del software aggiornata in Amazon S3 e aggiornerà la versione del pacchetto in AWS IoT Core Software Package Catalog.
Per eseguire questo aggiornamento sono necessarie le seguenti politiche:
Policy
-
Politica di fiducia: politica che stabilisce una relazione di fiducia con il responsabile autorizzato che assume il ruolo di IAM in modo che possa individuare la distinta base del software aggiornata dal bucket con versione in Amazon S3 e aggiornare la versione del pacchetto in. AWS IoT Core
-
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
-
Politica sulle autorizzazioni: politica per accedere al bucket con versione di Amazon S3 in cui è archiviata la distinta base del software per una versione del pacchetto e in cui aggiornare la versione del pacchetto. AWS IoT Core
-
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1" ] } ] }
-
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:UpdatePackageVersion" ], "Resource": [ "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>" ] } ] }
-
-
Permessi di passaggio del ruolo: politica che concede l'autorizzazione a passare il ruolo IAM ad Amazon S3 e AWS IoT Core quando si chiama l'operazione API.
UpdatePackageVersion-
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1" ] } ] }
-
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "iot:UpdatePackageVersion" ], "Resource": "arn:aws:iam::111122223333:role/<roleName>" } ] }
-
Nota
Non è possibile aggiornare la distinta base del software su una versione del pacchetto che è passata allo stato del ciclo di vita. Deleted
Per ulteriori informazioni sulla creazione di un ruolo IAM per un AWS servizio, vedi Creazione di un ruolo per delegare l'autorizzazione a un servizio. AWS
Per ulteriori informazioni sulla creazione di un bucket Amazon S3 e sul caricamento di oggetti su di esso, consulta Creazione di un bucket e Caricamento di oggetti. https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html