Basic AWS IoT Core variabel kebijakan - AWS IoT Core

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Basic AWS IoT Core variabel kebijakan

AWS IoT Core mendefinisikan variabel kebijakan dasar berikut:

  • iot:ClientId: ID klien yang digunakan untuk terhubung ke AWS IoT Core broker pesan.

  • aws:SourceIp: Alamat IP klien yang terhubung ke AWS IoT Core broker pesan.

Berikut ini AWS IoT Core kebijakan menunjukkan kebijakan yang menggunakan variabel kebijakan. aws:SourceIpdapat digunakan dalam elemen Kondisi kebijakan Anda untuk mengizinkan prinsipal membuat API permintaan hanya dalam rentang alamat tertentu. Sebagai contoh, lihat Mengotorisasi pengguna dan layanan cloud untuk menggunakan 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" } } } ] }

Dalam contoh ${iot:ClientId} ini, digantikan oleh ID klien yang terhubung ke AWS IoT Core pesan broker ketika kebijakan dievaluasi. Bila Anda menggunakan variabel kebijakan seperti${iot:ClientId}, Anda dapat secara tidak sengaja membuka akses ke topik yang tidak diinginkan. Misalnya, jika Anda menggunakan kebijakan yang digunakan ${iot:ClientId} untuk menentukan filter topik:

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

Klien dapat terhubung menggunakan + sebagai ID klien. Ini akan memungkinkan pengguna untuk berlangganan topik apa pun yang cocok dengan filter topikmy/+/topic. Untuk melindungi dari kesenjangan keamanan tersebut, gunakan tindakan iot:Connect kebijakan untuk mengontrol klien mana yang IDs dapat terhubung. Misalnya, kebijakan ini hanya mengizinkan klien yang ID kliennya clientid1 terhubung:

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

Menggunakan variabel kebijakan ${iot:ClientId} dengan tidak Connect disarankan. Tidak ada pemeriksaan pada nilaiClientId, sehingga lampiran dengan ID klien yang berbeda dapat lulus validasi tetapi menyebabkan pemutusan. Karena ClientId ada yang diizinkan, menyetel ID klien acak dapat melewati kebijakan grup hal.