View a markdown version of this page

Preparazione all'uso di Software Package Catalog - AWS IoT Core

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 all'uso di Software Package Catalog

La sezione seguente fornisce una panoramica del ciclo di vita della versione del pacchetto e informazioni per l'utilizzo di AWS IoT Device Management Software Package Catalog.

Ciclo di vita della versione del pacchetto

Una versione del pacchetto può evolvere attraverso i seguenti stati del ciclo di vita: draft, published e deprecated. Lo stato può anche essere deleted.

Il ciclo di vita della versione del pacchetto con lo stato draft, published e deprecated. Lo stato può anche essere deleted.
  • Draft

    Quando si crea una versione del pacchetto, questa è in uno draft stato. Questo stato indica che il pacchetto software è in fase di preparazione o è incompleto.

    Mentre la versione del pacchetto è in questo stato, non è possibile distribuirla. È possibile modificare la descrizione, gli attributi e i tag della versione del pacchetto.

    Puoi trasferire una versione del pacchetto che si draft trova nello stato published o lo è deleted utilizzando la console o eseguendo operazioni UpdatePackageVersion DeletePackageVersion API.

  • Published

    Quando la versione del pacchetto è pronta per la distribuzione, trasferisci la versione del pacchetto a uno published stato. In questo stato, puoi scegliere di identificare la versione del pacchetto come versione predefinita modificando il pacchetto software nella console o tramite l'operazione UpdatePackage API. In questo stato, puoi modificare solo la descrizione e i tag.

    Puoi trasferire la versione di un pacchetto che si published trova nello stato deprecated o lo è deleted utilizzando la console o eseguendo operazioni DeletePackageVersion API. UpdatePackageVersion

  • Deprecated

    Se è disponibile una nuova versione del pacchetto, puoi eseguire la transizione delle versioni precedenti del pacchetto a deprecated. Puoi comunque distribuire lavori con una versione del pacchetto obsoleta. Puoi anche assegnare a una versione del pacchetto obsoleta il nome di versione predefinita e modificare solo la descrizione e i tag.

    Prendete in considerazione la possibilità di passare da una versione del pacchetto a deprecated una versione obsoleta, ma vi sono ancora dispositivi sul campo che utilizzano la versione precedente o è necessario mantenerla a causa di una dipendenza in fase di esecuzione.

    Puoi trasferire una versione del pacchetto che si trova nello deprecated stato published o lo è deleted utilizzando la console o eseguendo operazioni API. UpdatePackageVersion DeletePackageVersion

  • Eliminato

    Se non intendi più utilizzare una versione del pacchetto, puoi eliminarla utilizzando la console o eseguendo l'operazione API. DeletePackageVersion

    Nota

    Se elimini una versione del pacchetto mentre sono presenti processi in sospeso che fanno riferimento ad essa, riceverai un messaggio di errore quando il processo termina e tenta di aggiornare la copia shadow con nome.

    Se la versione del pacchetto software che desideri eliminare è denominata come la versione del pacchetto predefinita, devi aggiornare innanzitutto il pacchetto specificando un'altra versione come predefinita o lasciare il campo senza nome. È possibile eseguire questa operazione utilizzando la console o l'operazione UpdatePackageVersion API. (Per rimuovere qualsiasi versione del pacchetto denominata come predefinita, imposta il DefaultVersion parametro unset su true quando esegui l'operazione UpdatePackage API).

    Se elimini un pacchetto software tramite la console, vengono eliminate tutte le versioni del pacchetto associate, a meno che una non sia denominata come la versione predefinita.

Convenzioni di denominazione della versione del pacchetto

Quando assegni un nome alle versioni dei pacchetti, è importante pianificare e applicare una strategia di denominazione logica affinché tutti siano in grado di identificare facilmente la versione del pacchetto più recente e la progressione della versione. Durante la creazione della versione del pacchetto, devi fornire un nome della versione, ma la strategia e il formato dipendono in gran parte dal business case.

Come best practice, consigliamo di utilizzare il formato Semantic SemVer Versioning. Ad esempio, 1.2.3 dove 1 è la versione principale per le modifiche funzionalmente incompatibili, 2 è la versione principale per le modifiche funzionalmente compatibili e 3 è la versione patch (per correzioni di bug). Per ulteriori informazioni, consulta Controllo delle versioni semantico 2.0.0. Per ulteriori informazioni sui requisiti relativi al nome della versione del pacchetto, consulta versionName nella guida di riferimento alle AWS IoT API.

Versione predefinita

L'impostazione di una versione come predefinita è facoltativa. Puoi aggiungere o rimuovere versioni dei pacchetti predefinite. Inoltre, puoi distribuire una versione del pacchetto che non è specificata come versione predefinita.

Quando crei una versione del pacchetto, questa assume uno stato draft e non può essere denominata come la versione predefinita finché non esegui la transizione della versione del pacchetto a published. Software Package Catalog non seleziona automaticamente una versione come predefinita né aggiorna una versione più recente del pacchetto come quella predefinita. È necessario assegnare intenzionalmente un nome alla versione del pacchetto scelta tramite la console o eseguendo l'operazione API. UpdatePackageVersion

Attributi della versione

Gli attributi della versione e i relativi valori contengono informazioni importanti sulle versioni dei pacchetti. Si consiglia di definire attributi di uso generico per un pacchetto o una versione del pacchetto. Ad esempio, potrebbe essere necessario creare una coppia nome-valore per piattaforma, architettura, sistema operativo, data di rilascio, autore o URL Amazon S3.

Quando crei un AWS IoT lavoro con un documento di lavoro, puoi anche scegliere di utilizzare una variabile di sostituzione ($parameter) che fa riferimento al valore di un attributo. Per ulteriori informazioni, vedere Preparazione AWS IoT dei lavori.

Gli attributi di versione utilizzati nelle versioni dei pacchetti non verranno aggiunti automaticamente allo shadow denominato riservato e non possono essere indicizzati o interrogati direttamente tramite Fleet Indexing. Per indicizzare o interrogare gli attributi della versione del pacchetto tramite Fleet Indexing, è possibile inserire l'attributo di versione nello shadow denominato riservato.

Si consiglia di utilizzare il parametro dell'attributo version nelle proprietà riservate denominate shadow riportate dal dispositivo, ad esempio il sistema operativo e l'ora di installazione. Possono anche essere indicizzati e interrogati tramite Fleet Indexing.

Gli attributi di versione non sono obbligatori per seguire una convenzione di denominazione specifica. Puoi creare coppie nome-valore per soddisfare le esigenze aziendali. La dimensione combinata di tutti gli attributi di una versione del pacchetto è limitata a 3 KB. Per ulteriori informazioni, vedere Limiti dei pacchetti software e delle versioni dei pacchetti di Software Package Catalog.

Utilizzo di tutti gli attributi in un documento di lavoro

È possibile aggiungere automaticamente tutti gli attributi della versione del pacchetto alla distribuzione del lavoro per dispositivi selezionati. Per utilizzare automaticamente tutti gli attributi della versione del pacchetto a livello di codice in un comando API o CLI, fate riferimento al seguente esempio di documento di lavoro:

"TestPackage": "${aws:iot:package:TestPackage:version:PackageVersion:attributes}"

Elenco degli elementi software

La distinta base del software (SBOM) fornisce un archivio centrale per tutti gli aspetti del pacchetto software. Oltre a memorizzare i pacchetti software e le versioni dei pacchetti, è possibile memorizzare la distinta base del software (SBOM) associata a ciascuna versione del pacchetto nel Software Package Catalog. AWS IoT Device Management Un pacchetto software contiene una o più versioni del pacchetto e ogni versione del pacchetto è costituita da uno o più componenti. Ciascuno di questi componenti che supportano la composizione di una versione specifica del pacchetto può essere descritto e catalogato utilizzando una distinta base del software. Gli standard di settore per la distinta base del software supportati sono SPDX e CyclonedX. Quando una SBOM viene creata per la prima volta, viene convalidata rispetto al formato standard del settore SPDX e CyclonedX. Per ulteriori informazioni su SPDX, vedere System Package Data Exchange. https://spdx.dev/ Per ulteriori informazioni su CyclonedX, vedere CyclonedX. https://cyclonedx.org/

La distinta base del software descrive tutti gli aspetti dei componenti di una versione specifica del pacchetto, ad esempio informazioni sul pacchetto, informazioni sui file e altri metadati pertinenti. Di seguito è riportato l'esempio di struttura di un documento relativo alla distinta base del software in formato SPDX:

Un esempio di SBOM in formato SPDX.

Vantaggi della distinta base del software

Uno dei principali vantaggi derivanti dall'aggiunta della distinta base del software per una versione del pacchetto in Software Package Catalog è la gestione delle vulnerabilità.

Gestione delle vulnerabilità

Valutare e mitigare la vulnerabilità agli apparenti rischi di sicurezza nei componenti software rimane fondamentale per proteggere l'integrità del parco dispositivi. Con l'aggiunta della distinta base del software archiviata nel Software Package Catalog per ogni versione del pacchetto, è possibile individuare in modo proattivo le lacune di sicurezza conoscendo quali dispositivi sono a rischio in base alla versione del pacchetto e all'SBOM utilizzando una soluzione di gestione delle vulnerabilità interna. Puoi implementare correzioni ai dispositivi interessati e proteggere la tua flotta di dispositivi.

Distinzione dei materiali del software: archiviazione

La distinta base del software (SBOM) per ogni versione del pacchetto software viene archiviata in un bucket Amazon S3 utilizzando la funzionalità di controllo delle versioni di Amazon S3. Il bucket Amazon S3 che memorizza la SBOM deve trovarsi nella stessa regione in cui è stata creata la versione del pacchetto. Un bucket Amazon S3 che utilizza la funzionalità di controllo delle versioni mantiene più varianti di un oggetto nello stesso bucket. Per ulteriori informazioni sull'utilizzo del controllo delle versioni in un bucket Amazon S3, consulta Utilizzo del controllo delle versioni nei bucket Amazon S3.

Nota

Ogni versione del pacchetto software può avere più file SBOM allegati, ma i file SBOM devono essere archiviati in un unico file di archivio zip.

La chiave Amazon S3 e l'ID di versione specifici del bucket vengono utilizzati per identificare in modo univoco ogni versione della distinta base del software per una versione del pacchetto.

Nota

Per una versione del pacchetto con un singolo file SBOM, puoi archiviare quel file SBOM nel tuo bucket Amazon S3 come file di archivio zip.

Per una versione del pacchetto con più file SBOM, devi inserire tutti i file SBOM in un unico file di archivio zip e quindi archiviare quel file di archivio zip nel tuo bucket Amazon S3.

Tutti i file SBOM archiviati nel singolo file di archivio zip in entrambi gli scenari sono formattati come file .json SPDX o CyclonedX.

Politica delle autorizzazioni

Per AWS IoT agire come principale specificato per accedere ai file di archivio zip SBOM archiviati nel bucket Amazon S3, è necessaria una politica di autorizzazioni basata sulle risorse. Fai riferimento al seguente esempio per la corretta politica di autorizzazioni basata sulle risorse:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "iot.amazonaws.com" ] }, "Action": "s3:*", "Resource": "arn:aws:s3:::bucketName/*" } ] }

Per ulteriori informazioni sulle politiche di autorizzazione basate sulle risorse, vedere AWS IoT policy basate sulle risorse

Aggiornamento della SBOM

È possibile aggiornare la distinta base del software con la frequenza necessaria per proteggere e migliorare il parco dispositivi. Ogni volta che la distinta base del software viene aggiornata nel bucket Amazon S3, l'ID della versione cambia ed è necessario associare il nuovo URL del bucket Amazon S3 alla versione del pacchetto software appropriata. Vedrai il nuovo ID di versione nella colonna ID di versione di Amazon S3 Object nella pagina della versione del pacchetto nel. Console di gestione AWS Inoltre, puoi utilizzare l'operazione API GetPackageVersion o il comando CLI get-package-version per visualizzare il nuovo ID di versione.

Nota

L'aggiornamento della distinta base del software, che comporterà un nuovo ID di versione, non comporterà la creazione di una nuova versione del pacchetto.

Per ulteriori informazioni sulle chiavi oggetto di Amazon S3, consulta Creazione di nomi di chiavi di oggetto.

Abilitazione AWS IoT indicizzazione del parco istanze

L'attivazione dell'indicizzazione del AWS IoT parco veicoli è un requisito per utilizzare AWS IoT Device Management Software Package Catalog. Per sfruttare l'indicizzazione del AWS IoT parco veicoli con Software Package Catalog, imposta il nome riservato shadow ($package) come origine dati per ogni dispositivo su cui desideri indicizzare e raccogliere le metriche. Per ulteriori informazioni sulle ombre denominate riservate, consulta. Copia shadow con nome riservata

L'indicizzazione del parco veicoli fornisce un supporto che consente di raggruppare gli AWS IoT oggetti in gruppi di oggetti dinamici filtrati in base alla versione del pacchetto software. Ad esempio, l'indicizzazione del parco istanze può identificare gli oggetti in cui è installata o non è installata una versione del pacchetto specifica, che non dispongono di versioni dei pacchetti installate o che corrispondono a coppie nome-valore specifiche. Infine, l'indicizzazione del parco dispositivi fornisce metriche standard e personalizzate che puoi utilizzare per ottenere informazioni sullo stato del tuo parco dispositivi. Per ulteriori informazioni, consulta Preparazione dell'indicizzazione del parco istanze.

Nota

L'abilitazione dell'indicizzazione del parco istanze per Software Package Catalog comporta costi di servizio standard. Per ulteriori informazioni, consulta Prezzi di AWS IoT Device Management.

Copia shadow con nome riservata

La copia shadow con nome riservata, $package, riflette lo stato dei pacchetti software installati e delle versioni dei pacchetti del dispositivo. L'indicizzazione del parco istanze utilizza la copia shadow con nome riservata come un'origine dati per creare parametri standard e personalizzati in modo da poter eseguire query sullo stato del parco istanze. Per ulteriori informazioni, consulta Preparazione dell'indicizzazione del parco istanze.

Una copia shadow con nome riservata è simile a una copia shadow con nome, con la differenza che il suo nome è predefinito e non può essere modificato. Inoltre, la copia shadow con nome riservata non viene aggiornata con i metadati e utilizza solo le parole chiave version e attributes.

Le richieste di aggiornamento che includono altre parole chiave, ad esempiodescription, riceveranno una risposta di errore nell'argomento. rejected Per ulteriori informazioni, consulta Messaggi di errore  Device Shadow.

Può essere creato quando crei un AWS IoT oggetto tramite la console, quando un AWS IoT lavoro completa e aggiorna correttamente lo shadow e se esegui l'operazione UpdateThingShadow API. Per ulteriori informazioni, consulta UpdateThingShadow la guida per gli AWS IoT Core sviluppatori.

Nota

L'indicizzazione della copia shadow con nome riservata non conta ai fini del numero di copie shadow con nome che possono essere indicizzate dall'indicizzazione del parco istanze. Per ulteriori informazioni, consulta Limiti e quote per l'indicizzazione del parco istanze di AWS IoT Device Management. Inoltre, se scegli di fare in modo che i AWS IoT job aggiornino lo shadow denominato riservato 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 Limiti e quote dei AWS IoT Device Management job e il tipo di dati IndexingFilter API.

Struttura della copia shadow $package

La copia shadow con nome riservata contiene quanto segue:

{ "state": { "reported": { "<packageName>": { "version": "", "attributes": { } } } }, "version" : 1 "timestamp" : 1672531201 }

Le proprietà della copia shadow vengono aggiornate con le seguenti informazioni:

  • <packageName>: il nome del pacchetto software installato, che viene aggiornato con il parametro packageName.

  • version: il nome della versione del pacchetto installato, che viene aggiornato con il parametro packageName.

  • attributes: metadati opzionali memorizzati dal dispositivo e indicizzati dall'indicizzazione Fleet. Ciò consente ai clienti di interrogare i propri indici in base ai dati memorizzati.

  • version: il numero di versione della copia shadow. Viene incrementato automaticamente ogni volta che la copia shadow viene aggiornata e inizia da 1.

  • timestamp: indica quando la copia shadow è stata aggiornata l'ultima volta e viene registrato nell'ora Unix.

Per ulteriori informazioni sul formato e il comportamento di una copia shadow con nome, consultare Ordine dei messaggi Servizio AWS IoT Device Shadow.

Eliminazione di un pacchetto software e delle relative versioni del pacchetto

Prima di eliminare un pacchetto software, effettua le seguenti operazioni:

  • Conferma che il pacchetto e le relative versioni non vengano distribuiti attivamente.

  • Elimina per prima cosa tutte le versioni associate. Se una delle versioni è designata come la versione predefinita, devi rimuovere la versione predefinita con nome dal pacchetto. Poiché la designazione di una versione predefinita è opzionale, la rimozione non causa alcun conflitto. Per rimuovere la versione predefinita dal pacchetto software, modificate il pacchetto tramite la console o utilizzate l'operazione UpdatePackageVersion API.

Finché non esiste una versione del pacchetto predefinita con nome, puoi utilizzare la console per eliminare un pacchetto software. Verranno eliminate anche tutte le versioni del pacchetto. Se utilizzi una chiamata API per eliminare i pacchetti software, devi eliminare prima le versioni dei pacchetti e quindi il pacchetto software.