Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Autorizzazione di utenti e servizi cloud all'utilizzo di AWS IoT Jobs
Per autorizzare gli utenti e i servizi cloud, è necessario utilizzare IAM le policy sia sul piano di controllo che sul piano dati. Le politiche devono essere utilizzate con il HTTPS protocollo e devono utilizzare l'autenticazione AWS Signature Version 4 (porta 443) per autenticare gli utenti.
Nota
AWS IoT Core le politiche non devono essere utilizzate sul piano di controllo. Per autorizzare gli utenti o i servizi cloud vengono utilizzate solo le IAM politiche. Per ulteriori informazioni sull'uso del tipo di policy richiesta, consulta Tipo di policy richiesto per Jobs AWS IoT.
IAMle politiche sono JSON documenti che contengono dichiarazioni politiche. Le istruzioni delle policy usano gli elementi Effect (Effetto), Action (Operazione) e Resource (Risorsa) per specificare risorse, operazioni consentite o rifiutate e le condizioni in base alle quali le operazioni sono consentite o rifiutate. Per ulteriori informazioni, vedere IAMJSONPolicy Elements Reference nella Guida IAM per l'utente.
avvertimento
Ti consigliamo di non utilizzare autorizzazioni con caratteri jolly, ad esempio "Action":
["iot:*"]
nelle tue IAM politiche o AWS IoT Core politiche. L'utilizzo di autorizzazioni con caratteri jolly non è una best practice consigliata per la sicurezza. Per ulteriori informazioni, consulta la sezione AWS IoT
policy eccessivamente permissiva.
IAMpolitiche sul piano di controllo
Sul piano di controllo, IAM le politiche utilizzano il iot:
prefisso con l'azione per autorizzare l'operazione di job API corrispondente. Ad esempio, l'azione iot:CreateJob
politica concede all'utente il permesso di utilizzare. CreateJob
API
La tabella seguente mostra un elenco di azioni IAM politiche e autorizzazioni per utilizzare le API azioni. Per informazioni sui tipi di risorse, vedere Tipi di risorse definiti da AWS IoT. Per ulteriori informazioni sulle AWS IoT azioni, vedere Azioni definite da AWS IoT.
Operazione di policy | APIoperazione | Tipi di risorsa | Descrizione |
---|---|---|---|
iot:AssociateTargetsWithJob |
AssociateTargetsWithJob |
|
Rappresenta l'autorizzazione per associare un gruppo a un processo continuo. L'autorizzazione iot:AssociateTargetsWithJob viene controllata ogni volta che viene effettuata una richiesta di associare le destinazioni. |
iot:CancelJob |
CancelJob |
job | Rappresenta l'autorizzazione per annullare un processo. L'autorizzazione iot:CancelJob viene controllata ogni volta che viene effettuata una richiesta di annullare un processo. |
iot:CancelJobExecution |
CancelJobExecution |
|
Rappresenta l'autorizzazione per aggiornare l'esecuzione di un processo. L'autorizzazione iot: CancelJobExecution viene controllata ogni volta che viene effettuata una richiesta di annullare l'esecuzione di un processo. |
iot:CreateJob |
CreateJob |
|
Rappresenta l'autorizzazione per creare un processo. L'autorizzazione iot:
CreateJob viene controllata ogni volta che viene effettuata una richiesta di creare un processo. |
iot:CreateJobTemplate |
CreateJobTemplate |
|
Rappresenta l'autorizzazione per creare un modello di processo. L'autorizzazione iot: CreateJobTemplate viene controllata ogni volta che viene effettuata una richiesta di creare un modello di processo. |
iot:DeleteJob |
DeleteJob |
job | Rappresenta l'autorizzazione per eliminare un processo. L'autorizzazione iot:
DeleteJob viene controllata ogni volta che viene effettuata una richiesta di eliminare un processo. |
iot:DeleteJobTemplate |
DeleteJobTemplate |
jobtemplate | Rappresenta l'autorizzazione per eliminare un modello di processo. L'autorizzazione iot: CreateJobTemplate viene controllata ogni volta che viene effettuata una richiesta di eliminare un modello di processo. |
iot:DeleteJobExecution |
DeleteJobTemplate |
|
Rappresenta l'autorizzazione per eliminare l'esecuzione di un processo. L'autorizzazione iot: DeleteJobExecution viene controllata ogni volta che viene effettuata una richiesta di eliminare l'esecuzione di un processo. |
iot:DescribeJob |
DescribeJob |
job | Rappresenta l'autorizzazione per descrivere un processo. L'autorizzazione iot:
DescribeJob viene controllata ogni volta che viene effettuata una richiesta di descrivere un processo. |
iot:DescribeJobExecution |
DescribeJobExecution |
|
Rappresenta l'autorizzazione per descrivere l'esecuzione di un processo. L'autorizzazione iot: DescribeJobExecution viene controllata ogni volta che viene effettuata una richiesta di descrivere l'esecuzione di un processo. |
iot:DescribeJobTemplate |
DescribeJobTemplate |
jobtemplate | Rappresenta l'autorizzazione per descrivere un modello di processo. L'autorizzazione iot: DescribeJobTemplate viene controllata ogni volta che viene effettuata una richiesta di descrivere un modello di processo. |
iot:DescribeManagedJobTemplate |
DescribeManagedJobTemplate |
jobtemplate | Rappresenta l'autorizzazione per descrivere un modello di processo gestito. L'autorizzazione iot: DescribeManagedJobTemplate viene controllata ogni volta che viene effettuata una richiesta di descrivere un modello di processo gestito. |
iot:GetJobDocument |
GetJobDocument |
job | Rappresenta l'autorizzazione per ottenere il documento di un processo. L'autorizzazione iot:GetJobDocument viene controllata ogni volta che viene effettuata una richiesta di ottenere un documento di processo. |
iot:ListJobExecutionsForJob |
ListJobExecutionsForJob |
job | Rappresenta l'autorizzazione per elencare le esecuzioni per un processo. L'autorizzazione iot:ListJobExecutionsForJob viene controllata ogni volta che viene effettuata una richiesta di elencare le esecuzioni di un processo. |
iot:ListJobExecutionsForThing |
ListJobExecutionsForThing |
thing | Rappresenta l'autorizzazione per elencare le esecuzioni per un processo. L'autorizzazione iot:ListJobExecutionsForThing viene controllata ogni volta che viene effettuata una richiesta di elencare le esecuzioni di processo per un oggetto. |
iot:ListJobs |
ListJobs |
nessuno | Rappresenta l'autorizzazione per elencare i processi. L'autorizzazione iot:ListJobs viene controllata ogni volta che viene effettuata una richiesta di elencare i processi. |
iot:ListJobTemplates |
ListJobTemplates |
nessuno | Rappresenta l'autorizzazione per elencare i modelli di processo. L'autorizzazione iot:ListJobTemplates viene controllata ogni volta che viene effettuata una richiesta di elencare i modelli di processo. |
iot:ListManagedJobTemplates |
ListManagedJobTemplates |
nessuno | Rappresenta l'autorizzazione per elencare i modelli di processo gestiti. L'autorizzazione iot:ListManagedJobTemplates viene controllata ogni volta che viene effettuata una richiesta di elencare i modelli di processo gestiti. |
iot:UpdateJob |
UpdateJob |
job | Rappresenta l'autorizzazione per aggiornare un processo. L'autorizzazione iot:UpdateJob viene controllata ogni volta che viene effettuata una richiesta di aggiornare un processo. |
iot:TagResource |
TagResource |
|
Concede l'autorizzazione per taggare una risorsa specifica. |
iot:UntagResource |
UntagResource |
|
Concede l'autorizzazione per rimuovere i tag da una risorsa specifica. |
L'esempio seguente mostra una IAM policy che consente l'autorizzazione dell'utente a eseguire le seguenti azioni per l'oggetto e il gruppo di oggetti IoT.
Nell'esempio, sostituisci:
-
region
con il tuo Regione AWS, ad esempious-east-1
. -
account-id
con il tuo Account AWS numero, ad esempio57EXAMPLE833
. -
thing-group-name
con il nome del gruppo di oggetti IoT a cui stai indirizzando i lavori, ad esempioFirmwareUpdateGroup
. -
thing-name
con il nome dell'oggetto IoT a cui stai indirizzando lavori, ad esempioMyIoTThing
.
{ "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/*" ] } ] }
È possibile impedire ai responsabili di effettuare API chiamate verso l'endpoint del piano di controllo da indirizzi IP specifici. Per specificare gli indirizzi IP che possono essere consentiti, nell'elemento Condizione della IAM politica, utilizza la chiave di condizione aws:SourceIp
globale.
L'utilizzo di questa chiave condizionale può anche impedire ad altri Servizio AWS utenti di effettuare queste API chiamate per conto dell'utente, ad esempio AWS CloudFormation. Per consentire l'accesso a questi servizi, usa la chiave aws:ViaAWSService
global condition con la SourceIp chiave aws:. In questo modo garantisci che la restrizione di accesso all'indirizzo IP di origine si applichi solo alle richieste effettuate direttamente da un principale. Per maggiori informazioni, vedi AWS: Nega l'accesso a in AWS base all'IP di origine.
L'esempio seguente mostra come consentire solo un indirizzo IP specifico in grado di effettuare API chiamate all'endpoint del piano di controllo. La aws:ViaAWSService
chiave è impostata sutrue
, il che consente ad altri servizi di effettuare API chiamate per conto dell'utente.
{ "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"} } ], }
IAMpolitiche sul piano dati
IAMle politiche sul piano dati utilizzano il iotjobsdata:
prefisso per autorizzare API le operazioni di lavoro che gli utenti possono eseguire. Sul piano dati, è possibile concedere a un utente l'autorizzazione a utilizzare il DescribeJobExecution
APIutilizzando l'azione iotjobsdata:DescribeJobExecution
politica.
avvertimento
L'utilizzo IAM di policy sul piano dati non è consigliato quando si sceglie AWS IoT come target Jobs per i propri dispositivi. Si consiglia di utilizzare IAM le policy sul piano di controllo per consentire agli utenti di creare e gestire i lavori. Per autorizzare i dispositivi a recuperare le esecuzioni dei processi e aggiornare lo stato di esecuzione, utilizza AWS IoT Core politiche per il protocollo HTTPS sul piano dati.
Le API operazioni che devono essere autorizzate vengono in genere eseguite digitando CLI i comandi. Di seguito viene riportato l'esempio di un utente che esegue un'operazione DescribeJobExecution
.
Nell'esempio, sostituisci:
-
region
con il tuo Regione AWS, ad esempious-east-1
. -
account-id
con il tuo Account AWS numero, ad esempio57EXAMPLE833
. -
thing-name
con il nome dell'oggetto IoT a cui stai indirizzando lavori, ad esempiomyRegisteredThing
. -
è l'identificatore univoco del lavoro a cui è destinato l'utilizzo di. APIjob-id
aws iot-jobs-data describe-job-execution \ --endpoint-url "https://
account-id
.jobs.iot.region
.amazonaws.com" \ --job-idjobID
--thing-namething-name
Di seguito viene illustrato un esempio di IAM politica che autorizza questa azione:
{ "Version": "2012-10-17", "Statement": { "Action": ["iotjobsdata:DescribeJobExecution"], "Effect": "Allow", "Resource": "arn:aws:iot:
region
:account-id
:thing/thing-name
", } }
È possibile impedire ai principali destinatari di effettuare API chiamate verso l'endpoint del piano dati da indirizzi IP specifici. Per specificare gli indirizzi IP che possono essere consentiti, nell'elemento Condition della IAM policy, utilizza la chiave aws:SourceIp
global condition.
L'utilizzo di questa chiave condizionale può anche impedire ad altri Servizio AWS utenti di effettuare queste API chiamate per conto dell'utente, ad esempio AWS CloudFormation. Per consentire l'accesso a questi servizi, utilizza la chiave di condizione globale aws:ViaAWSService
con la chiave di condizione aws:SourceIp
. In questo modo garantisci che la restrizione di accesso all'indirizzo IP di origine si applichi solo alle richieste effettuate direttamente dal principale. Per ulteriori informazioni, vedere AWS: Nega l'accesso a in AWS base all'IP di origine.
L'esempio seguente mostra come consentire solo un indirizzo IP specifico in grado di effettuare API chiamate all'endpoint del piano dati.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iotjobsdata:*"], "Resource": ["*"], "Condition": { "IpAddress": { "aws:SourceIp": "
123.45.167.89
" } }, "Bool": {"aws:ViaAWSService": "false"} } ], }
L'esempio seguente mostra come limitare l'effettuazione di API chiamate all'endpoint del piano dati da parte di indirizzi IP o intervalli di indirizzi specifici.
{ "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": ["*"], } ], }
Se si esegue un'APIoperazione sia sul piano di controllo che sul piano dati, l'azione politica del piano di controllo deve utilizzare il iot:
prefisso e l'azione politica del piano dati deve utilizzare il iotjobsdata:
prefisso.
Ad esempio, DescribeJobExecution
API può essere utilizzato sia nel piano di controllo che nel piano dati. Sul piano di controllo, DescribeJobExecutionAPIviene utilizzato per descrivere l'esecuzione di un lavoro. Sul piano dati, DescribeJobExecutionAPIviene utilizzato per ottenere dettagli sull'esecuzione di un lavoro.
La seguente IAM politica autorizza l'autorizzazione dell'utente a utilizzare il sia DescribeJobExecution
API sul piano di controllo che sul piano dati.
Nell'esempio, sostituisci:
-
region
con il tuo Regione AWS, ad esempious-east-1
. -
account-id
con il tuo Account AWS numero, ad esempio57EXAMPLE833
. -
thing-name
con il nome dell'oggetto IoT a cui stai indirizzando lavori, ad esempioMyIoTThing
.
{ "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/*" ] } ] }
Autorizzazione dell'assegnazione di tag delle risorse IoT
Per un migliore controllo sui processi e sui modelli di processo che puoi creare, modificare o utilizzare, puoi aggiungere i tag ai processi o ai modelli di processo. I tag ti aiutano anche a distinguere la proprietà e ad assegnare e allocare i costi inserendoli nei gruppi di fatturazione e aggiungendo loro i tag.
Quando un utente desidera taggare i propri lavori o i modelli di lavoro che ha creato utilizzando il AWS Management Console o il AWS CLI, la tua IAM politica deve concedere all'utente le autorizzazioni per taggarlo. Per concedere le autorizzazioni, la IAM policy deve utilizzare l'azioneiot:TagResource
.
Nota
Se la tua IAM politica non include l'iot:TagResource
azione, qualsiasi azione CreateJob
o CreateJobTemplate
con un tag restituirà un AccessDeniedException
errore.
Quando desideri taggare le offerte di lavoro o i modelli di lavoro che hai creato utilizzando il AWS Management Console o il AWS CLI, la tua IAM politica deve concedere l'autorizzazione a taggarli. Per concedere le autorizzazioni, la tua IAM politica deve utilizzare l'iot:TagResource
azione.
Per informazioni sull'assegnazione di tag alle risorse, consulta Taggare le tue risorse AWS IoT.
Fate riferimento ai seguenti esempi di IAM policy per la concessione delle autorizzazioni di etichettatura:
Esempio 1
Un utente che esegue il comando seguente per creare un processo e contrassegnarlo a un ambiente specifico.
In questo esempio, sostituisci:
-
region
con il tuo Regione AWS, ad esempious-east-1
. -
account-id
con il tuo Account AWS numero, ad esempio57EXAMPLE833
. -
thing-name
con il nome dell'oggetto IoT a cui stai indirizzando lavori, ad esempioMyIoTThing
.
aws iot create-job --job-id
test_job
--targets "arn:aws:iot:region
:account-id
:thing/thingOne
" --document-source "https://s3.amazonaws.com/amzn-s3-demo-bucket/job-document.json" --description "test job description" --tags Key=environment,Value=beta
Per questo esempio, è necessario utilizzare la seguente IAM politica:
{ "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/*" ] } }