Autorizza i dispositivi principali a interagire con i servizi AWS - AWS IoT Greengrass

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

Autorizza i dispositivi principali a interagire con i servizi AWS

AWS IoT Greengrass i dispositivi principali utilizzano il provider di AWS IoT Core credenziali per autorizzare le chiamate ai servizi. AWS Il provider di AWS IoT Core credenziali consente ai dispositivi di utilizzare i propri certificati X.509 come identità univoca del dispositivo per autenticare le richieste. AWS Ciò elimina la necessità di memorizzare un ID della chiave di AWS accesso e una chiave di accesso segreta sui dispositivi principali. AWS IoT Greengrass Per ulteriori informazioni, consulta Autorizzazione delle chiamate dirette ai AWS servizi nella Guida per gli AWS IoT Core sviluppatori.

Quando esegui il software AWS IoT Greengrass Core, puoi scegliere di fornire le AWS risorse richieste dal dispositivo principale. Ciò include il ruolo AWS Identity and Access Management (IAM) che il dispositivo principale assume tramite il provider di AWS IoT Core credenziali. Utilizzate l'--provision trueargomento per configurare un ruolo e delle politiche che consentano al dispositivo principale di ottenere credenziali temporanee AWS . Questo argomento configura anche un alias di AWS IoT ruolo che punta a questo ruolo. IAM È possibile specificare il nome del IAM ruolo e l'alias del AWS IoT ruolo da utilizzare. Se si specifica --provision true senza questi altri parametri di nome, il dispositivo principale Greengrass crea e utilizza le seguenti risorse predefinite:

  • IAMruolo: GreengrassV2TokenExchangeRole

    Questo ruolo ha una politica denominata GreengrassV2TokenExchangeRoleAccess e una relazione di fiducia che credentials.iot.amazonaws.com consente di assumere il ruolo. La policy include le autorizzazioni minime per il dispositivo principale.

    Importante

    Questa politica non include l'accesso ai file nei bucket S3. È necessario aggiungere autorizzazioni al ruolo per consentire ai dispositivi principali di recuperare gli artefatti dei componenti dai bucket S3. Per ulteriori informazioni, consulta Consenti l'accesso ai bucket S3 per gli artefatti dei componenti.

  • AWS IoT alias del ruolo: GreengrassV2TokenExchangeRoleAlias

    Questo alias di ruolo si riferisce al IAM ruolo.

Per ulteriori informazioni, consulta Fase 3: installare il softwareAWS IoT Greengrass Core.

Puoi anche impostare l'alias del ruolo per un dispositivo principale esistente. A tale scopo, configurate il parametro di iotRoleAlias configurazione del componente Greengrass nucleus.

È possibile acquisire AWS credenziali temporanee per questo IAM ruolo per eseguire AWS operazioni nei componenti personalizzati. Per ulteriori informazioni, consulta Interagisci con AWS i servizi.

Autorizzazioni relative ai ruoli di servizio per i dispositivi principali

Il ruolo consente al seguente servizio di assumere il ruolo:

  • credentials.iot.amazonaws.com

Se si utilizza il software AWS IoT Greengrass Core per creare questo ruolo, questo utilizza la seguente politica di autorizzazioni per consentire ai dispositivi principali di connettersi e inviare i log a. AWS Il nome predefinito della policy è il nome del ruolo che termina con. IAM Access Ad esempio, se si utilizza il nome del IAM ruolo predefinito, il nome di questa politica è. GreengrassV2TokenExchangeRoleAccess

Greengrass nucleus v2.5.0 and later
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
v2.4.x
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:DescribeCertificate", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
Earlier than v2.4.0
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:DescribeCertificate", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "iot:Connect", "iot:Publish", "iot:Subscribe", "iot:Receive", "s3:GetBucketLocation" ], "Resource": "*" } ] }

Consenti l'accesso ai bucket S3 per gli artefatti dei componenti

Il ruolo predefinito del dispositivo principale non consente ai dispositivi principali di accedere ai bucket S3. Per distribuire componenti che presentano artefatti nei bucket S3, devi aggiungere l's3:GetObjectautorizzazione per consentire ai dispositivi principali di scaricare gli artefatti dei componenti. Puoi aggiungere una nuova policy al ruolo principale del dispositivo per concedere questa autorizzazione.

Per aggiungere una policy che consenta l'accesso agli artefatti dei componenti in Amazon S3
  1. Crea un file chiamato component-artifact-policy.json e copia quanto segue JSON nel file. Questa politica consente l'accesso a tutti i file in un bucket S3. Sostituisci amzn-s3-demo-bucket con il nome del bucket S3 per consentire l'accesso al dispositivo principale.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
  2. Esegui il seguente comando per creare la politica dal documento di policy in. component-artifact-policy.json

    Linux or Unix
    aws iam create-policy \ --policy-name MyGreengrassV2ComponentArtifactPolicy \ --policy-document file://component-artifact-policy.json
    Windows Command Prompt (CMD)
    aws iam create-policy ^ --policy-name MyGreengrassV2ComponentArtifactPolicy ^ --policy-document file://component-artifact-policy.json
    PowerShell
    aws iam create-policy ` --policy-name MyGreengrassV2ComponentArtifactPolicy ` --policy-document file://component-artifact-policy.json

    Copia la policy Amazon Resource Name (ARN) dai metadati della policy nell'output. Lo usi ARN per collegare questa policy al ruolo principale del dispositivo nella fase successiva.

  3. Esegui il comando seguente per allegare la policy al ruolo principale del dispositivo. Replace (Sostituisci) GreengrassV2TokenExchangeRole con il nome del ruolo specificato durante l'esecuzione del software AWS IoT Greengrass Core. Quindi, sostituisci la politica ARN con quella ARN del passaggio precedente.

    Linux or Unix
    aws iam attach-role-policy \ --role-name GreengrassV2TokenExchangeRole \ --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
    Windows Command Prompt (CMD)
    aws iam attach-role-policy ^ --role-name GreengrassV2TokenExchangeRole ^ --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
    PowerShell
    aws iam attach-role-policy ` --role-name GreengrassV2TokenExchangeRole ` --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy

    Se il comando non produce alcun output, significa che è stato eseguito correttamente e il dispositivo principale può accedere agli artefatti caricati in questo bucket S3.