Autorizar a los dispositivos principales a interactuar con AWS los servicios - AWS IoT Greengrass

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autorizar a los dispositivos principales a interactuar con AWS los servicios

AWS IoT Greengrass los dispositivos principales utilizan el proveedor de AWS IoT Core credenciales para autorizar las llamadas a AWS los servicios. El proveedor de AWS IoT Core credenciales permite a los dispositivos utilizar sus certificados X.509 como identidad única del dispositivo para autenticar las solicitudes. AWS Esto elimina la necesidad de almacenar un identificador de clave de AWS acceso y una clave de acceso secreta en los dispositivos AWS IoT Greengrass principales. Para obtener más información, consulte Autorizar llamadas directas a AWS los servicios en la Guía para AWS IoT Core desarrolladores.

Al ejecutar el software AWS IoT Greengrass principal, puede optar por aprovisionar los AWS recursos que requiere el dispositivo principal. Esto incluye la función AWS Identity and Access Management (IAM) que asume su dispositivo principal a través del proveedor de AWS IoT Core credenciales. Utilice el --provision true argumento para configurar una función y políticas que permitan al dispositivo principal obtener AWS credenciales temporales. Este argumento también configura un alias de AWS IoT rol que apunta a este rol de IAM. Puede especificar el nombre del rol de IAM y el alias del rol que se van a AWS IoT utilizar. Si lo especifica --provision true sin estos otros parámetros de nombre, el dispositivo principal de Greengrass crea y utiliza los siguientes recursos predeterminados:

  • Función de IAM: GreengrassV2TokenExchangeRole

    Este rol tiene un nombre de política GreengrassV2TokenExchangeRoleAccess y una relación de confianza que credentials.iot.amazonaws.com permite asumir el rol. La política incluye los permisos mínimos para el dispositivo principal.

    importante

    Esta política no incluye el acceso a los archivos de los depósitos de S3. Debe añadir permisos a la función para permitir que los dispositivos principales recuperen los artefactos de los componentes de los depósitos de S3. Para obtener más información, consulte Permita el acceso a los depósitos de S3 para los artefactos de los componentes.

  • AWS IoT alias del rol: GreengrassV2TokenExchangeRoleAlias

    Este alias de rol hace referencia al rol de IAM.

Para obtener más información, consulte Paso 3: instale el softwareAWS IoT Greengrass principal.

También puede establecer el alias de rol para un dispositivo principal existente. Para ello, configure el parámetro de iotRoleAlias configuración del componente núcleo de Greengrass.

Puede adquirir AWS credenciales temporales para esta función de IAM a fin de realizar AWS operaciones en sus componentes personalizados. Para obtener más información, consulte Interactúa con AWS los servicios.

Permisos de rol de servicio para los dispositivos principales

El rol permite que el siguiente servicio asuma el rol:

  • credentials.iot.amazonaws.com

Si utilizas el software AWS IoT Greengrass principal para crear este rol, este utilizará la siguiente política de permisos para permitir que los dispositivos principales se conecten y envíen registros a ellos AWS. De forma predeterminada, el nombre de la política es el nombre del rol de IAM que termina en. Access Por ejemplo, si usa el nombre de rol de IAM predeterminado, el nombre de esta política es. 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": "*" } ] }

Permita el acceso a los depósitos de S3 para los artefactos de los componentes

La función de dispositivo principal predeterminada no permite que los dispositivos principales accedan a los depósitos de S3. Para implementar componentes que tienen artefactos en los depósitos de S3, debe añadir el s3:GetObject permiso que permita a los dispositivos principales descargar artefactos de los componentes. Puede añadir una nueva política a la función de dispositivo principal para conceder este permiso.

Para añadir una política que permita el acceso a los artefactos de los componentes en Amazon S3
  1. Cree un archivo llamado component-artifact-policy.json y copie el siguiente JSON en el archivo. Esta política permite el acceso a todos los archivos de un bucket de S3. Sustituya DOC-EXAMPLE-BUCKET por el nombre del depósito de S3 para permitir el acceso del dispositivo principal.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
  2. Ejecute el siguiente comando para crear la política a partir del documento de política incluido en. 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

    Copie la política Amazon Resource Name (ARN) de los metadatos de la política en la salida. Utilice este ARN para adjuntar esta política a la función de dispositivo principal en el siguiente paso.

  3. Ejecute el siguiente comando para asociar la política a la función de dispositivo principal. Sustituya GreengrassV2 TokenExchangeRole por el nombre de la función que especificó al ejecutar el software AWS IoT Greengrass Core. A continuación, sustituya el ARN de la política por el ARN del paso anterior.

    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 el comando no tiene ningún resultado, se ha realizado correctamente y su dispositivo principal puede acceder a los artefactos que cargue en este bucket de S3.