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.
Autorización de los usuarios y los servicios en la nube para usar Jobs de AWS IoT
Para autorizar a sus usuarios y servicios en la nube, debe usar IAM políticas tanto en el plano de control como en el plano de datos. Las políticas deben usarse con el HTTPS protocolo y deben usar la autenticación AWS Signature versión 4 (puerto 443) para autenticar a los usuarios.
nota
AWS IoT Core las políticas no deben usarse en el plano de control. Solo se utilizan IAM políticas para autorizar a los usuarios o los servicios en la nube. Para obtener más información acerca de usar el tipo de política obligatoria, consulte Tipo de política obligatorio para AWS IoT Jobs.
IAMlas políticas son JSON documentos que contienen declaraciones de políticas. Las declaraciones de políticas utilizan los elementos Efecto, Acción y Recurso para especificar los recursos, las acciones permitidas o denegadas y las condiciones en las que se permiten o deniegan las acciones. Para obtener más información, consulte la referencia sobre los elementos de IAM JSON política en la guía del IAM usuario.
aviso
Le recomendamos que no utilice permisos comodín, como "Action":
["iot:*"]
en sus IAM políticas o AWS IoT Core políticas. El uso de permisos comodín no es una práctica recomendada de seguridad. Para obtener más información, consulta la AWS IoT
política excesivamente permisiva.
IAMpolíticas en el plano de control
En el plano de control, IAM las políticas utilizan el iot:
prefijo junto con la acción para autorizar la API operación de la tarea correspondiente. Por ejemplo, la acción iot:CreateJob
política otorga al usuario permiso para usar el CreateJob
API.
En la siguiente tabla se muestra una lista de acciones de IAM política y permisos para API utilizarlas. Para obtener información sobre los tipos de recursos, consulte Tipos de recursos definidos por AWS IoT. Para obtener más información sobre AWS IoT las acciones, consulte Acciones definidas por AWS IoT.
IAMacciones políticas en el plano de control | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Acción de política | APIoperación | Tipos de recurso | Descripción | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:AssociateTargetsWithJob |
AssociateTargetsWithJob |
|
Representa el permiso para asociar un grupo a un trabajo continuo. El permiso iot:AssociateTargetsWithJob se comprueba cada vez que se presenta una solicitud para asociar destinos. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:CancelJob |
CancelJob |
job | Representa el permiso para cancelar un trabajo. El permiso iot:CancelJob se comprueba cada vez que se presenta una solicitud para cancelar un trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:CancelJobExecution |
CancelJobExecution |
|
Representa el permiso para cancelar la ejecución de un trabajo. El permiso iot: CancelJobExecution se comprueba cada vez que se presenta una solicitud para cancelar la ejecución de un trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:CreateJob |
CreateJob |
|
Representa el permiso para crear un trabajo. El permiso iot:
CreateJob se comprueba cada vez que se presenta una solicitud para crear un trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:CreateJobTemplate |
CreateJobTemplate |
|
Representa el permiso para crear una plantilla de trabajo. El permiso iot: CreateJobTemplate se comprueba cada vez que se presenta una solicitud para crear una plantilla de trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:DeleteJob |
DeleteJob |
job | Representa el permiso para eliminar un trabajo. El permiso iot:
DeleteJob se comprueba cada vez que se presenta una solicitud para eliminar un trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:DeleteJobTemplate |
DeleteJobTemplate |
jobtemplate | Representa el permiso para eliminar una plantilla de trabajo. El permiso iot: CreateJobTemplate se comprueba cada vez que se presenta una solicitud para eliminar una plantilla de trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:DeleteJobExecution |
DeleteJobTemplate |
|
Representa el permiso para eliminar una ejecución de trabajo. El permiso iot: DeleteJobExecution se comprueba cada vez que se presenta una solicitud para eliminar la ejecución de un trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:DescribeJob |
DescribeJob |
job | Representa el permiso para describir un trabajo. El permiso iot:
DescribeJob se comprueba cada vez que se presenta una solicitud para describir un trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:DescribeJobExecution |
DescribeJobExecution |
|
Representa el permiso para describir una ejecución de trabajo. El permiso iot: DescribeJobExecution se comprueba cada vez que se presenta una solicitud para describir la ejecución de un trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:DescribeJobTemplate |
DescribeJobTemplate |
jobtemplate | Representa el permiso para describir una plantilla de trabajo. El permiso iot: DescribeJobTemplate se comprueba cada vez que se presenta una solicitud para describir una plantilla de trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:DescribeManagedJobTemplate |
DescribeManagedJobTemplate |
jobtemplate | Representa el permiso para describir una plantilla de trabajo administrada. El permiso iot: DescribeManagedJobTemplate se comprueba cada vez que se presenta una solicitud para describir una plantilla de trabajo administrada. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:GetJobDocument |
GetJobDocument |
job | Representa el permiso para obtener el documento de trabajo de un trabajo. El permiso iot:GetJobDocument se comprueba cada vez que se presenta una solicitud para obtener un documento de trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:ListJobExecutionsForJob |
ListJobExecutionsForJob |
job | Representa el permiso para enumerar las ejecuciones de trabajo de un trabajo. El permiso iot:ListJobExecutionsForJob se comprueba cada vez que se presenta una solicitud para enumerar las ejecuciones de trabajo de un trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:ListJobExecutionsForThing |
ListJobExecutionsForThing |
thing | Representa el permiso para enumerar las ejecuciones de trabajo de un trabajo. El permiso iot:ListJobExecutionsForThing se comprueba cada vez que se presenta una solicitud para enumerar las ejecuciones de trabajo de un objeto. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:ListJobs |
ListJobs |
none | Representa el permiso para enumerar los trabajos. El permiso iot:ListJobs se comprueba cada vez que se presenta una solicitud para enumerar los trabajos. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:ListJobTemplates |
ListJobTemplates |
Ninguno | Representa el permiso para enumerar las plantillas de trabajo. El permiso iot:ListJobTemplates se comprueba cada vez que se presenta una solicitud para enumerar las plantillas de trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:ListManagedJobTemplates |
ListManagedJobTemplates |
Ninguno | Representa el permiso para enumerar las plantillas de trabajo administradas. El permiso iot:ListManagedJobTemplates se comprueba cada vez que se presenta una solicitud para enumerar las plantillas de trabajo administradas. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:UpdateJob |
UpdateJob |
job | Representa el permiso para actualizar un trabajo. El permiso iot:UpdateJob se comprueba cada vez que se presenta una solicitud para actualizar un trabajo. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:TagResource |
TagResource |
|
Concede permiso para etiquetar un recurso específico. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iot:UntagResource |
UntagResource |
|
Concede permiso para quitar las etiquetas del recurso específico. |
El siguiente ejemplo muestra una IAM política que permite al usuario realizar las siguientes acciones para su cosa y grupo de cosas de IoT.
En el ejemplo, sustituya:
-
region
con tu Región de AWS, comous-east-1
. -
account-id
con tu Cuenta de AWS número, como57EXAMPLE833
. -
thing-group-name
con el nombre del grupo de cosas de IoT al que apunta los trabajos, por ejemploFirmwareUpdateGroup
. -
thing-name
con el nombre de tu negocio de IoT al que te diriges a los trabajos, por ejemploMyIoTThing
.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iot:CreateJobTemplate", "iot:CreateJob", ], "Effect": "Allow", "Resource": "arn:aws:iot:
region
:account-id
:thinggroup/thing-group-name
" }, { "Action": [ "iot:DescribeJob", "iot:CancelJob", "iot:DeleteJob", ], "Effect": "Allow", "Resource": "arn:aws:iot:region
:account-id
:job/*" }, { "Action": [ "iot:DescribeJobExecution", "iot:CancelJobExecution", "iot:DeleteJobExecution", ], "Effect": "Allow", "Resource": [ "arn:aws:iot:region
:account-id
:thing/thing-name
" "arn:aws:iot:region
:account-id
:job/*" ] } ] }
Puede impedir que los directores realicen API llamadas al punto final de su plano de control desde direcciones IP específicas. Para especificar las direcciones IP que se pueden permitir, en el elemento Condición de su IAM política, utilice la clave de condición aws:SourceIp
global.
El uso de esta clave de condición también puede impedir que otras Servicio de AWS personas realicen estas API llamadas en su nombre, por ejemplo AWS CloudFormation. Para permitir el acceso a estos servicios, utilice la clave de condición aws:ViaAWSService
global junto con la SourceIp clave aws:. Esto asegura que la restricción de acceso a la dirección IP de origen se aplica únicamente a las solicitudes realizadas directamente por una entidad principal. Para obtener más información, consulte AWS: Denega el acceso a en AWS función de la IP de origen.
El siguiente ejemplo muestra cómo permitir que solo una dirección IP específica pueda realizar API llamadas al punto final del plano de control. La aws:ViaAWSService
clave está configurada entrue
, lo que permite a otros servicios realizar API llamadas en su nombre.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:CreateJobTemplate", "iot:CreateJob" ], "Resource": ["*"], "Condition": { "IpAddress": { "aws:SourceIp": "
123.45.167.89
" } }, "Bool": {"aws:ViaAWSService": "true"} } ], }
IAMpolíticas en el plano de datos
IAMlas políticas del plano de datos utilizan el iotjobsdata:
prefijo para autorizar tareas y API operaciones que los usuarios pueden realizar. En el plano de los datos, puede conceder a un usuario permiso para utilizarlos DescribeJobExecution
APImediante la acción iotjobsdata:DescribeJobExecution
política.
aviso
No se recomienda utilizar IAM políticas en el plano de los datos cuando se segmente AWS IoT Jobs para sus dispositivos. Te recomendamos que utilices IAM políticas en el plano de control para que los usuarios creen y administren trabajos. En el plano de datos, para autorizar a los dispositivos a recuperar las ejecuciones de trabajos y actualizar el estado de ejecución, utilice AWS IoT Core políticas de HTTPS protocolo.
Las API operaciones que se deben autorizar se realizan normalmente al escribir CLI comandos. A continuación se muestra un ejemplo de un usuario realizando una operación DescribeJobExecution
.
En el ejemplo, sustituya:
-
region
con su Región de AWS, comous-east-1
. -
account-id
con tu Cuenta de AWS número, como57EXAMPLE833
. -
thing-name
con el nombre de tu negocio de IoT al que te diriges a los trabajos, por ejemplomyRegisteredThing
. -
es el identificador único del trabajo al que se dirige medianteAPI.job-id
aws iot-jobs-data describe-job-execution \ --endpoint-url "https://
account-id
.jobs.iot.region
.amazonaws.com" \ --job-idjobID
--thing-namething-name
A continuación se muestra un ejemplo IAM de política que autoriza esta acción:
{ "Version": "2012-10-17", "Statement": { "Action": ["iotjobsdata:DescribeJobExecution"], "Effect": "Allow", "Resource": "arn:aws:iot:
region
:account-id
:thing/thing-name
", } }
Puede impedir que los directores realicen API llamadas al punto final de su plano de datos desde direcciones IP específicas. Para especificar las direcciones IP que se pueden permitir, en el elemento Condición de su IAM política, utilice la clave de condición aws:SourceIp
global.
El uso de esta clave de condición también puede impedir que otras Servicio de AWS personas realicen estas API llamadas en su nombre, por ejemplo AWS CloudFormation. Para permitir el acceso a estos servicios, utilice la clave de condición global aws:ViaAWSService
con la clave de condición aws:SourceIp
. Esto asegura que la restricción de acceso a la dirección IP se aplica únicamente a las solicitudes realizadas directamente por la entidad principal. Para obtener más información, consulte AWS: Denega el acceso en AWS función de la IP de origen.
El siguiente ejemplo muestra cómo permitir que solo una dirección IP específica pueda realizar API llamadas al punto final del plano de datos.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iotjobsdata:*"], "Resource": ["*"], "Condition": { "IpAddress": { "aws:SourceIp": "
123.45.167.89
" } }, "Bool": {"aws:ViaAWSService": "false"} } ], }
El siguiente ejemplo muestra cómo restringir direcciones IP o rangos de direcciones específicos para que no puedan realizar API llamadas al punto final del plano de datos.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": ["iotjobsdata:*"], "Condition": { "IpAddress": { "aws:SourceIp": [ "
123.45.167.89
", "192.0.2.0/24
", "203.0.113.0/24
" ] } }, "Resource": ["*"], } ], }
Si realiza una API operación tanto en el plano de control como en el plano de datos, la acción de política del plano de control debe usar el iot:
prefijo y la acción de política del plano de datos debe usar el iotjobsdata:
prefijo.
Por ejemplo, se DescribeJobExecution
API puede usar tanto en el plano de control como en el plano de datos. En el plano de control, DescribeJobExecutionAPIse utiliza para describir la ejecución de una tarea. En el plano de datos, DescribeJobExecutionAPIse utiliza para obtener detalles de la ejecución de un trabajo.
La siguiente IAM política autoriza a un usuario a utilizar el plano DescribeJobExecution
API de control y el plano de datos.
En el ejemplo, sustituya:
-
region
con el suyo Región de AWS, comous-east-1
. -
account-id
con tu Cuenta de AWS número, como57EXAMPLE833
. -
thing-name
con el nombre de tu negocio de IoT al que te diriges a los trabajos, por ejemploMyIoTThing
.
{ "Version": "2012-10-17", "Statement": [ { "Action": ["iotjobsdata:DescribeJobExecution"], "Effect": "Allow", "Resource": "arn:aws:iot:
region
:account-id
:thing/thing-name
" }, { "Action": [ "iot:DescribeJobExecution", "iot:CancelJobExecution", "iot:DeleteJobExecution", ], "Effect": "Allow", "Resource": [ "arn:aws:iot:region
:account-id
:thing/thing-name
" "arn:aws:iot:region
:account-id
:job/*" ] } ] }
Autorización del etiquetado de los recursos de IoT
Para controlar mejor los trabajos y las plantillas de trabajo que puede crear, modificar o usar, puede adjuntarles etiquetas. Estas también le ayudan a determinar la propiedad y a asignar y distribuir los costos, ya que las ubican en grupos de facturación y les asocian etiquetas.
Si un usuario quiere etiquetar sus trabajos o las plantillas de trabajo que ha creado con los AWS Management Console o los AWS CLI, tu IAM política debe conceder al usuario permisos para etiquetarlos. Para conceder permisos, tu IAM política debe utilizar la iot:TagResource
acción.
nota
Si tu IAM política no incluye la iot:TagResource
acción, cualquier acción CreateJob
o que CreateJobTemplate
tenga una etiqueta devolverá un AccessDeniedException
error.
Si quieres etiquetar tus trabajos o las plantillas de trabajo que has creado con el AWS Management Console o el AWS CLI, tu IAM política debe concederte permiso para etiquetarlos. Para conceder permisos, su IAM política debe utilizar la iot:TagResource
acción.
Para obtener información general sobre el etiquetado de recursos, consulte Etiquetar sus recursos AWS IoT.
Consulte los siguientes ejemplos IAM de políticas que conceden permisos de etiquetado:
Ejemplo 1
Un usuario que ejecuta el siguiente comando para crear un trabajo y etiquetarlo en un entorno específico.
En este ejemplo, sustituya:
-
region
con tu Región de AWS, comous-east-1
. -
account-id
con tu Cuenta de AWS número, como57EXAMPLE833
. -
thing-name
con el nombre de tu negocio de IoT al que te diriges a los trabajos, por ejemploMyIoTThing
.
aws iot create-job --job-id
test_job
--targets "arn:aws:iot:region
:account-id
:thing/thingOne
" --document-source "https://s3.amazonaws.com/my-s3-bucket/job-document.json" --description "test job description" --tags Key=environment,Value=beta
Para este ejemplo, debes usar la siguiente IAM política:
{ "Version": "2012-10-17", "Statement": { "Action": [ "iot:CreateJob", "iot:CreateJobTemplate", "iot:TagResource" ], "Effect": "Allow", "Resource": [ "arn:aws:iot:aws-region:
account-id
:job/*", "arn:aws:iot:aws-region:account-id
:jobtemplate/*" ] } }