Variabili AWS IoT Core politiche di base - AWS IoT Core

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à.

Variabili AWS IoT Core politiche di base

AWS IoT Core definisce le seguenti variabili politiche di base:

  • aws:SourceIp: l'indirizzo IP del client connesso al broker di AWS IoT Core messaggi.

  • iot:ClientId: ID client usato per la connessione al broker di messaggi AWS IoT Core .

  • iot:DomainName: il nome di dominio del client a cui è connesso AWS IoT Core.

Esempi ClientId di variabili SourceIp politiche

La seguente AWS IoT Core politica mostra una politica che utilizza variabili di politica. aws:SourceIppuò essere utilizzato nell'elemento Condizione della politica per consentire ai responsabili di effettuare API richieste solo all'interno di un intervallo di indirizzi specifico. Per alcuni esempi, consulta Autorizzazione di utenti e servizi cloud all'utilizzo di AWS IoT Jobs.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/clientid1" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/my/topic/${iot:ClientId}" ], "Condition": { "IpAddress": { "aws:SourceIp": "123.45.167.89" } } } ] }

In questi esempi, ${iot:ClientId} viene sostituito dall'ID del client connesso al broker di AWS IoT Core messaggi quando viene valutata la politica. Quando usi variabili delle policy come ${iot:ClientId}, puoi aprire inavvertitamente l'accesso ad argomenti indesiderati. Ad esempio, se usi una policy che usa ${iot:ClientId} per specificare un filtro di argomenti:

{ "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topicfilter/my/${iot:ClientId}/topic" ] }

Un client può connettersi usando + come ID client. Questo permette all'utente di sottoscrivere qualsiasi argomento corrispondente al filtro di argomenti my/+/topic. Per proteggerti da tali lacune di sicurezza, utilizza l'azione iot:Connect politica per controllare quale client IDs può connettersi. Ad esempio, questa policy permette di connettersi solo a quei client il cui ID client è clientid1:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/clientid1" ] } ] }
Nota

L'utilizzo della variabile di policy ${iot:ClientId} con Connect non è consigliato. Non esiste alcun controllo sul valore di ClientId, quindi un collegamento con un ID client diverso può superare la convalida ma causare la disconnessione. Poiché qualsiasi ClientId è consentito, l'impostazione di un ID client casuale può aggirare le policy del gruppo di oggetti.

Esempi di variabili iot:DomainName politiche

È possibile aggiungere la variabile di iot:DomainName policy per limitare i domini che possono essere utilizzati. L'aggiunta della variabile di iot:DomainName policy consente ai dispositivi di connettersi solo a endpoint configurati specifici.

La seguente politica consente ai dispositivi di connettersi al dominio specificato.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowConnectionsToSpecifiedDomain", "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": "*", "Condition": { "StringEquals": { "iot:DomainName": "d1234567890abcdefghij-ats.iot.us-east-1.amazonaws.com" } } } }

La seguente politica impedisce ai dispositivi di connettersi al dominio specificato.

{ "Version": "2012-10-17", "Statement": { "Sid": "DenyConnectionsToSpecifiedDomain", "Effect": "Deny", "Action": [ "iot:Connect" ], "Resource": "*", "Condition": { "StringEquals": { "iot:DomainName": "d1234567890abcdefghij-ats.iot.us-east-1.amazonaws.com" } } } }

Per ulteriori informazioni sull'operatore condizionale della politica, vedere Elementi IAM JSON della politica: Operatori di condizione. Per ulteriori informazioni sulle configurazioni dei domini, consulta Cos'è una configurazione di dominio? .