Cara membuat sumber daya rahasia (konsol) - 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.

Cara membuat sumber daya rahasia (konsol)

Fitur ini tersedia untuk AWS IoT Greengrass Core v1.7 dan yang lebih baru.

Tutorial ini menunjukkan cara menggunakan AWS Management Console untuk menambahkan Sumber daya rahasia ke grup Greengrass. Sumber daya rahasia adalah referensi untuk sebuah rahasia dari AWS Secrets Manager. Untuk informasi selengkapnya, lihat Men-deploy rahasia ke AWS IoT Greengrass core.

Pada perangkat core AWS IoT Greengrass tersebut, konektor dan fungsi Lambda dapat menggunakan sumber daya rahasia untuk mengautentikasi dengan layanan dan aplikasi, tanpa kata sandi hard-coding, token, atau kredensial lainnya.

Dalam tutorial ini, Anda mulai dengan membuat rahasia di konsol AWS Secrets Manager tersebut. Kemudian, di konsol AWS IoT Greengrass tersebut, Anda menambahkan sumber daya rahasia untuk grup Greengrass dari grup halaman Sumber Daya ini. Sumber daya rahasia ini mereferensi rahasia Secrets Manager. Kemudian, Anda melampirkan sumber rahasia ke fungsi Lambda, yang memungkinkan fungsi untuk mendapatkan nilai dari rahasia lokal.

catatan

Sebagai alternatif, konsol memungkinkan Anda membuat sumber rahasia dan rahasia saat Anda mengonfigurasi konektor atau fungsi Lambda. Anda dapat melakukan hal ini dari konektor halaman Mengonfigurasi parameter atau halaman fungsi Lambda Sumber Daya tersebut.

Hanya konektor yang berisi parameter rahasia yang bisa mengakses rahasia. Untuk tutorial yang menunjukkan bagaimana konektor Twilio Notifications menggunakan token autentikasi yang tersimpan secara lokal, lihat Memulai dengan konektor Greengrass (konsol).

Tutorial ini berisi langkah-langkah tingkat tinggi berikut:

Tutorial akan memakan waktu sekitar 20 menit untuk menyelesaikannya.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan:

  • Sebuah grup Greengrass dan core Greengrass (v1.7 atau yang lebih baru). Untuk mempelajari cara membuat grup Greengrass dan core, lihat Memulai dengan AWS IoT Greengrass. Tutorial Memulai Dengan juga mencakup langkah-langkah untuk menginstal perangkat lunak AWS IoT Greengrass Core.

  • AWS IoT Greengrass harus dikonfigurasi untuk support rahasia lokal. Untuk informasi lebih lanjut, lihat Persyaratan Rahasia.

    catatan

    Persyaratan ini mencakup akses ke rahasia Secrets Manager Anda. Jika Anda menggunakan peran layanan default Greengrass, Greengrass memiliki izin untuk mendapatkan nilai-nilai rahasia pada nama yang dimulai dengan Greengrass-.

  • Untuk mendapatkan nilai-nilai rahasia lokal, fungsi Lambda yang ditetapkan pengguna milik Anda harus menggunakan AWS IoT Greengrass core SDK v1.3.0 atau yang lebih baru.

Langkah 1: Buat rahasia Secrets Manager

Pada langkah ini, Anda menggunakan konsol AWS Secrets Manager untuk membuat rahasia.

  1. Masuk ke AWS Secrets Manager konsol.

    catatan

    Untuk informasi lebih lanjut tentang proses ini, lihat Langkah 1: Buat dan simpan rahasia Anda di AWS Secrets Manager dalam AWS Secrets Manager Panduan Pengguna.

  2. Pilih Simpan rahasia baru.

  3. Di bawah Pilih tipe rahasia, pilih Jenis rahasia lainnya.

  4. Di bawah Tentukan pasangan nilai kunci yang akan disimpan untuk rahasia ini:

    • Untuk Kunci, masukkan test.

    • Untuk Nilai, masukkan abcdefghi.

  5. Tetap pilih aws/secretsmanager untuk kunci enkripsi, lalu pilih Berikutnya.

    catatan

    Anda tidak dikenakan biaya oleh AWS KMS jika Anda menggunakan kunci mengelola AWS default yang dibuat oleh Secrets Manager di akun Anda.

  6. Untuk Nama rahasia, masukkan greengrass-TestSecret, dan pilih Selanjutnya.

    catatan

    Secara default, peran layanan Greengrass memungkinkan AWS IoT Greengrass untuk mendapatkan nilai rahasia dengan nama yang dimulai dengan Greengrass-. Untuk informasi lebih lanjut, lihat persyaratan rahasia.

  7. Tutorial ini tidak memerlukan rotasi, jadi pilih nonaktifkan rotasi otomatis, lalu pilih Berikutnya.

  8. Pada halaman Tinjauan tersebut, tinjau pengaturan Anda, dan kemudian pilih Menyimpan.

    Selanjutnya, Anda membuat sumber daya rahasia dalam grup Greengrass Anda yang mereferensi rahasia.

Langkah 2: Menambahkan sumber daya rahasia ke grup Greengrass

Pada langkah ini, Anda mengonfigurasi sumber daya grup yang mereferensi rahasia Secrets Manager.

  1. Di panel navigasi AWS IoT konsol, di bawah Kelola, perluas perangkat Greengrass, lalu pilih Grup (V1).

  2. Pilih grup yang ingin Anda tambahkan sumber daya rahasia.

  3. Pada halaman konfigurasi grup, pilih tab Sumber Daya, lalu gulir ke bawah ke bagian Rahasia. Bagian Rahasia menampilkan sumber daya rahasia milik grup. Anda dapat menambahkan, mengedit, dan menghapus sumber daya rahasia dari bagian ini.

    catatan

    Sebagai alternatif, konsol tersebut mengizinkan Anda membuat sumber rahasia dan rahasia saat Anda mengonfigurasi konektor atau fungsi Lambda. Anda dapat melakukan hal ini dari konektor halaman Mengonfigurasi parameter atau fungsi Lambda halaman Sumber Daya ini.

  4. Pilih Tambah di bawah bagian Rahasia.

  5. Pada halaman Tambahkan sumber daya rahasia, MyTestSecret masukkan nama Sumber Daya.

  6. Di bawah Rahasia, pilih greengrass-. TestSecret

  7. Di bagian Pilih label (Opsional), label AWSCURRENT pementasan mewakili versi terbaru dari rahasia. Label ini selalu disertakan dalam sumber rahasia.

    catatan

    Tutorial ini hanya membutuhkan AWSCURRENT label. Anda dapat secara opsional menyertakan label yang diperlukan oleh fungsi Lambda atau konektor.

  8. Pilih Tambahkan sumber daya.

Langkah 3: Buat paket deployment fungsi Lambda

Untuk membuat fungsi Lambda, Anda harus terlebih dahulu membuat fungsi Lambda paket deployment yang berisi kode fungsi dan dependensi. Fungsi Greengrass Lambda membutuhkan AWS IoT Greengrass Core SDK untuk tugas seperti berkomunikasi dengan pesan MQTT di lingkungan core dan mengakses rahasia lokal. Tutorial ini membuat fungsi Python, sehingga Anda menggunakan versi Python dari SDK dalam paket deployment.

catatan

Untuk mendapatkan nilai-nilai rahasia lokal, fungsi Lambda yang ditetapkan pengguna milik Anda harus menggunakan AWS IoT Greengrass core SDK v1.3.0 atau yang lebih baru.

  1. Dari halaman unduh AWS IoT Greengrass Core SDK tersebut, unduh AWS IoT Greengrass Core SDK for Python ke komputer Anda.

  2. Unzip paket yang diunduh untuk mendapatkan SDK. SDK adalah folder greengrasssdk tersebut.

  3. Simpan fungsi kode Python berikut dalam sebuah file lokal bernama secret_test.py.

    import greengrasssdk secrets_client = greengrasssdk.client("secretsmanager") iot_client = greengrasssdk.client("iot-data") secret_name = "greengrass-TestSecret" send_topic = "secrets/output" def function_handler(event, context): """ Gets a secret and publishes a message to indicate whether the secret was successfully retrieved. """ response = secrets_client.get_secret_value(SecretId=secret_name) secret_value = response.get("SecretString") message = ( f"Failed to retrieve secret {secret_name}." if secret_value is None else f"Successfully retrieved secret {secret_name}." ) iot_client.publish(topic=send_topic, payload=message) print("Published: " + message)

    Fungsi get_secret_value support nama atau ARN dari rahasia Secrets Manager untuk nilai SecretId tersebut. Contoh ini menggunakan nama rahasia. Untuk contoh rahasia ini, AWS IoT Greengrass mengembalikan pasangan nilai kunci: {"test":"abcdefghi"}.

    penting

    Pastikan bahwa fungsi Lambda yang ditetapkan pengguna milik Anda dapat menangani rahasia dengan aman dan jangan mencatat data sensitif apa pun yang disimpan dalam rahasia. Untuk informasi lebih lanjut, lihat Mengurangi risiko Pencatatan dan Debugging fungsi Lambda Anda dalam AWS Secrets Manager Panduan Pengguna. Meskipun dokumentasi ini secara khusus mengacu pada fungsi rotasi, rekomendasi juga berlaku untuk fungsi Greengrass Lambda.

  4. Zip item berikut ke dalam file bernama secret_test_python.zip. Ketika Anda membuat file ZIP, termasuk hanya kode dan dependensi, bukan folder yang berisi.

    • secret_test.py. Logika aplikasi.

    • greengrasssdk. Diperlukan perpustakaan untuk semua fungsi Python Greengrass Lambda.

    Ini adalah paket deployment fungsi Lambda Anda.

Langkah 4: Buat fungsi Lambda

Pada langkah ini, Anda menggunakan konsol AWS Lambda untuk membuat fungsi Lambda dan mengonfigurasinya agar menggunakan paket deployment Anda. Kemudian, Anda mempublikasikan versi fungsi dan membuat alias.

  1. Pertama, buat fungsi Lambda.

    1. Di AWS Management Console, pilih Layanan, dan buka konsol AWS Lambda tersebut.

    2. Pilih Buat fungsi dan kemudian Tulis dari awal.

    3. Di bagian Informasi dasar tersebut, gunakan nilai-nilai berikut:

      • Untuk Nama fungsi, masukkan SecretTest.

      • Untuk Waktu pengoperasian, pilih Python 3.7.

      • Untuk Izin, pertahankan pengaturan default. Hal ini menciptakan peran eksekusi yang memberikan izin Lambda basic. Peran ini tidak digunakan oleh AWS IoT Greengrass.

    4. Di bagian bawah halaman, pilih Buat Fungsi.

  2. Selanjutnya, daftarkan handler dan unggah paket deployment fungsi Lambda Anda.

    1. Pada tab Kode ini, di bawah Sumber kode, pilih Unggah dari. Dari dropdown, pilih file .zip.

      Mengunggah dari dropdown dengan file .zip disorot.
    2. Pilih Mengunggah, lalu pilih paket deployment secret_test_python.zip Anda. Lalu, pilih Simpan.

    3. Pada tab Kode fungsi, di bawah Pengaturan waktu aktif, pilih Edit, dan kemudian masukkan nilai-nilai berikut.

      • Untuk Waktu pengoperasian, pilih Python 3.7.

      • Untuk Handler, masukkan secret_test.function_handler

    4. Pilih Save (Simpan).

      catatan

      Tombol Tes pada konsol AWS Lambda tidak bekerja dengan fungsi ini. Pada AWS IoT Greengrass Core SDK tidak berisi modul yang diperlukan untuk menjalankan fungsi Greengrass Lambda Anda secara independen di konsol AWS Lambda tersebut. Modul-modul ini (misalnya, greengrass_common) dipasok ke fungsi setelah mereka di-deploy ke core Greengrass Anda.

  3. Sekarang, publikasikan versi pertama fungsi Lambda Anda dan membuat alias untuk versi.

    catatan

    Grup Greengrass dapat mereferensi fungsi Lambda dengan alias (direkomendasikan) atau dengan versi. Menggunakan alias membuatnya lebih mudah untuk mengelola pembaruan kode karena Anda tidak perlu mengubah tabel langganan atau definisi grup ketika kode fungsi diperbarui. Sebaliknya, Anda hanya mengarahkan alias ke versi fungsi baru.

    1. Dari menu Tindakan ini, pilih Terbitkan versi baru.

    2. Untuk Versi Deskripsi, masukkan First version, lalu pilih Publikasikan.

    3. Pada halaman konfigurasi SecretTest: 1, dari menu Tindakan, pilih Buat alias.

    4. Pada halaman Buat alias baru ini, gunakan nilai-nilai berikut:

      • Untuk Nama, masukkan GG_SecretTest.

      • Untuk Versi, pilih 1.

      catatan

      AWS IoT Greengrass tidak support alias Lambda untuk versi $TERBARU ini.

    5. Pilih Create (Buat).

Sekarang Anda siap untuk menambahkan fungsi Lambda ke grup Greengrass Anda dan melampirkan sumber daya rahasia.

Langkah 5: Menambahkan fungsi Lambda ke grup Greengrass

Pada langkah ini, Anda akan menambahkan fungsi Lambda ke grup Greengrass di konsol AWS IoT tersebut.

  1. Pada halaman konfigurasi grup, pilih tab fungsi Lambda.

  2. Di bawah bagian Fungsi Lambda Saya, pilih Tambah.

  3. Untuk fungsi Lambda, pilih. SecretTest

  4. Untuk versi fungsi Lambda, pilih alias ke versi yang Anda terbitkan.

Selanjutnya, konfigurasikan siklus hidup fungsi Lambda.

  1. Di bagian konfigurasi fungsi Lambda, buat pembaruan berikut.

    catatan

    Kami merekomendasikan Anda menjalankan fungsi Lambda Anda tanpa kontainerisasi kecuali kasus bisnis Anda memerlukannya. Hal ini membantu mengaktifkan akses ke perangkat GPU dan kamera Anda tanpa mengonfigurasi sumber daya perangkat. Jika Anda menjalankan tanpa kontainerisasi, Anda juga harus memberikan akses root ke Fungsi Lambda AWS IoT Greengrass Anda.

    1. Untuk berjalan tanpa kontainerisasi:

    2. Untuk menjalankan dalam mode kontainer sebagai gantinya:

      catatan

      Kami tidak merekomendasikan untuk dijalankan dalam mode kontainer kecuali jika kasus bisnis Anda memerlukannya.

      • Untuk pengguna dan grup Sistem, pilih Gunakan grup default.

      • Untuk kontainerisasi fungsi Lambda, pilih Gunakan default grup.

      • Untuk Batas memori, masukkan 1024 MB.

      • Untuk Timeout, masukkan 10 seconds.

      • Untuk Pinned, pilih True.

        Untuk informasi selengkapnya, lihat Konfigurasi siklus hidup untuk fungsi Greengrass Lambda.

      • Di bawah Parameter Tambahan, untuk akses Baca ke direktori /sys, pilih Diaktifkan.

  2. Pilih Tambahkan fungsi Lambda.

Selanjutnya, kaitkan sumber daya rahasia dengan fungsinya.

Langkah 6: Lampirkan sumber daya rahasia ke fungsi Lambda

Pada langkah ini, Anda mengaitkan sumber daya rahasia ke fungsi Lambda di grup Greengrass Anda. Ini mengaitkan sumber daya dengan fungsi, yang memungkinkan fungsi untuk mendapatkan nilai rahasia lokal.

  1. Pada halaman konfigurasi grup, pilih tab fungsi Lambda.

  2. Pilih SecretTestfungsinya.

  3. Pada halaman detail fungsi, pilih Resources.

  4. Gulir ke bagian Rahasia dan pilih Associate.

  5. Pilih MyTestSecret, lalu pilih Associate.

Langkah 7: Menambahkan langganan ke grup Greengrass

Pada langkah ini, Anda akan menambahkan langganan yang memungkinkan AWS IoT dan fungsi Lambda untuk bertukar pesan. Satu langganan memungkinkan AWS IoT untuk memanggil fungsi, dan memungkinkan fungsi untuk mengirim data output ke AWS IoT.

  1. Pada halaman konfigurasi grup, pilih tab Langganan, lalu pilih Tambah Langganan.

  2. Buat langganan yang mengizinkan AWS IoT untuk mempublikasikan pesan ke fungsi.

    Pada halaman konfigurasi grup, pilih tab Langganan, lalu pilih Tambahkan langganan.

  3. Pada halaman Buat langganan, konfigurasikan sumber dan target, sebagai berikut:

    1. Pada tipe Sumber, pilih fungsi Lambda, lalu pilih IoT Cloud.

    2. Di Jenis target, pilih Layanan, lalu pilih SecretTest.

    3. Di filter Topik, masukkansecrets/input, lalu pilih Buat langganan.

  4. Tambahkan langganan kedua. Pilih tab Langganan, pilih Tambahkan langganan, dan konfigurasikan sumber dan target, sebagai berikut:

    1. Di tipe Sumber, pilih Layanan, lalu pilih SecretTest.

    2. Pada tipe Target, pilih fungsi Lambda, lalu pilih IoT Cloud.

    3. Di filter Topik, masukkansecrets/output, lalu pilih Buat langganan.

Langkah 8: Men-deploy grup Greengrass

Men-deploy grup ke perangkat core. Selama deployment, AWS IoT Greengrass mengambil nilai rahasia dari Secrets Manager dan membuat salinan lokal yang dienkripsi pada core.

  1. Pastikan bahwa AWS IoT Greengrass core sedang berjalan. Jalankan perintah berikut di terminal Raspberry Pi Anda, sesuai kebutuhan.

    1. Untuk memeriksa apakah daemon sedang berjalan:

      ps aux | grep -E 'greengrass.*daemon'

      Jika outputnya berisi entri root untuk /greengrass/ggc/packages/ggc-version/bin/daemon, maka daemon sedang berjalan.

      catatan

      Versi di jalur tergantung pada versi perangkat lunak AWS IoT Greengrass core yang diinstal pada perangkat core Anda.

    2. Untuk memulai daemon:

      cd /greengrass/ggc/core/ sudo ./greengrassd start
  2. Pada halaman konfigurasi grup, pilih Deploy.

    1. Di tab Fungsi Lambda, di bawah bagian Fungsi Lambda Sistem, pilih detektor IP dan pilih Edit.

    2. Dalam kotak dialog Edit pengaturan detektor IP, pilih Secara otomatis mendeteksi dan mengganti titik akhir broker MQTT.

    3. Pilih Save (Simpan).

      Hal ini mengaktifkan perangkat untuk secara otomatis memperoleh informasi konektivitas untuk core, seperti alamat IP, DNS, dan nomor port. Deteksi otomatis direkomendasikan, namun AWS IoT Greengrass juga support titik akhir yang ditentukan secara manual. Anda hanya diminta untuk metode penemuan pertama kalinya bahwa grup di-deploy.

      catatan

      Jika diminta, berikan izin untuk membuat Peran layanan Greengrass dan kaitkan dengan Akun AWS Anda pada Wilayah AWS. Peran ini memungkinkan AWS IoT Greengrass untuk mengakses sumber daya Anda di layanan AWS ini.

      Halaman Deployment menampilkan timestamp deployment, ID versi, dan status. Setelah selesai, status yang ditampilkan untuk penerapan harus Selesai.

      Untuk bantuan penyelesaian masalah, lihat Pemecahan Masalah AWS IoT Greengrass.

Tes fungsi Lambda

  1. Di halaman beranda konsol AWS IoT tersebut, pada panel sebelah kiri, pilih Tes.

  2. Untuk Berlangganan topik, gunakan nilai-nilai berikut, dan kemudian pilih Langganan.

    Properti

    Nilai

    Topik langganan

    rahasia/output

    Tampilan muatan MQTT

    Tampilkan muatan sebagai string

  3. Untuk Publikasikan ke topik, gunakan nilai-nilai berikut, dan kemudian pilih Publikasikan untuk memanggil fungsi.

    Properti

    Nilai

    Topik

    rahasia/input

    Message

    Pertahankan pesan default. Publikasi pesan memanggil fungsi Lambda, tetapi fungsi dalam tutorial ini tidak memproses tubuh pesan.

    Jika berhasil, fungsi menunjukkan pesan "Sukses".

Lihat juga