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:SourceIp
può 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? .