Mempersiapkan keamanan - AWS IoT Core

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

Mempersiapkan keamanan

Bagian ini membahas persyaratan keamanan utama untuk Katalog Paket AWS IoT Device Management Perangkat Lunak.

Otentikasi berbasis sumber daya

Software Package Catalog menggunakan otorisasi berbasis sumber daya untuk memberikan keamanan tambahan saat memperbarui perangkat lunak pada armada Anda. Ini berarti Anda harus membuat kebijakan AWS Identity and Access Management (IAM) yang memberikan hak untuk melakukancreate,,, read updatedelete, dan list tindakan untuk paket perangkat lunak dan versi paket, dan mereferensikan paket perangkat lunak dan versi paket tertentu yang ingin Anda terapkan di bagian tersebutResources. Anda juga memerlukan hak-hak ini sehingga Anda dapat memperbarui bayangan bernama yang dilindungi undang-undang. Anda mereferensikan paket perangkat lunak dan versi paket dengan menyertakan Amazon Resource Name (ARN) untuk setiap entitas.

catatan

Jika Anda bermaksud kebijakan untuk memberikan hak untuk API panggilan versi paket (seperti CreatePackageVersionUpdatePackageVersion,, DeletePackageVersion), maka Anda perlu menyertakan paket perangkat lunak dan versi paket ARNs dalam kebijakan. Jika Anda bermaksud kebijakan untuk memberikan hak untuk API panggilan paket perangkat lunak (seperti CreatePackage, UpdatePackage, dan DeletePackage) maka Anda harus menyertakan hanya paket perangkat lunak ARN dalam kebijakan.

Struktur paket perangkat lunak dan versi paket ARNs sebagai berikut:

  • Paket perangkat lunak: arn:aws:iot:<region>:<accountID>:package/<packageName>/package

  • Versi Package: arn:aws:iot:<region>:<accountID>:package/<packageName>/version/<versionName>

catatan

Ada hak terkait lainnya yang mungkin Anda sertakan dalam kebijakan ini. Misalnya, Anda mungkin menyertakan ARN untukjob,thinggroup, danjobtemplate. Untuk informasi selengkapnya dan daftar lengkap opsi kebijakan, lihat Mengamankan pengguna dan perangkat dengan AWS IoT Lowongan.

Misalnya, jika Anda memiliki paket perangkat lunak dan versi paket yang diberi nama sebagai berikut:

  • AWS IoT hal: myThing

  • Nama Package: samplePackage

  • Versi 1.0.0

Kebijakan ini mungkin terlihat seperti contoh berikut:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:createPackage", "iot:createPackageVersion", "iot:updatePackage", "iot:updatePackageVersion" ], "Resource": [ "arn:aws:iot:us-east-1:111122223333:package/samplePackage", "arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/1.0.0" ] }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow" ], "Resource": "arn:aws:iot:us-east-1:111122223333:thing/myThing/$package" } ] }

AWS IoT Hak pekerjaan untuk menyebarkan versi paket

Untuk tujuan keamanan, penting bagi Anda untuk memberikan hak untuk menyebarkan paket dan versi paket, dan memberi nama paket dan versi paket tertentu yang diizinkan untuk diterapkan. Untuk melakukannya, Anda membuat IAM peran dan kebijakan yang memberikan izin untuk menerapkan pekerjaan dengan versi paket. Kebijakan harus menentukan versi paket tujuan sebagai sumber daya.

IAMkebijakan

IAMKebijakan memberikan hak untuk membuat pekerjaan yang mencakup paket dan versi yang disebutkan di Resource bagian.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:CreateJob", "iot:CreateJobTemplate" ], "Resource":[ "arn:aws:iot:*:111122223333:job/<jobId>", "arn:aws:iot:*:111122223333:thing/<thingName>/$package", "arn:aws:iot:*:111122223333:thinggroup/<thingGroupName>", "arn:aws:iot:*:111122223333:jobtemplate/<jobTemplateName>", "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>" ] } ] }
catatan

Jika Anda ingin menerapkan pekerjaan yang menghapus instalasi paket perangkat lunak dan versi paket, Anda harus mengotorisasi ARN di mana versi paket berada$null, seperti berikut ini:

arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null

AWS IoT Hak pekerjaan untuk memperbarui bayangan bernama yang dilindungi undang-undang

Untuk mengizinkan lowongan memperbarui bayangan nama yang dicadangkan saat pekerjaan berhasil diselesaikan, Anda harus membuat IAM peran dan kebijakan. Ada dua cara Anda dapat melakukan ini di AWS IoT konsol. Yang pertama adalah ketika Anda membuat paket perangkat lunak di konsol. Jika Anda melihat kotak dialog Aktifkan dependensi untuk manajemen paket, Anda dapat memilih untuk menggunakan peran yang ada atau membuat peran baru. Atau, di AWS IoT konsol, pilih Pengaturan, pilih Kelola pengindeksan, lalu Kelola pengindeksan untuk paket dan versi perangkat.

catatan

Jika Anda memilih agar layanan AWS IoT Job memperbarui bayangan bernama yang dicadangkan saat pekerjaan berhasil diselesaikan, API panggilan akan dihitung untuk Device Shadow dan operasi registri Anda dan dapat dikenakan biaya. Untuk informasi selengkapnya, lihat harga AWS IoT Core.

Saat Anda menggunakan opsi Buat peran, nama peran yang dihasilkan dimulai dengan aws-iot-role-update-shadows dan berisi kebijakan berikut:

Menyiapkan peran

Izin

Kebijakan izin memberikan hak untuk melakukan kueri dan memperbarui bayangan benda. $packageParameter dalam sumber daya ARN menargetkan bayangan bernama cadangan.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:DescribeEndpoint", "Resource": "" }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow" ], "Resource": [ "arn:aws:iot:<regionCode>:111122223333:thing/<thingName>/$package" ] } ] }
Hubungan kepercayaan

Selain kebijakan izin, peran memerlukan hubungan kepercayaan AWS IoT Core sehingga entitas dapat mengambil peran dan memperbarui bayangan bernama yang dicadangkan.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Menyiapkan kebijakan pengguna

iam: izin PassRole

Terakhir, Anda harus memiliki izin untuk meneruskan peran AWS IoT Core ketika Anda memanggil UpdatePackageConfigurationAPIoperasi.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "iot:UpdatePackageConfiguration" ], "Resource": "arn:aws:iam::111122223333:role/<roleName>" } ] }

AWS IoT Izin pekerjaan untuk mengunduh dari Amazon S3

Dokumen pekerjaan disimpan di Amazon S3. Anda merujuk ke file ini ketika Anda mengirim melalui AWS IoT Jobs. Anda harus memberikan AWS IoT Jobs dengan hak untuk men-download file (s3:GetObject). Anda juga harus mengatur hubungan kepercayaan antara Amazon S3 dan AWS IoT Jobs. Untuk petunjuk untuk membuat kebijakan ini, lihat Ditandatangani sebelumnya URLs dalam Mengelola Pekerjaan.

Izin untuk memperbarui tagihan perangkat lunak materi untuk versi paket

Untuk memperbarui tagihan materi perangkat lunak untuk versi paket dalamDraft,Published, atau status Deprecated siklus hidup, Anda memerlukan AWS Identity and Access Management peran dan kebijakan untuk menemukan tagihan materi perangkat lunak baru di Amazon S3 dan memperbarui versi paket di. AWS IoT Core

Pertama, Anda akan menempatkan tagihan materi perangkat lunak yang diperbarui di bucket Amazon S3 berversi Anda dan memanggil operasi dengan sboms parameter UpdatePackageVersion API yang disertakan. Selanjutnya, kepala sekolah resmi Anda akan mengambil IAM peran yang Anda buat, menemukan tagihan materi perangkat lunak yang diperbarui di Amazon S3, dan memperbarui versi paket untuk Katalog Paket AWS IoT Core Perangkat Lunak.

Kebijakan berikut diperlukan untuk melakukan pembaruan ini:

Kebijakan

  • Kebijakan kepercayaan membangun hubungan kepercayaan dengan kepala sekolah yang berwenang dengan asumsi IAM peran sehingga dapat menemukan tagihan materi perangkat lunak yang diperbarui dari bucket berversi Anda di Amazon S3 dan memperbarui versi paket di. AWS IoT Core

    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  • Kebijakan izin: Kebijakan untuk mengakses bucket berversi Amazon S3 tempat tagihan materi perangkat lunak disimpan untuk versi paket dan memperbarui versi paket. AWS IoT Core

    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1" ] } ] }
    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:UpdatePackageVersion" ], "Resource": [ "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>" ] } ] }
  • Lulus izin peran: Kebijakan yang memberikan izin untuk meneruskan IAM peran ke Amazon S3 AWS IoT Core dan saat Anda memanggil operasi. UpdatePackageVersion API

    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "s3:GetObject" ], "arn:aws:s3:::awsexamplebucket1" } ] }
    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "iot:UpdatePackageVersion" ], "Resource": "arn:aws:iam::111122223333:role/<roleName>" } ] }
catatan

Anda tidak dapat memperbarui tagihan materi perangkat lunak pada versi paket yang telah dialihkan ke status siklus Deleted hidup.

Untuk informasi selengkapnya tentang membuat IAM peran untuk AWS layanan, lihat Membuat peran untuk mendelegasikan izin ke AWS layanan.

Untuk informasi selengkapnya tentang membuat bucket Amazon S3 dan mengunggah objek ke dalamnya, lihat Membuat bucket dan Mengunggah objek.