Ikhtisar AWS IoT Greengrass keamanan - AWS IoT Greengrass

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

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

Ikhtisar AWS IoT Greengrass keamanan

AWS IoT Greengrass menggunakan sertifikat, AWS IoT kebijakan, serta kebijakan dan peran IAM X.509 untuk mengamankan aplikasi yang berjalan di perangkat di lingkungan Greengrass lokal Anda.

Diagram berikut menunjukkan komponen model AWS IoT Greengrass keamanan:

A - Peran layanan Greengrass

Peran IAM yang dibuat pelanggan diasumsikan oleh AWS IoT Greengrass saat mengakses AWS sumber daya Anda dari AWS IoT Core, AWS Lambda, dan layanan lainnya. AWS Untuk informasi selengkapnya, lihat Peran layanan Greengrass.

B - Sertifikat perangkat core

Sertifikat X.509 yang digunakan untuk mengautentikasi inti Greengrass dengan dan. AWS IoT Core AWS IoT Greengrass Untuk informasi selengkapnya, lihat Autentikasi dan otorisasi perangkat untuk AWS IoT Greengrass.

C - sertifikat perangkat

Sertifikat X.509 yang digunakan untuk mengautentikasi perangkat klien, yang juga dikenal sebagai perangkat yang terhubung, dengan dan. AWS IoT Core AWS IoT Greengrass Untuk informasi selengkapnya, lihat Autentikasi dan otorisasi perangkat untuk AWS IoT Greengrass.

D - Peran grup

Peran IAM yang dibuat pelanggan diasumsikan oleh AWS IoT Greengrass saat memanggil AWS layanan dari inti Greengrass.

Anda menggunakan peran ini untuk menentukan izin akses yang diperlukan oleh fungsi dan konektor Lambda yang ditentukan pengguna untuk AWS mengakses layanan, seperti DynamoDB. Anda juga menggunakannya untuk memungkinkan AWS IoT Greengrass mengekspor aliran manajer aliran ke AWS layanan dan menulis ke CloudWatch Log. Untuk informasi selengkapnya, lihat Peran grup Greengrass.

catatan

AWS IoT Greengrass tidak menggunakan peran eksekusi Lambda yang ditentukan AWS Lambda untuk versi cloud dari fungsi Lambda.

sertifikat server E - MQTT

Sertifikat yang digunakan untuk otentikasi timbal balik Transport Layer Security (TLS) antara perangkat inti Greengrass dan perangkat klien di grup Greengrass. Sertifikat ditandatangani oleh sertifikat CA grup, yang disimpan dalam AWS Cloud.

Alur kerja koneksi perangkat

Bagian ini menjelaskan bagaimana perangkat klien terhubung ke AWS IoT Greengrass layanan dan perangkat inti Greengrass. Perangkat klien adalah AWS IoT Core perangkat terdaftar yang berada dalam grup Greengrass yang sama dengan perangkat inti.

  • Perangkat inti Greengrass menggunakan sertifikat perangkat, kunci pribadi, dan sertifikat CA root AWS IoT Core untuk terhubung ke layanan. AWS IoT Greengrass Pada perangkat core, pada crypto objek dalam file konfigurasi menentukan path file untuk item ini.

  • Perangkat core Greengrass mengunduh informasi keanggotaan grup dari AWS IoT Greengrass layanan.

  • Ketika deployment dibuat untuk perangkat core Greengrass, Device Certificate Manager (DCM) menangani manajemen sertifikat server lokal untuk perangkat core Greengrass.

  • Perangkat klien terhubung ke AWS IoT Greengrass layanan menggunakan sertifikat perangkat, kunci pribadi, dan sertifikat AWS IoT Core root CA. Setelah membuat koneksi, perangkat klien menggunakan Layanan Greengrass Discovery untuk menemukan alamat IP perangkat inti Greengrass. Perangkat klien juga mengunduh sertifikat CA grup, yang digunakan untuk otentikasi timbal balik TLS dengan perangkat inti Greengrass.

  • Perangkat klien mencoba terhubung ke perangkat inti Greengrass, melewati sertifikat perangkat dan ID kliennya. Jika ID klien cocok dengan nama benda perangkat klien dan sertifikat valid (bagian dari grup Greengrass), koneksi dibuat. Jika tidak, koneksi dihentikan.

AWS IoT Kebijakan untuk perangkat klien harus memberikan greengrass:Discover izin untuk mengizinkan perangkat klien menemukan informasi konektivitas untuk inti. Untuk informasi selengkapnya tentang kebijakan laporan, lihat Otorisasi Discovery.

Mengkonfigurasi keamanan AWS IoT Greengrass

Untuk mengonfigurasi keamanan aplikasi Greengrass Anda
  1. Buat AWS IoT Core sesuatu untuk perangkat inti Greengrass Anda.

  2. Menghasilkan pasangan kunci dan sertifikat perangkat untuk perangkat core Greengrass Anda.

  3. Buat dan lampirkan AWS IoT kebijakan ke sertifikat perangkat. Sertifikat dan kebijakan memungkinkan akses dan layanan perangkat inti Greengrass. AWS IoT Core AWS IoT Greengrass Untuk informasi selengkapnya, lihat Minimal AWS IoT kebijakan untuk perangkat core.

    catatan

    Penggunaan variabel kebijakan benda (iot:Connection.Thing.*) dalam AWS IoT kebijakan untuk perangkat inti tidak didukung. Inti menggunakan sertifikat perangkat yang sama untuk membuat beberapa koneksi ke AWS IoT Core tetapi ID klien dalam koneksi mungkin tidak sama persis dengan nama hal inti.

  4. Buat Peran layanan Greengrass. Peran IAM ini memberi wewenang AWS IoT Greengrass untuk mengakses sumber daya dari AWS layanan lain atas nama Anda. Ini memungkinkan AWS IoT Greengrass untuk melakukan tugas-tugas penting, seperti mengambil AWS Lambda fungsi dan mengelola bayangan perangkat.

    Anda dapat menggunakan peran layanan yang sama di seluruh Wilayah AWS s, tetapi harus dikaitkan dengan peran Anda Akun AWS di setiap Wilayah AWS tempat yang Anda gunakan AWS IoT Greengrass.

  5. (Opsional) Buat Peran grup Greengrass. Peran IAM ini memberikan izin ke fungsi dan konektor Lambda yang berjalan pada inti Greengrass untuk memanggil layanan. AWS Misalnya, konektor Firehose Kinesis memerlukan izin untuk menulis catatan ke aliran pengiriman Amazon Data Firehose.

    Anda dapat melampirkan hanya satu peran untuk core Greengrass.

  6. Buat AWS IoT Core sesuatu untuk setiap perangkat yang terhubung ke inti Greengrass Anda.

    catatan

    Anda juga dapat menggunakan AWS IoT Core barang dan sertifikat yang ada.

  7. Buat sertifikat perangkat, pasangan kunci, dan AWS IoT kebijakan untuk setiap perangkat yang terhubung ke inti Greengrass Anda.

AWS IoT Greengrass prinsip keamanan inti

Inti Greengrass menggunakan prinsip keamanan berikut AWS IoT : klien, server MQTT lokal, dan manajer rahasia lokal. Konfigurasi untuk pelaku utama ini disimpan dalam crypto objek dalam config.json file konfigurasi. Untuk informasi selengkapnya, lihat AWS IoT Greengrass file konfigurasi core.

Konfigurasi ini mencakup jalur ke kunci privat yang digunakan oleh komponen pelaku utama untuk autentikasi dan enkripsi. AWS IoT Greengrass mendukung dua mode penyimpanan kunci privat: berbasis perangkat keras atau berbasis sistem file (default). Untuk informasi lebih lanjut tentang menyimpan kunci pada modul keamanan perangkat keras, lihat Integrasi keamanan perangkat keras.

AWS IoT Klien

AWS IoT Klien (klien IoT) mengelola komunikasi melalui internet antara inti Greengrass dan. AWS IoT Core AWS IoT Greengrass menggunakan sertifikat X.509 dengan kunci publik dan pribadi untuk otentikasi timbal balik saat membuat koneksi TLS untuk komunikasi ini. Untuk informasi lebih lanjut, lihat sertifikat X.509 dan AWS IoT Core dalam AWS IoT Core Panduan Developer.

Klien IoT mendukung sertifikat dan kunci RSA dan EC. Sertifikat dan jalur kunci privat ditentukan untuk IoTCertificate pelaku utama dalam config.json.

Server MQTT

Server MQTT lokal mengelola komunikasi melalui jaringan lokal antara inti Greengrass dan perangkat klien dalam grup. AWS IoT Greengrass menggunakan sertifikat X.509 dengan kunci publik dan pribadi untuk otentikasi timbal balik saat membuat koneksi TLS untuk komunikasi ini.

Secara default, AWS IoT Greengrass menghasilkan kunci pribadi RSA untuk Anda. Untuk mengonfigurasi core untuk menggunakan kunci privat yang berbeda, Anda harus menyediakan path kunci untuk utama MQTTServerCertificate di dalam config.json. Anda bertanggung jawab untuk memutar kunci yang disediakan pelanggan.

Support kunci privat
Kunci RSA Kunci EC
Tipe Kunci Supported Supported
Parameter Kunci Minimum 2048-bit length NIST P-256 or NIST P-384 curve
Format disk PKCS#1, PKCS#8 SECG1, PKCS#8
Versi GGC minimum
  • Gunakan kunci RSA default: 1.0

  • Tentukan kunci RSA: 1.7

  • Tentukan kunci EC: 1.9

Konfigurasi kunci privat menentukan proses terkait. Untuk daftar chiper suite yang core Greengrass mendukung sebagai server, lihat TLS cipher suite mendukung.

Jika tidak ada kunci privat yang ditentukan (default)
  • AWS IoT Greengrass memutar kunci berdasarkan pengaturan rotasi Anda.

  • core menghasilkan kunci RSA, yang digunakan untuk menghasilkan sertifikat.

  • Sertifikat server MQTT memiliki kunci publik RSA dan tanda tangan SHA-256 RSA.

Jika kunci privat RSA ditentukan (membutuhkan GGC v1.7 atau yang lebih baru)
  • Anda bertanggung jawab untuk memutar kunci.

  • core menggunakan kunci yang ditentukan untuk menghasilkan sertifikat.

  • Kunci RSA harus memiliki panjang minimum 2048 bit.

  • Sertifikat server MQTT memiliki kunci publik RSA dan tanda tangan SHA-256 RSA.

Jika kunci privat EC ditentukan (membutuhkan GGC v1.9 atau lebih baru)
  • Anda bertanggung jawab untuk memutar kunci.

  • core menggunakan kunci yang ditentukan untuk menghasilkan sertifikat.

  • Kunci privat EC harus menggunakan kurva NIST P-256 atau NIST P-384.

  • Sertifikat server MQTT memiliki kunci publik EC dan tanda tangan SHA-256 RSA.

    Sertifikat server MQTT yang disajikan oleh core memiliki tanda tangan SHA-256 RSA, terlepas dari tipe kunci. Untuk alasan ini, klien harus mendukung validasi sertifikat SHA-256 RSA untuk membuat koneksi aman dengan core.

Secrets Manager

Manajer rahasia lokal dengan aman mengelola salinan rahasia lokal yang Anda buat. AWS Secrets Manager Menggunakan kunci privat untuk mengamankan kunci data yang digunakan untuk mengenkripsi rahasia. Untuk informasi selengkapnya, lihat Men-deploy rahasia ke AWS IoT Greengrass core.

Secara default, kunci privat klien IoT digunakan, tetapi Anda dapat menentukan kunci privat yang berbeda untuk SecretsManager utama pada config.json. Hanya tipe kunci RSA yang didukung. Untuk informasi selengkapnya, lihat Tentukan kunci privat untuk enkripsi rahasia.

catatan

Saat ini, hanya AWS IoT Greengrass mendukung mekanisme padding PKCS #1 v1.5 untuk enkripsi dan dekripsi rahasia lokal saat menggunakan kunci pribadi berbasis perangkat keras. Jika Anda mengikuti instruksi yang disediakan vendor untuk membuat kunci pribadi berbasis perangkat keras secara manual, pastikan untuk memilih PKCS #1 v1.5. AWS IoT Greengrass tidak mendukung Padding Enkripsi Asimetris Optimal (OAEP).

Support kunci privat
Kunci RSA Kunci EC
Tipe Kunci Supported Not supported
Parameter Kunci Minimum 2048-bit length Not applicable
Format disk PKCS#1, PKCS#8 Not applicable
Versi GGC minimum 1.7 Not applicable

Langganan yang dikelola di dalam alur kerja pesan MQTT

AWS IoT Greengrass menggunakan tabel langganan untuk menentukan bagaimana pesan MQTT dapat dipertukarkan antara perangkat klien, fungsi, dan konektor dalam grup Greengrass, dan dengan atau layanan bayangan lokal. AWS IoT Core Setiap langganan menentukan sumber, target, dan topik MQTT (atau subjek) di mana pesan dikirim atau diterima. AWS IoT Greengrass memungkinkan pesan dikirim dari sumber ke target hanya jika langganan yang sesuai ditentukan.

Langganan menentukan aliran pesan dalam satu arah saja, dari sumber ke target. Untuk mendukung pertukaran pesan dua arah, Anda harus membuat dua langganan, satu untuk setiap arah.

TLS cipher suite mendukung

AWS IoT Greengrass menggunakan model keamanan AWS IoT Core transportasi untuk mengenkripsi komunikasi dengan cloud dengan menggunakan suite cipher TLS. Selain itu, AWS IoT Greengrass data dienkripsi saat istirahat (di cloud). Untuk informasi selengkapnya tentang keamanan AWS IoT Core transportasi dan cipher suite yang didukung, lihat Keamanan transportasi di Panduan AWS IoT Core Pengembang.

Cipher Suite yang Didukung untuk Komunikasi Jaringan Lokal

Berbeda dengan AWS IoT Core, AWS IoT Greengrass inti mendukung rangkaian cipher TLS jaringan lokal berikut untuk algoritma penandatanganan sertifikat. Semua chiper suites ini didukung ketika kunci privat disimpan pada sistem file. Subset didukung ketika core dikonfigurasi untuk menggunakan modul keamanan perangkat keras (HSM). Untuk informasi lebih lanjut, lihat AWS IoT Greengrass prinsip keamanan inti dan Integrasi keamanan perangkat keras. Tabel ini juga mencakup versi minimum perangkat lunak AWS IoT Greengrass Core yang diperlukan untuk dukungan.

Cipher Support HSM Versi GGC minimum
TLSv1.2 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA Supported 1.0
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Supported 1.0
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 Supported 1.0
TLS_RSA_WITH_AES_128_CBC_SHA Not supported 1.0
TLS_RSA_WITH_AES_128_GCM_SHA256 Not supported 1.0
TLS_RSA_WITH_AES_256_CBC_SHA Not supported 1.0
TLS_RSA_WITH_AES_256_GCM_SHA384 Not supported 1.0
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 Supported 1.9
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 Supported 1.9
TLSv1.1 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA Supported 1.0
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Supported 1.0
TLS_RSA_WITH_AES_128_CBC_SHA Not supported 1.0
TLS_RSA_WITH_AES_256_CBC_SHA Not supported 1.0
TLSv1.0 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA Supported 1.0
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Supported 1.0
TLS_RSA_WITH_AES_128_CBC_SHA Not supported 1.0
TLS_RSA_WITH_AES_256_CBC_SHA Not supported 1.0