Come AWS IoT Greengrass funziona con 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à.

Come AWS IoT Greengrass funziona con IAM

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

Per una panoramica generale del funzionamento degli altri AWS serviziIAM, consulta AWS i servizi che funzionano con IAM nella Guida per l'IAMutente.

Politiche basate sull'identità per AWS IoT Greengrass

Con le politiche IAM basate sull'identità, è possibile specificare azioni e risorse consentite o negate e le condizioni in base alle quali le azioni sono consentite o negate. AWS IoT Greengrass supporta azioni, risorse e chiavi di condizione specifiche. Per informazioni su tutti gli elementi utilizzati in una politica, consulta il riferimento agli elementi IAM JSON della politica nella Guida per l'IAMutente.

Azioni

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

L'Actionelemento di una JSON policy descrive le azioni che è possibile utilizzare per consentire o negare l'accesso a una policy. Le azioni politiche in genere hanno lo stesso nome dell' AWS APIoperazione associata. Esistono alcune eccezioni, come le azioni basate solo sulle autorizzazioni che non hanno un'operazione corrispondente. API 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.

Azioni politiche per AWS IoT Greengrass l'utilizzo del greengrass: prefisso prima dell'azione. Ad esempio, per consentire a qualcuno di utilizzare l'ListGroupsAPIoperazione per elencare i gruppi che lo compongono Account AWS, è necessario includere l'greengrass:ListGroupsazione nella propria politica. Le istruzioni delle policy devono includere un elemento Action o NotAction. AWS IoT Greengrass definisce 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 azioni che iniziano con la parola List, includi la seguente azione:

"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 Azioni definite da AWS IoT Greengrass nella Guida per l'IAMutente.

Risorse

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

L'elemento Resource JSON policy specifica l'oggetto o gli oggetti a cui si applica l'azione. Le istruzioni devono includere un elemento Resourceo un elemento NotResource. Come best practice, specifica una risorsa utilizzando il relativo Amazon Resource Name (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 la AWS IoT Greengrass risorsa ARNs che può essere utilizzata nell'Resourceelemento di una dichiarazione politica. Per una mappatura delle autorizzazioni a livello di risorsa supportate per le AWS IoT Greengrass azioni, consulta Actions Defined by nella Guida per l'utente. AWS IoT Greengrass IAM

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 il nome ARN di un gruppo nella regione Stati Uniti occidentali (Oregon) nella: 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 specifico Regione AWS, utilizzate il carattere jolly al posto dell'ID del gruppo:

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

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

"Resource": "*"

Per specificare più risorse ARNs in un'istruzione, elencale tra parentesi ([]) e separale con virgole, come segue:

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

Per ulteriori informazioni sui ARN formati, consulta Amazon Resource Names (ARNs) e i namespace dei AWS servizi nel. Riferimenti generali di Amazon Web Services

Chiavi di condizione

Gli amministratori possono utilizzare AWS JSON le policy 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 Conditionin un'istruzione o più chiavi in un singolo elemento Condition, questi vengono valutati da AWS utilizzando un'operazione ANDlogica. Se si specificano più valori per una singola chiave di condizione, AWS valuta la condizione utilizzando un'operazione logicaOR. 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, è possibile concedere a un IAM utente l'autorizzazione ad accedere a una risorsa solo se è contrassegnata con il suo nome IAM utente. Per ulteriori informazioni, consulta gli elementi IAM della politica: variabili e tag nella Guida IAM per l'utente.

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

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) sono state emesse le credenziali di sicurezza convalidate dall'autenticazione a più fattori (MFA) nella richiesta utilizzando. MFA
aws:MultiFactorAuthPresent Filtra l'accesso controllando se l'autenticazione a più fattori (MFA) è stata utilizzata per convalidare le credenziali di sicurezza temporanee che hanno effettuato la richiesta corrente.
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 utilizzando. 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, consulta le chiavi di contesto della condizione AWS globale nella Guida IAM per l'utente.

Esempi

Per visualizzare esempi di politiche AWS IoT Greengrass basate sull'identità, vedere. Esempi di policy basate su identità per AWS IoT Greengrass

Politiche basate sulle risorse per AWS IoT Greengrass

AWS IoT Greengrass non supporta politiche basate sulle risorse.

Elenchi di controllo degli accessi () ACLs

AWS IoT Greengrass non supporta ACLs.

Autorizzazione basata su tag AWS IoT Greengrass

È possibile allegare tag a AWS IoT Greengrass risorse supportate o passare tag 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.

IAMruoli per AWS IoT Greengrass

Un IAMruolo è un'entità interna all'utente 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 IAM ruolo o assumere un ruolo tra account. È possibile ottenere credenziali di sicurezza temporanee chiamando AWS STS API operazioni 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 il AWS SDK, non è necessario aggiungere logica per ottenere le credenziali perché lo AWS SDK fa per te.

Ruoli collegati ai servizi

AWS IoT Greengrass non supporta 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'azione per conto dell'utente. I ruoli di servizio vengono visualizzati nell'IAMaccount e sono di proprietà dell'account. Ciò significa che un IAM amministratore può modificare le autorizzazioni per questo ruolo. Tuttavia, il farlo potrebbe pregiudicare la funzionalità del servizio.

AWS IoT Greengrass utilizza un ruolo di servizio per accedere ad alcune delle tue AWS risorse per tuo conto. Per ulteriori informazioni, consulta Ruolo del servizio Greengrass.

Scelta di un IAM ruolo nella AWS IoT Greengrass console

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

  • Il ruolo di servizio Greengrass consente di accedere AWS IoT Greengrass alle tue AWS risorse in altri servizi per tuo conto. 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.