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.
Preparación de la seguridad
En esta sección se describen los principales requisitos de seguridad del catálogo AWS IoT Device Management de paquetes de software.
Resource-based authentication
El Catálogo de paquetes de software utiliza la autorización basada en recursos para proporcionar una mayor seguridad al actualizar el software de su flota. Esto significa que debe crear una política AWS Identity and Access Management (IAM) que otorgue derechos para ejecutar create read updatedelete, y realizar list acciones en relación con los paquetes y las versiones de paquetes de software, y hacer referencia en la Resources sección a los paquetes de software y versiones de paquetes específicos que desea implementar. También necesita estos derechos para poder actualizar la sombra con nombre reservado. Para hacer referencia a los paquetes de software y las versiones de paquete, debe incluir un nombre de recurso de Amazon (ARN) para cada entidad.
nota
Si pretendes que la política conceda derechos para las llamadas a la API de versiones de paquetes (como CreatePackageVersion UpdatePackageVersion,, DeletePackageVersion), debes incluir en la política los ARN del paquete de software y los de la versión del paquete. Si pretendes que la política conceda derechos para las llamadas a la API de paquetes de software (como CreatePackage UpdatePackage, y DeletePackage), debes incluir únicamente el ARN del paquete de software en la política.
Estructure los ARN del paquete de software y de las versiones del paquete de la siguiente manera:
Paquete de software:
arn:aws:iot:<region>:<accountID>:package/<packageName>/packageVersión de paquete:
arn:aws:iot:<region>:<accountID>:package/<packageName>/version/<versionName>
nota
Existen otros derechos relacionados que podría incluir en esta política. Por ejemplo, puede incluir un ARN para job, thinggroup y jobtemplate. Para obtener más información y una lista completa de las opciones de la política, consulte Proteger usuarios y dispositivos con AWS IoT Jobs.
Por ejemplo, si tiene un paquete de software y una versión de paquete con el siguiente nombre:
AWS IoT cosa:
myThingNombre del paquete:
samplePackageVersión:
1.0.0
La política podría parecerse al siguiente ejemplo:
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:createPackage", "iot:createPackageVersion", "iot:updatePackage", "iot:updatePackageVersion" ], "Resource": [ "arn:aws:iot:us-east-1:111122223333:package/samplePackage", "arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/1.0.0" ] }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow" ], "Resource": "arn:aws:iot:us-east-1:111122223333:thing/myThing/$package" } ] }
AWS IoT Derechos de trabajo para implementar versiones de paquetes
Por motivos de seguridad, es importante que conceda derechos para desplegar paquetes y versiones de paquetes, y que nombre los paquetes y versiones de paquetes específicos que están autorizados a desplegar. Para ello, debe crear un rol y una política de IAM que concedan permiso para implementar trabajos con versiones de paquetes. La política debe especificar las versiones del paquete de destino como recurso.
Política de IAM
La política de IAM otorga el derecho a crear un trabajo que incluya el paquete y la versión que se indican en la sección Resource.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:CreateJob", "iot:CreateJobTemplate" ], "Resource":[ "arn:aws:iot:*:111122223333:job/<jobId>", "arn:aws:iot:*:111122223333:thing/<thingName>/$package", "arn:aws:iot:*:111122223333:thinggroup/<thingGroupName>", "arn:aws:iot:*:111122223333:jobtemplate/<jobTemplateName>", "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>" ] } ] }
nota
Si desea implementar un trabajo que desinstale un paquete de software y una versión del paquete, debe autorizar un ARN donde esté la versión del paquete $null, como en los siguientes casos:
arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null
AWS IoT Derechos de trabajo para actualizar la sombra con nombre reservada
Para permitir que los trabajos actualicen la sombra del nombre reservado de la cosa cuando el trabajo se complete correctamente, debe crear un rol y una política de IAM. Hay dos formas de realizar esta operación en la consola de AWS IoT . La primera es al crear un paquete de software en la consola. Si ve el cuadro de diálogo Habilitar las dependencias para la administración de paquetes, puede elegir usar un rol existente o crear uno nuevo. O bien, en la consola de AWS IoT , seleccione Configuración, seleccione Administrar la indexación y, a continuación, Administrar la indexación de los paquetes y las versiones de los dispositivos.
nota
Si decides que el servicio de AWS IoT tareas actualice la opción reservada denominada shadow cuando una tarea se complete correctamente, la llamada a la API se contabiliza para tus operaciones de registro y sombra de dispositivos, y puede tener un coste. Para obtener más información, consulte Precios de AWS IoT Core
Cuando se utiliza la opción Crear rol, el nombre del rol generado comienza por aws-iot-role-update-shadows y contiene las siguientes políticas:
Configuración un rol
- Permisos
-
La política de permisos otorga los derechos para consultar y actualizar la sombra de la cosa. El parámetro
$packagedel ARN del recurso apunta a la sombra con nombre reservado.-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:DescribeEndpoint", "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow" ], "Resource": [ "arn:aws:iot:us-east-1:111122223333:thing/<thingName>/$package" ] } ] }
- Relación de confianza
-
Además de la política de permisos, el rol requiere una relación de confianza con AWS IoT Core para que la entidad pueda asumir el rol y actualizar la sombra nominal reservada.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Configurar una política de usuario
- objetivo: permiso PassRole
-
Por último, debes tener permiso para pasarle el rol AWS IoT Core cuando llames a la operación de la UpdatePackageConfiguration API.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "iot:UpdatePackageConfiguration" ], "Resource": "arn:aws:iam::111122223333:role/<roleName>" } ] }
AWS IoT Permisos de Jobs para descargar desde Amazon S3
El documento de trabajo se guarda en Amazon S3. Haces referencia a este archivo cuando haces envíos a través de AWS IoT Jobs. Debes proporcionar a AWS IoT Jobs los derechos para descargar el archivo (s3:GetObject). También debe establecer una relación de confianza entre Amazon S3 y AWS IoT Jobs. Si desea instrucciones para crear estas políticas, consulte URL preasignadas en Gestión de trabajos.
Permisos para actualizar la lista de materiales de software para una versión de paquete
Para actualizar la lista de materiales del software de una versión de paquete que se Draft encuentra Published en estado de Deprecated ciclo de vida, necesita un AWS Identity and Access Management rol y políticas para localizar la nueva lista de materiales del software en Amazon S3 y actualizar la versión del paquete en AWS IoT Core.
En primer lugar, colocará la lista de materiales del software actualizada en su bucket de Amazon S3 con control de versiones y llamará a la operación de la API UpdatePackageVersion con el parámetro sboms incluido. A continuación, su director autorizado asumirá la función de IAM que creó, localizará la lista de materiales de software actualizada en Amazon S3 y actualizará la versión del paquete en el catálogo de paquetes AWS IoT Core de software.
Se requieren las siguientes políticas para realizar esta actualización:
Políticas
-
Política de confianza: política que establece una relación de confianza con la entidad principal autorizada que asume el rol de IAM para que pueda localizar la lista de materiales de software actualizada de su bucket con control de versiones en Amazon S3 y actualizar la versión del paquete en AWS IoT Core.
-
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
-
Política de permisos: política para acceder al bucket con control de versiones de Amazon S3 donde se almacena la lista de materiales del software para una versión de paquete y actualizar la versión del paquete en AWS IoT Core.
-
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1" ] } ] }
-
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:UpdatePackageVersion" ], "Resource": [ "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>" ] } ] }
-
-
Permisos de rol: política que otorga permisos para transferir el rol de IAM a Amazon S3 y AWS IoT Core cuando se llama a la
UpdatePackageVersionoperación de API.-
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1" ] } ] }
-
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "iot:UpdatePackageVersion" ], "Resource": "arn:aws:iam::111122223333:role/<roleName>" } ] }
-
nota
No puede actualizar la lista de materiales de software en una versión de paquete que haya pasado al estado del ciclo de vida Deleted.
Para obtener más información sobre la creación de un rol de IAM para un AWS servicio, consulte Crear un rol para delegar permisos a un AWS servicio.
Para obtener más información sobre la creación de un bucket de Amazon S3 y cómo cargar objetos en él, consulte Crear un bucket y Carga de objetos.