

Pemberitahuan akhir dukungan: Pada 7 Oktober 2026, AWS akan menghentikan dukungan untuk. AWS IoT Greengrass Version 1 Setelah 7 Oktober 2026, Anda tidak akan lagi dapat mengakses sumber daya. AWS IoT Greengrass V1 Untuk informasi lebih lanjut, silakan kunjungi [Migrasi dari AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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

# Menyebarkan rahasia ke inti AWS IoT Greengrass
<a name="secrets"></a>

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 dengan aman di cloud. AWS IoT Greengrass memperluas Secrets Manager ke perangkat inti Greengrass, sehingga [konektor](connectors.md) dan fungsi Lambda Anda 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](secrets-using.md).

AWS IoT Greengrass mengenkripsi rahasia Anda saat dalam perjalanan dan istirahat. Selama penyebaran grup, AWS IoT Greengrass ambil rahasia dari Secrets Manager dan buat salinan lokal terenkripsi pada inti 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 menyebarkannya sebagai sumber rahasia ke perangkat inti, di mana ia tersedia untuk konektor dan fungsi Lambda.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/deploy-local-secret.png)


Menggunakan AWS IoT Greengrass untuk menyimpan rahasia Anda secara lokal menawarkan keuntungan ini:
+ **Dipisahkan dari kode (bukan hard-code).** 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 terkontrol 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](#secrets-encryption).
+ **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](secrets-using.md#secrets-create-manage).
**penting**  
AWS IoT Greengrass tidak secara otomatis memperbarui nilai rahasia lokal setelah versi cloud diputar. Untuk memperbarui nilai-nilai lokal, Anda harus redeploy grup.

## Enkripsi rahasia
<a name="secrets-encryption"></a>

AWS IoT Greengrass mengenkripsi rahasia dalam perjalanan dan saat istirahat.

**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](https://docs.aws.amazon.com/secretsmanager/latest/userguide/best-practices.html#best-practice_lamda-debug-statements) dalam *AWS Secrets Manager Panduan Pengguna*. Meskipun dokumentasi ini secara khusus mengacu pada fungsi rotasi, rekomendasi juga berlaku untuk fungsi Lambda Greengrass.

**Enkripsi dalam perjalanan**  
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](gg-sec.md#gg-cipher-suites).

**Enkripsi saat istirahat**  
AWS IoT Greengrass menggunakan kunci pribadi yang ditentukan [`config.json`](gg-core.md#config-json)untuk enkripsi rahasia yang disimpan di inti. Untuk alasan ini, penyimpanan yang aman dengan kunci privat sangat penting untuk melindungi rahasia lokal. Dalam [model tanggung jawab AWS bersama](https://aws.amazon.com/compliance/shared-responsibility-model/), adalah tanggung jawab pelanggan untuk menjamin penyimpanan kunci pribadi yang aman pada perangkat inti.  
AWS IoT Greengrass mendukung dua mode penyimpanan kunci pribadi:  
+ Menggunakan modul keamanan perangkat keras. Untuk informasi selengkapnya, lihat [Integrasi keamanan perangkat keras](hardware-security.md).
**catatan**  
Saat ini, hanya AWS IoT Greengrass mendukung mekanisme padding [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) 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 \$11 v1.5. AWS IoT Greengrass tidak mendukung Padding Enkripsi Asimetris Optimal (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.  
 AWS IoT Greengrass Inti adalah satu-satunya entitas yang memiliki akses ke kunci pribadi. Konektor Greengrass atau fungsi Lambda yang berafiliasi dengan sumber daya rahasia mendapatkan nilai rahasia dari core.

## Persyaratan
<a name="secrets-reqs"></a>

Ini adalah persyaratan untuk dukungan rahasia lokal:
+ Anda harus menggunakan AWS IoT Greengrass Core v1.7 atau yang lebih baru.
+ Untuk mendapatkan nilai rahasia lokal, fungsi Lambda yang ditentukan pengguna 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 pribadi inti yang disimpan dalam sistem file. Untuk menyediakan kunci privat milik Anda sendiri, lihat [Tentukan kunci privat untuk enkripsi rahasia](#secrets-config-private-key). Hanya jenis kunci RSA yang didukung.
**catatan**  
Saat ini, hanya AWS IoT Greengrass mendukung mekanisme padding [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) 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 \$11 v1.5. AWS IoT Greengrass tidak mendukung Padding Enkripsi Asimetris Optimal (OAEP).
+ AWS IoT Greengrass harus diberikan izin untuk mendapatkan nilai-nilai rahasia Anda. Hal ini memungkinkan AWS IoT Greengrass untuk mengambil nilai-nilai selama penyebaran grup. *Jika Anda menggunakan peran layanan Greengrass default, AWS IoT Greengrass maka sudah memiliki akses ke rahasia dengan nama yang dimulai dengan greengrass-.* Untuk menyesuaikan akses, lihat [Izinkan AWS IoT Greengrass untuk mendapatkan nilai rahasia](#secrets-config-service-role).
**catatan**  
Kami menyarankan Anda menggunakan konvensi penamaan ini untuk mengidentifikasi rahasia yang AWS IoT Greengrass diizinkan untuk diakses, bahkan jika Anda menyesuaikan izin. Konsol menggunakan izin yang berbeda untuk membaca rahasia Anda, jadi Anda dapat memilih rahasia di konsol yang AWS IoT Greengrass tidak memiliki izin untuk diambil. Menggunakan konvensi penamaan dapat membantu menghindari konflik izin, yang mengakibatkan error deployment.

## Tentukan kunci privat untuk enkripsi rahasia
<a name="secrets-config-private-key"></a>

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 selengkapnya tentang kunci pribadi yang digunakan pada AWS IoT Greengrass inti, lihat[AWS IoT Greengrass prinsip keamanan inti](gg-sec.md#gg-principals). 

AWS IoT Greengrass mendukung dua mode penyimpanan kunci pribadi: berbasis perangkat keras atau berbasis sistem file (default). Untuk informasi selengkapnya, lihat [Enkripsi rahasia](#secrets-encryption).

**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](module2.md) dari tutorial Memulai Dengan.

1. Buka file [`config.json`](gg-core.md#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.

1. 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. Contoh:

     ```
     "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 \$111](https://tools.ietf.org/html/rfc7512) ini. Contoh:

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

     Untuk informasi selengkapnya, lihat [Konfigurasi keamanan perangkat keras untuk AWS IoT Greengrass inti](hardware-security.md#configure-hardware-security).
**catatan**  
Saat ini, hanya AWS IoT Greengrass mendukung mekanisme padding [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) 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 \$11 v1.5. AWS IoT Greengrass tidak mendukung Padding Enkripsi Asimetris Optimal (OAEP).

## Izinkan AWS IoT Greengrass untuk mendapatkan nilai rahasia
<a name="secrets-config-service-role"></a>

Dalam prosedur ini, Anda menambahkan kebijakan sebaris ke peran layanan Greengrass yang AWS IoT Greengrass memungkinkan untuk mendapatkan nilai rahasia Anda.

**Ikuti prosedur ini hanya** jika Anda ingin memberikan izin AWS IoT Greengrass khusus untuk rahasia Anda atau jika peran layanan Greengrass Anda tidak menyertakan kebijakan terkelola. `AWSGreengrassResourceAccessRolePolicy` `AWSGreengrassResourceAccessRolePolicy`memberikan akses ke rahasia dengan 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.

1. Menambahkan kebijakan inline yang mengizinkan tindakan `secretsmanager:GetSecretValue` ini. Untuk instruksi, lihat [Menambahkan dan menghapus kebijakan IAM ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) 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 memungkinkan AWS IoT Greengrass untuk membaca hanya rahasia yang ditentukan.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue"
               ],
               "Resource": [
               "arn:aws:secretsmanager:us-east-1:123456789012:secret:greengrass-SecretA-abc",
       "arn:aws:secretsmanager:us-east-1:123456789012:secret:greengrass-SecretB-xyz"
               ]
           }
       ]
   }
   ```

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

Untuk informasi lebih lanjut tentang kebijakan IAM untuk Secrets Manager, lihat [Autentikasi dan kontrol akses untuk AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html) dan [Tindakan, sumber daya, dan kunci konteks yang dapat Anda gunakan dalam kebijakan IAM atau kebijakan rahasia untuk AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html) di *AWS Secrets Manager Panduan Pengguna*.

## Lihat juga
<a name="secrets-seealso"></a>
+ [Apa itu AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) di *Panduan AWS Secrets Manager Pengguna*
+ [PKCS \$11: Enkripsi RSA Versi 1.5](https://tools.ietf.org/html/rfc2313)

# Bekerja dengan sumber daya rahasia
<a name="secrets-using"></a>

AWS IoT Greengrass menggunakan *sumber daya rahasia* untuk mengintegrasikan rahasia dari AWS Secrets Manager ke dalam kelompok Greengrass. Sumber daya rahasia ini mereferensi rahasia Secrets Manager. Untuk informasi selengkapnya, lihat [Menyebarkan rahasia ke inti AWS IoT Greengrass](secrets.md).

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

## Membuat dan mengelola rahasia
<a name="secrets-create-manage"></a>

Dalam grup Greengrass, sumber daya rahasia mereferensi ARN dari rahasia Secrets Manager. Ketika sumber rahasia di-deploy ke core, nilai rahasia dienkripsi dan tersedia untuk konektor berafiliasi dan fungsi Lambda. Untuk informasi selengkapnya, lihat [Enkripsi rahasia](secrets.md#secrets-encryption).

Anda menggunakan Secrets Manager untuk membuat dan mengelola versi cloud rahasia Anda. Anda gunakan AWS IoT Greengrass untuk membuat, mengelola, dan menyebarkan sumber daya rahasia Anda.

**penting**  
Kami menyarankan agar Anda mengikuti praktik terbaik untuk memutar rahasia Anda di Secrets Manager. Kemudian, men-deploy grup Greengrass untuk memperbarui salinan lokal rahasia Anda. Untuk informasi selengkapnya, lihat [Memutar AWS Secrets Manager rahasia Anda](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html) di *Panduan AWS Secrets Manager Pengguna*.

**Untuk membuat rahasia tersedia di inti Greengrass**

1. Buat rahasia di Secrets Manager. Ini adalah versi cloud dari rahasia Anda, yang disimpan secara terpusat dan dikelola di Secrets Manager. Tugas manajemen termasuk memutar nilai-nilai rahasia dan menerapkan kebijakan sumber daya.

1. Buat sumber daya rahasia di AWS IoT Greengrass. Ini adalah jenis sumber daya grup yang mereferensi rahasia cloud oleh ARN. Anda dapat mereferensikan rahasia hanya sekali per grup.

1. Konfigurasi konektor atau fungsi Lambda Anda. Anda harus mengafiliasi sumber daya dengan konektor atau fungsi dengan menentukan parameter atau properti yang sesuai. Hal ini mengizinkan mereka untuk mendapatkan nilai sumber daya rahasia yang di-deploy secara lokal. Untuk informasi lebih lanjut, lihat [Menggunakan rahasia lokal di konektor dan fungsi Lambda](#secrets-access).

1. Men-deploy grup Greengrass. Selama deployment, AWS IoT Greengrass mengambil nilai rahasia cloud dan menciptakan (atau membarui) rahasia lokal pada core.

Secrets Manager mencatat peristiwa di AWS CloudTrail setiap kali yang AWS IoT Greengrass mengambil nilai rahasia. AWS IoT Greengrass tidak mencatat peristiwa apa pun yang terkait dengan penerapan atau penggunaan rahasia lokal. Untuk informasi selengkapnya tentang pencatatan Secrets Manager, lihat [Memantau penggunaan AWS Secrets Manager rahasia Anda](https://docs.aws.amazon.com/secretsmanager/latest/userguide/monitoring.html) di *Panduan AWS Secrets Manager Pengguna*.

### Termasuk label staging dalam sumber daya rahasia
<a name="secret-resources-labels"></a>

Secrets Manager menggunakan label staging untuk mengidentifikasi versi tertentu dari nilai rahasia. Label staging dapat ditetapkan sistem atau ditetapkan pengguna. Secrets Manager menugaskan label `AWSCURRENT` ke versi terbaru dari nilai rahasia. Label staging umumnya digunakan untuk mengelola rotasi rahasia. Untuk informasi lebih lanjut tentang pembuatan versioning Secrets Manager, lihat [ Istilah dan konsep kunci untuk AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/terms-concepts.html) di *AWS Secrets Manager Panduan Pengguna*.

Sumber daya rahasia selalu menyertakan label staging `AWSCURRENT` ini, dan mereka secara opsional dapat menyertakan label staging lain jika mereka diperlukan oleh fungsi Lambda atau konektor. Selama penyebaran grup, AWS IoT Greengrass mengambil nilai label pementasan yang direferensikan dalam grup, dan kemudian membuat atau memperbarui nilai yang sesuai pada inti.

### Membuat dan mengelola sumber daya rahasia (konsol)
<a name="create-manage-secret-resource-console"></a>

#### Membuat sumber daya rahasia (konsol)
<a name="create-manage-secret-resource-console-create"></a>

Di AWS IoT Greengrass konsol, Anda membuat dan mengelola sumber daya rahasia dari tab **Rahasia** di halaman **Sumber Daya** grup. Untuk tutorial yang membuat sumber daya rahasia dan menambahkannya ke grup, lihat [Cara membuat sumber daya rahasia (konsol)](secrets-console.md) dan [Memulai dengan konektor Greengrass (konsol)](connectors-console.md).

![\[Sumber daya rahasia pada tab Rahasia pada halaman Sumber Daya.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/connectors/secret-resource-twilio-auth-token.png)


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

#### Mengelola sumber daya rahasia (konsol)
<a name="create-manage-secret-resource-console-manage"></a>

Tugas manajemen untuk sumber daya rahasia dalam grup Greengrass Anda termasuk menambahkan sumber daya rahasia ke grup, menghapus sumber daya rahasia dari grup, dan mengubah aturan dari [Label staging](#secret-resources-labels) yang termasuk dalam sumber daya rahasia.

Jika Anda menunjuk ke rahasia yang berbeda dari Secrets Manager, Anda juga harus mengedit konektor yang menggunakan rahasia:

1. Di halaman Konfigurasi grup, pilih **Konektor**.

1. Dari menu kontekstual konektor, pilih **Edit**.

1. Halaman **Edit parameter** menampilkan pesan untuk memberitahu Anda bahwa ARN rahasia berubah. Untuk mengonfirmasi perubahan, pulih **Simpan**.

Jika Anda menghapus rahasia di Secrets Manager, maka menghapus sumber rahasia yang sesuai dari grup dan dari konektor dan fungsi Lambda yang mereferensinya. Jika tidak, selama deployment grup, AWS IoT Greengrass mengembalikan error bahwa rahasia tidak dapat ditemukan. Juga memperbarui kode fungsi Lambda Anda sesuai kebutuhan.

### Membuat dan mengelola sumber daya rahasia (CLI)
<a name="create-manage-secret-resource-cli"></a>

#### Membuat sumber daya rahasia (CLI)
<a name="create-manage-secret-resource-cli-create"></a>

Di AWS IoT Greengrass API, rahasia adalah jenis sumber daya grup. Contoh berikut membuat definisi sumber daya dengan versi awal yang mencakup sumber daya rahasia bernama `MySecretResource`. Untuk tutorial yang membuat sumber daya rahasia dan menambahkannya ke versi grup, lihat [Memulai dengan konektor Greengrass (CLI)](connectors-cli.md).

Sumber daya rahasia mereferensi ARN dari Secrets Manager yang sesuai rahasia dan mencakup dua label staging selain `AWSCURRENT`, yang selalu disertakan.

```
aws greengrass create-resource-definition --name MyGreengrassResources --initial-version '{
    "Resources": [
        {
            "Id": "my-resource-id",
            "Name": "MySecretResource",
            "ResourceDataContainer": {
                "SecretsManagerSecretResourceData": {
                    "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:greengrass-SomeSecret-KUj89s",
                    "AdditionalStagingLabelsToDownload": [
                        "Label1",
                        "Label2"
                    ]
                }
            }
        }
    ]
}'
```

#### Mengelola sumber daya rahasia (CLI)
<a name="create-manage-secret-resource-cli-manage"></a>

Tugas manajemen untuk sumber daya rahasia dalam grup Greengrass Anda termasuk menambahkan sumber daya rahasia ke grup, menghapus sumber daya rahasia dari grup, dan mengubah aturan dari [Label staging](#secret-resources-labels) yang termasuk dalam sumber daya rahasia.

Di AWS IoT Greengrass API, perubahan ini diimplementasikan dengan menggunakan versi.

 AWS IoT Greengrass API menggunakan versi untuk mengelola grup. Versi tidak dapat diubah, jadi untuk menambah atau mengubah komponen grup — misalnya, perangkat klien grup, fungsi, dan sumber daya — Anda harus membuat versi komponen baru atau yang diperbarui. Kemudian, Anda membuat dan men-deploy versi grup yang berisi versi target masing-masing komponen. Untuk mempelajari tentang grup, lihat [AWS IoT Greengrass kelompok](what-is-gg.md#gg-group).

Misalnya, untuk mengubah aturan label staging untuk sumber daya rahasia:

1. Buat versi definisi sumber daya yang berisi sumber daya rahasia diperbarui. Contoh berikut menambahkan label staging ketiga untuk sumber daya rahasia dari bagian sebelumnya.
**catatan**  
Untuk menambahkan lebih banyak sumber daya dari versi, termasuk mereka di dalam array `Resources` ini.

   ```
   aws greengrass create-resource-definition --name MyGreengrassResources --initial-version '{
       "Resources": [
           {
               "Id": "my-resource-id",
               "Name": "MySecretResource",
               "ResourceDataContainer": {
                   "SecretsManagerSecretResourceData": {
                       "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:greengrass-SomeSecret-KUj89s",
                       "AdditionalStagingLabelsToDownload": [
                           "Label1",
                           "Label2",
                           "Label3"
                       ]
                   }
               }
           }
       ]
   }'
   ```

1. Jika ID dari sumber daya rahasia diubah, perbarui konektor dan fungsi yang menggunakan sumber daya rahasia. Dalam versi baru, perbarui parameter atau properti yang sesuai dengan ID sumber daya. Jika ARN rahasianya berubah, Anda juga harus memperbarui parameter yang sesuai untuk konektor yang menggunakan rahasianya.
**catatan**  
ID sumber daya adalah pengenal arbitrer yang disediakan oleh pelanggan.

1. Membuat versi grup yang berisi versi target dari setiap komponen yang ingin Anda kirim ke core.

1. Men-deploy versi grup.

Untuk tutorial yang menunjukkan cara membuat dan men-deploy sumber daya rahasia, konektor, dan fungsi, lihat [Memulai dengan konektor Greengrass (CLI)](connectors-cli.md).

Jika Anda menghapus rahasia di Secrets Manager, maka menghapus sumber rahasia yang sesuai dari grup dan dari konektor dan fungsi Lambda yang mereferensinya. Jika tidak, selama deployment grup, AWS IoT Greengrass mengembalikan error bahwa rahasia tidak dapat ditemukan. Juga memperbarui kode fungsi Lambda Anda sesuai kebutuhan. Anda dapat menghapus rahasia lokal dengan men-deploy versi definisi sumber daya yang tidak berisi sumber daya rahasia yang sesuai.

## Menggunakan rahasia lokal di konektor dan fungsi Lambda
<a name="secrets-access"></a>

Konektor Greengrass dan fungsi Lambda menggunakan rahasia lokal untuk berinteraksi dengan layanan dan aplikasi. Nilai `AWSCURRENT` digunakan secara default, tetapi nilai-nilai lainnya dari [ Label staging](#secret-resources-labels) termasuk sumber daya rahasia juga tersedia.

Konektor dan fungsi harus dikonfigurasi sebelum mereka dapat mengakses rahasia lokal. Hal ini mengafiliasi sumber daya rahasia dengan konektor atau fungsi.

**Konektor**  
Jika konektor memerlukan akses ke rahasia lokal, maka sediakan parameter yang Anda konfigurasikan dengan informasi yang dibutuhkan untuk mengakses rahasia.  
+ Untuk mempelajari cara melakukan ini di AWS IoT Greengrass konsol, lihat[Memulai dengan konektor Greengrass (konsol)](connectors-console.md).
+ Untuk mempelajari cara melakukan ini dengan AWS IoT Greengrass CLI, lihat. [Memulai dengan konektor Greengrass (CLI)](connectors-cli.md)
Untuk informasi tentang persyaratan bagi masing-masing konektor, lihat [AWS-disediakan konektor Greengrass](connectors-list.md).  
Logika untuk mengakses dan menggunakan rahasia dibangun ke dalam konektor.

**Fungsi Lambda**  
Untuk memungkinkan fungsi Greengrass Lambda agar mengakses rahasia lokal, Anda mengonfigurasi properti fungsi.  
+ Untuk mempelajari cara melakukan ini di AWS IoT Greengrass konsol, lihat[Cara membuat sumber daya rahasia (konsol)](secrets-console.md).
+ Untuk melakukan ini di AWS IoT Greengrass API, Anda memberikan informasi berikut di `ResourceAccessPolicies` properti.
  + `ResourceId`: ID sumber daya rahasia dalam grup Greengrass. Ini adalah sumber daya yang mereferensi ARN dari Secrets Manager yang sesuai rahasia.
  + `Permission`: Jenis akses yang memiliki fungsi ke sumber daya. Hanya izin `ro` (hanya baca) didukung untuk sumber daya rahasia.

  Contoh berikut membuat fungsi Lambda yang dapat mengakses sumber daya rahasia `MyApiKey` tersebut.

  ```
  aws greengrass create-function-definition --name MyGreengrassFunctions --initial-version '{
      "Functions": [
          {
              "Id": "MyLambdaFunction",
              "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:1",
              "FunctionConfiguration": {
                  "Pinned": false,
                  "MemorySize": 16384,
                  "Timeout": 10,
                  "Environment": {
                      "ResourceAccessPolicies": [
                          {
                              "ResourceId": "MyApiKey",
                              "Permission": "ro"
                          }                          
                      ],
                      "AccessSysfs": true
                  }
              }
          }
      ]
  }'
  ```

   

  Untuk mengakses rahasia lokal saat runtime, fungsi Greengrass Lambda `get_secret_value` memanggil fungsi `secretsmanager` dari klien AWS IoT Greengrass di Core SDK (v1.3.0 atau yang lebih baru).

  Contoh berikut menunjukkan cara menggunakan AWS IoT Greengrass Core SDK untuk Python untuk mendapatkan rahasia. Itu melewati nama rahasia ke fungsi `get_secret_value` tersebut. `SecretId` bisa menjadi nama atau ARN dari rahasia Secrets Manager (bukan sumber daya rahasia).

  ```
  import greengrasssdk
  
  secrets_client = greengrasssdk.client("secretsmanager")
  secret_name = "greengrass-MySecret-abc"
  
  
  def function_handler(event, context):
      response = secrets_client.get_secret_value(SecretId=secret_name)
      secret = response.get("SecretString")
  ```

  Untuk rahasia jenis teks, `get_secret_value` fungsi kembali ke string. Untuk rahasia jenis biner, maka mengembalikan string base64 yang dikodekan.
**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](https://docs.aws.amazon.com/secretsmanager/latest/userguide/best-practices.html#best-practice_lamda-debug-statements) dalam *AWS Secrets Manager Panduan Pengguna*. Meskipun dokumentasi ini secara khusus mengacu pada fungsi rotasi, rekomendasi juga berlaku untuk fungsi Lambda Greengrass.

  Nilai rahasia saat ini dikembalikan ke default. Ini adalah versi di mana label staging `AWSCURRENT` melekat. Untuk mengakses versi yang berbeda, berikan nama label staging yang sesuai untuk argumen `VersionStage` yang opsional. Contoh:

  ```
  import greengrasssdk
  
  secrets_client = greengrasssdk.client("secretsmanager")
  secret_name = "greengrass-TestSecret"
  secret_version = "MyTargetLabel"
  
  
  # Get the value of a specific secret version
  def function_handler(event, context):
      response = secrets_client.get_secret_value(
          SecretId=secret_name, VersionStage=secret_version
      )
      secret = response.get("SecretString")
  ```

  Untuk fungsi contoh lain yang memanggil `get_secret_value`, lihat [Buat paket deployment fungsi Lambda](secrets-console.md#secrets-console-create-deployment-package).

# Cara membuat sumber daya rahasia (konsol)
<a name="secrets-console"></a>

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

Tutorial ini menunjukkan cara menggunakan Konsol Manajemen AWS untuk menambahkan *sumber daya rahasia* ke grup Greengrass. Sumber daya rahasia adalah referensi ke rahasia dari AWS Secrets Manager. Untuk informasi selengkapnya, lihat [Menyebarkan rahasia ke inti AWS IoT Greengrass](secrets.md).

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

Dalam tutorial ini, Anda mulai dengan membuat rahasia di AWS Secrets Manager konsol. 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)](connectors-console.md).

Tutorial ini berisi langkah-langkah tingkat tinggi berikut:

1. [Buat rahasia Secrets Manager](#secrets-console-create-secret)

1. [Menambahkan sumber daya rahasia ke grup](#secrets-console-create-resource)

1. [Buat paket deployment fungsi Lambda](#secrets-console-create-deployment-package)

1. [Buat fungsi Lambda](#secrets-console-create-function)

1. [Menambahkan fungsi ke grup](#secrets-console-create-gg-function)

1. [Lampirkan sumber daya rahasia ke fungsi Lambda](#secrets-console-affiliate-gg-function)

1. [Menambahkan langganan ke grup](#secrets-console-create-subscription)

1. [Men-deploy grup](#secrets-console-create-deployment)

1. [Tes fungsi Lambda](#secrets-console-test-solution)

Tutorial akan memakan waktu sekitar 20 menit untuk menyelesaikannya.

## Prasyarat
<a name="secrets-console-prerequisites"></a>

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](gg-gs.md). Tutorial Memulai juga mencakup langkah-langkah untuk menginstal perangkat lunak AWS IoT Greengrass Core.
+ AWS IoT Greengrass harus dikonfigurasi untuk mendukung rahasia lokal. Untuk informasi lebih lanjut, lihat [Persyaratan Rahasia](secrets.md#secrets-reqs).
**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 rahasia lokal, fungsi Lambda yang ditentukan pengguna Anda harus menggunakan AWS IoT Greengrass Core SDK v1.3.0 atau yang lebih baru.

## Langkah 1: Buat rahasia Secrets Manager
<a name="secrets-console-create-secret"></a>

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

1. <a name="create-secret-step-signin"></a>Masuk ke [AWS Secrets Manager konsol](https://console.aws.amazon.com/secretsmanager/).
**catatan**  
Untuk informasi lebih lanjut tentang proses ini, lihat [ Langkah 1: Buat dan simpan rahasia Anda di AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html) dalam *AWS Secrets Manager Panduan Pengguna*.

1. <a name="create-secret-step-create"></a>Pilih **Simpan rahasia baru**.

1. <a name="create-secret-step-othertype"></a>Di bawah **Pilih tipe rahasia**, pilih **Jenis rahasia lainnya**.

1. Di bawah **Tentukan pasangan nilai kunci yang akan disimpan untuk rahasia ini**:
   + Untuk **Kunci**, masukkan **test**.
   + Untuk **Nilai**, masukkan **abcdefghi**.

1. <a name="create-secret-step-encryption"></a>**Tetap pilih **aws/secretsmanager** untuk kunci enkripsi, lalu pilih Berikutnya.**
**catatan**  
Anda tidak dikenakan biaya AWS KMS jika menggunakan kunci AWS terkelola default yang dibuat Secrets Manager di akun Anda.

1. Untuk **Nama rahasia**, masukkan **greengrass-TestSecret**, dan pilih **Selanjutnya**.
**catatan**  
*Secara default, peran layanan Greengrass AWS IoT Greengrass memungkinkan untuk mendapatkan nilai rahasia dengan nama yang dimulai dengan greengrass-.* Untuk informasi lebih lanjut, lihat [persyaratan rahasia](secrets.md#secrets-reqs).

1. <a name="create-secret-step-rotation"></a>Tutorial ini tidak memerlukan rotasi, jadi pilih nonaktifkan rotasi otomatis, lalu pilih **Berikutnya**.

1. <a name="create-secret-step-review"></a>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
<a name="secrets-console-create-resource"></a>

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

1. <a name="console-gg-groups"></a>**Di panel navigasi AWS IoT konsol, di bawah **Kelola**, perluas perangkat **Greengrass**, lalu pilih Grup (V1).**

1. <a name="create-secret-resource-step-choosegroup"></a>Pilih grup yang ingin Anda tambahkan sumber daya rahasia.

1. <a name="create-secret-resource-step-secretstab"></a>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.

1. <a name="create-secret-resource-step-addsecretresource"></a>Pilih **Tambah** di bawah bagian **Rahasia**.

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

1. Di bawah **Rahasia**, pilih **greengrass-**. TestSecret

1. <a name="create-secret-resource-step-selectlabels"></a>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.

1. Pilih **Tambahkan sumber daya**.

## Langkah 3: Buat paket deployment fungsi Lambda
<a name="secrets-console-create-deployment-package"></a>

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](lambda-functions.md#lambda-sdks-core) 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 rahasia lokal, fungsi Lambda yang ditentukan pengguna Anda harus menggunakan AWS IoT Greengrass Core SDK v1.3.0 atau yang lebih baru.

1. <a name="download-ggc-sdk"></a> Dari halaman unduhan [AWS IoT Greengrass Core SDK](what-is-gg.md#gg-core-sdk-download), unduh AWS IoT Greengrass Core SDK untuk Python ke komputer Anda.

1. <a name="unzip-ggc-sdk"></a>Unzip paket yang diunduh untuk mendapatkan SDK. SDK adalah folder `greengrasssdk` tersebut.

1. 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 kunci-nilai:. `{"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](https://docs.aws.amazon.com/secretsmanager/latest/userguide/best-practices.html#best-practice_lamda-debug-statements) dalam *AWS Secrets Manager Panduan Pengguna*. Meskipun dokumentasi ini secara khusus mengacu pada fungsi rotasi, rekomendasi juga berlaku untuk fungsi Greengrass Lambda.

1. 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\$1test.py**. Logika aplikasi.
   + **greengrasssdk**. Diperlukan perpustakaan untuk semua fungsi Python Greengrass Lambda.

   Ini adalah paket deployment fungsi Lambda Anda.

## Langkah 4: Buat fungsi Lambda
<a name="secrets-console-create-function"></a>

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

1. Pertama, buat fungsi Lambda.

   1. <a name="lambda-console-open"></a>Di Konsol Manajemen AWS, pilih **Layanan**, dan buka AWS Lambda konsol.

   1. <a name="lambda-console-create-function"></a>Pilih **Buat fungsi** dan kemudian **Tulis dari awal**.

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

   1. <a name="lambda-console-save-function"></a>Di bagian bawah halaman, pilih **Buat Fungsi**.

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

   1. <a name="lambda-console-upload"></a>Pada tab **Kode** ini, di bawah **Sumber kode**, pilih **Unggah dari**. Dari dropdown, pilih **file .zip**.  
![\[Mengunggah dari dropdown dengan file .zip disorot.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/lra-console/upload-deployment-package.png)

   1. Pilih **Mengunggah**, lalu pilih paket deployment `secret_test_python.zip` Anda. Lalu, pilih **Simpan**.

   1. <a name="lambda-console-runtime-settings-para"></a>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\$1test.function\$1handler**

   1. <a name="lambda-console-save-config"></a>Pilih **Simpan**.
**catatan**  
Tombol **Uji** di AWS Lambda konsol tidak berfungsi dengan fungsi ini. AWS IoT Greengrass Core SDK tidak berisi modul yang diperlukan untuk menjalankan fungsi Greengrass Lambda Anda secara independen di konsol. AWS Lambda Modul-modul ini (misalnya, `greengrass_common`) dipasok ke fungsi setelah mereka di-deploy ke core Greengrass Anda.

1. Sekarang, publikasikan versi pertama fungsi Lambda Anda dan membuat [alias untuk versi](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html).
**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. <a name="shared-publish-function-version"></a>Dari menu **Tindakan** ini, pilih **Terbitkan versi baru**.

   1. <a name="shared-publish-function-version-description"></a>Untuk **Versi Deskripsi**, masukkan **First version**, lalu pilih **Publikasikan**.

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

   1. Pada halaman **Buat alias baru** ini, gunakan nilai-nilai berikut:
      + Untuk **Nama**, masukkan **GG\$1SecretTest**.
      + Untuk **Versi**, pilih **1**.
**catatan**  
AWS IoT Greengrass **tidak mendukung alias Lambda untuk versi \$1LATEST.**

   1. Pilih **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
<a name="secrets-console-create-gg-function"></a>

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

1. <a name="choose-add-lambda"></a>Pada halaman konfigurasi grup, pilih tab **fungsi Lambda**.

1. **Di bawah bagian **Fungsi Lambda Saya**, pilih Tambah.**

1. Untuk **fungsi Lambda, pilih**. **SecretTest**

1. 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 containerization, Anda juga harus memberikan akses root ke fungsi Lambda AWS IoT Greengrass Anda. 

   1. **Untuk berjalan tanpa kontainerisasi:**
      + Untuk **pengguna dan grup Sistem**, pilih**Another user ID/group ID**. Untuk **ID pengguna Sistem**, masukkan**0**. Untuk **ID grup Sistem**, masukkan**0**.

        Hal ini memungkinkan fungsi Lambda Anda untuk berjalan sebagai root. Untuk informasi lebih lanjut untuk menjalankan sebagai root, lihat [Mengatur identitas akses default untuk fungsi Lambda dalam grup](lambda-group-config.md#lambda-access-identity-groupsettings).
**Tip**  
Anda juga harus memperbarui file `config.json` untuk memberikan akses root ke fungsi Lambda Anda. Untuk prosedur ini, lihat [Menjalankan fungsi Lambda sebagai root](lambda-group-config.md#lambda-running-as-root).
      + **Untuk **kontainerisasi fungsi Lambda, pilih No container**.**

        Untuk informasi lebih lanjut untuk berjalan tanpa konainerisasi, lihat [Pertimbangan ketika memilih fungsi Lambda kontainerisasi](lambda-group-config.md#lambda-containerization-considerations).
      + Untuk **Timeout**, masukkan **10 seconds**.
      + Untuk **Pinned**, pilih **True**.

        Untuk informasi selengkapnya, lihat [Konfigurasi siklus hidup untuk fungsi Greengrass Lambda](lambda-functions.md#lambda-lifecycle).
      + **Di bawah **Parameter Tambahan**, untuk **akses Baca ke direktori /sys**, pilih Diaktifkan.**

   1.  **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](lambda-functions.md#lambda-lifecycle).
      + **Di bawah **Parameter Tambahan**, untuk **akses Baca ke direktori /sys**, pilih Diaktifkan.**

1.  Pilih **Tambahkan fungsi Lambda**.

Selanjutnya, kaitkan sumber daya rahasia dengan fungsinya.

## Langkah 6: Lampirkan sumber daya rahasia ke fungsi Lambda
<a name="secrets-console-affiliate-gg-function"></a>

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

1. Pilih **SecretTest**fungsinya.

1. Pada halaman detail fungsi, pilih **Resources**.

1. Gulir ke bagian **Rahasia** dan pilih **Associate**.

1. Pilih **MyTestSecret**, lalu pilih **Associate**.

## Langkah 7: Menambahkan langganan ke grup Greengrass
<a name="secrets-console-create-subscription"></a>

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

1. <a name="shared-subscriptions-addsubscription"></a>Pada halaman konfigurasi grup, pilih tab **Langganan**, lalu pilih **Tambah Langganan**.

1. Buat langganan yang memungkinkan AWS IoT untuk mempublikasikan pesan ke fungsi.

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

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

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

   1. Di **Jenis target**, pilih **Layanan**, lalu pilih **SecretTest**.

   1. Di **filter Topik**, masukkan**secrets/input**, lalu pilih **Buat langganan**. 

1. 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**.

   1. **Pada **tipe Target**, pilih **fungsi Lambda**, lalu pilih IoT Cloud.**

   1. Di **filter Topik**, masukkan**secrets/output**, lalu pilih **Buat langganan**.

## Langkah 8: Men-deploy grup Greengrass
<a name="secrets-console-create-deployment"></a>

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

1. <a name="shared-deploy-group-checkggc"></a>Pastikan AWS IoT Greengrass inti 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 inti Anda.

   1. Untuk memulai daemon:

      ```
      cd /greengrass/ggc/core/
      sudo ./greengrassd start
      ```

1. <a name="shared-deploy-group-deploy"></a>Pada halaman konfigurasi grup, pilih **Deploy**.

1. <a name="shared-deploy-group-ipconfig"></a>

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

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

   1. Pilih **Simpan**.

      Hal ini mengaktifkan perangkat untuk secara otomatis memperoleh informasi konektivitas untuk core, seperti alamat IP, DNS, dan nomor port. Deteksi otomatis direkomendasikan, tetapi AWS IoT Greengrass juga mendukung 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 peran layanan](service-role.md) Anda saat ini. Akun AWS Wilayah AWS Peran ini memungkinkan AWS IoT Greengrass untuk mengakses sumber daya Anda dalam AWS layanan.

      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](gg-troubleshooting.md).

## Tes fungsi Lambda
<a name="secrets-console-test-solution"></a>

1. <a name="choose-test-page"></a>Di halaman beranda AWS IoT konsol, pilih **Uji**.

1. Untuk **Berlangganan topik**, gunakan nilai-nilai berikut, dan kemudian pilih **Langganan**.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/secrets-console.html)

1. Untuk **Publikasikan ke topik**, gunakan nilai-nilai berikut, dan kemudian pilih **Publikasikan** untuk memanggil fungsi.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/secrets-console.html)

   Jika berhasil, fungsi menunjukkan pesan "Sukses".

## Lihat juga
<a name="secrets-console-see-also"></a>
+ [Menyebarkan rahasia ke inti AWS IoT Greengrass](secrets.md)