Autoriser les appareils principaux à interagir avec les AWS services - AWS IoT Greengrass

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Autoriser les appareils principaux à interagir avec les AWS services

AWS IoT Greengrass les appareils principaux utilisent le fournisseur AWS IoT Core d'informations d'identification pour autoriser les appels aux AWS services. Le fournisseur AWS IoT Core d'informations d'identification permet aux appareils d'utiliser leurs certificats X.509 comme identité d'appareil unique pour authentifier les demandes. AWS Il n'est donc plus nécessaire de stocker un identifiant de clé d' AWS accès et une clé d'accès secrète sur vos AWS IoT Greengrass principaux appareils. Pour plus d'informations, consultez la section Autorisation des appels directs vers AWS des services dans le Guide du AWS IoT Core développeur.

Lorsque vous exécutez le logiciel AWS IoT Greengrass Core, vous pouvez choisir de fournir les AWS ressources dont le périphérique principal a besoin. Cela inclut le rôle AWS Identity and Access Management (IAM) que votre appareil principal assume par le biais du fournisseur AWS IoT Core d'informations d'identification. Utilisez l'--provision trueargument pour configurer un rôle et des politiques permettant au périphérique principal d'obtenir des AWS informations d'identification temporaires. Cet argument configure également un alias de AWS IoT rôle qui pointe vers ce rôle IAM. Vous pouvez spécifier le nom du rôle IAM et l'alias de AWS IoT rôle à utiliser. Si vous spécifiez --provision true sans ces autres paramètres de nom, le périphérique principal de Greengrass crée et utilise les ressources par défaut suivantes :

  • Rôle IAM : GreengrassV2TokenExchangeRole

    Ce rôle possède une politique nommée GreengrassV2TokenExchangeRoleAccess et une relation de confiance qui permet credentials.iot.amazonaws.com d'assumer le rôle. La politique inclut les autorisations minimales pour le périphérique principal.

    Important

    Cette politique n'inclut pas l'accès aux fichiers dans les compartiments S3. Vous devez ajouter des autorisations au rôle pour permettre aux appareils principaux de récupérer les artefacts des composants à partir des compartiments S3. Pour plus d’informations, consultez Autoriser l'accès aux compartiments S3 pour les artefacts des composants.

  • AWS IoT alias de rôle : GreengrassV2TokenExchangeRoleAlias

    Cet alias de rôle fait référence au rôle IAM.

Pour plus d’informations, consultez Étape 3 : Installer le logicielAWS IoT Greengrass de base.

Vous pouvez également définir l'alias de rôle pour un appareil principal existant. Pour ce faire, configurez le paramètre de iotRoleAlias configuration du composant Greengrass nucleus.

Vous pouvez obtenir des AWS informations d'identification temporaires pour ce rôle IAM afin d'effectuer AWS des opérations dans vos composants personnalisés. Pour plus d’informations, consultez Interagissez avec les AWS services.

Autorisations de rôle de service pour les appareils principaux

Le rôle permet au service suivant d'assumer le rôle :

  • credentials.iot.amazonaws.com

Si vous utilisez le logiciel AWS IoT Greengrass Core pour créer ce rôle, il utilise la politique d'autorisation suivante pour autoriser les appareils principaux à se connecter et à envoyer des journaux à AWS. Le nom de la politique est par défaut le nom du rôle IAM se terminant par. Access Par exemple, si vous utilisez le nom de rôle IAM par défaut, le nom de cette politique estGreengrassV2TokenExchangeRoleAccess.

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": "*" } ] }

Autoriser l'accès aux compartiments S3 pour les artefacts des composants

Le rôle de périphérique principal par défaut ne permet pas aux appareils principaux d'accéder aux compartiments S3. Pour déployer des composants contenant des artefacts dans des compartiments S3, vous devez ajouter l's3:GetObjectautorisation permettant aux appareils principaux de télécharger des artefacts de composants. Vous pouvez ajouter une nouvelle politique au rôle principal de l'appareil pour accorder cette autorisation.

Pour ajouter une politique qui autorise l'accès aux artefacts des composants dans Amazon S3
  1. Créez un fichier appelé component-artifact-policy.json et copiez-y le code JSON suivant. Cette politique permet d'accéder à tous les fichiers d'un compartiment S3. Remplacez DOC-EXAMPLE-BUCKET par le nom du compartiment S3 pour autoriser l'accès au périphérique principal.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
  2. Exécutez la commande suivante pour créer la politique à partir du document de stratégie danscomponent-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

    Copiez le nom Amazon Resource Name (ARN) de la politique à partir des métadonnées de la politique dans la sortie. Vous utilisez cet ARN pour associer cette politique au rôle principal de l'appareil à l'étape suivante.

  3. Exécutez la commande suivante pour associer la politique au rôle principal de l'appareil. Remplacez GreengrassV2 TokenExchangeRole par le nom du rôle que vous avez spécifié lors de l'exécution du logiciel AWS IoT Greengrass Core. Remplacez ensuite l'ARN de la politique par l'ARN de l'étape précédente.

    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

    Si la commande n'a aucune sortie, elle a réussi et votre appareil principal peut accéder aux artefacts que vous téléchargez dans ce compartiment S3.