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 analizan los principales requisitos de seguridad para AWS IoT Device Management Software Package Catalog.
Autenticación basada en recursos
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 conceda derechos de ejecución create
read
update
delete
, y list
acciones para los paquetes de software y las versiones de los paquetes, y hacer referencia a los paquetes de software y las versiones de paquetes específicos que desee implementar en la Resources
sección. 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 su intención es conceder derechos para las llamadas a la API en versiones de paquetes (como CreatePackageVersionUpdatePackageVersion,, DeletePackageVersion), debe incluir tanto el paquete de software como la versión del paquete ARNs en la política. Si pretende que la política conceda derechos para las llamadas a la API de paquetes de software (como CreatePackageUpdatePackage, y DeletePackage), debe incluir únicamente el ARN del paquete de software en la política.
Estructure el paquete de software y la versión del paquete de la ARNs siguiente manera:
Paquete de software:
arn:aws:iot:
<region>
:<accountID>
:package/<packageName>
/package
Versió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 políticas, 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:
myThing
Nombre del paquete:
samplePackage
Versió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 Job: derechos 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 Job: derechos para actualizar la sombra reservada con nombre
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 AWS IoT Job actualice la sombra con el nombre reservado cuando una tarea se complete correctamente, la llamada a la API se tendrá en cuenta para tus operaciones de Device Shadow y registro, y puede suponer 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
$package
del 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:
<regionCode>
: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
- iam: permiso PassRole
-
Por último, debes tener el permiso para transferir el rol AWS IoT Core cuando llames a la operación de la UpdatePackageConfigurationAPI.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "iot:UpdatePackageConfiguration" ], "Resource": "arn:aws:iam::
111122223333
:role/<roleName>
" } ] }
AWS IoT Permisos de tareas para descargar desde Amazon S3
El documento de trabajo se guarda en Amazon S3. Hace referencia a este archivo cuando realiza 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. Para obtener instrucciones sobre cómo crear estas políticas, consulte Presigned URLs in Managing Jobs.
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 en los Draft
estados de Deprecated
ciclo de vida o ciclo de vida, necesita una AWS Identity and Access Management función 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. Published
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 ha creado, localizará la lista de materiales de software actualizada en Amazon S3 y actualizará la versión del paquete en el Catálogo de AWS IoT Core Paquetes 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 de transferencia: política que otorga permisos para transferir el rol de IAM a Amazon S3 y AWS IoT Core cuando se llama a la operación de
UpdatePackageVersion
API.-
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "s3:GetObject" ], "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.