Mengontrol akses dengan AWS IoT FleetWise - AWS IoT FleetWise

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

Mengontrol akses dengan AWS IoT FleetWise

penting

Akses ke FleetWise fitur AWS IoT tertentu saat ini terjaga keamanannya. Untuk informasi selengkapnya, lihat AWS Ketersediaan wilayah dan fitur di AWS IoT FleetWise.

Bagian berikut mencakup cara mengontrol akses ke dan dari AWS IoT FleetWise sumber daya Anda. Informasi yang mereka cakup mencakup cara memberikan akses aplikasi Anda sehingga AWS IoT FleetWise dapat mentransfer data kendaraan selama kampanye. Mereka juga menjelaskan bagaimana Anda dapat memberikan AWS IoT FleetWise akses ke bucket Amazon S3 (S3) atau database dan tabel Amazon Timestream untuk menyimpan data, atau ke pesan MQTT yang digunakan untuk mengirim data dari kendaraan.

Teknologi untuk mengelola semua bentuk akses ini adalah AWS Identity and Access Management (IAM). Untuk informasi selengkapnya tentang IAM, lihat Apa itu IAM?.

Berikan AWS IoT FleetWise izin untuk mengirim dan menerima data tentang topik MQTT

Saat Anda menggunakan topik MQTT, kendaraan Anda mengirim data menggunakan broker pesan AWS IoT MQTT. Anda harus memberikan AWS IoT FleetWise izin untuk berlangganan topik MQTT yang Anda tentukan. Jika Anda juga menggunakan AWS IoT Aturan untuk mengambil tindakan, atau merutekan data ke tujuan lain, Anda harus melampirkan kebijakan ke peran IAM untuk memungkinkan meneruskan data AWS IoT FleetWise ke Aturan IoT.

Selain itu, aplikasi atau perangkat Anda yang lain dapat berlangganan topik yang Anda tentukan untuk menerima data kendaraan dalam waktu dekat, dan aplikasi atau perangkat ini harus diberikan izin dan akses sesuai kebutuhan.

Untuk informasi selengkapnya tentang penggunaan MQTT serta peran serta izin yang diperlukan, lihat:

Sebelum Anda mulai, periksa yang berikut ini:

penting
  • Anda harus menggunakan AWS Wilayah yang sama saat membuat sumber daya kampanye kendaraan untuk AWS IoT FleetWise. Jika Anda beralih AWS Wilayah, Anda mungkin mengalami masalah saat mengakses sumber daya.

  • AWS IoT FleetWise tersedia di AS Timur (Virginia N.) dan Eropa (Frankfurt).

Anda dapat menggunakan AWS CLI untuk membuat peran IAM dengan kebijakan kepercayaan untuk pesan MQTT. Untuk membuat peran IAM, jalankan perintah berikut.

Untuk membuat peran IAM dengan kebijakan kepercayaan
  • Ganti IotTopicExecutionRole dengan nama peran yang Anda buat.

  • Ganti trust-policy dengan file JSON yang berisi kebijakan kepercayaan.

aws iam create-role --role-name IotTopicExecutionRole --assume-role-policy-document file://trust-policy.json
{ "Version": "2012-10-17", "Statement": [ { "Sid": "mqttTopicTrustPolicy", "Effect": "Allow", "Principal": { "Service": "iotfleetwise.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": [ "arn:aws:iotfleetwise:region:account-id:campaign/campaign-name" ], "aws:SourceAccount": [ "account-id" ] } } } ] }

Buat kebijakan izin untuk memberikan izin AWS FleetWise IoT untuk memublikasikan pesan ke topik MQTT yang Anda tentukan. Untuk membuat kebijakan izin, jalankan perintah berikut.

Untuk membuat kebijakan izin
  • Ganti AWSIoTFleetwiseAccessIotTopicPermissionsPolicy dengan nama kebijakan yang Anda buat.

  • Ganti permissions-policy dengan nama file JSON yang berisi kebijakan izin.

aws iam create-policy --policy-name AWSIoTFleetwiseAccessIotTopicPermissionsPolicy --policy-document file://permissions-policy.json
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "topic-arn" ] } ] }
Untuk melampirkan kebijakan izin ke peran IAM Anda
  1. Dari output, salin Nama Sumber Daya Amazon (ARN) dari kebijakan izin.

  2. Untuk melampirkan kebijakan izin IAM ke peran IAM Anda, jalankan perintah berikut.

    • Ganti permissions-policy-arn dengan ARN yang Anda salin di langkah sebelumnya.

    • Ganti IotTopicExecutionRole dengan nama peran IAM yang Anda buat.

    aws iam attach-role-policy --policy-arn permissions-policy-arn --role-name IotTopicExecutionRole

Untuk informasi selengkapnya, lihat Manajemen akses untuk AWS sumber daya di Panduan Pengguna IAM.

Berikan AWS IoT FleetWise akses ke tujuan Amazon S3

Saat Anda menggunakan tujuan Amazon S3, AWS IoT FleetWise mengirimkan data kendaraan ke bucket S3 Anda dan secara opsional dapat menggunakan AWS KMS kunci yang Anda miliki untuk enkripsi data. Jika pencatatan kesalahan diaktifkan, kirimkan AWS IoT FleetWise juga kesalahan pengiriman data ke grup CloudWatch log dan aliran Anda. Anda harus memiliki peran IAM saat membuat aliran pengiriman.

AWS IoT FleetWise menggunakan kebijakan bucket dengan prinsipal layanan untuk tujuan S3. Untuk informasi selengkapnya tentang menambahkan kebijakan bucket, lihat Menambahkan kebijakan bucket menggunakan konsol Amazon S3 di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Gunakan kebijakan akses berikut untuk mengaktifkan AWS IoT FleetWise akses bucket S3 Anda. Jika Anda tidak memiliki bucket S3, tambahkan s3:PutObjectAcl ke daftar tindakan Amazon S3. Ini memberi pemilik ember akses penuh ke objek yang dikirim oleh AWS IoT FleetWise. Untuk informasi selengkapnya tentang cara mengamankan akses ke objek di bucket, lihat contoh kebijakan Bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "iotfleetwise.amazonaws.com" ] }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::bucket-name" }, { "Effect": "Allow", "Principal": { "Service": [ "iotfleetwise.amazonaws.com" ] }, "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::bucket-name/*", "Condition": { "StringEquals": { "aws:SourceArn": "campaign-arn", "aws:SourceAccount": "account-id" } } } ] }

Kebijakan bucket berikut adalah untuk semua kampanye di akun di AWS Wilayah.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "iotfleetwise.amazonaws.com" ] }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::bucket-name" }, { "Effect": "Allow", "Principal": { "Service": [ "iotfleetwise.amazonaws.com" ] }, "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::bucket-name/*", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:iotfleetwise:region:account-id:campaign/*", "aws:SourceAccount": "account-id" } } } ] }

Jika Anda memiliki kunci KMS yang terpasang pada bucket S3 Anda, kunci tersebut memerlukan kebijakan berikut. Untuk informasi tentang manajemen kunci, lihat Melindungi data menggunakan enkripsi sisi server dengan AWS Key Management Service kunci (SSE-KMS) di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

{ "Version": "2012-10-17", "Effect": "Allow", "Principal": { "Service": "iotfleetwise.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" }
penting

Saat Anda membuat bucket, S3 akan membuat daftar kontrol akses default (ACL) yang memberi pemilik sumber daya kontrol penuh atas sumber daya. Jika AWS IoT tidak FleetWise dapat mengirimkan data ke S3, pastikan Anda menonaktifkan ACL pada bucket S3. Untuk informasi selengkapnya, lihat Menonaktifkan ACLs semua bucket baru dan menerapkan Kepemilikan Objek di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Berikan AWS IoT FleetWise akses ke tujuan Amazon Timestream

Saat Anda menggunakan tujuan Timestream, AWS IoT FleetWise mengirimkan data kendaraan ke tabel Timestream. Anda harus melampirkan kebijakan ke peran IAM untuk memungkinkan pengiriman data AWS IoT FleetWise ke Timestream.

Jika Anda menggunakan konsol untuk membuat kampanye, AWS IoT FleetWise secara otomatis akan melampirkan kebijakan yang diperlukan ke peran tersebut.

catatan

Amazon Timestream tidak tersedia di Wilayah Asia Pasifik (Mumbai).

Sebelum Anda mulai, periksa yang berikut ini:

penting
  • Anda harus menggunakan AWS Wilayah yang sama saat membuat sumber daya Timestream untuk AWS IoT FleetWise. Jika Anda beralih AWS Wilayah, Anda mungkin mengalami masalah saat mengakses sumber daya Timestream.

  • AWS IoT FleetWise tersedia di AS Timur (Virginia N.), Eropa (Frankfurt), dan Asia Pasifik (Mumbai).

  • Untuk daftar Wilayah yang didukung, lihat Titik akhir dan kuota Timestream di. Referensi Umum AWS

  • Anda harus memiliki database Timestream. Untuk tutorial, lihat Membuat database di Panduan Pengembang Amazon Timestream.

  • Anda harus memiliki tabel yang dibuat dalam database Timestream yang ditentukan. Untuk tutorial, lihat Membuat tabel di Panduan Pengembang Amazon Timestream.

Anda dapat menggunakan AWS CLI untuk membuat peran IAM dengan kebijakan kepercayaan untuk Timestream. Untuk membuat peran IAM, jalankan perintah berikut.

Untuk membuat peran IAM dengan kebijakan kepercayaan
  • Ganti TimestreamExecutionRole dengan nama peran yang Anda buat.

  • Ganti trust-policy dengan file.json yang berisi kebijakan kepercayaan.

aws iam create-role --role-name TimestreamExecutionRole --assume-role-policy-document file://trust-policy.json
{ "Version": "2012-10-17", "Statement": [ { "Sid": "timestreamTrustPolicy", "Effect": "Allow", "Principal": { "Service": "iotfleetwise.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": [ "arn:aws:iotfleetwise:region:account-id:campaign/campaign-name" ], "aws:SourceAccount": [ "account-id" ] } } } ] }

Buat kebijakan izin untuk memberikan izin AWS FleetWise IoT untuk menulis data ke Timestream. Untuk membuat kebijakan izin, jalankan perintah berikut.

Untuk membuat kebijakan izin
  • Ganti AWSIoTFleetwiseAccessTimestreamPermissionsPolicy dengan nama kebijakan yang Anda buat.

  • Ganti permissions-policy dengan nama file JSON yang berisi kebijakan izin.

aws iam create-policy --policy-name AWSIoTFleetwiseAccessTimestreamPermissionsPolicy --policy-document file://permissions-policy.json
{ "Version": "2012-10-17", "Statement": [ { "Sid": "timestreamIngestion", "Effect": "Allow", "Action": [ "timestream:WriteRecords", "timestream:Select", "timestream:DescribeTable" ], "Resource": "table-arn" }, { "Sid": "timestreamDescribeEndpoint", "Effect": "Allow", "Action": [ "timestream:DescribeEndpoints" ], "Resource": "*" } ] }
Untuk melampirkan kebijakan izin ke peran IAM Anda
  1. Dari output, salin Nama Sumber Daya Amazon (ARN) dari kebijakan izin.

  2. Untuk melampirkan kebijakan izin IAM ke peran IAM Anda, jalankan perintah berikut.

    • Ganti permissions-policy-arn dengan ARN yang Anda salin di langkah sebelumnya.

    • Ganti TimestreamExecutionRole dengan nama peran IAM yang Anda buat.

    aws iam attach-role-policy --policy-arn permissions-policy-arn --role-name TimestreamExecutionRole

Untuk informasi selengkapnya, lihat Manajemen akses untuk AWS sumber daya di Panduan Pengguna IAM.

Berikan AWS IoT Device Management izin untuk menghasilkan muatan untuk perintah jarak jauh dengan AWS IoT FleetWise

Bila Anda menggunakan fitur perintah jarak jauh untuk memulai eksekusi perintah, AWS IoT Device Management akan mengambil perintah dan parameter perintah dari permintaan yang masuk. Ini kemudian membutuhkan izin untuk mengakses sumber daya AWS FleetWise IoT untuk memvalidasi permintaan dan menghasilkan muatan. Muatan kemudian dikirim ke kendaraan melalui MQTT AWS IoT Device Management ke topik permintaan perintah yang telah dilanggani kendaraan Anda.

Anda harus terlebih dahulu membuat peran IAM yang memberikan izin AWS IoT Device Management yang diperlukan untuk menghasilkan payload. Kemudian, berikan ARN peran ini ke CreateCommandAPI menggunakan bidang. roleArn Berikut ini menunjukkan beberapa contoh kebijakan.

penting

Untuk peran IAM, Anda harus menggunakan yang Wilayah AWS sama dengan yang Anda buat kendaraan dan sumber daya perintah. Jika Anda beralih Wilayah AWS, Anda mungkin mengalami masalah saat mengakses sumber daya.

Peran IAM harus memiliki kebijakan kepercayaan berikut.

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

Contoh berikut menunjukkan cara memberikan izin untuk menghasilkan muatan untuk semua kendaraan yang terdaftar sebagai AWS IoT barang.

catatan
  • Kebijakan ini bisa terlalu permisif. Gunakan prinsip hak istimewa paling sedikit untuk memastikan bahwa Anda hanya memberikan izin yang diperlukan.

  • Untuk menolak izin sebagai gantinya, ubah "Effect": "Allow" ke "Effect": "Deny" dalam kebijakan IAM.

Dalam contoh ini, ganti:

  • <AWS_REGION>dengan Wilayah AWS tempat Anda menggunakan sumber daya AWS IoT FleetWise .

  • <ACCOUNT_ID>dengan Akun AWS nomor Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotfleetwise:GenerateCommandPayload", "Resource": "*" } ] }

Contoh berikut menunjukkan cara memberikan izin untuk menghasilkan muatan untuk kendaraan tertentu yang terdaftar sebagai sesuatu AWS IoT .

Dalam contoh ini, ganti:

  • <AWS_REGION>dengan Wilayah AWS tempat Anda menggunakan sumber daya AWS IoT FleetWise .

  • <ACCOUNT_ID>dengan Akun AWS nomor Anda.

  • <VEHICLE_NAME>dengan nama IoT untuk kendaraan Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotfleetwise:GenerateCommandPayload", "Resource": "arn:aws:iot:<AWS_REGION>:<ACCOUNT_ID>:thing/<VEHICLE_NAME>" } ] }

Contoh berikut menunjukkan cara memberikan izin untuk menghasilkan muatan untuk aktuator untuk kendaraan tertentu.

Dalam contoh ini, ganti:

  • <AWS_REGION>dengan Wilayah AWS tempat Anda menggunakan sumber daya AWS IoT FleetWise .

  • <ACCOUNT_ID>dengan Akun AWS nomor Anda.

  • <VEHICLE_NAME>dengan nama IoT untuk kendaraan Anda.

  • <SIGNAL_FQN>dengan nama sinyal, seperti<Vehicle.actuator2>.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": "iotfleetwise:GenerateCommandPayload", "Resource": "arn:aws:iot:<AWS_REGION>:<ACCOUNT_ID>:thing/<VEHICLE_NAME>", "Condition": { "ForAnyValue:StringEquals": { "iotfleetwise:Signals": ["<SIGNAL_FQN>"] } } } ] }

Contoh berikut menunjukkan cara memberikan izin untuk menghasilkan muatan untuk kendaraan tertentu dan templat status.

Dalam contoh ini, ganti:

  • <AWS_REGION>adalah Wilayah AWS tempat Anda menggunakan sumber daya AWS IoT FleetWise .

  • <ACCOUNT_ID>adalah Akun AWS nomor Anda.

  • <VEHICLE_NAME>adalah nama IoT untuk kendaraan Anda.

  • <STATE_TEMPLATE_ID>dengan pengenal template negara Anda.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": "iotfleetwise:GenerateCommandPayload", "Resource": [ "arn:aws:iot:<AWS_REGION>:<ACCOUNT_ID>:thing/<VEHICLE_NAME>", "arn:aws:iotfleetwise:<AWS_REGION>:<ACCOUNT_ID>:state-template/<STATE_TEMPLATE_ID>"] } ] }

Jika Anda telah mengaktifkan kunci KMS terkelola pelanggan AWS IoT FleetWise, maka contoh berikut menunjukkan cara memberikan izin untuk menghasilkan payload.

Dalam contoh ini, ganti:

  • <AWS_REGION>dengan Wilayah AWS tempat Anda menggunakan sumber daya AWS IoT FleetWise .

  • <ACCOUNT_ID>dengan Akun AWS nomor Anda.

  • <KMS_KEY_ID>dengan ID kunci KMS Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotfleetwise:GenerateCommandPayload", "Resource": "*" }, { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<AWS_REGION>:<ACCOUNT_ID>:key/<KMS_KEY_ID>" } ] }