Variabel AWS IoT Core kebijakan dasar - AWS IoT Core

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

Variabel AWS IoT Core kebijakan dasar

AWS IoT Core mendefinisikan variabel kebijakan dasar berikut:

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

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

AWS IoT Core Kebijakan berikut menunjukkan kebijakan yang menggunakan variabel kebijakan. aws:SourceIpdapat digunakan dalam elemen Kondisi kebijakan Anda untuk mengizinkan prinsipal membuat permintaan API 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, diganti dengan ID klien yang terhubung ke broker AWS IoT Core pesan 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 ID klien mana yang 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.