Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengotorisasi pengguna dan layanan cloud untuk menggunakan AWS IoT Jobs
Untuk mengotorisasi pengguna dan layanan cloud Anda, Anda harus menggunakan IAM kebijakan pada bidang kontrol dan bidang data. Kebijakan harus digunakan dengan HTTPS protokol dan harus menggunakan otentikasi AWS Signature Version 4 (port 443) untuk mengautentikasi pengguna.
catatan
AWS IoT Core Kebijakan tidak boleh digunakan pada pesawat kontrol. Hanya IAM kebijakan yang digunakan untuk mengotorisasi pengguna atau Layanan Cloud. Untuk informasi selengkapnya tentang menggunakan jenis kebijakan yang diperlukan, lihatJenis kebijakan yang diperlukan untuk AWS IoT Pekerjaan.
IAMkebijakan adalah JSON dokumen yang berisi pernyataan kebijakan. Pernyataan kebijakan menggunakan elemen Efek, Tindakan, dan Sumber Daya untuk menentukan sumber daya, tindakan yang diizinkan atau ditolak, dan kondisi di mana tindakan diizinkan atau ditolak. Untuk informasi selengkapnya, lihat Referensi Elemen IAM JSON Kebijakan di Panduan IAM pengguna.
Awas
Kami menyarankan agar Anda tidak menggunakan izin wildcard, seperti "Action":
["iot:*"]
dalam IAM kebijakan atau AWS IoT Core kebijakan Anda. Menggunakan izin wildcard bukanlah praktik terbaik keamanan yang disarankan. Untuk informasi selengkapnya, lihat AWS IoT
kebijakan yang terlalu permisif.
IAMkebijakan di bidang kontrol
Pada bidang kontrol, IAM kebijakan menggunakan iot:
awalan dengan tindakan untuk mengotorisasi operasi pekerjaan API yang sesuai. Misalnya, tindakan iot:CreateJob
kebijakan memberikan izin kepada pengguna untuk menggunakan. CreateJob
API
Tabel berikut menunjukkan daftar tindakan IAM kebijakan dan izin untuk menggunakan API tindakan. Untuk informasi tentang jenis sumber daya, lihat Jenis sumber daya yang ditentukan oleh AWS IoT. Untuk informasi selengkapnya tentang AWS IoT tindakan, lihat Tindakan yang ditentukan oleh AWS IoT.
Tindakan kebijakan | APIoperasi | Jenis sumber daya | Deskripsi |
---|---|---|---|
iot:AssociateTargetsWithJob |
AssociateTargetsWithJob |
|
Merupakan izin untuk mengasosiasikan grup dengan pekerjaan berkelanjutan. iot:AssociateTargetsWithJob Izin diperiksa setiap kali permintaan dibuat untuk mengaitkan target. |
iot:CancelJob |
CancelJob |
pekerjaan | Merupakan izin untuk membatalkan pekerjaan. iot:CancelJob Izin diperiksa setiap kali permintaan dibuat untuk membatalkan pekerjaan. |
iot:CancelJobExecution |
CancelJobExecution |
|
Merupakan izin untuk membatalkan eksekusi pekerjaan. iot: CancelJobExecution Izin diperiksa setiap kali permintaan dibuat untuk membatalkan eksekusi pekerjaan. |
iot:CreateJob |
CreateJob |
|
Merupakan izin untuk membuat pekerjaan. iot:
CreateJob Izin diperiksa setiap kali permintaan dibuat untuk membuat pekerjaan. |
iot:CreateJobTemplate |
CreateJobTemplate |
|
Merupakan izin untuk membuat template pekerjaan. iot: CreateJobTemplate Izin diperiksa setiap kali permintaan dibuat untuk membuat template pekerjaan. |
iot:DeleteJob |
DeleteJob |
pekerjaan | Merupakan izin untuk menghapus pekerjaan. iot:
DeleteJob Izin diperiksa setiap kali permintaan dibuat untuk menghapus pekerjaan. |
iot:DeleteJobTemplate |
DeleteJobTemplate |
Jobtemplate | Merupakan izin untuk menghapus template pekerjaan. iot: CreateJobTemplate Izin diperiksa setiap kali permintaan dibuat untuk menghapus template pekerjaan. |
iot:DeleteJobExecution |
DeleteJobTemplate |
|
Merupakan izin untuk menghapus eksekusi pekerjaan. iot: DeleteJobExecution Izin diperiksa setiap kali permintaan dibuat untuk menghapus eksekusi pekerjaan. |
iot:DescribeJob |
DescribeJob |
pekerjaan | Merupakan izin untuk menggambarkan pekerjaan. iot:
DescribeJob Izin diperiksa setiap kali permintaan dibuat untuk menggambarkan suatu pekerjaan. |
iot:DescribeJobExecution |
DescribeJobExecution |
|
Merupakan izin untuk menggambarkan eksekusi pekerjaan. iot: DescribeJobExecution Izin diperiksa setiap kali permintaan dibuat untuk menggambarkan eksekusi pekerjaan. |
iot:DescribeJobTemplate |
DescribeJobTemplate |
Jobtemplate | Merupakan izin untuk menggambarkan template pekerjaan. iot: DescribeJobTemplate Izin diperiksa setiap kali permintaan dibuat untuk menggambarkan template pekerjaan. |
iot:DescribeManagedJobTemplate |
DescribeManagedJobTemplate |
Jobtemplate | Merupakan izin untuk mendeskripsikan template pekerjaan terkelola. iot: DescribeManagedJobTemplate Izin diperiksa setiap kali permintaan dibuat untuk menggambarkan template pekerjaan yang dikelola. |
iot:GetJobDocument |
GetJobDocument |
pekerjaan | Merupakan izin untuk mendapatkan dokumen pekerjaan untuk suatu pekerjaan. iot:GetJobDocument Izin diperiksa setiap kali permintaan dibuat untuk mendapatkan dokumen pekerjaan. |
iot:ListJobExecutionsForJob |
ListJobExecutionsForJob |
pekerjaan | Merupakan izin untuk membuat daftar eksekusi pekerjaan untuk suatu pekerjaan. iot:ListJobExecutionsForJob Izin diperiksa setiap kali permintaan dibuat untuk mencantumkan eksekusi pekerjaan untuk suatu pekerjaan. |
iot:ListJobExecutionsForThing |
ListJobExecutionsForThing |
hal | Merupakan izin untuk membuat daftar eksekusi pekerjaan untuk suatu pekerjaan. iot:ListJobExecutionsForThing Izin diperiksa setiap kali permintaan dibuat untuk mencantumkan eksekusi pekerjaan untuk suatu hal. |
iot:ListJobs |
ListJobs |
none | Merupakan izin untuk membuat daftar pekerjaan. iot:ListJobs Izin diperiksa setiap kali permintaan dibuat untuk membuat daftar pekerjaan. |
iot:ListJobTemplates |
ListJobTemplates |
none | Merupakan izin untuk membuat daftar template pekerjaan. iot:ListJobTemplates Izin diperiksa setiap kali permintaan dibuat untuk membuat daftar templat pekerjaan. |
iot:ListManagedJobTemplates |
ListManagedJobTemplates |
none | Merupakan izin untuk membuat daftar templat pekerjaan yang dikelola. iot:ListManagedJobTemplates Izin diperiksa setiap kali permintaan dibuat untuk mencantumkan templat pekerjaan yang dikelola. |
iot:UpdateJob |
UpdateJob |
pekerjaan | Merupakan izin untuk memperbarui pekerjaan. iot:UpdateJob Izin diperiksa setiap kali permintaan dibuat untuk memperbarui pekerjaan. |
iot:TagResource |
TagResource |
|
Memberikan izin untuk menandai sumber daya tertentu. |
iot:UntagResource |
UntagResource |
|
Memberikan izin untuk menghapus tag sumber daya tertentu. |
Contoh berikut menunjukkan IAM kebijakan yang memungkinkan izin pengguna untuk melakukan tindakan berikut untuk hal IoT dan grup benda Anda.
Dalam contoh, ganti:
-
region
dengan Anda Wilayah AWS, sepertius-east-1
. -
account-id
dengan Akun AWS nomor Anda, seperti57EXAMPLE833
-
thing-group-name
dengan nama grup IoT Anda yang Anda targetkan pekerjaan, seperti.FirmwareUpdateGroup
-
thing-name
dengan nama hal IoT Anda yang Anda targetkan pekerjaan, seperti.MyIoTThing
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iot:CreateJobTemplate", "iot:CreateJob", ], "Effect": "Allow", "Resource": "arn:aws:iot:
region
:account-id
:thinggroup/thing-group-name
" }, { "Action": [ "iot:DescribeJob", "iot:CancelJob", "iot:DeleteJob", ], "Effect": "Allow", "Resource": "arn:aws:iot:region
:account-id
:job/*" }, { "Action": [ "iot:DescribeJobExecution", "iot:CancelJobExecution", "iot:DeleteJobExecution", ], "Effect": "Allow", "Resource": [ "arn:aws:iot:region
:account-id
:thing/thing-name
" "arn:aws:iot:region
:account-id
:job/*" ] } ] }
Anda dapat membatasi prinsipal dari melakukan API panggilan ke titik akhir bidang kontrol Anda dari alamat IP tertentu. Untuk menentukan alamat IP yang dapat diizinkan, dalam elemen Kondisi IAM kebijakan Anda, gunakan kunci kondisi aws:SourceIp
global.
Menggunakan kunci kondisi ini juga dapat menolak akses ke Layanan AWS s lain dari melakukan API panggilan ini atas nama Anda, seperti AWS CloudFormation. Untuk mengizinkan akses ke layanan ini, gunakan kunci kondisi aws:ViaAWSService
global dengan SourceIp kunci aws:. Ini memastikan bahwa pembatasan akses alamat IP sumber hanya berlaku untuk permintaan yang dibuat langsung oleh prinsipal. Untuk informasi selengkapnya, lihat AWS: Menolak akses AWS berdasarkan IP sumber.
Contoh berikut menunjukkan bagaimana mengizinkan hanya alamat IP tertentu yang dapat membuat API panggilan ke titik akhir bidang kontrol. aws:ViaAWSService
Kuncinya diatur ketrue
, yang memungkinkan layanan lain melakukan API panggilan atas nama Anda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:CreateJobTemplate", "iot:CreateJob" ], "Resource": ["*"], "Condition": { "IpAddress": { "aws:SourceIp": "
123.45.167.89
" } }, "Bool": {"aws:ViaAWSService": "true"} } ], }
IAMkebijakan pada bidang data
IAMkebijakan pada bidang data menggunakan iotjobsdata:
awalan untuk mengotorisasi API operasi pekerjaan yang dapat dilakukan pengguna. Pada bidang data, Anda dapat memberikan izin kepada pengguna untuk DescribeJobExecution
APImenggunakan tindakan iotjobsdata:DescribeJobExecution
kebijakan.
Awas
Menggunakan IAM kebijakan pada bidang data tidak disarankan saat menargetkan AWS IoT Pekerjaan untuk perangkat Anda. Kami menyarankan Anda menggunakan IAM kebijakan pada bidang kontrol bagi pengguna untuk membuat dan mengelola pekerjaan. Pada bidang data, untuk mengotorisasi perangkat untuk mengambil eksekusi pekerjaan dan memperbarui status eksekusi, gunakan. AWS IoT Core kebijakan untuk HTTPS protokol
APIOperasi yang harus diotorisasi biasanya dilakukan oleh Anda mengetik CLI perintah. Berikut ini menunjukkan contoh pengguna yang melakukan DescribeJobExecution
operasi.
Dalam contoh, ganti:
-
region
dengan Anda Wilayah AWS, sepertius-east-1
. -
account-id
dengan Akun AWS nomor Anda, seperti57EXAMPLE833
-
thing-name
dengan nama hal IoT Anda yang Anda targetkan pekerjaan, seperti.myRegisteredThing
-
adalah pengidentifikasi unik untuk pekerjaan yang ditargetkan menggunakan. APIjob-id
aws iot-jobs-data describe-job-execution \ --endpoint-url "https://
account-id
.jobs.iot.region
.amazonaws.com" \ --job-idjobID
--thing-namething-name
Berikut ini menunjukkan contoh IAM kebijakan yang mengizinkan tindakan ini:
{ "Version": "2012-10-17", "Statement": { "Action": ["iotjobsdata:DescribeJobExecution"], "Effect": "Allow", "Resource": "arn:aws:iot:
region
:account-id
:thing/thing-name
", } }
Anda dapat membatasi prinsipal dari melakukan API panggilan ke titik akhir pesawat data Anda dari alamat IP tertentu. Untuk menentukan alamat IP yang dapat diizinkan, dalam elemen Kondisi IAM kebijakan Anda, gunakan kunci kondisi aws:SourceIp
global.
Menggunakan kunci kondisi ini juga dapat menolak akses ke Layanan AWS s lain dari melakukan API panggilan ini atas nama Anda, seperti AWS CloudFormation. Untuk mengizinkan akses ke layanan ini, gunakan kunci kondisi aws:ViaAWSService
global dengan kunci aws:SourceIp
kondisi. Hal ini memastikan bahwa pembatasan akses alamat IP hanya berlaku untuk permintaan yang langsung dibuat oleh prinsipal. Untuk informasi selengkapnya, lihat AWS: Menolak akses AWS berdasarkan IP sumber.
Contoh berikut menunjukkan bagaimana mengizinkan hanya alamat IP tertentu yang dapat membuat API panggilan ke titik akhir bidang data.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iotjobsdata:*"], "Resource": ["*"], "Condition": { "IpAddress": { "aws:SourceIp": "
123.45.167.89
" } }, "Bool": {"aws:ViaAWSService": "false"} } ], }
Contoh berikut menunjukkan cara membatasi alamat IP tertentu atau rentang alamat dari membuat API panggilan ke titik akhir bidang data.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": ["iotjobsdata:*"], "Condition": { "IpAddress": { "aws:SourceIp": [ "
123.45.167.89
", "192.0.2.0/24
", "203.0.113.0/24
" ] } }, "Resource": ["*"], } ], }
Jika Anda melakukan API operasi pada bidang kontrol dan bidang data, tindakan kebijakan bidang kontrol Anda harus menggunakan iot:
awalan, dan tindakan kebijakan bidang data Anda harus menggunakan iotjobsdata:
awalan.
Misalnya, DescribeJobExecution
API dapat digunakan di bidang kontrol dan bidang data. Pada bidang kontrol, DescribeJobExecutionAPIdigunakan untuk menggambarkan eksekusi pekerjaan. Pada bidang data, DescribeJobExecutionAPIdigunakan untuk mendapatkan detail eksekusi pekerjaan.
IAMKebijakan berikut mengotorisasi izin pengguna untuk menggunakan DescribeJobExecution
API pada bidang kontrol dan bidang data.
Dalam contoh, ganti:
-
region
dengan Anda Wilayah AWS, sepertius-east-1
. -
account-id
dengan Akun AWS nomor Anda, seperti57EXAMPLE833
-
thing-name
dengan nama hal IoT Anda yang Anda targetkan pekerjaan, seperti.MyIoTThing
{ "Version": "2012-10-17", "Statement": [ { "Action": ["iotjobsdata:DescribeJobExecution"], "Effect": "Allow", "Resource": "arn:aws:iot:
region
:account-id
:thing/thing-name
" }, { "Action": [ "iot:DescribeJobExecution", "iot:CancelJobExecution", "iot:DeleteJobExecution", ], "Effect": "Allow", "Resource": [ "arn:aws:iot:region
:account-id
:thing/thing-name
" "arn:aws:iot:region
:account-id
:job/*" ] } ] }
Otorisasi penandaan sumber daya IoT
Untuk kontrol yang lebih baik atas pekerjaan dan templat pekerjaan yang dapat Anda buat, modifikasi, atau gunakan, Anda dapat melampirkan tag ke pekerjaan atau templat pekerjaan. Tag juga membantu Anda membedakan kepemilikan dan menetapkan serta mengalokasikan biaya dengan menempatkannya dalam grup penagihan dan melampirkan tag pada mereka.
Saat pengguna ingin menandai pekerjaan atau templat lowongan yang mereka buat dengan menggunakan AWS Management Console atau AWS CLI, IAM kebijakan Anda harus memberikan izin kepada pengguna untuk menandai mereka. Untuk memberikan izin, IAM kebijakan Anda harus menggunakan iot:TagResource
tindakan tersebut.
catatan
Jika IAM kebijakan Anda tidak menyertakan iot:TagResource
tindakan, maka salah satu CreateJob
atau CreateJobTemplate
dengan tag akan menampilkan AccessDeniedException
kesalahan.
Ketika Anda ingin menandai lowongan atau templat pekerjaan yang Anda buat dengan menggunakan AWS Management Console atau AWS CLI, IAM kebijakan Anda harus memberikan izin untuk menandai mereka. Untuk memberikan izin, IAM kebijakan Anda harus menggunakan iot:TagResource
tindakan tersebut.
Untuk informasi umum tentang menandai sumber daya Anda, lihatMenandai sumber daya Anda AWS IoT.
Lihat contoh IAM kebijakan berikut yang memberikan izin penandaan:
Contoh 1
Pengguna yang menjalankan perintah berikut untuk membuat pekerjaan dan menandainya ke lingkungan tertentu.
Dalam contoh ini, ganti:
-
region
dengan Anda Wilayah AWS, sepertius-east-1
. -
account-id
dengan Akun AWS nomor Anda, seperti57EXAMPLE833
-
thing-name
dengan nama hal IoT Anda yang Anda targetkan pekerjaan, seperti.MyIoTThing
aws iot create-job --job-id
test_job
--targets "arn:aws:iot:region
:account-id
:thing/thingOne
" --document-source "https://s3.amazonaws.com/amzn-s3-demo-bucket/job-document.json" --description "test job description" --tags Key=environment,Value=beta
Untuk contoh ini, Anda harus menggunakan IAM kebijakan berikut:
{ "Version": "2012-10-17", "Statement": { "Action": [ "iot:CreateJob", "iot:CreateJobTemplate", "iot:TagResource" ], "Effect": "Allow", "Resource": [ "arn:aws:iot:aws-region:
account-id
:job/*", "arn:aws:iot:aws-region:account-id
:jobtemplate/*" ] } }