Men-deploy rahasia ke AWS IoT Greengrass core - 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.

Men-deploy rahasia ke AWS IoT Greengrass core

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

AWS IoT Greengrass memungkinkan Anda mengautentikasi dengan layanan dan aplikasi dari perangkat Greengrass tanpa kata sandi hard-coding, token, atau rahasia lainnya.

AWS Secrets Manager adalah layanan yang dapat Anda gunakan untuk menyimpan dan mengelola rahasia Anda di cloud dengan aman. AWS IoT Greengrass memperluas Secrets Manager ke perangkat core Greengrass, sehingga konektor Anda dan fungsi Lambda dapat menggunakan rahasia lokal untuk berinteraksi dengan layanan dan aplikasi. Contohnya, konektor Twilio Notifications menggunakan token autentikasi yang tersimpan secara lokal.

Untuk mengintegrasikan rahasia ke grup Greengrass, Anda membuat sumber daya grup yang mereferensi rahasia Secrets Manager. Sumber daya rahasia ini mereferensi rahasia cloud oleh ARN. Untuk mempelajari cara membuat, mengelola, dan menggunakan sumber daya rahasia, lihat Bekerja dengan sumber daya rahasia.

AWS IoT Greengrass mengenkripsi rahasia Anda saat transit dan saat tidak digunakan. Selama deployment grup, AWS IoT Greengrass mengambil rahasia dari Secrets Manager dan menciptakan lokal, salinan terenkripsi pada core Greengrass. Setelah Anda memutar rahasia cloud Anda di Secrets Manager, redeploy grup untuk men-deploy nilai diperbarui ke core.

Diagram berikut menunjukkan proses tingkat tinggi penggelaran rahasia ke core. Rahasia dienkripsi saat transit dan saat tidak digunakan.


            AWS IoT Greengrass mengambil rahasia dari AWS Secrets Manager dan men-deploy sebagai sumber rahasia ke perangkat core, di mana hal itu tersedia untuk konektor dan fungsi Lambda.

Menggunakan AWS IoT Greengrass untuk menyimpan rahasia Anda secara lokal memberikan keuntungan berikut:

  • Dipisah dari kode (tidak hard-coded). Hal ini mendukung kredensial yang dikelola secara terpusat dan membantu melindungi data sensitif dari risiko kompromi.

  • Tersedia untuk skenario offline. Konektor dan fungsi dapat mengakses layanan dan perangkat lunak lokal dengan aman ketika terputus dari internet.

  • Akses yang dikendalikan ke rahasia. Hanya konektor dan fungsi terotorisasi dalam grup yang dapat mengakses rahasia Anda. AWS IoT Greengrass menggunakan enkripsi kunci privat untuk mengamankan rahasia Anda. Rahasia dienkripsi saat transit dan saat tidak digunakan. Untuk informasi selengkapnya, lihat Enkripsi rahasia.

  • Rotasi terkontrol. Setelah Anda memutar rahasia Anda di Secrets Manager, redeploy grup Greengrass untuk memperbarui salinan lokal rahasia Anda. Untuk informasi selengkapnya, lihat Membuat dan mengelola rahasia.

    penting

    AWS IoT Greengrass tidak secara otomatis memperbarui nilai-nilai rahasia lokal setelah versi cloud diputar. Untuk memperbarui nilai-nilai lokal, Anda harus redeploy grup.

Enkripsi rahasia

AWS IoT Greengrass mengenkripsi rahasia saat transit dan saat tidak digunakan.

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 Lambda Greengrass.

Enkripsi dalam transit

AWS IoT Greengrass menggunakan Transport Layer Security (TLS) untuk mengenkripsi semua komunikasi melalui internet dan jaringan lokal. Hal ini melindungi rahasia saat transit, yang muncul ketika rahasia diambil dari Secrets Manager dan di-deploy ke core. Untuk dukungan TLS cipher suite, lihat TLS cipher suite mendukung.

Enkripsi saat diam

AWS IoT Greengrass menggunakan kunci privat yang ditentukan dalam config.json untuk enkripsi rahasia yang disimpan pada core. Untuk alasan ini, penyimpanan yang aman dengan kunci privat sangat penting untuk melindungi rahasia lokal. Di AWS model tanggung jawab bersama, merupakan tanggung jawab pelanggan untuk menjamin penyimpanan kunci privat yang aman pada perangkat core.

AWS IoT Greengrass mendukung dua mode penyimpanan kunci privat:

  • Menggunakan modul keamanan perangkat keras. Untuk informasi selengkapnya, lihat Integrasi keamanan perangkat keras.

    catatan

    Saat ini, AWS IoT Greengrass hanya mendukung mekanisme padding PKCS #1 v1.5 untuk enkripsi dan dekripsi rahasia lokal ketika menggunakan kunci privat berbasis perangkat keras. Jika Anda mengikuti petunjuk yang disediakan vendor untuk secara manual menghasilkan kunci privat berbasis perangkat keras, pastikan untuk memilih PKCS #1 v1.5. AWS IoT Greengrass tidak mendukung Optimal Asymmetric Encryption Padding (OAEP).

  • Menggunakan izin sistem file (default).

Kunci privat digunakan untuk mengamankan kunci data, yang digunakan untuk mengenkripsi rahasia lokal. Kunci data diputar dengan setiap deployment grup.

Core AWS IoT Greengrass adalah satu-satunya entitas yang memiliki akses ke kunci privat. Konektor Greengrass atau fungsi Lambda yang berafiliasi dengan sumber daya rahasia mendapatkan nilai rahasia dari core.

Persyaratan

Ini adalah persyaratan untuk dukungan rahasia lokal:

  • Anda harus menggunakan AWS IoT Greengrass Core v1.7 atau yang lebih baru.

  • 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.

  • Kunci privat yang digunakan untuk enkripsi rahasia lokal harus ditentukan dalam file konfigurasi Greengrass. Secara default, AWS IoT Greengrass menggunakan kunci privat core yang disimpan dalam sistem file. Untuk menyediakan kunci privat milik Anda sendiri, lihat Tentukan kunci privat untuk enkripsi rahasia. Hanya jenis kunci RSA yang didukung.

    catatan

    Saat ini, AWS IoT Greengrass hanya mendukung mekanisme padding PKCS #1 v1.5 untuk enkripsi dan dekripsi rahasia lokal ketika menggunakan kunci privat berbasis perangkat keras. Jika Anda mengikuti petunjuk yang disediakan vendor untuk secara manual menghasilkan kunci privat berbasis perangkat keras, pastikan untuk memilih PKCS #1 v1.5. AWS IoT Greengrass tidak mendukung Optimal Asymmetric Encryption Padding (OAEP).

  • AWS IoT Greengrass harus diberikan izin untuk mendapatkan nilai-nilai rahasia Anda. Hal ini memungkinkan AWS IoT Greengrass untuk mengambil nilai-nilai selama deployment grup. Jika Anda menggunakan peran layanan default Greengrass, maka AWS IoT Greengrass memiliki akses ke rahasia pada nama yang dimulai dengan greengrass-. Untuk menyesuaikan akses, lihat Mengizinkan AWS IoT Greengrass untuk mendapatkan nilai rahasia.

    catatan

    Kami menyarankan agar Anda menggunakan konvensi penamaan ini untuk mengidentifikasi rahasia yang diizinkan AWS IoT Greengrass untuk mengakses, bahkan jika Anda menyesuaikan izin. Konsol tersebut menggunakan izin yang berbeda untuk membaca rahasia Anda, jadi Anda mungkin dapat memilih rahasia di konsol tersebut di mana AWS IoT Greengrass tidak memiliki izin untuk mengambil. Menggunakan konvensi penamaan dapat membantu menghindari konflik izin, yang mengakibatkan error deployment.

Tentukan kunci privat untuk enkripsi rahasia

Dalam prosedur ini, Anda menyediakan jalur ke kunci privat yang digunakan untuk enkripsi rahasia lokal. Hal ini harus menjadi kunci RSA dengan panjang minimum 2048 bit. Untuk informasi lebih lanjut tentang kunci privat yang digunakan pada core AWS IoT Greengrass ini, lihat AWS IoT Greengrass prinsip keamanan inti.

AWS IoT Greengrass mendukung dua mode penyimpanan kunci privat: berbasis perangkat keras atau berbasis sistem file (default). Untuk informasi selengkapnya, lihat Enkripsi rahasia.

Ikuti prosedur ini hanya jika Anda ingin mengubah konfigurasi default, yang menggunakan kunci privat core dalam sistem file. Langkah-langkah ini ditulis dengan asumsi bahwa Anda membuat grup dan core seperti yang dijelaskan di Modul 2 dari tutorial Memulai Dengan.

  1. Buka file config.json yang terletak di direktori /greengrass-root/config ini.

    catatan

    greengrass-root mewakili jalur di mana perangkat lunak AWS IoT Greengrass core diinstal pada perangkat Anda. Biasanya, adalah direktori /greengrass ini.

  2. Di objek crypto.principals.SecretsManager tersebut, untuk properti privateKeyPath ini, masukkan jalur dari kunci privat:

    • Jika kunci privat Anda disimpan dalam sistem file, tentukan jalur absolut ke kunci. Misalnya:

      "SecretsManager" : { "privateKeyPath" : "file:///somepath/hash.private.key" }
    • Jika kunci privat Anda disimpan dalam modul keamanan perangkat keras (HSM), tentukan jalur menggunakan skema URI RFC 7512 PKC #11 ini. Misalnya:

      "SecretsManager" : { "privateKeyPath" : "pkcs11:object=private-key-label;type=private" }

      Untuk informasi selengkapnya, lihat Konfigurasi keamanan perangkat keras untuk AWS IoT Greengrass core.

      catatan

      Saat ini, AWS IoT Greengrass hanya mendukung mekanisme padding PKCS #1 v1.5 untuk enkripsi dan dekripsi rahasia lokal ketika menggunakan kunci privat berbasis perangkat keras. Jika Anda mengikuti petunjuk yang disediakan vendor untuk secara manual menghasilkan kunci privat berbasis perangkat keras, pastikan untuk memilih PKCS #1 v1.5. AWS IoT Greengrass tidak mendukung Optimal Asymmetric Encryption Padding (OAEP).

Mengizinkan AWS IoT Greengrass untuk mendapatkan nilai rahasia

Dalam prosedur ini, Anda menambahkan kebijakan inline agar peran layanan Greengrass memungkinkan AWS IoT Greengrass untuk mendapatkan nilai-nilai rahasia Anda.

Ikuti prosedur ini hanya jika Anda ingin memberikan AWS IoT Greengrass izin kustom untuk rahasia Anda atau jika peran layanan Greengrass Anda tidak termasuk Kebijakan terkelola AWSGreengrassResourceAccessRolePolicy ini. AWSGreengrassResourceAccessRolePolicy memberikan akses ke rahasia pada nama yang dimulai dengan greengrass-.

  1. Jalankan perintah CLI berikut untuk mendapatkan ARN dari peran layanan Greengrass:

    aws greengrass get-service-role-for-account --region region

    ARN yang kembali berisi nama peran.

    { "AssociatedAt": "time-stamp", "RoleArn": "arn:aws:iam::account-id:role/service-role/role-name" }

    Anda menggunakan ARN atau nama pada langkah berikut.

  2. Menambahkan kebijakan inline yang mengizinkan tindakan secretsmanager:GetSecretValue ini. Untuk instruksi, lihat Menambahkan dan menghapus kebijakan IAM di Panduan Pengguna IAM.

    Anda dapat memberikan akses terperinci dengan daftar rahasia secara eksplisit atau menggunakan wildcard skema penamaan * ini, atau Anda dapat memberikan akses bersyarat ke versi atau tag rahasia. Misalnya, kebijakan berikut mengizinkan AWS IoT Greengrass untuk membaca hanya rahasia yang ditentukan.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region:account-id:secret:greengrass-SecretA-abc", "arn:aws:secretsmanager:region:account-id:secret:greengrass-SecretB-xyz" ] } ] }
    catatan

    Jika Anda menggunakan kunci AWS KMS yang dikelola pelanggan untuk mengenkripsi rahasia, peran layanan Greengrass juga harus mengizinkan tindakan kms:Decrypt ini.

Untuk informasi lebih lanjut tentang kebijakan IAM untuk Secrets Manager, lihat Autentikasi dan kontrol akses untuk AWS Secrets Manager dan Tindakan, sumber daya, dan kunci konteks yang dapat Anda gunakan dalam kebijakan IAM atau kebijakan rahasia untuk AWS Secrets Manager di AWS Secrets Manager Panduan Pengguna.

Lihat juga