Funzionamento di AWS IoT Greengrasscon IAM - AWS IoT Greengrass

AWS IoT Greengrass Version 1 è entrato nella fase di estensione della vita utile il 30 giugno 2023. Per ulteriori informazioni, consulta la politica AWS IoT Greengrass V1 di manutenzione. Dopo questa data, AWS IoT Greengrass V1 non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti, correzioni di bug o patch di sicurezza. I dispositivi che funzionano AWS IoT Greengrass V1 non subiranno interruzioni e continueranno a funzionare e a connettersi al cloud. Ti consigliamo vivamente di eseguire la migrazione a AWS IoT Greengrass Version 2, che aggiunge nuove importanti funzionalità e supporto per piattaforme aggiuntive.

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à.

Funzionamento di AWS IoT Greengrasscon IAM

Prima di utilizzare IAM per gestire l'accessoAWS IoT Greengrass, è necessario comprendere le funzionalità IAM con cui è possibile utilizzareAWS IoT Greengrass.

Per una visione di alto livello di come altri AWS servizi funzionano con IAM, consulta AWSi servizi che funzionano con IAM nella IAM User Guide.

Policy basate su identità per AWS IoT Greengrass

Con le policy basate su identità IAM puoi specificare operazioni e risorse consentite o rifiutate, nonché le condizioni in base alle quali le operazioni sono consentite o rifiutate. AWS IoT Greengrass supporta operazioni, risorse e chiavi di condizione specifiche. Per conoscere tutti gli elementi che utilizzi in una policy, consulta il riferimento agli elementi della policy IAM JSON nella IAM User Guide.

Azioni

Gli amministratori possono utilizzare le policy AWS JSON per specificare gli accessi ai diversi elementi. Cioè, quale principale può eseguire azioni su quali risorse, e in quali condizioni.

L'elemento Action di una policy JSON descrive le operazioni che è possibile utilizzare per consentire o negare l'accesso a un criterio. Le azioni di policy hanno spesso lo stesso nome dell'operazione API AWS. Ci sono alcune eccezioni, ad esempio le azioni di sola autorizzazione che non hanno un'operazione API corrispondente. Esistono anche alcune operazioni che richiedono più operazioni in una policy. Queste operazioni aggiuntive sono denominate operazioni dipendenti.

Includi le operazioni in una policy per concedere le autorizzazioni a eseguire l'operazione associata.

Le operazioni delle policy per AWS IoT Greengrass utilizzano il seguente prefisso greengrass: prima dell'operazione. Ad esempio, per consentire a qualcuno di utilizzare l'operazione ListGroups API per elencare i gruppi che lo compongonoAccount AWS, includi l'greengrass:ListGroupsazione nella sua policy. Le istruzioni delle policy devono includere un elemento Action o NotAction. AWS IoT Greengrassdefinisce un proprio set di operazioni che descrivono le attività che puoi eseguire con questo servizio.

Per specificare più azioni in una singola istruzione, elencale tra parentesi ([]) e separale con virgole, come segue:

"Action": [ "greengrass:action1", "greengrass:action2", "greengrass:action3" ]

È possibile utilizzare i caratteri jolly (*) per specificare più operazioni. Ad esempio, per specificare tutte le operazioni che iniziano con la parola List, includi la seguente operazione:

"Action": "greengrass:List*"
Nota

Si consiglia di evitare l'uso di caratteri jolly per specificare tutte le operazioni disponibili per un servizio. Come procedura consigliata, è necessario concedere privilegi minimi e autorizzazioni di ambito ristretto in una policy. Per ulteriori informazioni, consulta Concedere autorizzazioni minime possibili.

Per l'elenco completo delle AWS IoT Greengrass azioni, consulta Actions Defined by AWS IoT Greengrass nella IAM User Guide.

Risorse

Gli amministratori possono utilizzare le policy JSON AWS per specificare gli accessi ai diversi elementi. Cioè, quale principale può eseguire operazioni su quali risorse, e in quali condizioni.

L'elemento JSON Resource della policy specifica l'oggetto o gli oggetti ai quali si applica l'azione. Le istruzioni devono includere un elemento Resource o un elemento NotResource. Come best practice, specifica una risorsa utilizzando il suo nome della risorsa Amazon (ARN). Puoi eseguire questa operazione per azioni che supportano un tipo di risorsa specifico, note come autorizzazioni a livello di risorsa.

Per le azioni che non supportano le autorizzazioni a livello di risorsa, ad esempio le operazioni di elenco, utilizza un carattere jolly (*) per indicare che l'istruzione si applica a tutte le risorse.

"Resource": "*"

La tabella seguente contiene gli ARN della risorsa AWS IoT Greengrass che possono essere utilizzate nell'elemento Resource di un'istruzione delle policy. Per una mappatura delle autorizzazioni a livello di risorsa supportate per le AWS IoT Greengrass azioni, consulta Actions Defined by AWS IoT Greengrass nella IAM User Guide.

Risorsa ARN
Group arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}
GroupVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/versions/${VersionId}
CertificateAuthority arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/certificateauthorities/${CertificateAuthorityId}
Deployment arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/deployments/${DeploymentId}
BulkDeployment arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/bulk/deployments/${BulkDeploymentId}
ConnectorDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}
ConnectorDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}/versions/${VersionId}
CoreDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}
CoreDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}/versions/${VersionId}
DeviceDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}
DeviceDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}/versions/${VersionId}
FunctionDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}
FunctionDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}/versions/${VersionId}
LoggerDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}
LoggerDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}/versions/${VersionId}
ResourceDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}
ResourceDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}/versions/${VersionId}
SubscriptionDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}
SubscriptionDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}/versions/${VersionId}
ConnectivityInfo arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/connectivityInfo

L'Resourceelemento di esempio seguente specifica l'ARN di un gruppo nella regione Stati Uniti occidentali (Oregon) in: Account AWS 123456789012

"Resource": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Oppure, per specificare tutti i gruppi che appartengono Account AWS a un gruppo specificoRegione AWS, utilizzate il carattere jolly al posto dell'ID del gruppo:

"Resource": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/*"

Alcune operazioni AWS IoT Greengrass (ad esempio, alcune operazioni di elenco), non possono essere eseguite su una risorsa specifica. In questi casi, è necessario utilizzare solo il carattere jolly.

"Resource": "*"

Per specificare più ARN di risorse in un'istruzione, elencali tra parentesi ([]) e separali con virgole, come segue:

"Resource": [ "resource-arn1", "resource-arn2", "resource-arn3" ]

Per ulteriori informazioni sui formati ARN, consulta Amazon Resource Name (ARN) e spazi dei nomi del servizio AWS nella Riferimenti generali di Amazon Web Services.

Chiavi di condizione

Gli amministratori possono utilizzare le policy JSON AWS per specificare chi ha accesso a cosa. Cioè, quale principale può eseguire azioni su quali risorse, e in quali condizioni.

L'elemento Condition (o blocco Condition) consente di specificare le condizioni in cui un'istruzione è in vigore. L'elemento Condition è facoltativo. Puoi compilare espressioni condizionali che utilizzano operatori di condizione, ad esempio uguale a o minore di, per soddisfare la condizione nella policy con i valori nella richiesta.

Se specifichi più elementi Condition in un'istruzione o più chiavi in un singolo elemento Condition, questi vengono valutati da AWS utilizzando un'operazione AND logica. Se specifichi più valori per una singola chiave di condizione, AWS valuta la condizione utilizzando un'operazione OR logica. Tutte le condizioni devono essere soddisfatte prima che le autorizzazioni dell'istruzione vengano concesse.

Puoi anche utilizzare variabili segnaposto quando specifichi le condizioni. Ad esempio, puoi autorizzare un utente IAM ad accedere a una risorsa solo se è stata taggata con il relativo nome utente IAM. Per ulteriori informazioni, consulta Elementi delle policy IAM: variabili e tag nella Guida per l'utente di IAM.

AWS supporta chiavi di condizione globali e chiavi di condizione specifiche per il servizio. Per visualizzare tutte le chiavi di condizione globali di AWS, consulta Chiavi di contesto delle condizioni globali di AWS nella Guida per l'utente di IAM.

AWS IoT Greengrass supporta le seguenti chiavi di condizione globali.

Chiave Descrizione
aws:CurrentTime Filtra l'accesso controllando le condizioni di data/ora per la data e l'ora attuali.
aws:EpochTime Filtra l'accesso controllando le condizioni di data/ora per la data e l'ora attuali e l'ora in Epoch o tempo Unix.
aws:MultiFactorAuthAge Filtra l'accesso controllando quanto tempo fa (in secondi) le credenziali di sicurezza convalidate dalla Multi-Factor Authentication (MFA) che hanno effettuato la richiesta sono state create utilizzando l'MFA.
aws:MultiFactorAuthPresent Filtra l'accesso verificando se la Multi-Factor Authentication (MFA) è stata utilizzata per convalidare le credenziali di sicurezza provvisorie che hanno effettuato la richiesta attuale.
aws:RequestTag/${TagKey} Filtra le richieste di creazione in base alla serie di valori consentita per ciascuno dei tag obbligatori.
aws:ResourceTag/${TagKey} Filtra le operazioni in base al valore del tag associato alla risorsa.
aws:SecureTransport Filtra l'accesso controllando se la richiesta è stata inviata tramite SSL.
aws:TagKeys Filtra le richieste di creazione in base alla presenza di tag obbligatori nella richiesta.
aws:UserAgent Filtra l'accesso dall'applicazione client del richiedente.

Per ulteriori informazioni, consultare Chiavi di contesto delle condizioni globali AWS nella Guida per l'utente IAM.

Esempi

Per visualizzare esempi di policy basate su identità AWS IoT Greengrass, consulta Esempi di policy basate su identità per AWS IoT Greengrass.

Policy basate su risorse per AWS IoT Greengrass

AWS IoT Greengrass non supporta le policy basate su risorse.

Liste di controllo degli accessi (ACL)

AWS IoT Greengrass non supporta ACL.

Autorizzazione basata su tag AWS IoT Greengrass

Puoi collegare i tag alle risorse AWS IoT Greengrass o passarli in una richiesta a AWS IoT Greengrass. Per controllare l'accesso basato su tag, fornisci informazioni sui tag nell'elemento condizione di una policy utilizzando le chiavi di condizione, aws:ResourceTag/${TagKey} o aws:RequestTag/${TagKey} aws:TagKeys. Per ulteriori informazioni, consulta Tagging delle risorse AWS IoT Greengrass.

Ruoli IAM per AWS IoT Greengrass

Un ruolo IAM è un'entità all'interno di Account AWS che dispone di autorizzazioni specifiche.

Utilizzo di credenziali temporanee con AWS IoT Greengrass

Le credenziali temporanee vengono utilizzate per accedere con la federazione, assumere un ruolo IAM o assumere un ruolo tra account. È possibile ottenere credenziali di sicurezza temporanee chiamando operazioni AWS STS API come o. AssumeRoleGetFederationToken

Sul core di Greengrass, le credenziali temporanee per il ruolo di gruppo sono rese disponibili per le funzioni e i connettori Lambda definiti dall'utente. Se le funzioni Lambda utilizzano l'AWSSDK, non è necessario aggiungere logica per ottenere le credenziali perché l'AWSSDK lo fa per te.

Ruoli collegati ai servizi

AWS IoT Greengrass non supporta i ruoli collegati ai servizi.

Ruoli dei servizi

Questa caratteristica consente a un servizio di assumere un ruolo di servizio per conto dell'utente. Questo ruolo consente al servizio di accedere alle risorse in altri servizi per completare un'operazione per conto dell'utente. I ruoli dei servizi sono visualizzati nell'account IAM e sono di proprietà dell'account. Ciò significa che un amministratore IAM può modificare le autorizzazioni per questo ruolo. Tuttavia, questo potrebbe pregiudicare la funzionalità del servizio.

AWS IoT Greengrass utilizza un ruolo di servizio per accedere ad alcune risorse AWS per conto dell'utente. Per ulteriori informazioni, consulta Ruolo del servizio Greengrass.

Scelta di un ruolo IAM nella console AWS IoT Greengrass

Nella AWS IoT Greengrass console, potresti dover scegliere un ruolo di servizio Greengrass o un ruolo di gruppo Greengrass da un elenco di ruoli IAM nel tuo account.

  • Il ruolo del servizio Greengrass consente a AWS IoT Greengrass di accedere alle risorse AWS in altri servizi per conto dell'utente. In genere, non è necessario scegliere il ruolo del servizio perché la console può crearlo e configurarlo per l'utente. Per ulteriori informazioni, consulta Ruolo del servizio Greengrass.

  • Il ruolo del gruppo Greengrass viene utilizzato per consentire alle funzioni e ai connettori Greengrass Lambda del gruppo di accedere alle risorse dell'utente. AWS Può anche concedere AWS IoT Greengrass le autorizzazioni per esportare flussi verso i servizi e scrivere AWS registri. CloudWatch Per ulteriori informazioni, consulta Ruolo del gruppo Greengrass.