

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

# Keamanan di AWS IoT Greengrass
<a name="security"></a>

Keamanan cloud di AWS adalah prioritas tertinggi. Sebagai AWS pelanggan, Anda mendapat manfaat dari pusat data dan arsitektur jaringan yang dibangun untuk memenuhi persyaratan organisasi yang paling sensitif terhadap keamanan.

Keamanan adalah tanggung jawab bersama antara Anda AWS dan Anda. [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) menjelaskan hal ini sebagai keamanan *dari* cloud dan keamanan *dalam* cloud:
+ **Keamanan cloud** — AWS bertanggung jawab untuk melindungi infrastruktur yang menjalankan AWS layanan di AWS Cloud. AWS juga memberi Anda layanan yang dapat Anda gunakan dengan aman. Auditor pihak ketiga secara teratur menguji dan memverifikasi efektivitas keamanan kami sebagai bagian dari [Program AWS Kepatuhan Program AWS Kepatuhan](https://aws.amazon.com/compliance/programs/) . Untuk mempelajari tentang program kepatuhan yang berlaku AWS IoT Greengrass, lihat [AWS Layanan dalam Lingkup oleh AWS Layanan Program Kepatuhan](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Keamanan dalam cloud** – Tanggung jawab Anda ditentukan oleh AWS layanan yang Anda gunakan. Anda juga bertanggung jawab atas faktor lain, termasuk sensitivitas data Anda, persyaratan perusahaan Anda, serta undang-undang dan peraturan yang berlaku.

Saat Anda menggunakan AWS IoT Greengrass, Anda juga bertanggung jawab untuk mengamankan perangkat Anda, koneksi jaringan lokal, dan kunci pribadi.

Dokumentasi ini membantu Anda memahami cara menerapkan model tanggung jawab bersama saat menggunakan AWS IoT Greengrass. Topik berikut menunjukkan cara mengonfigurasi AWS IoT Greengrass untuk memenuhi tujuan keamanan dan kepatuhan Anda. Anda juga belajar cara menggunakan AWS layanan lain yang membantu Anda memantau dan mengamankan AWS IoT Greengrass sumber daya Anda. 

**Topics**
+ [Perlindungan data di AWS IoT Greengrass](data-protection.md)
+ [Otentikasi dan otorisasi perangkat untuk AWS IoT Greengrass](device-auth.md)
+ [Identitas dan manajemen akses untuk AWS IoT Greengrass](security-iam.md)
+ [Izinkan lalu lintas perangkat melalui proxy atau firewall](allow-device-traffic.md)
+ [Validasi kepatuhan untuk AWS IoT Greengrass](compliance-validation.md)
+ [Titik akhir FIPS](FIPS.md)
+ [Ketahanan di AWS IoT Greengrass](disaster-recovery-resiliency.md)
+ [Keamanan infrastruktur di AWS IoT Greengrass](infrastructure-security.md)
+ [Konfigurasi dan analisis kerentanan di AWS IoT Greengrass](vulnerability-analysis-and-management.md)
+ [Integritas kode di AWS IoT Greengrass V2](code-integrity.md)
+ [AWS IoT Greengrass dan antarmuka titik akhir VPC ()AWS PrivateLink](vpc-interface-endpoints.md)
+ [Praktik terbaik keamanan untuk AWS IoT Greengrass](security-best-practices.md)

# Perlindungan data di AWS IoT Greengrass
<a name="data-protection"></a>

[Model tanggung jawab AWS bersama model](https://aws.amazon.com/compliance/shared-responsibility-model/) berlaku untuk perlindungan data di AWS IoT Greengrass. Seperti yang dijelaskan dalam model AWS ini, bertanggung jawab untuk melindungi infrastruktur global yang menjalankan semua AWS Cloud. Anda bertanggung jawab untuk mempertahankan kendali atas konten yang di-host pada infrastruktur ini. Anda juga bertanggung jawab atas tugas-tugas konfigurasi dan manajemen keamanan untuk Layanan AWS yang Anda gunakan. Lihat informasi yang lebih lengkap tentang privasi data dalam [Pertanyaan Umum Privasi Data](https://aws.amazon.com/compliance/data-privacy-faq/). Lihat informasi tentang perlindungan data di Eropa di pos blog [Model Tanggung Jawab Bersama dan GDPR AWS](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

Untuk tujuan perlindungan data, kami menyarankan Anda melindungi Akun AWS kredensi dan mengatur pengguna individu dengan AWS IAM Identity Center atau AWS Identity and Access Management (IAM). Dengan cara itu, setiap pengguna hanya diberi izin yang diperlukan untuk memenuhi tanggung jawab tugasnya. Kami juga menyarankan supaya Anda mengamankan data dengan cara-cara berikut:
+ Gunakan autentikasi multi-faktor (MFA) pada setiap akun.
+ Gunakan SSL/TLS untuk berkomunikasi dengan AWS sumber daya. Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Siapkan API dan pencatatan aktivitas pengguna dengan AWS CloudTrail. Untuk informasi tentang penggunaan CloudTrail jejak untuk menangkap AWS aktivitas, lihat [Bekerja dengan CloudTrail jejak](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) di *AWS CloudTrail Panduan Pengguna*.
+ Gunakan solusi AWS enkripsi, bersama dengan semua kontrol keamanan default di dalamnya Layanan AWS.
+ Gunakan layanan keamanan terkelola tingkat lanjut seperti Amazon Macie, yang membantu menemukan dan mengamankan data sensitif yang disimpan di Amazon S3.
+ Jika Anda memerlukan modul kriptografi tervalidasi FIPS 140-3 saat mengakses AWS melalui antarmuka baris perintah atau API, gunakan titik akhir FIPS. Lihat informasi selengkapnya tentang titik akhir FIPS yang tersedia di [Standar Pemrosesan Informasi Federal (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Kami sangat merekomendasikan agar Anda tidak pernah memasukkan informasi identifikasi yang sensitif, seperti nomor rekening pelanggan Anda, ke dalam tanda atau bidang isian bebas seperti bidang **Nama**. Ini termasuk saat Anda bekerja dengan AWS IoT Greengrass atau lainnya Layanan AWS menggunakan konsol, API AWS CLI, atau AWS SDKs. Data apa pun yang Anda masukkan ke dalam tanda atau bidang isian bebas yang digunakan untuk nama dapat digunakan untuk log penagihan atau log diagnostik. Saat Anda memberikan URL ke server eksternal, kami sangat menganjurkan supaya Anda tidak menyertakan informasi kredensial di dalam URL untuk memvalidasi permintaan Anda ke server itu.

Untuk informasi selengkapnya tentang melindungi informasi sensitif AWS IoT Greengrass, lihat[Jangan log informasi sensitif](security-best-practices.md#protect-pii).

Untuk informasi selengkapnya tentang perlindungan data, lihat postingan blog [Model Tanggung Jawab Bersama AWS dan GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

**Topics**
+ [Enkripsi data](data-encryption.md)
+ [Integrasi keamanan perangkat keras](hardware-security.md)

# Enkripsi data
<a name="data-encryption"></a>

AWS IoT Greengrass menggunakan enkripsi untuk melindungi data saat dalam perjalanan (melalui internet atau jaringan lokal) dan saat istirahat (disimpan di AWS Cloud).

Perangkat di AWS IoT Greengrass lingkungan sering mengumpulkan data yang dikirim ke AWS layanan untuk diproses lebih lanjut. Untuk informasi selengkapnya tentang enkripsi data pada AWS layanan lain, lihat dokumentasi keamanan untuk layanan tersebut.

**Topics**
+ [Enkripsi bergerak](encryption-in-transit.md)
+ [Enkripsi diam](encryption-at-rest.md)
+ [Manajemen kunci untuk perangkat inti Greengrass](key-management.md)

# Enkripsi bergerak
<a name="encryption-in-transit"></a>

AWS IoT Greengrass memiliki dua mode komunikasi di mana data dalam perjalanan:
+ [Data dalam transit melalui internet](#data-in-transit-internet). Komunikasi antara inti Greengrass dan AWS IoT Greengrass melalui internet dienkripsi.
+ [Data pada perangkat inti](#data-in-transit-locally). Komunikasi antar komponen pada perangkat inti Greengrass tidak dienkripsi.

## Data dalam transit melalui internet
<a name="data-in-transit-internet"></a>

AWS IoT Greengrass Menggunakan Transport Layer Security (TLS) untuk mengenkripsi semua komunikasi melalui internet. Semua data yang dikirim ke AWS Cloud dikirim melalui koneksi TLS menggunakan protokol MQTT atau HTTPS, sehingga aman secara default. AWS IoT Greengrass menggunakan model keamanan AWS IoT transportasi. Untuk informasi selengkapnya, lihat [Keamanan transportasi](https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html) di *Panduan Developer AWS IoT Core *.

## Data pada perangkat inti
<a name="data-in-transit-locally"></a>

AWS IoT Greengrass tidak mengenkripsi data yang dipertukarkan secara lokal di perangkat inti Greengrass karena data tidak meninggalkan perangkat. Ini termasuk komunikasi antar komponen yang ditetapkan pengguna, AWS IoT SDK perangkat, dan komponen publik, seperti pengelola stream.

# Enkripsi diam
<a name="encryption-at-rest"></a>

AWS IoT Greengrass menyimpan data Anda:
+ [Data saat istirahat di AWS Cloud](#data-at-rest-cloud). Data ini dienkripsi.
+ [Data at rest pada inti Greengrass](#data-at-rest-device). Data ini tidak dienkripsi (kecuali salinan lokal rahasia Anda).

## Data saat istirahat di AWS Cloud
<a name="data-at-rest-cloud"></a>

AWS IoT Greengrass mengenkripsi data pelanggan yang disimpan di file. AWS Cloud Data ini dilindungi menggunakan AWS KMS kunci yang dikelola oleh AWS IoT Greengrass.

## Data at rest pada inti Greengrass
<a name="data-at-rest-device"></a>

AWS IoT Greengrass bergantung pada izin file Unix dan enkripsi full-disk (jika diaktifkan) untuk melindungi data pada intinya. Ini adalah tanggung jawab Anda untuk mengamankan sistem file dan perangkat.

Namun, AWS IoT Greengrass mengenkripsi salinan lokal dari rahasia Anda yang diambil dari. AWS Secrets Manager Untuk informasi selengkapnya, lihat komponen [secret manager](secret-manager-component.md).

# Manajemen kunci untuk perangkat inti Greengrass
<a name="key-management"></a>

Ini adalah tanggung jawab pelanggan untuk menjamin penyimpanan kunci kriptografi (publik dan pribadi) yang aman pada perangkat inti Greengrass. AWS IoT Greengrass menggunakan kunci publik dan pribadi untuk skenario berikut:
+ Kunci klien IoT digunakan dengan sertifikat IoT untuk mengautentikasi jabat tangan Transport Layer Security (TLS) ketika inti Greengrass menghubungkan ke AWS IoT Core. Untuk informasi selengkapnya, lihat [Otentikasi dan otorisasi perangkat untuk AWS IoT Greengrass](device-auth.md).
**catatan**  
Kunci dan sertifikat juga disebut sebagai kunci privat inti dan sertifikat perangkat inti.

[Perangkat inti Greengrass mendukung penyimpanan kunci pribadi menggunakan izin sistem file atau modul keamanan perangkat keras.](hardware-security.md) Jika Anda menggunakan kunci privat berbasis sistem file, Anda bertanggung jawab atas penyimpanannya yang aman pada perangkat inti.

# Integrasi keamanan perangkat keras
<a name="hardware-security"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.3 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md) AWS IoT Greengrass saat ini tidak mendukung fitur ini di perangkat inti Windows. 

Anda dapat mengonfigurasi perangkat lunak AWS IoT Greengrass Core untuk menggunakan modul keamanan perangkat keras (HSM) melalui antarmuka [PKCS \$111](https://en.wikipedia.org/wiki/PKCS_11). Fitur ini memungkinkan Anda menyimpan kunci pribadi dan sertifikat perangkat dengan aman sehingga tidak terekspos atau digandakan dalam perangkat lunak. Anda dapat menyimpan kunci pribadi dan sertifikat pada modul perangkat keras seperti HSM atau Trusted Platform Module (TPM).

Perangkat lunak AWS IoT Greengrass Core menggunakan kunci pribadi dan sertifikat X.509 untuk mengautentikasi koneksi ke dan layanan. AWS IoT AWS IoT Greengrass [Komponen manajer rahasia](secret-manager-component.md) menggunakan kunci pribadi ini untuk mengenkripsi dan mendekripsi rahasia yang Anda terapkan ke perangkat inti Greengrass dengan aman. Saat Anda mengonfigurasi perangkat inti untuk menggunakan HSM, komponen ini menggunakan kunci pribadi dan sertifikat yang Anda simpan di HSM.

[Komponen broker Moquette MQTT](mqtt-broker-moquette-component.md) juga menyimpan kunci pribadi untuk sertifikat server MQTT lokalnya. Komponen ini menyimpan kunci pribadi pada sistem file perangkat di folder kerja komponen. Saat ini, AWS IoT Greengrass tidak mendukung penyimpanan kunci pribadi atau sertifikat ini di HSM.

**Tip**  
Cari perangkat yang mendukung fitur ini di [Katalog Perangkat AWS Mitra](https://devices.amazonaws.com/search?kw=%22HSI%22&page=1).

**Topics**
+ [Persyaratan](#hardware-security-requirements)
+ [Praktik terbaik keamanan perangkat keras](#hardware-security-best-practices)
+ [Instal perangkat lunak AWS IoT Greengrass Core dengan keamanan perangkat keras](#install-with-hardware-security)
+ [Konfigurasikan keamanan perangkat keras pada perangkat inti yang ada](#enable-hardware-security)
+ [Gunakan perangkat keras tanpa dukungan PKCS \$111](#hardware-without-pkcs11)
+ [Lihat juga](#hardware-security-see-also)

## Persyaratan
<a name="hardware-security-requirements"></a>

Anda harus memenuhi persyaratan berikut untuk menggunakan HSM pada perangkat inti Greengrass:
+ [Greengrass](greengrass-nucleus-component.md) nucleus v2.5.3 atau yang lebih baru diinstal pada perangkat inti. Anda dapat memilih versi yang kompatibel saat menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti.
+ [Komponen penyedia PKCS \$111](pkcs11-provider-component.md) diinstal pada perangkat inti. Anda dapat mengunduh dan menginstal komponen ini ketika Anda menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti.
+ <a name="hardware-security-module-requirements-key"></a>Modul keamanan perangkat keras yang mendukung skema tanda tangan [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) dan kunci RSA dengan ukuran kunci RSA-2048 (atau lebih besar) atau kunci ECC.
**catatan**  <a name="hardware-security-module-requirements-key-notes"></a>
Untuk menggunakan modul keamanan perangkat keras dengan kunci ECC, Anda harus menggunakan [Greengrass](greengrass-nucleus-component.md) nucleus v2.5.6 atau yang lebih baru.  
Untuk menggunakan modul keamanan perangkat keras dan [manajer rahasia](secret-manager-component.md), Anda harus menggunakan modul keamanan perangkat keras dengan kunci RSA.
+ <a name="hardware-security-module-requirements-pkcs11-provider-library"></a>Pustaka penyedia PKCS \$111 yang dapat dimuat oleh perangkat lunak AWS IoT Greengrass Core saat runtime (menggunakan libdl) untuk menjalankan fungsi PKCS \$111. Pustaka penyedia PKCS \$111 harus mengimplementasikan operasi API PKCS \$111 berikut:
  + `C_Initialize`
  + `C_Finalize`
  + `C_GetSlotList`
  + `C_GetSlotInfo`
  + `C_GetTokenInfo`
  + `C_OpenSession`
  + `C_GetSessionInfo`
  + `C_CloseSession`
  + `C_Login`
  + `C_Logout`
  + `C_GetAttributeValue`
  + `C_FindObjectsInit`
  + `C_FindObjects`
  + `C_FindObjectsFinal`
  + `C_DecryptInit`
  + `C_Decrypt`
  + `C_DecryptUpdate`
  + `C_DecryptFinal`
  + `C_SignInit`
  + `C_Sign`
  + `C_SignUpdate`
  + `C_SignFinal`
  + `C_GetMechanismList`
  + `C_GetMechanismInfo`
  + `C_GetInfo`
  + `C_GetFunctionList`
+ <a name="hardware-security-module-requirements-slot-label"></a>Modul perangkat keras harus dapat diatasi dengan label slot, sebagaimana ditentukan di dalam spesifikasi PKCS\$111.
+ <a name="hardware-security-module-requirements-private-key-and-certificate"></a>Anda harus menyimpan kunci pribadi dan sertifikat di HSM di slot yang sama, dan mereka harus menggunakan label objek dan ID objek yang sama, jika HSM mendukung objek. IDs
+ <a name="hardware-security-module-requirements-object-label"></a>Sertifikat dan kunci pribadi harus dapat diselesaikan dengan label objek.
+ <a name="hardware-security-module-requirements-private-key-permissions"></a>Kunci pribadi harus memiliki izin berikut:
  + `sign`
  + `decrypt`
+ <a name="hardware-security-module-requirements-secret-manager-permissions"></a>(Opsional) Untuk menggunakan [komponen manajer rahasia](secret-manager-component.md), Anda harus menggunakan versi 2.1.0 atau yang lebih baru, dan kunci pribadi harus memiliki izin berikut:
  + `unwrap`
  + `wrap`

## Praktik terbaik keamanan perangkat keras
<a name="hardware-security-best-practices"></a>

Pertimbangkan praktik terbaik berikut saat Anda mengonfigurasi keamanan perangkat keras pada perangkat inti Greengrass.
+ Hasilkan kunci privat langsung pada HSM dengan menggunakan generator nomor acak perangkat keras internal. Pendekatan ini lebih aman daripada mengimpor kunci pribadi yang Anda hasilkan di tempat lain, karena kunci pribadi tetap berada dalam HSM.
+ Konfigurasikan kunci pribadi agar tidak dapat diubah dan melarang ekspor.
+ Gunakan alat penyediaan yang direkomendasikan oleh vendor perangkat keras HSM untuk membuat permintaan penandatanganan sertifikat (CSR) menggunakan kunci pribadi yang dilindungi perangkat keras, lalu gunakan konsol atau API untuk menghasilkan sertifikat klien. AWS IoT 

**catatan**  
Praktik keamanan terbaik untuk memutar kunci tidak berlaku saat Anda membuat kunci pribadi pada HSM.

## Instal perangkat lunak AWS IoT Greengrass Core dengan keamanan perangkat keras
<a name="install-with-hardware-security"></a>

Saat Anda menginstal perangkat lunak AWS IoT Greengrass Core, Anda dapat mengonfigurasinya untuk menggunakan kunci pribadi yang Anda hasilkan di HSM. Pendekatan ini mengikuti [praktik terbaik keamanan](#hardware-security-best-practices) untuk menghasilkan kunci pribadi di HSM, sehingga kunci pribadi tetap berada dalam HSM.

Untuk menginstal perangkat lunak AWS IoT Greengrass Core dengan keamanan perangkat keras, Anda melakukan hal berikut:

1. Hasilkan kunci pribadi di HSM.

1. Buat permintaan penandatanganan sertifikat (CSR) dari kunci pribadi.

1. Buat sertifikat dari CSR. Anda dapat membuat sertifikat yang ditandatangani oleh AWS IoT atau oleh otoritas sertifikat root (CA) lainnya. Untuk informasi selengkapnya tentang cara menggunakan CA root lain, lihat [Membuat sertifikat klien Anda sendiri](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html) di *Panduan AWS IoT Core Pengembang*.

1. Unduh AWS IoT sertifikat dan impor ke HSM.

1. Instal perangkat lunak AWS IoT Greengrass Core dari file konfigurasi yang menentukan untuk menggunakan komponen penyedia PKCS \$111 dan kunci pribadi dan sertifikat di HSM.

Anda dapat memilih salah satu opsi instalasi berikut untuk menginstal perangkat lunak AWS IoT Greengrass Core dengan keamanan perangkat keras:
+ **Instalasi manual**

  Pilih opsi ini untuk membuat AWS sumber daya yang diperlukan secara manual dan mengkonfigurasi keamanan perangkat keras. Untuk informasi selengkapnya, lihat [Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya manual](manual-installation.md).
+ **Instalasi dengan penyediaan khusus**

  Pilih opsi ini untuk mengembangkan aplikasi Java khusus yang secara otomatis membuat AWS sumber daya yang diperlukan dan mengonfigurasi keamanan perangkat keras. Untuk informasi selengkapnya, lihat [Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya khusus](custom-provisioning.md).

Saat ini, AWS IoT Greengrass tidak mendukung penginstalan perangkat lunak AWS IoT Greengrass Core dengan keamanan perangkat keras saat Anda [menginstal dengan penyediaan sumber daya otomatis atau penyediaan AWS IoT](quick-installation.md) [armada](fleet-provisioning.md).

## Konfigurasikan keamanan perangkat keras pada perangkat inti yang ada
<a name="enable-hardware-security"></a>

Anda dapat mengimpor kunci pribadi dan sertifikat perangkat inti ke HSM untuk mengonfigurasi keamanan perangkat keras.

**Pertimbangan-pertimbangan**  
Anda harus memiliki akses root ke sistem file perangkat inti.
Dalam prosedur ini, Anda mematikan perangkat lunak AWS IoT Greengrass Core, sehingga perangkat inti offline dan tidak tersedia saat Anda mengonfigurasi keamanan perangkat keras.

Untuk mengonfigurasi keamanan perangkat keras pada perangkat inti yang ada, Anda melakukan hal berikut:

1. Inisialisasi HSM.

1. Terapkan [komponen penyedia PKCS \$111 ke perangkat](pkcs11-provider-component.md) inti.

1. Hentikan perangkat lunak AWS IoT Greengrass inti.

1. Impor kunci pribadi perangkat inti dan sertifikat ke HSM.

1. Perbarui file konfigurasi perangkat lunak AWS IoT Greengrass Core untuk menggunakan kunci pribadi dan sertifikat di HSM.

1. Mulai perangkat lunak AWS IoT Greengrass inti.

### Langkah 1: Inisialisasi modul keamanan perangkat keras
<a name="enable-hardware-security-initialize-hsm"></a>

Selesaikan langkah berikut untuk menginisialisasi HSM pada perangkat inti Anda.

**Untuk menginisialisasi modul keamanan perangkat keras**
+ Inisialisasi token PKCS \$111 di HSM, dan simpan ID slot dan PIN pengguna untuk token tersebut. Periksa dokumentasi untuk HSM Anda untuk mempelajari cara menginisialisasi token. Anda menggunakan ID slot dan PIN pengguna nanti saat Anda menerapkan dan mengonfigurasi komponen penyedia PKCS \$111.

### Langkah 2: Terapkan komponen penyedia PKCS \$111
<a name="enable-hardware-security-deploy-pkcs11-provider"></a>

Selesaikan langkah-langkah berikut untuk menerapkan dan mengonfigurasi komponen penyedia [PKCS \$111](pkcs11-provider-component.md). Anda dapat menerapkan komponen ke satu atau beberapa perangkat inti.

#### Untuk menerapkan komponen penyedia PKCS \$111 (konsol)
<a name="deploy-pkcs11-provider-component-console"></a>

1. Pada menu navigasi [konsol AWS IoT Greengrass](https://console.aws.amazon.com/greengrass) tersebut, pilih **Komponen**.

1. Pada halaman **Components**, pilih tab **Public components**, lalu pilih **aws.greengrass.crypto.Pkcs11Provider**.

1. Pada halaman **aws.greengrass.crypto.Pkcs11Provider** pilih **Deploy**.

1. <a name="deploy-component-choose-deployment-step"></a>**Dari **Tambahkan ke penerapan**, pilih penerapan yang ada untuk direvisi, atau pilih untuk membuat penerapan baru, lalu pilih Berikutnya.**

1. <a name="deploy-component-choose-target-step"></a>Jika Anda memilih untuk membuat penerapan baru, pilih perangkat inti target atau grup hal untuk penerapan. Pada halaman **Tentukan target**, di bawah **target Deployment**, pilih perangkat inti atau grup benda, lalu pilih **Berikutnya**.

1. Pada halaman **Pilih komponen**, di bawah **Komponen publik**, pilih **aws.greengrass.crypto.Pkcs11Provider**, lalu pilih **Berikutnya**.

1. Pada halaman **Configure components**, pilih **aws.greengrass.crypto.Pkcs11Provider**, lalu lakukan hal berikut:

   1. Pilih **Konfigurasi komponen**.

   1. Dalam **konfigurasi aws.greengrass.crypto.Pkcs11Provider** modal, di bawah **Configuration update**, di **Configuration to merge**, masukkan update konfigurasi berikut. Perbarui parameter konfigurasi berikut dengan nilai untuk perangkat inti target. Tentukan ID slot dan PIN pengguna tempat Anda menginisialisasi token PKCS \$111 sebelumnya. Anda mengimpor kunci pribadi dan sertifikat ke slot ini di HSM nanti.<a name="pkcs11-provider-component-configuration-parameters"></a>  
`name`  
Nama untuk konfigurasi PKCS \$111.  
`library`  
Jalur file absolut ke pustaka implementasi PKCS \$111 yang dapat dimuat oleh perangkat lunak AWS IoT Greengrass Core dengan libdl.  
`slot`  
ID slot yang berisi kunci pribadi dan sertifikat perangkat. Nilai ini berbeda dari indeks slot atau label slot.  
`userPin`  
PIN pengguna yang digunakan untuk mengakses slot.

      ```
      {
        "name": "softhsm_pkcs11",
        "library": "/usr/lib/softhsm/libsofthsm2.so",
        "slot": 1,
        "userPin": "1234"
      }
      ```

   1. Pilih **Konfirmasi** untuk menutup modal, lalu pilih **Berikutnya**.

1. <a name="deploy-component-configure-advanced-settings-step"></a>Pada halaman **Konfigurasikan pengaturan lanjutan**, simpan pengaturan konfigurasi default tersebut, dan pilih **Selanjutnya**.

1. <a name="deploy-component-review-and-deploy-step"></a>Di halaman **Tinjau**, pilih **Deploy**.

   Penyebaran dapat memakan waktu hingga satu menit untuk diselesaikan.

#### Untuk menerapkan komponen penyedia PKCS \$111 ()AWS CLI
<a name="deploy-pkcs11-provider-component-cli"></a>

Untuk menerapkan komponen penyedia PKCS \$111, buat dokumen penerapan yang disertakan `aws.greengrass.crypto.Pkcs11Provider` dalam `components` objek, dan tentukan pemutakhiran konfigurasi untuk komponen tersebut. Ikuti petunjuk [Buat deployment](create-deployments.md) untuk membuat penerapan baru atau merevisi penerapan yang ada.

Contoh dokumen penerapan sebagian berikut menetapkan untuk menyebarkan dan mengkonfigurasi komponen penyedia PKCS \$111. Perbarui parameter konfigurasi berikut dengan nilai untuk perangkat inti target. Simpan ID slot dan PIN pengguna untuk digunakan nanti saat Anda mengimpor kunci pribadi dan sertifikat ke HSM.<a name="pkcs11-provider-component-configuration-parameters"></a>

`name`  
Nama untuk konfigurasi PKCS \$111.

`library`  
Jalur file absolut ke pustaka implementasi PKCS \$111 yang dapat dimuat oleh perangkat lunak AWS IoT Greengrass Core dengan libdl.

`slot`  
ID slot yang berisi kunci pribadi dan sertifikat perangkat. Nilai ini berbeda dari indeks slot atau label slot.

`userPin`  
PIN pengguna yang digunakan untuk mengakses slot.

```
{
  "name": "softhsm_pkcs11",
  "library": "/usr/lib/softhsm/libsofthsm2.so",
  "slot": 1,
  "userPin": "1234"
}
```

```
{
  ...,
  "components": {
    ...,
    "aws.greengrass.crypto.Pkcs11Provider": {
      "componentVersion": "2.0.0",
      "configurationUpdate": {
        "merge": "{\"name\":\"softhsm_pkcs11\",\"library\":\"/usr/lib/softhsm/libsofthsm2.so\",\"slot\":1,\"userPin\":\"1234\"}"
      }
    }
  }
}
```

Deployment ini dapat memakan waktu beberapa menit hingga selesai. Anda dapat menggunakan AWS IoT Greengrass layanan untuk memeriksa status penyebaran. Anda dapat memeriksa log perangkat lunak AWS IoT Greengrass Inti untuk memverifikasi bahwa komponen penyedia PKCS \$111 berhasil diterapkan. Untuk informasi selengkapnya, lihat berikut ini:
+ [Periksa status deployment](check-deployment-status.md)
+ [Memantau AWS IoT Greengrass log](monitor-logs.md)

Jika penerapan gagal, Anda dapat memecahkan masalah penerapan pada setiap perangkat inti. Untuk informasi selengkapnya, lihat [Pemecahan masalah AWS IoT Greengrass V2](troubleshooting.md).

### Langkah 3: Perbarui konfigurasi pada perangkat inti
<a name="enable-hardware-security-configure-core-device"></a>

Perangkat lunak AWS IoT Greengrass Core menggunakan file konfigurasi yang menentukan bagaimana perangkat beroperasi. File konfigurasi ini mencakup tempat menemukan kunci pribadi dan sertifikat yang digunakan perangkat untuk terhubung ke file AWS Cloud. Selesaikan langkah-langkah berikut untuk mengimpor kunci pribadi perangkat inti dan sertifikat ke HSM dan memperbarui file konfigurasi untuk menggunakan HSM.

**Untuk memperbarui konfigurasi pada perangkat inti untuk menggunakan keamanan perangkat keras**

1. Hentikan perangkat lunak AWS IoT Greengrass inti. Jika Anda [mengkonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem](configure-greengrass-core-v2.md#configure-system-service) dengan systemd, Anda dapat menjalankan perintah berikut untuk menghentikan perangkat lunak.

   ```
   sudo systemctl stop greengrass.service
   ```

1. Temukan kunci pribadi perangkat inti dan file sertifikat.
   + Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core dengan [penyediaan otomatis atau penyediaan](quick-installation.md) [armada](fleet-provisioning.md), kunci pribadi ada di`/greengrass/v2/privKey.key`, dan sertifikat ada di. `/greengrass/v2/thingCert.crt`
   + Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core dengan [penyediaan manual](manual-installation.md), kunci pribadi ada di secara `/greengrass/v2/private.pem.key` default, dan sertifikat ada di secara `/greengrass/v2/device.pem.crt` default.

   Anda juga dapat memeriksa `system.privateKeyPath` dan `system.certificateFilePath` properti di `/greengrass/v2/config/effectiveConfig.yaml` untuk menemukan lokasi file-file ini.

1. Impor kunci pribadi dan sertifikat ke HSM. Periksa dokumentasi untuk HSM Anda untuk mempelajari cara mengimpor kunci pribadi dan sertifikat ke dalamnya. Impor kunci pribadi dan sertifikat menggunakan ID slot dan PIN pengguna tempat Anda menginisialisasi token PKCS \$111 sebelumnya. Anda harus menggunakan label objek dan ID objek yang sama untuk kunci pribadi dan sertifikat. Simpan label objek yang Anda tentukan saat Anda mengimpor setiap file. Anda menggunakan label ini nanti ketika Anda memperbarui konfigurasi perangkat lunak AWS IoT Greengrass Core untuk menggunakan kunci pribadi dan sertifikat di HSM.

1. Perbarui konfigurasi AWS IoT Greengrass Core untuk menggunakan kunci pribadi dan sertifikat di HSM. Untuk memperbarui konfigurasi, Anda memodifikasi file konfigurasi AWS IoT Greengrass Core dan menjalankan perangkat lunak AWS IoT Greengrass Core dengan file konfigurasi yang diperbarui untuk menerapkan konfigurasi baru.

   Lakukan hal-hal berikut:

   1. Buat cadangan file konfigurasi AWS IoT Greengrass Core. Anda dapat menggunakan cadangan ini untuk memulihkan perangkat inti jika Anda mengalami masalah saat mengonfigurasi keamanan perangkat keras.

      ```
      sudo cp /greengrass/v2/config/effectiveConfig.yaml ~/ggc-config-backup.yaml
      ```

   1. Buka file konfigurasi AWS IoT Greengrass Core di editor teks. Misalnya, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk mengedit file. Ganti `/greengrass/v2` dengan jalur ke folder root Greengrass.

      ```
      sudo nano /greengrass/v2/config/effectiveConfig.yaml
      ```

   1. Ganti nilai `system.privateKeyPath` dengan PKCS \$111 URI untuk kunci pribadi di HSM. Ganti *iotdevicekey* dengan label objek tempat Anda mengimpor kunci pribadi dan sertifikat sebelumnya.

      ```
      pkcs11:object=iotdevicekey;type=private
      ```

   1. Ganti nilai `system.certificateFilePath` dengan PKCS \$111 URI untuk sertifikat di HSM. Ganti *iotdevicekey* dengan label objek tempat Anda mengimpor kunci pribadi dan sertifikat sebelumnya.

      ```
      pkcs11:object=iotdevicekey;type=cert
      ```

   Setelah Anda menyelesaikan langkah-langkah ini, `system` properti dalam file konfigurasi AWS IoT Greengrass Core akan terlihat mirip dengan contoh berikut.

   ```
   system:
     certificateFilePath: "pkcs11:object=iotdevicekey;type=cert"
     privateKeyPath: "pkcs11:object=iotdevicekey;type=private"
     rootCaPath: "/greengrass/v2/rootCA.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   ```

1. Terapkan konfigurasi dalam `effectiveConfig.yaml` file yang diperbarui. Jalankan `Greengrass.jar` dengan `--init-config` parameter untuk menerapkan konfigurasi di`effectiveConfig.yaml`. Ganti `/greengrass/v2` dengan jalur ke folder root Greengrass.

   ```
   sudo java -Droot="/greengrass/v2" \
     -jar /greengrass/v2/alts/current/distro/lib/Greengrass.jar \
     --start false \
     --init-config /greengrass/v2/config/effectiveConfig.yaml
   ```

1. Mulai perangkat lunak AWS IoT Greengrass inti. Jika Anda [mengkonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem](configure-greengrass-core-v2.md#configure-system-service) dengan systemd, Anda dapat menjalankan perintah berikut untuk memulai perangkat lunak.

   ```
   sudo systemctl start greengrass.service
   ```

   Untuk informasi selengkapnya, lihat [Jalankan perangkat lunak AWS IoT Greengrass Core](run-greengrass-core-v2.md).

1. Periksa log perangkat lunak AWS IoT Greengrass inti untuk memverifikasi bahwa perangkat lunak dimulai dan terhubung ke file AWS Cloud. Perangkat lunak AWS IoT Greengrass Core menggunakan kunci pribadi dan sertifikat untuk terhubung ke AWS IoT dan AWS IoT Greengrass layanan.

   ```
   sudo tail -f /greengrass/v2/logs/greengrass.log
   ```

   Pesan log tingkat Info berikut menunjukkan bahwa perangkat lunak AWS IoT Greengrass Core berhasil terhubung ke AWS IoT dan AWS IoT Greengrass layanan.

   ```
   2021-12-06T22:47:53.702Z [INFO] (Thread-3) com.aws.greengrass.mqttclient.AwsIotMqttClient: Successfully connected to AWS IoT Core. {clientId=MyGreengrassCore5, sessionPresent=false}
   ```

1. (Opsional) Setelah Anda memverifikasi bahwa perangkat lunak AWS IoT Greengrass Core berfungsi dengan kunci pribadi dan sertifikat di HSM, hapus kunci pribadi dan file sertifikat dari sistem file perangkat. Jalankan perintah berikut, dan ganti jalur file dengan jalur ke kunci pribadi dan file sertifikat.

   ```
   sudo rm /greengrass/v2/privKey.key
   sudo rm /greengrass/v2/thingCert.crt
   ```

## Gunakan perangkat keras tanpa dukungan PKCS \$111
<a name="hardware-without-pkcs11"></a>

Perpustakaan PKCS \$111 biasanya disediakan oleh vendor perangkat keras atau open source. Misalnya, dengan perangkat keras yang sesuai standar (seperti TPM1 .2), dimungkinkan untuk menggunakan perangkat lunak open source yang ada. Namun, jika perangkat keras Anda tidak memiliki implementasi pustaka PKCS \$111 yang sesuai, atau jika Anda ingin menulis penyedia PKCS \$111 kustom, hubungi perwakilan Amazon Web Services Enterprise Support Anda dengan pertanyaan terkait integrasi.

## Lihat juga
<a name="hardware-security-see-also"></a>
+ [Panduan Penggunaan Antarmuka Token Kriptografi PKCS \$111 Versi 2.4.0](http://docs.oasis-open.org/pkcs11/pkcs11-ug/v2.40/pkcs11-ug-v2.40.html)
+ [RFC 7512](https://tools.ietf.org/html/rfc7512)
+ [PKCS \$11: Enkripsi RSA Versi 1.5](https://tools.ietf.org/html/rfc2313)

# Otentikasi dan otorisasi perangkat untuk AWS IoT Greengrass
<a name="device-auth"></a>

Perangkat di AWS IoT Greengrass lingkungan menggunakan sertifikat X.509 untuk otentikasi dan AWS IoT kebijakan otorisasi. Sertifikat dan kebijakan memungkinkan perangkat dengan aman terhubung satu sama lain, AWS IoT Core, dan AWS IoT Greengrass.

Sertifikat X.509 adalah sertifikat digital yang menggunakan standar infrastruktur kunci publik X.509 untuk mengaitkan kunci publik dengan identitas yang terdapat dalam sertifikat. Sertifikat X.509 dikeluarkan oleh entitas terpercaya yang disebut otoritas sertifikasi (CA). CA mempertahankan satu atau lebih sertifikat khusus yang disebut sertifikat CA yang digunakannya untuk mengeluarkan sertifikat X.509. Hanya otoritas sertifikat yang memiliki akses ke sertifikat CA.

AWS IoT kebijakan menentukan kumpulan operasi yang diizinkan untuk AWS IoT perangkat. Secara khusus, mereka mengizinkan dan menolak akses ke AWS IoT Core dan operasi pesawat AWS IoT Greengrass data, seperti menerbitkan pesan MQTT dan mengambil bayangan perangkat.

Semua perangkat memerlukan entri dalam AWS IoT Core registri dan sertifikat X.509 yang diaktifkan dengan kebijakan terlampir. AWS IoT Perangkat dibagi menjadi dua kategori:
+ **Perangkat inti Greengrass**

  Perangkat inti Greengrass menggunakan sertifikat AWS IoT dan kebijakan untuk terhubung ke dan. AWS IoT Core AWS IoT Greengrass Sertifikat dan kebijakan juga memungkinkan AWS IoT Greengrass untuk menyebarkan komponen dan konfigurasi ke perangkat inti.
+ **Perangkat klien**

  Perangkat klien MQTT menggunakan sertifikat dan kebijakan untuk terhubung ke AWS IoT Core dan layanan. AWS IoT Greengrass Ini memungkinkan perangkat klien menggunakan penemuan AWS IoT Greengrass cloud untuk menemukan dan terhubung ke perangkat inti Greengrass. Perangkat klien menggunakan sertifikat yang sama untuk terhubung ke layanan cloud AWS IoT Core dan perangkat inti. Perangkat klien juga menggunakan informasi penemuan untuk autentikasi bersama dengan perangkat inti. Untuk informasi selengkapnya, lihat [Berinteraksilah dengan perangkat IoT lokal](interact-with-local-iot-devices.md).

## Sertifikat X.509
<a name="x509-certificates"></a>

Komunikasi antara perangkat inti dan perangkat klien dan antara perangkat dan AWS IoT Core atau AWS IoT Greengrass harus diautentikasi. Autentikasi bersama ini didasarkan pada sertifikat perangkat X.509 terdaftar dan kunci kriptografi.

Di AWS IoT Greengrass lingkungan, perangkat menggunakan sertifikat dengan kunci publik dan pribadi untuk koneksi Transport Layer Security (TLS) berikut:
+ Komponen AWS IoT klien pada perangkat inti Greengrass yang terhubung ke AWS IoT Core dan melalui internet. AWS IoT Greengrass 
+ Perangkat klien yang terhubung AWS IoT Greengrass melalui internet untuk menemukan perangkat inti.
+ Komponen broker MQTT pada inti Greengrass menghubungkan ke perangkat Greengrass dalam kelompok melalui jaringan lokal.

AWS IoT Greengrass perangkat inti menyimpan sertifikat di folder root Greengrass.

### Sertifikat otoritas sertifikasi (CA)
<a name="ca-certificates"></a>

Perangkat inti Greengrass dan perangkat klien mengunduh sertifikat CA root yang digunakan untuk otentikasi dengan dan layanan. AWS IoT Core AWS IoT Greengrass Kami merekomendasikan Anda menggunakan sertifikat CA akar Amazon Trust Services (ATS), seperti [Amazon Root CA 1](https://www.amazontrust.com/repository/AmazonRootCA1.pem). Untuk informasi selengkapnya, lihat [Sertifikat CA untuk autentikasi server](https://docs.aws.amazon.com/iot/latest/developerguide/server-authentication.html#server-authentication-certs) di *Panduan Developer AWS IoT Core *.

Perangkat klien juga mengunduh sertifikat CA perangkat inti Greengrass. Mereka menggunakan sertifikat ini untuk memvalidasi sertifikat server MQTT pada perangkat inti selama autentikasi bersama.

### Rotasi sertifikat pada broker MQTT lokal
<a name="mqtt-certificate-expiration"></a>

Saat Anda [mengaktifkan dukungan perangkat klien, perangkat](interact-with-local-iot-devices.md) inti Greengrass menghasilkan sertifikat server MQTT lokal yang digunakan perangkat klien untuk otentikasi timbal balik. Sertifikat ini ditandatangani oleh sertifikat CA perangkat inti, yang disimpan perangkat inti di AWS IoT Greengrass cloud. Perangkat klien mengambil sertifikat CA perangkat inti ketika mereka menemukan perangkat inti. Mereka menggunakan sertifikat CA perangkat inti untuk memverifikasi sertifikat server MQTT perangkat inti ketika mereka terhubung ke perangkat inti. Sertifikat CA perangkat inti berakhir setelah 5 tahun.

Sertifikat server MQTT kedaluwarsa setiap 7 hari secara default, dan Anda dapat mengonfigurasi durasi ini menjadi antara 2 dan 10 hari. Periode terbatas ini didasarkan pada praktik keamanan terbaik. Rotasi ini membantu mengurangi ancaman penyerang yang mencuri sertifikat server MQTT dan kunci privat untuk meniru perangkat inti Greengrass.

Perangkat inti Greengrass memutar sertifikat server MQTT 24 jam sebelum kedaluwarsa. Perangkat inti Greengrass menghasilkan sertifikat baru dan memulai ulang broker MQTT lokal. Ketika ini terjadi, semua perangkat klien yang terhubung ke perangkat inti Greengrass terputus. Perangkat klien dapat menyambung kembali ke perangkat inti Greengrass setelah waktu yang singkat.

## AWS IoT kebijakan untuk operasi pesawat data
<a name="iot-policies"></a>

Gunakan AWS IoT kebijakan untuk mengotorisasi akses ke AWS IoT Core dan pesawat AWS IoT Greengrass data. Bidang data AWS IoT Core menyediakan operasi untuk perangkat, pengguna, dan aplikasi. Operasi ini mencakup kemampuan untuk terhubung AWS IoT Core dan berlangganan topik. Pesawat AWS IoT Greengrass data menyediakan operasi untuk perangkat Greengrass. Untuk informasi selengkapnya, lihat [AWS IoT Greengrass V2 tindakan kebijakan](#greengrass-policy-actions). Operasi ini mencakup kemampuan untuk menyelesaikan dependensi komponen dan mengunduh artefak komponen publik.

 AWS IoT Kebijakan adalah dokumen JSON yang mirip dengan kebijakan [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html#policies-grammar-json). Ini berisi satu atau lebih pernyataan kebijakan yang menentukan properti berikut:
+ `Effect`. Mode akses, yang bisa jadi `Allow` atau `Deny`.
+ `Action`. Daftar tindakan yang diperbolehkan atau ditolak oleh kebijakan tersebut.
+ `Resource`. Daftar sumber daya tempat tindakan tersebut diizinkan atau ditolak.

AWS IoT kebijakan mendukung `*` sebagai karakter wildcard, dan memperlakukan karakter wildcard MQTT (`+`dan`#`) sebagai string literal. Untuk informasi selengkapnya tentang `*` wildcard, lihat [Menggunakan wildcard di resource ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html#reference_policies_elements_resource_wildcards) di *AWS Identity and Access Management Panduan Pengguna*.

Untuk informasi selengkapnya, lihat [kebijakan AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policies.html) dan [tindakan kebijakan AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) di *Panduan Developer AWS IoT Core *.

**penting**  
<a name="thing-policy-variable-not-supported"></a>[Variabel kebijakan objek](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) tidak didukung untuk kebijakan AWS IoT untuk perangkat inti atau operasi bidang data Greengrass. Sebaliknya, Anda dapat menggunakan wildcard yang cocok dengan beberapa perangkat yang memiliki nama yang sama. Misalnya, Anda dapat menentukan `MyGreengrassDevice*` agar cocok dengan `MyGreengrassDevice1`, `MyGreengrassDevice2`, dan sebagainya. 

**catatan**  
AWS IoT Core memungkinkan Anda melampirkan AWS IoT kebijakan ke grup hal untuk menentukan izin untuk grup perangkat. Kebijakan grup hal tidak mengizinkan akses ke operasi pesawat AWS IoT Greengrass data. Untuk mengizinkan akses sesuatu ke operasi pesawat AWS IoT Greengrass data, tambahkan izin ke AWS IoT kebijakan yang Anda lampirkan ke sertifikat benda tersebut.

### AWS IoT Greengrass V2 tindakan kebijakan
<a name="greengrass-policy-actions"></a>

AWS IoT Greengrass V2 mendefinisikan tindakan kebijakan berikut yang dapat digunakan perangkat inti Greengrass dan perangkat klien dalam kebijakan. AWS IoT Untuk menentukan sumber daya untuk tindakan kebijakan, Anda menggunakan Nama Sumber Daya Amazon (ARN) sumber daya.Tindakan perangkat inti

`greengrass:GetComponentVersionArtifact`  <a name="greengrass-get-component-version-artifact-action"></a>
Memberikan izin untuk mendapatkan URL yang telah ditetapkan sebelumnya untuk mengunduh artefak komponen publik atau artefak komponen Lambda.  
Izin ini dievaluasi ketika perangkat inti menerima penerapan yang menentukan komponen publik atau Lambda yang memiliki artefak. Jika perangkat inti sudah memiliki artefak, ia tidak menngunduh artefak lagi.  
Jenis sumber daya: `componentVersion`  
Format ARN sumber daya: `arn:aws:greengrass:region:account-id:components:component-name:versions:component-version`

`greengrass:ResolveComponentCandidates`  <a name="greengrass-resolve-component-candidates-action"></a>
Memberikan izin untuk mengidentifikasi daftar komponen yang memenuhi persyaratan komponen, versi, dan platform untuk deployment. Jika persyaratan tersebut bertentangan, atau tidak ada komponen yang memenuhi persyaratan, operasi ini akan kembali salah dan deployment tersebut gagal pada perangkat itu.  
Izin ini dievaluasi ketika perangkat inti menerima deployment yang menentukan komponen publik yang memiliki artefak.  
Jenis sumber daya: Tidak ada  
Format ARN sumber daya: `*`

`greengrass:GetDeploymentConfiguration`  <a name="greengrass-get-deployment-configuration-action"></a>
Memberikan izin untuk mendapatkan URL yang telah ditunjuk untuk mengunduh suatu dokumen deployment yang besar.  
Izin ini dievaluasi ketika perangkat inti menerima deployment yang menentukan deployment dokumen yang lebih besar dari 7 KB (jika deployment tersebut menargetkan suatu objek) atau 31 KB (jika deployment tersebut menargetkan suatu grup objek). Dokumen deployment ini meliputi konfigurasi komponen, kebijakan deployment, dan metadata deployment. Untuk informasi selengkapnya, lihat [Menyebarkan AWS IoT Greengrass komponen ke perangkat](manage-deployments.md).  
Fitur ini tersedia untuk v2.3.0 dan versi kemudian dari [komponen inti Greengrass](greengrass-nucleus-component.md).  
Jenis sumber daya: Tidak ada  
Format ARN sumber daya: `*`

`greengrass:ListThingGroupsForCoreDevice`  <a name="greengrass-list-thing-groups-for-core-device-action"></a>
Memberikan izin untuk mendapatkan hierarki grup hal perangkat inti.  
Izin ini diperiksa ketika perangkat inti menerima penerapan dari AWS IoT Greengrass. Perangkat inti menggunakan tindakan ini untuk mengidentifikasi apakah itu dihapus dari grup sesuatu sejak penerapan terakhir. Jika perangkat inti dihapus dari grup benda, dan grup benda itu adalah target penerapan ke perangkat inti, maka perangkat inti menghapus komponen yang diinstal oleh penerapan itu.  
[Fitur ini digunakan oleh v2.5.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)  
Jenis sumber daya: `thing` (perangkat inti)  
Format ARN sumber daya: `arn:aws:iot:region:account-id:thing/core-device-thing-name`

`greengrass:VerifyClientDeviceIdentity`  <a name="greengrass-verify-client-device-identity-action"></a>
Memberikan izin untuk memverifikasi identitas perangkat klien yang tersambung ke perangkat inti.  
Izin ini dievaluasi ketika perangkat inti menjalankan [komponen autentikasi perangkat klien](client-device-auth-component.md) dan menerima koneksi MQTT dari perangkat klien. Perangkat klien menyajikan AWS IoT sertifikat perangkat. Kemudian, peranti inti mengirimkan sertifikat peranti ke AWS IoT Greengrass layanan cloud untuk memverifikasi identitas perangkat klien. Untuk informasi selengkapnya, lihat [Berinteraksilah dengan perangkat IoT lokal](interact-with-local-iot-devices.md).  
Jenis sumber daya: Tidak ada  
Format ARN sumber daya: `*`

`greengrass:VerifyClientDeviceIoTCertificateAssociation`  <a name="greengrass-verify-client-device-iot-certificate-association-action"></a>
Memberikan izin untuk memverifikasi apakah perangkat klien dikaitkan dengan AWS IoT sertifikat.  
Izin ini dievaluasi ketika perangkat inti menjalankan [komponen autentikasi perangkat klien](client-device-auth-component.md) dan mengotorisasi perangkat klien untuk terhubung melalui MQTT. Untuk informasi selengkapnya, lihat [Berinteraksilah dengan perangkat IoT lokal](interact-with-local-iot-devices.md).  
Agar perangkat inti dapat menggunakan operasi ini, peran [layanan Greengrass](greengrass-service-role.md) harus dikaitkan dengan Anda dan mengizinkan Akun AWS izin. `iot:DescribeCertificate`
Jenis sumber daya: `thing` (perangkat klien)  
Format ARN sumber daya: `arn:aws:iot:region:account-id:thing/client-device-thing-name`

`greengrass:PutCertificateAuthorities`  <a name="greengrass-put-certificate-authorities-action"></a>
Memberikan izin untuk mengunggah sertifikat otoritas sertifikat (CA) bahwa perangkat klien dapat mengunduh untuk memverifikasi perangkat inti.  
Izin ini dievaluasi ketika perangkat inti menginstal dan menjalankan [komponen auth perangkat klien](client-device-auth-component.md). Komponen ini menciptakan otoritas sertifikat lokal dan menggunakan operasi ini untuk mengunggah sertifikat CA. Perangkat klien mengunduh sertifikat CA ini ketika mereka menggunakan operasi [Temukan](#greengrass-discover-action) untuk menemukan perangkat inti di mana mereka dapat terhubung. Ketika perangkat klien tersambung ke broker MQTT pada perangkat inti, mereka menggunakan sertifikat CA ini untuk memverifikasi identitas perangkat inti. Untuk informasi selengkapnya, lihat [Berinteraksilah dengan perangkat IoT lokal](interact-with-local-iot-devices.md).  
Jenis sumber daya: Tidak ada  
Format ARN: `*`

`greengrass:GetConnectivityInfo`  <a name="greengrass-get-connectivity-info-action"></a>
Memberikan izin untuk mendapatkan informasi konektivitas untuk perangkat inti. Informasi ini menjelaskan bagaimana perangkat klien dapat terhubung ke perangkat inti.  
Izin ini dievaluasi ketika perangkat inti menginstal dan menjalankan [komponen auth perangkat klien](client-device-auth-component.md). Komponen ini menggunakan informasi konektivitas untuk menghasilkan sertifikat CA yang valid untuk diunggah ke layanan AWS IoT Greengrass cloud dengan [PutCertificateAuthories](#greengrass-put-certificate-authorities-action)operasi. Perangkat klien menggunakan sertifikat CA ini untuk memverifikasi identitas perangkat inti. Untuk informasi selengkapnya, lihat [Berinteraksilah dengan perangkat IoT lokal](interact-with-local-iot-devices.md).  
Anda juga dapat menggunakan operasi ini pada bidang AWS IoT Greengrass kontrol untuk melihat informasi konektivitas untuk perangkat inti. Untuk informasi selengkapnya, lihat [GetConnectivityInfo](https://docs.aws.amazon.com/greengrass/v1/apireference/getconnectivityinfo-get.html) di dalam *Referensi API AWS IoT Greengrass V1 *.   
Jenis sumber daya: `thing` (perangkat inti)  
Format ARN sumber daya: `arn:aws:iot:region:account-id:thing/core-device-thing-name`

`greengrass:UpdateConnectivityInfo`  <a name="greengrass-update-connectivity-info-action"></a>
Memberikan izin untuk memperbarui informasi konektivitas untuk perangkat inti. Informasi ini menjelaskan bagaimana perangkat klien dapat terhubung ke perangkat inti.  
Izin ini dievaluasi ketika perangkat inti menjalankan [komponen detektor IP](ip-detector-component.md). Komponen ini mengidentifikasi informasi yang memerlukan perangkat klien untuk terhubung ke perangkat inti pada jaringan lokal. Kemudian, komponen ini menggunakan operasi ini untuk mengunggah informasi konektivitas ke layanan AWS IoT Greengrass cloud, sehingga perangkat klien dapat mengambil informasi ini dengan operasi [Discover](#greengrass-discover-action). Untuk informasi selengkapnya, lihat [Berinteraksilah dengan perangkat IoT lokal](interact-with-local-iot-devices.md).  
Anda juga dapat menggunakan operasi ini pada bidang AWS IoT Greengrass kontrol untuk memperbarui informasi konektivitas secara manual untuk perangkat inti. Untuk informasi selengkapnya, lihat [UpdateConnectivityInfo](https://docs.aws.amazon.com/greengrass/v1/apireference/updateconnectivityinfo-put.html) di dalam *Referensi API AWS IoT Greengrass V1 *.   
Jenis sumber daya: `thing` (perangkat inti)  
Format ARN sumber daya: `arn:aws:iot:region:account-id:thing/core-device-thing-name`Tindakan perangkat klien

`greengrass:Discover`  <a name="greengrass-discover-action"></a>
Memberikan izin untuk menemukan informasi konektivitas untuk perangkat inti di mana perangkat klien dapat terhubung. Informasi ini menjelaskan bagaimana perangkat klien dapat terhubung ke perangkat inti. Perangkat klien hanya dapat menemukan perangkat inti yang telah Anda kaitkan dengan menggunakan [BatchAssociateClientDeviceWithCoreDevice](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html)operasi. Untuk informasi selengkapnya, lihat [Berinteraksilah dengan perangkat IoT lokal](interact-with-local-iot-devices.md).  
Jenis sumber daya: `thing` (perangkat klien)  
Format ARN sumber daya: `arn:aws:iot:region:account-id:thing/client-device-thing-name`

## Memperbarui AWS IoT kebijakan perangkat inti
<a name="update-core-device-iot-policy"></a>

Anda dapat menggunakan AWS IoT Greengrass dan AWS IoT konsol atau AWS IoT API untuk melihat dan memperbarui AWS IoT kebijakan perangkat inti.

**catatan**  
Jika Anda menggunakan [penginstal perangkat lunak AWS IoT Greengrass inti untuk menyediakan sumber daya](quick-installation.md), perangkat inti Anda memiliki AWS IoT kebijakan yang memungkinkan akses ke semua AWS IoT Greengrass tindakan (`greengrass:*`). Anda dapat mengikuti langkah-langkah ini untuk membatasi akses hanya ke tindakan yang digunakan oleh perangkat inti.

### Meninjau dan memperbarui AWS IoT kebijakan perangkat inti (konsol)
<a name="update-core-device-iot-policy-console"></a>

1. <a name="update-iot-policy-console-open-greengrass-console"></a>Di menu navigasi [konsol AWS IoT Greengrass](https://console.aws.amazon.com/greengrass) tersebut, pilih **Perangkat inti**.

1. <a name="update-iot-policy-console-choose-core-device"></a>Pada halaman **Perangkat inti**, pilih perangkat inti yang akan diperbarui.

1. <a name="update-iot-policy-console-choose-core-device-thing"></a>Pada halaman detail perangkat inti, pilih tautan ke **Objek** perangkat inti. Tautan ini membuka halaman rincian hal di AWS IoT konsol.

1. <a name="update-iot-policy-console-choose-thing-security"></a>Pada halaman detail objek, pilih **Sertifikat**.

1. <a name="update-iot-policy-console-choose-thing-certificate"></a>Di tab **Sertifikat**, pilih sertifikat aktif objek.

1. <a name="update-iot-policy-console-choose-certificate-policies"></a>Pada halaman detail sertifikat, pilih **Kebijakan**.

1. <a name="update-iot-policy-console-choose-policy"></a>Di tab **Kebijakan**, pilih AWS IoT kebijakan yang akan ditinjau dan diperbarui. Anda dapat menambahkan izin yang diperlukan untuk kebijakan yang dilampirkan ke sertifikat aktif perangkat inti.
**catatan**  <a name="quick-installation-iot-policies-note"></a>
Jika Anda menggunakan [penginstal perangkat lunak AWS IoT Greengrass inti untuk menyediakan sumber daya](quick-installation.md), Anda memiliki dua AWS IoT kebijakan. Kami menyarankan Anda memilih kebijakan yang diberi nama **GreengrassV2IoTThingPolicy**, jika ada. Perangkat inti yang Anda buat dengan penginstal cepat menggunakan nama kebijakan ini secara default. Jika Anda menambahkan izin untuk kebijakan ini, Anda juga memberikan izin ini ke perangkat inti lain yang menggunakan kebijakan ini.

1. <a name="update-iot-policy-console-edit-policy"></a>Dalam ikhtisar kebijakan, pilih **Edit versi aktif**.

1. Tinjau kebijakan dan tambahkan, hapus, atau edit izin sesuai kebutuhan.

1. <a name="update-iot-policy-console-set-as-active-version"></a>Untuk menetapkan versi kebijakan baru sebagai versi aktif, di bawah **Status versi Kebijakan**, pilih **Setel versi yang diedit sebagai versi aktif untuk kebijakan ini**.

1. <a name="update-iot-policy-console-save-policy"></a>Pilih **Simpan sebagai versi baru**.

### Meninjau dan memperbarui AWS IoT kebijakan perangkat inti (AWS CLI)
<a name="update-core-device-iot-policy-cli"></a>

1. <a name="update-iot-policy-cli-list-thing-principals"></a>Buat daftar prinsipal untuk hal perangkat inti. AWS IoT Prinsipal hal dapat berupa sertifikat perangkat X.509 atau identifikasi lainnya. Jalankan perintah berikut, dan ganti *MyGreengrassCore* dengan nama perangkat inti.

   ```
   aws iot list-thing-principals --thing-name MyGreengrassCore
   ```

   Operasi mengembalikan respons yang mencantumkan prinsipal hal perangkat inti.

   ```
   {
       "principals": [
           "arn:aws:iot:us-west-2:123456789012:cert/certificateId"
       ]
   }
   ```

1. <a name="update-iot-policy-cli-identify-active-certificate"></a>Identifikasi sertifikat aktif perangkat inti. Jalankan perintah berikut, dan ganti *certificateId* dengan ID setiap sertifikat dari langkah sebelumnya hingga Anda menemukan sertifikat aktif. ID sertifikat adalah string heksadesimal di akhir sertifikat ARN. `--query`Argumen menentukan untuk output hanya status sertifikat.

   ```
   aws iot describe-certificate --certificate-id certificateId --query 'certificateDescription.status'
   ```

   Operasi mengembalikan status sertifikat sebagai string. Misalnya, jika sertifikat aktif, output `"ACTIVE"` operasi ini.

1. <a name="update-iot-policy-cli-list-certificate-policies"></a>Buat daftar AWS IoT kebijakan yang dilampirkan pada sertifikat. Jalankan perintah berikut, dan ganti sertifikat ARN dengan ARN sertifikat.

   ```
   aws iot list-principal-policies --principal arn:aws:iot:us-west-2:123456789012:cert/certificateId
   ```

   Operasi mengembalikan respons yang mencantumkan AWS IoT kebijakan yang dilampirkan pada sertifikat.

   ```
   {
       "policies": [
           {
               "policyName": "GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias",
               "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias"
           },
           {
               "policyName": "GreengrassV2IoTThingPolicy",
               "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy"
           }
       ]
   }
   ```

1. <a name="update-iot-policy-cli-choose-policy"></a>Pilih kebijakan yang akan dilihat dan diperbarui.
**catatan**  <a name="quick-installation-iot-policies-note"></a>
Jika Anda menggunakan [penginstal perangkat lunak AWS IoT Greengrass inti untuk menyediakan sumber daya](quick-installation.md), Anda memiliki dua AWS IoT kebijakan. Kami menyarankan Anda memilih kebijakan yang diberi nama **GreengrassV2IoTThingPolicy**, jika ada. Perangkat inti yang Anda buat dengan penginstal cepat menggunakan nama kebijakan ini secara default. Jika Anda menambahkan izin untuk kebijakan ini, Anda juga memberikan izin ini ke perangkat inti lain yang menggunakan kebijakan ini.

1. <a name="update-iot-policy-cli-get-policy-document"></a>Dapatkan dokumen kebijakan. Jalankan perintah berikut, dan ganti *GreengrassV2IoTThingPolicy* dengan nama kebijakan.

   ```
   aws iot get-policy --policy-name GreengrassV2IoTThingPolicy
   ```

   Operasi mengembalikan respons yang berisi dokumen kebijakan dan informasi lain tentang kebijakan tersebut. Dokumen kebijakan adalah objek JSON yang diserialisasikan sebagai string. 

   ```
   {
       "policyName": "GreengrassV2IoTThingPolicy",
       "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy",
       "policyDocument": "{\
     \\"Version\\": \\"2012-10-17		 	 	 \\",\
     \\"Statement\\": [\
       {\
         \\"Effect\\": \\"Allow\\",\
         \\"Action\\": [\
                   \\"iot:Connect\\",\
                   \\"iot:Publish\\",\
                   \\"iot:Subscribe\\",\
                   \\"iot:Receive\\",\
                   \\"greengrass:*\\"\
   ],\
         \\"Resource\\": \\"*\\"\
       }\
     ]\
   }",
       "defaultVersionId": "1",
       "creationDate": "2021-02-05T16:03:14.098000-08:00",
       "lastModifiedDate": "2021-02-05T16:03:14.098000-08:00",
       "generationId": "f19144b798534f52c619d44f771a354f1b957dfa2b850625d9f1d0fde530e75f"
   }
   ```

1. <a name="update-iot-policy-cli-create-policy-document-file"></a>Gunakan konverter online atau alat lain untuk mengonversi string dokumen kebijakan menjadi objek JSON, lalu simpan ke file bernama`iot-policy.json`.

   Misalnya, jika Anda menginstal alat [jq](https://stedolan.github.io/jq/), Anda dapat menjalankan perintah berikut untuk mendapatkan dokumen kebijakan, mengubahnya menjadi objek JSON, dan menyimpan dokumen kebijakan sebagai objek JSON.

   ```
   aws iot get-policy --policy-name GreengrassV2IoTThingPolicy --query 'policyDocument' | jq fromjson >> iot-policy.json
   ```

1. Tinjau dokumen kebijakan, dan tambahkan, hapus, atau edit izin sesuai kebutuhan.

   <a name="nano-command-intro-existing-file"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuka file.

   ```
   nano iot-policy.json
   ```

   Setelah selesai, dokumen kebijakan mungkin terlihat mirip dengan [AWS IoT kebijakan minimal untuk perangkat inti](#greengrass-core-minimal-iot-policy).

1. <a name="update-iot-policy-cli-create-policy-version"></a>Simpan perubahan sebagai versi baru kebijakan. Jalankan perintah berikut, dan ganti *GreengrassV2IoTThingPolicy* dengan nama kebijakan.

   ```
   aws iot create-policy-version --policy-name GreengrassV2IoTThingPolicy --policy-document file://iot-policy.json --set-as-default
   ```

   Operasi mengembalikan respon mirip dengan contoh berikut jika berhasil.

   ```
   {
       "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy",
       "policyDocument": "{\
     \\"Version\\": \\"2012-10-17		 	 	 \\",\
     \\"Statement\\": [\
       {\
         \\"Effect\\": \\"Allow\\",\
         \\"Action\\": [\
   \\t\\t\\"iot:Connect\\",\
   \\t\\t\\"iot:Publish\\",\
   \\t\\t\\"iot:Subscribe\\",\
   \\t\\t\\"iot:Receive\\",\
   \\t\\t\\"greengrass:*\\"\
         ],\
         \\"Resource\\": \\"*\\"\
       }\
     ]\
   }",
       "policyVersionId": "2",
       "isDefaultVersion": true
   }
   ```

## AWS IoT Kebijakan minimal untuk perangkat AWS IoT Greengrass V2 inti
<a name="greengrass-core-minimal-iot-policy"></a>

**penting**  
Versi selanjutnya dari komponen [inti Greengrass](greengrass-nucleus-component.md) memerlukan izin tambahan pada kebijakan minimal. AWS IoT Anda mungkin perlu [memperbarui AWS IoT kebijakan perangkat inti Anda](#update-core-device-iot-policy) untuk memberikan izin tambahan.  
Perangkat inti yang menjalankan Greengrass nucleus v2.5.0 dan yang lebih baru menggunakan `greengrass:ListThingGroupsForCoreDevice` izin untuk menghapus komponen saat Anda menghapus perangkat inti dari grup benda.
Perangkat inti yang menjalankan Greengrass nucleus v2.3.0 dan yang lebih baru menggunakan `greengrass:GetDeploymentConfiguration` izin untuk mendukung dokumen konfigurasi penerapan besar.

Kebijakan contoh berikut mencakup serangkaian tindakan minimum yang diperlukan untuk mendukung fungsi Greengrass dasar untuk perangkat inti Anda.
+ `Connect`Kebijakan ini menyertakan `*` wildcard setelah nama perangkat inti (misalnya,`core-device-thing-name*`). Perangkat inti menggunakan sertifikat perangkat yang sama untuk membuat beberapa langganan bersamaan AWS IoT Core, tetapi ID klien dalam koneksi mungkin tidak sama persis dengan nama perangkat inti. Setelah 50 langganan pertama, perangkat inti menggunakan `core-device-thing-name#number` sebagai ID klien, di mana `number` kenaikan untuk setiap tambahan 50 langganan. Misalnya, ketika perangkat inti bernama `MyCoreDevice` membuat 150 langganan bersamaan, ia menggunakan klien berikut: IDs
  + Langganan 1 hingga 50: `MyCoreDevice`
  + Langganan 51 hingga 100: `MyCoreDevice#2`
  + Langganan 101 hingga 150: `MyCoreDevice#3`

  Wildcard memungkinkan perangkat inti untuk terhubung ketika menggunakan klien ini IDs yang memiliki akhiran.
+ Kebijakan ini mencantumkan topik MQTT dan filter topik yang perangkat inti dapat publikasikan, berlangganan, dan menerima pesan, termasuk topik yang digunakan untuk keadaan bayangan. Untuk mendukung pertukaran pesan antara komponen Greengrass AWS IoT Core, dan perangkat klien, tentukan topik dan filter topik yang ingin Anda izinkan. Untuk informasi selengkapnya, lihat [contoh kebijakan Publikasi/Berlangganan](https://docs.aws.amazon.com/iot/latest/developerguide/pub-sub-policy.html) di *Panduan Developer AWS IoT Core *.
+ Kebijakan tersebut memberikan izin untuk mempublikasikan topik berikut untuk data telemetri.

  ```
  $aws/things/core-device-thing-name/greengrass/health/json
  ```

  Anda dapat menghapus izin ini untuk perangkat inti di mana Anda menonaktifkan telemetri. Untuk informasi selengkapnya, lihat [Kumpulkan data telemetri kesehatan sistem dari perangkat inti AWS IoT Greengrass](telemetry.md).
+ Kebijakan tersebut memberikan izin untuk mengambil peran IAM melalui alias AWS IoT peran. Perangkat inti menggunakan peran ini, yang disebut peran pertukaran token, untuk memperoleh AWS kredensyal yang dapat digunakan untuk mengautentikasi AWS permintaan. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

  Saat Anda menginstal perangkat lunak AWS IoT Greengrass Core, Anda membuat dan melampirkan AWS IoT kebijakan kedua yang hanya menyertakan izin ini. Jika Anda menyertakan izin ini dalam AWS IoT kebijakan utama perangkat inti, Anda dapat melepaskan dan menghapus AWS IoT kebijakan lainnya.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Connect"
            ],
            "Resource": "arn:aws:iot:us-east-1:123456789012:client/core-device-thing-name*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive",
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/greengrass/health/json",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/greengrassv2/health/json",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/jobs/*",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/shadow/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name/jobs/*",
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name/shadow/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iot:AssumeRoleWithCertificate",
            "Resource": "arn:aws:iot:us-east-1:123456789012:rolealias/token-exchange-role-alias-name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:GetComponentVersionArtifact",
                "greengrass:ResolveComponentCandidates",
                "greengrass:GetDeploymentConfiguration",
                "greengrass:ListThingGroupsForCoreDevice"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS IoT Kebijakan minimal untuk mendukung perangkat klien
<a name="client-device-support-minimal-iot-policy"></a>

Kebijakan contoh berikut mencakup serangkaian tindakan minimum yang diperlukan untuk mendukung interaksi dengan perangkat klien pada perangkat inti. Untuk mendukung perangkat klien, perangkat inti harus memiliki izin dalam AWS IoT kebijakan ini selain [AWS IoT kebijakan Minimal untuk operasi dasar](#greengrass-core-minimal-iot-policy).
+ Kebijakan ini memungkinkan perangkat inti untuk memperbarui informasi konektivitasnya sendiri. Izin (`greengrass:UpdateConnectivityInfo`) ini hanya diperlukan jika Anda menyebarkan [komponen detektor IP](ip-detector-component.md) ke perangkat inti.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name-gci/shadow/get"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name-gci/shadow/update/delta",
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name-gci/shadow/get/accepted"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name-gci/shadow/update/delta",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name-gci/shadow/get/accepted"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:PutCertificateAuthorities",
                "greengrass:VerifyClientDeviceIdentity"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:VerifyClientDeviceIoTCertificateAssociation"
            ],
            "Resource": "arn:aws:iot:us-east-1:123456789012:thing/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:GetConnectivityInfo",
                "greengrass:UpdateConnectivityInfo"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:thing/core-device-thing-name"
            ]
        }
    ]
}
```

------

## AWS IoT Kebijakan minimal untuk perangkat klien
<a name="client-device-minimal-iot-policy"></a>

Kebijakan contoh berikut mencakup serangkaian tindakan minimum yang diperlukan untuk perangkat klien untuk menemukan perangkat inti di mana mereka terhubung dan berkomunikasi melalui MQTT. AWS IoT Kebijakan perangkat klien harus menyertakan `greengrass:Discover` tindakan untuk memungkinkan perangkat menemukan informasi konektivitas untuk perangkat inti Greengrass terkait. Di bagian `Resource`, tentukan Amazon Resource Name (ARN) perangkat klien, bukan ARN perangkat inti Greengrass.
+ Kebijakan ini memungkinkan komunikasi pada semua topik MQTT. Untuk mengikuti praktik keamanan terbaik, batasi `iot:Publish`, `iot:Subscribe`, dan `iot:Receive` ke set minimal perangkat klien yang tersambung ke perangkat inti untuk kasus penggunaan Anda.
+ Kebijakan ini memungkinkan benda untuk menemukan perangkat inti untuk semua AWS IoT hal. Untuk mengikuti praktik keamanan terbaik, batasi `greengrass:Discover` izin untuk perangkat klien atau wildcard yang cocok dengan serangkaian AWS IoT AWS IoT hal.
**penting**  
<a name="thing-policy-variable-not-supported"></a>[Variabel kebijakan objek](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) tidak didukung di kebijakan AWS IoT untuk perangkat inti atau operasi bidang data Greengrass. Sebaliknya, Anda dapat menggunakan wildcard yang cocok dengan beberapa perangkat yang memiliki nama yang sama. Misalnya, Anda dapat menentukan `MyGreengrassDevice*` agar cocok dengan `MyGreengrassDevice1`, `MyGreengrassDevice2`, dan sebagainya. 
+  AWS IoT Kebijakan perangkat klien biasanya tidak memerlukan izin untuk`iot:GetThingShadow`,, atau `iot:DeleteThingShadow` tindakan`iot:UpdateThingShadow`, karena perangkat inti Greengrass menangani operasi sinkronisasi bayangan untuk perangkat klien. Untuk mengaktifkan perangkat inti menangani bayangan perangkat klien, periksa apakah AWS IoT kebijakan perangkat inti mengizinkan tindakan ini, dan `Resource` ARNs bagian tersebut menyertakan perangkat klien.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Connect"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:Discover"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:thing/*"
            ]
        }
    ]
}
```

------

# Identitas dan manajemen akses untuk AWS IoT Greengrass
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) adalah Layanan AWS yang membantu administrator mengontrol akses ke AWS sumber daya dengan aman. Administrator IAM mengontrol siapa yang dapat *diautentikasi* (masuk) dan *diberi wewenang* (memiliki izin) untuk menggunakan sumber daya. AWS IoT Greengrass IAM adalah Layanan AWS yang dapat Anda gunakan tanpa biaya tambahan.

**catatan**  
Topik ini menjelaskan konsep dan fitur IAM. Untuk informasi tentang fitur IAM yang didukung oleh AWS IoT Greengrass, lihat[Bagaimana AWS IoT Greengrass bekerja dengan IAM](security_iam_service-with-iam.md).

## Audiens
<a name="security_iam_audience"></a>

Cara Anda menggunakan AWS Identity and Access Management (IAM) berbeda berdasarkan peran Anda:
+ **Pengguna layanan** - minta izin dari administrator Anda jika Anda tidak dapat mengakses fitur (lihat [Memecahkan masalah identitas dan akses untuk AWS IoT Greengrass](security_iam_troubleshoot.md))
+ **Administrator layanan** - tentukan akses pengguna dan mengirimkan permintaan izin (lihat [Bagaimana AWS IoT Greengrass bekerja dengan IAM](security_iam_service-with-iam.md))
+ **Administrator IAM** - tulis kebijakan untuk mengelola akses (lihat [Contoh kebijakan berbasis identitas untuk AWS IoT Greengrass](security_iam_id-based-policy-examples.md))

## Mengautentikasi dengan identitas
<a name="security_iam_authentication"></a>

Otentikasi adalah cara Anda masuk AWS menggunakan kredensi identitas Anda. Anda harus diautentikasi sebagai Pengguna root akun AWS, pengguna IAM, atau dengan mengasumsikan peran IAM.

Anda dapat masuk sebagai identitas federasi menggunakan kredensil dari sumber identitas seperti AWS IAM Identity Center (Pusat Identitas IAM), autentikasi masuk tunggal, atau kredensional. Google/Facebook Untuk informasi selengkapnya tentang cara masuk, lihat [Cara masuk ke Akun AWS Anda](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) dalam *Panduan Pengguna AWS Sign-In *.

Untuk akses terprogram, AWS sediakan SDK dan CLI untuk menandatangani permintaan secara kriptografis. Untuk informasi selengkapnya, lihat [AWS Signature Version 4 untuk permintaan API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) dalam *Panduan Pengguna IAM*.

### Akun AWS pengguna root
<a name="security_iam_authentication-rootuser"></a>

 Saat Anda membuat Akun AWS, Anda mulai dengan satu identitas masuk yang disebut *pengguna Akun AWS root* yang memiliki akses lengkap ke semua Layanan AWS dan sumber daya. Kami sangat menyarankan agar Anda tidak menggunakan pengguna root untuk tugas sehari-hari. Untuk tugas yang memerlukan kredensial pengguna root, lihat [Tugas yang memerlukan kredensial pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) dalam *Panduan Pengguna IAM*. 

### Pengguna dan grup IAM
<a name="security_iam_authentication-iamuser"></a>

*[Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* adalah identitas dengan izin khusus untuk satu orang atau aplikasi. Sebaiknya gunakan kredensial sementara alih-alih pengguna IAM dengan kredensial jangka panjang. Untuk informasi selengkapnya, lihat [Mewajibkan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) di Panduan Pengguna *IAM*.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) menentukan kumpulan pengguna IAM dan mempermudah pengelolaan izin untuk pengguna dalam jumlah besar. Untuk mempelajari selengkapnya, lihat [Kasus penggunaan untuk pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) dalam *Panduan Pengguna IAM*.

### Peran IAM
<a name="security_iam_authentication-iamrole"></a>

*[Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* adalah identitas dengan izin khusus yang menyediakan kredensial sementara. Anda dapat mengambil peran dengan [beralih dari pengguna ke peran IAM (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) atau dengan memanggil operasi AWS CLI atau AWS API. Untuk informasi selengkapnya, lihat [Metode untuk mengambil peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dalam *Panduan Pengguna IAM*.

Peran IAM berguna untuk akses pengguna terfederasi, izin pengguna IAM sementara, akses lintas akun, akses lintas layanan, dan aplikasi yang berjalan di Amazon EC2. Untuk informasi selengkapnya, lihat [Akses sumber daya lintas akun di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dalam *Panduan Pengguna IAM*.

## Mengelola akses menggunakan kebijakan
<a name="security_iam_access-manage"></a>

Anda mengontrol akses AWS dengan membuat kebijakan dan melampirkannya ke AWS identitas atau sumber daya. Kebijakan menentukan izin saat dikaitkan dengan identitas atau sumber daya. AWS mengevaluasi kebijakan ini ketika kepala sekolah membuat permintaan. Sebagian besar kebijakan disimpan AWS sebagai dokumen JSON. Untuk informasi selengkapnya tentang dokumen kebijakan JSON, lihat [Gambaran umum kebijakan JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) dalam *Panduan Pengguna IAM*.

Menggunakan kebijakan, administrator menentukan siapa yang memiliki akses ke apa dengan mendefinisikan **principal** mana yang dapat melakukan **tindakan** pada **sumber daya** apa, dan dalam **kondisi** apa.

Secara default, pengguna dan peran tidak memiliki izin. Administrator IAM membuat kebijakan IAM dan menambahkannya ke peran, yang kemudian dapat diambil oleh pengguna. Kebijakan IAM mendefinisikan izin terlepas dari metode yang Anda gunakan untuk melakukan operasinya.

### Kebijakan berbasis identitas
<a name="security_iam_access-manage-id-based-policies"></a>

Kebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang Anda lampirkan ke identitas (pengguna, grup, atau peran). Kebijakan ini mengontrol tindakan apa yang bisa dilakukan oleh identitas tersebut, terhadap sumber daya yang mana, dan dalam kondisi apa. Untuk mempelajari cara membuat kebijakan berbasis identitas, lihat [Tentukan izin IAM kustom dengan kebijakan yang dikelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dalam *Panduan Pengguna IAM*.

Kebijakan berbasis identitas dapat berupa *kebijakan inline* (disematkan langsung ke dalam satu identitas) atau *kebijakan terkelola* (kebijakan mandiri yang dilampirkan pada banyak identitas). Untuk mempelajari cara memilih antara kebijakan terkelola dan kebijakan inline, lihat [Pilih antara kebijakan terkelola dan kebijakan inline](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) dalam *Panduan Pengguna IAM*.

### Kebijakan berbasis sumber daya
<a name="security_iam_access-manage-resource-based-policies"></a>

Kebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang Anda lampirkan ke sumber daya. Contohnya termasuk *kebijakan kepercayaan peran IAM* dan *kebijakan bucket* Amazon S3. Dalam layanan yang mendukung kebijakan berbasis sumber daya, administrator layanan dapat menggunakannya untuk mengontrol akses ke sumber daya tertentu. Anda harus [menentukan principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dalam kebijakan berbasis sumber daya.

Kebijakan berbasis sumber daya merupakan kebijakan inline yang terletak di layanan tersebut. Anda tidak dapat menggunakan kebijakan AWS terkelola dari IAM dalam kebijakan berbasis sumber daya.

### Daftar kontrol akses (ACLs)
<a name="security_iam_access-manage-acl"></a>

Access control lists (ACLs) mengontrol prinsipal mana (anggota akun, pengguna, atau peran) yang memiliki izin untuk mengakses sumber daya. ACLs mirip dengan kebijakan berbasis sumber daya, meskipun mereka tidak menggunakan format dokumen kebijakan JSON.

Amazon S3, AWS WAF, dan Amazon VPC adalah contoh layanan yang mendukung. ACLs Untuk mempelajari selengkapnya ACLs, lihat [Ringkasan daftar kontrol akses (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) di *Panduan Pengembang Layanan Penyimpanan Sederhana Amazon*.

### Jenis-jenis kebijakan lain
<a name="security_iam_access-manage-other-policies"></a>

AWS mendukung jenis kebijakan tambahan yang dapat menetapkan izin maksimum yang diberikan oleh jenis kebijakan yang lebih umum:
+ **Batasan izin** – Menetapkan izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas kepada entitas IAM. Untuk informasi selengkapnya, lihat [Batasan izin untuk entitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) dalam *Panduan Pengguna IAM*.
+ **Kebijakan kontrol layanan (SCPs)** — Tentukan izin maksimum untuk organisasi atau unit organisasi di AWS Organizations. Untuk informasi selengkapnya, lihat [Kebijakan kontrol layanan](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dalam *Panduan Pengguna AWS Organizations *.
+ **Kebijakan kontrol sumber daya (RCPs)** — Tetapkan izin maksimum yang tersedia untuk sumber daya di akun Anda. Untuk informasi selengkapnya, lihat [Kebijakan kontrol sumber daya (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) di *Panduan AWS Organizations Pengguna*.
+ **Kebijakan sesi** – Kebijakan lanjutan yang diteruskan sebagai parameter saat membuat sesi sementara untuk peran atau pengguna terfederasi. Untuk informasi selengkapnya, lihat [Kebijakan sesi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) dalam *Panduan Pengguna IAM*.

### Berbagai jenis kebijakan
<a name="security_iam_access-manage-multiple-policies"></a>

Ketika beberapa jenis kebijakan berlaku pada suatu permintaan, izin yang dihasilkan lebih rumit untuk dipahami. Untuk mempelajari cara AWS menentukan apakah akan mengizinkan permintaan saat beberapa jenis kebijakan terlibat, lihat [Logika evaluasi kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) di *Panduan Pengguna IAM*.

## Lihat juga
<a name="security_iam_service-see-also"></a>
+ [Bagaimana AWS IoT Greengrass bekerja dengan IAM](security_iam_service-with-iam.md)
+ [Contoh kebijakan berbasis identitas untuk AWS IoT Greengrass](security_iam_id-based-policy-examples.md)
+ [Memecahkan masalah identitas dan akses untuk AWS IoT Greengrass](security_iam_troubleshoot.md)

# Bagaimana AWS IoT Greengrass bekerja dengan IAM
<a name="security_iam_service-with-iam"></a>

Sebelum Anda menggunakan IAM untuk mengelola akses AWS IoT Greengrass, Anda harus memahami fitur IAM yang dapat Anda gunakan. AWS IoT Greengrass


| Fitur IAM | Didukung oleh Greengrass? | 
| --- | --- | 
| [Kebijakan berbasis identitas dengan izin tingkat sumber daya](#security_iam_service-with-iam-id-based-policies) | Ya | 
| [Kebijakan berbasis sumber daya](#security_iam_service-with-iam-resource-based-policies) | Tidak | 
| [Daftar kontrol akses (ACLs)](#security_iam_service-with-iam-acls) | Tidak | 
| [Otorisasi berbasis tag](#security_iam_service-with-iam-tags) | Ya | 
| [Kredensial sementara](#security_iam_service-with-iam-roles-tempcreds) | Ya | 
| [Peran terkait layanan](#security_iam_service-with-iam-roles-service-linked) | Tidak | 
| [Peran layanan](#security_iam_service-with-iam-roles-service-linked) | Ya | 

Untuk tampilan tingkat tinggi tentang cara kerja AWS layanan lain dengan IAM, lihat [AWS layanan yang bekerja dengan IAM di Panduan Pengguna *IAM*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).

## Kebijakan berbasis identitas untuk AWS IoT Greengrass
<a name="security_iam_service-with-iam-id-based-policies"></a>

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan tindakan dan sumber daya yang diizinkan atau ditolak serta kondisi di mana tindakan diizinkan atau ditolak. AWS IoT Greengrass mendukung tindakan, sumber daya, dan kunci kondisi tertentu. Untuk mempelajari semua elemen yang Anda gunakan dalam kebijakan JSON, lihat [Referensi elemen kebijakan IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) dalam *Panduan Pengguna IAM*.

### Tindakan
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen `Action` dari kebijakan JSON menjelaskan tindakan yang dapat Anda gunakan untuk mengizinkan atau menolak akses dalam sebuah kebijakan. Sertakan tindakan dalam kebijakan untuk memberikan izin untuk melakukan operasi terkait.

Tindakan kebijakan untuk AWS IoT Greengrass menggunakan `greengrass:` awalan sebelum tindakan. Misalnya, untuk mengizinkan seseorang menggunakan operasi `ListCoreDevices` API untuk mencantumkan perangkat inti di perangkat mereka Akun AWS, Anda menyertakan `greengrass:ListCoreDevices` tindakan tersebut dalam kebijakan mereka. Pernyataan kebijakan harus mencakup salah satu `Action` atau `NotAction` elemen. AWS IoT Greengrass mendefinisikan serangkaian tindakannya sendiri yang menggambarkan tugas yang dapat Anda lakukan dengan layanan ini.

Untuk menetapkan beberapa tindakan dalam satu pernyataan, letakkan dalam tanda kurung (`[` `]`) dan pisahkan dengan koma seperti berikut:

```
"Action": [
  "greengrass:action1",
  "greengrass:action2",
  "greengrass:action3"
]
```

Anda bisa menggunakan wildcard (`*`) untuk menentukan beberapa tindakan. Sebagai contoh, untuk menentukan semua tindakan yang dimulai dengan kata `List`, sertakan tindakan berikut:

```
"Action": "greengrass:List*"
```

**catatan**  
Kami merekomendasikan Anda menghindari penggunaan wildcard untuk menentukan semua tindakan yang tersedia untuk layanan. Sebagai praktik terbaik, Anda harus memberi setidaknya hak istimewa dan izin cakupan secara sempit dalam kebijakan. Untuk informasi selengkapnya, lihat [Berikan izin minimum yang memungkinkan](security-best-practices.md#least-privilege).

Untuk daftar lengkap AWS IoT Greengrass tindakan, lihat [Tindakan yang Ditentukan oleh AWS IoT Greengrass](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) dalam *Panduan Pengguna IAM*.

### Sumber daya
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen kebijakan JSON `Resource` menentukan objek yang menjadi target penerapan tindakan. Praktik terbaiknya, tentukan sumber daya menggunakan [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Untuk tindakan yang tidak mendukung izin di tingkat sumber daya, gunakan wildcard (\$1) untuk menunjukkan bahwa pernyataan tersebut berlaku untuk semua sumber daya.

```
"Resource": "*"
```

Tabel berikut berisi AWS IoT Greengrass sumber daya ARNs yang dapat digunakan dalam `Resource` elemen pernyataan kebijakan. *Untuk pemetaan izin tingkat sumber daya yang didukung untuk AWS IoT Greengrass tindakan, lihat [Tindakan yang Ditentukan oleh AWS IoT Greengrass](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) dalam Panduan Pengguna IAM.*

Beberapa AWS IoT Greengrass tindakan (misalnya, beberapa operasi daftar), tidak dapat dilakukan pada sumber daya tertentu. Dalam kondisi tersebut, Anda harus menggunakan karakter wildcard saja.

```
"Resource": "*"
```

Untuk menentukan beberapa sumber daya ARNs dalam sebuah pernyataan, daftarkan mereka di antara tanda kurung (`[``]`) dan pisahkan dengan koma, sebagai berikut:

```
"Resource": [
  "resource-arn1",
  "resource-arn2",
  "resource-arn3"
]
```

Untuk informasi selengkapnya tentang format ARN, lihat [Amazon Resource Names (ARNs) dan ruang nama AWS layanan](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) di. *Referensi Umum Amazon Web Services*

### Kunci syarat
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, **principal** dapat melakukan **tindakan** pada suatu **sumber daya**, dan dalam suatu **syarat**.

Elemen `Condition` menentukan ketika pernyataan dieksekusi berdasarkan kriteria yang ditetapkan. Anda dapat membuat ekspresi bersyarat yang menggunakan [operator kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), misalnya sama dengan atau kurang dari, untuk mencocokkan kondisi dalam kebijakan dengan nilai-nilai yang diminta. Untuk melihat semua kunci kondisi AWS global, lihat [kunci konteks kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di *Panduan Pengguna IAM*.

### Contoh
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Untuk melihat contoh kebijakan AWS IoT Greengrass berbasis identitas, lihat. [Contoh kebijakan berbasis identitas untuk AWS IoT Greengrass](security_iam_id-based-policy-examples.md)

## Kebijakan berbasis sumber daya untuk AWS IoT Greengrass
<a name="security_iam_service-with-iam-resource-based-policies"></a>

AWS IoT Greengrass tidak mendukung kebijakan berbasis [sumber daya](security-iam.md#security_iam_access-manage-resource-based-policies).

## Daftar kontrol akses (ACLs)
<a name="security_iam_service-with-iam-acls"></a>

AWS IoT Greengrass tidak mendukung [ACLs](security-iam.md#security_iam_access-manage-acl).

## Otorisasi berdasarkan tag AWS IoT Greengrass
<a name="security_iam_service-with-iam-tags"></a>

Anda dapat melampirkan tag ke AWS IoT Greengrass sumber daya yang didukung atau meneruskan tag dalam permintaan AWS IoT Greengrass. Untuk mengendalikan akses berdasarkan tanda, Anda dapat memberikan informasi tentang tanda di [Elemen syarat](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) kebijakan dengan menggunakan kunci syarat `aws:ResourceTag/${TagKey}`, `aws:RequestTag/${TagKey}`, atau `aws:TagKeys`. Untuk informasi selengkapnya, lihat [Tandai AWS IoT Greengrass Version 2 sumber daya Anda](tag-resources.md).

## Peran IAM untuk AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles"></a>

[IAM role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) adalah entitas dalam Akun AWS Anda yang memiliki izin khusus.

### Menggunakan kredensi sementara dengan AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Kredensial sementara digunakan untuk masuk bersama gabungan, menjalankan IAM role, atau menjalankan peran lintas-akun. Anda memperoleh kredensi keamanan sementara dengan memanggil operasi AWS STS API seperti [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)atau. [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)

Pada inti Greengrass, kredensial sementara untuk [peran perangkat](device-service-role.md) dibuat tersedia untuk komponen Greengrass. Jika komponen Anda menggunakan AWS SDK, Anda tidak perlu menambahkan logika untuk mendapatkan kredensialnya karena AWS SDK melakukannya untuk Anda.

### Peran terkait layanan
<a name="security_iam_service-with-iam-roles-service-linked"></a>

AWS IoT Greengrass tidak mendukung peran [terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role).

### Peran layanan
<a name="security_iam_service-with-iam-roles-service"></a>

Fitur ini memungkinkan layanan untuk menerima [peran layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) atas nama Anda. Peran ini mengizinkan layanan untuk mengakses sumber daya di layanan lain untuk menyelesaikan tindakan atas nama Anda. Peran layanan muncul di akun IAM Anda dan dimiliki oleh akun tersebut. Ini berarti administrator IAM dapat mengubah izin untuk peran ini. Namun, melakukan hal itu dapat merusak fungsionalitas layanan.

AWS IoT Greengrass perangkat inti menggunakan peran layanan untuk memungkinkan komponen Greengrass dan fungsi Lambda mengakses beberapa sumber daya Anda atas nama Anda. AWS Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

AWS IoT Greengrass menggunakan peran layanan untuk mengakses beberapa sumber AWS daya Anda atas nama Anda. Lihat informasi yang lebih lengkap di [Peran layanan Greengrass](greengrass-service-role.md).

# Contoh kebijakan berbasis identitas untuk AWS IoT Greengrass
<a name="security_iam_id-based-policy-examples"></a>

Secara default, pengguna dan IAM role tidak memiliki izin untuk membuat atau memodifikasi AWS IoT Greengrass sumber daya. Mereka juga tidak dapat melakukan tugas menggunakan Konsol Manajemen AWS, AWS CLI, atau AWS API. Administrator IAM harus membuat kebijakan IAM yang memberikan izin kepada pengguna dan peran untuk melakukan operasi API tertentu pada sumber daya yang diperlukan. Administrator kemudian harus melampirkan kebijakan tersebut ke pengguna IAM atau grup yang memerlukan izin tersebut.

## Praktik terbaik kebijakan
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus AWS IoT Greengrass sumber daya di akun Anda. Tindakan ini membuat Akun AWS Anda dikenai biaya. Ketika Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi ini:
+ **Mulailah dengan kebijakan AWS terkelola dan beralih ke izin hak istimewa paling sedikit — Untuk mulai memberikan izin** kepada pengguna dan beban kerja Anda, gunakan *kebijakan AWS terkelola* yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola AWS pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [Kebijakan yang dikelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) atau [Kebijakan yang dikelola AWS untuk fungsi tugas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dalam *Panduan Pengguna IAM*.
+ **Menerapkan izin dengan hak akses paling rendah** – Ketika Anda menetapkan izin dengan kebijakan IAM, hanya berikan izin yang diperlukan untuk melakukan tugas. Anda melakukannya dengan mendefinisikan tindakan yang dapat diambil pada sumber daya tertentu dalam kondisi tertentu, yang juga dikenal sebagai *izin dengan hak akses paling rendah*. Untuk informasi selengkapnya tentang cara menggunakan IAM untuk mengajukan izin, lihat [Kebijakan dan izin dalam IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan kondisi dalam kebijakan IAM untuk membatasi akses lebih lanjut** – Anda dapat menambahkan suatu kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Sebagai contoh, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakan SSL. Anda juga dapat menggunakan ketentuan untuk memberikan akses ke tindakan layanan jika digunakan melalui yang spesifik Layanan AWS, seperti CloudFormation. Untuk informasi selengkapnya, lihat [Elemen kebijakan JSON IAM: Kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan IAM Access Analyzer untuk memvalidasi kebijakan IAM Anda untuk memastikan izin yang aman dan fungsional** – IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan tersebut mematuhi bahasa kebijakan IAM (JSON) dan praktik terbaik IAM. IAM Access Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan dan rekomendasi yang dapat ditindaklanjuti untuk membantu Anda membuat kebijakan yang aman dan fungsional. Untuk informasi selengkapnya, lihat [Validasi kebijakan dengan IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dalam *Panduan Pengguna IAM*.
+ **Memerlukan otentikasi multi-faktor (MFA)** - Jika Anda memiliki skenario yang mengharuskan pengguna IAM atau pengguna root di Anda, Akun AWS aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA ketika operasi API dipanggil, tambahkan kondisi MFA pada kebijakan Anda. Untuk informasi selengkapnya, lihat [Amankan akses API dengan MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dalam *Panduan Pengguna IAM*.

Untuk informasi selengkapnya tentang praktik terbaik dalam IAM, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

## Contoh kebijakan
<a name="security_iam_id-based-policy-examples-list"></a>

Contoh kebijakan yang ditetapkan pelanggan berikut memberikan izin untuk skenario umum.

**Topics**
+ [Mengizinkan pengguna melihat izin mereka sendiri](#security_iam_id-based-policy-examples-view-own-permissions)

Untuk mempelajari cara membuat kebijakan berbasis identitas IAM menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan pada tab JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) dalam *Panduan Pengguna IAM*.

### Mengizinkan pengguna melihat izin mereka sendiri
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Contoh ini menunjukkan cara membuat kebijakan yang mengizinkan pengguna IAM melihat kebijakan inline dan terkelola yang dilampirkan ke identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau menggunakan API atau secara terprogram. AWS CLI AWS 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS
<a name="device-service-role"></a>

AWS IoT Greengrass perangkat inti menggunakan penyedia AWS IoT Core kredensi untuk mengotorisasi panggilan ke layanan. AWS Penyedia AWS IoT Core kredensi memungkinkan perangkat menggunakan sertifikat X.509 mereka sebagai identitas perangkat unik untuk mengautentikasi permintaan. AWS Ini menghilangkan kebutuhan untuk menyimpan ID kunci AWS akses dan kunci akses rahasia pada perangkat AWS IoT Greengrass inti Anda. Untuk informasi selengkapnya, lihat [Mengotorisasi panggilan langsung ke AWS layanan](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) di *Panduan AWS IoT Core Pengembang*.

Saat menjalankan perangkat lunak AWS IoT Greengrass Core, Anda dapat memilih untuk menyediakan AWS sumber daya yang dibutuhkan perangkat inti. Ini termasuk peran AWS Identity and Access Management (IAM) yang diasumsikan perangkat inti Anda melalui penyedia AWS IoT Core kredensi. Gunakan `--provision true` argumen untuk mengonfigurasi peran dan kebijakan yang memungkinkan perangkat inti mendapatkan AWS kredensi sementara. Argumen ini juga mengonfigurasi alias AWS IoT peran yang menunjuk ke peran IAM ini. Anda dapat menentukan nama peran IAM dan alias AWS IoT peran yang akan digunakan. Jika Anda menentukan `--provision true` tanpa parameter nama lain ini, perangkat inti Greengrass akan menciptakan dan menggunakan sumber daya default berikut:
+ IAM role: `GreengrassV2TokenExchangeRole`

  Peran ini memiliki kebijakan bernama `GreengrassV2TokenExchangeRoleAccess` dan hubungan kepercayaan yang memungkinkan `credentials.iot.amazonaws.com` untuk menjalankan peran tersebut. Kebijakan ini mencakup izin minimum untuk perangkat inti.
**penting**  
Kebijakan ini tidak mencakup akses ke file dalam bucket S3. Anda harus menambahkan izin ke peran untuk mengizinkan perangkat inti mengambil artefak komponen dari bucket S3. Untuk informasi selengkapnya, lihat [Izinkan akses ke bucket S3 untuk artefak komponen](#device-service-role-access-s3-bucket).
+ AWS IoT alias peran: `GreengrassV2TokenExchangeRoleAlias`

  Alias peran ini mengacu pada IAM role.

Untuk informasi selengkapnya, lihat [Langkah 3: Instal perangkat lunak AWS IoT Greengrass Core](install-greengrass-v2.md).

Anda juga dapat mengatur alias peran untuk perangkat inti yang ada. Untuk melakukannya, konfigurasikan parameter konfigurasi `iotRoleAlias` [komponen inti Greengrass](greengrass-nucleus-component.md).

Anda dapat memperoleh AWS kredensi sementara untuk peran IAM ini untuk melakukan AWS operasi di komponen kustom Anda. Untuk informasi selengkapnya, lihat [Berinteraksi dengan AWS layanan](interact-with-aws-services.md).

**Topics**
+ [Izin peran layanan untuk perangkat inti](#device-service-role-permissions)
+ [Izinkan akses ke bucket S3 untuk artefak komponen](#device-service-role-access-s3-bucket)

## Izin peran layanan untuk perangkat inti
<a name="device-service-role-permissions"></a>

Peran memungkinkan layanan berikut untuk menjalankan peran tersebut:
+ `credentials.iot.amazonaws.com`

Jika Anda menggunakan perangkat lunak AWS IoT Greengrass Inti untuk membuat peran ini, ia menggunakan kebijakan izin berikut untuk mengizinkan perangkat inti terhubung dan mengirim log ke AWS. Nama kebijakan default pada nama IAM role yang diakhiri dengan `Access`. Misalnya, jika Anda menggunakan nama IAM role default, maka nama kebijakan ini adalah `GreengrassV2TokenExchangeRoleAccess`.

------
#### [ Greengrass nucleus v2.5.0 and later ]

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ v2.4.x ]

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ Earlier than v2.4.0 ]

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "iot:Connect",
        "iot:Publish",
        "iot:Subscribe",
        "iot:Receive",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------

## Izinkan akses ke bucket S3 untuk artefak komponen
<a name="device-service-role-access-s3-bucket"></a>

Peran perangkat inti default tidak mengizinkan perangkat inti mengakses bucket S3. Untuk men-deploy komponen yang memiliki artefak dalam bucket S3, Anda harus menambahkan izin `s3:GetObject` untuk mengizinkan perangkat inti mengunduh artefak komponen. Anda dapat menambahkan kebijakan baru ke peran perangkat inti untuk memberikan izin ini.

**Untuk menambahkan kebijakan yang memungkinkan akses ke artefak komponen di Amazon S3**

1. Buat file bernama `component-artifact-policy.json` dan salin JSON berikut ke dalam file. Kebijakan ini memungkinkan akses ke semua file dalam bucket S3. Ganti amzn-s3-demo-bucket dengan nama bucket S3 untuk memungkinkan perangkat inti mengakses.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
       }
     ]
   }
   ```

------

1. Jalankan perintah berikut untuk membuat kebijakan dari dokumen kebijakan di `component-artifact-policy.json`.

------
#### [ Linux or Unix ]

   ```
   aws iam create-policy \
     --policy-name MyGreengrassV2ComponentArtifactPolicy \
     --policy-document file://component-artifact-policy.json
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam create-policy ^
     --policy-name MyGreengrassV2ComponentArtifactPolicy ^
     --policy-document file://component-artifact-policy.json
   ```

------
#### [ PowerShell ]

   ```
   aws iam create-policy `
     --policy-name MyGreengrassV2ComponentArtifactPolicy `
     --policy-document file://component-artifact-policy.json
   ```

------

   Salin Amazon Resource Name (ARN) kebijakan dari metadata kebijakan dalam output. Anda menggunakan ARN ini untuk melampirkan kebijakan ini ke peran perangkat inti di langkah berikutnya.

1. Jalankan perintah berikut untuk melampirkan kebijakan tersebut pada peran perangkat inti. Ganti *GreengrassV2TokenExchangeRole* dengan nama peran yang Anda tentukan saat menjalankan perangkat lunak AWS IoT Greengrass Core. Lalu, ganti ARN kebijakan dengan ARN dari langkah sebelumnya.

------
#### [ Linux or Unix ]

   ```
   aws iam attach-role-policy \
     --role-name GreengrassV2TokenExchangeRole \
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam attach-role-policy ^
     --role-name GreengrassV2TokenExchangeRole ^
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------
#### [ PowerShell ]

   ```
   aws iam attach-role-policy `
     --role-name GreengrassV2TokenExchangeRole `
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------

   Jika perintah itu tidak memiliki output, ia berhasil, dan perangkat inti Anda dapat mengakses artefak yang Anda unggah ke bucket S3 ini.

# Kebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya
<a name="provision-minimal-iam-policy"></a>

Saat Anda menginstal perangkat lunak AWS IoT Greengrass Core, Anda dapat menyediakan AWS sumber daya yang diperlukan, seperti AWS IoT benda dan peran IAM untuk perangkat Anda. Anda juga dapat menyebarkan alat pengembangan lokal ke perangkat. Penginstal memerlukan AWS kredensi sehingga dapat melakukan tindakan ini di Anda. Akun AWS Untuk informasi selengkapnya, lihat [Instal perangkat lunak AWS IoT Greengrass Core](install-greengrass-core-v2.md).

Kebijakan contoh berikut mencakup kumpulan tindakan minimum yang memerlukan installer untuk menyediakan sumber daya ini. Izin ini diperlukan jika Anda menentukan `--provision` argumen untuk penginstal. Ganti *account-id* dengan Akun AWS ID Anda, dan ganti *GreengrassV2TokenExchangeRole* dengan nama peran pertukaran token yang Anda tentukan dengan [argumen `--tes-role-name` penginstal](configure-installer.md).

**catatan**  
Pernyataan kebijakan `DeployDevTools` diperlukan hanya jika Anda menentukan `--deploy-dev-tools` argumen untuk penginstal.

------
#### [ Greengrass nucleus v2.5.0 and later ]

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
                "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------
#### [ Earlier than v2.5.0 ]

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
            "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
    "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------

# Peran layanan Greengrass
<a name="greengrass-service-role"></a>

<a name="greengrass-service-role-intro"></a>Peran layanan Greengrass adalah peran layanan (IAM) AWS Identity and Access Management yang AWS IoT Greengrass mengizinkan untuk mengakses sumber daya dari layanan atas nama Anda. AWS Peran ini memungkinkan AWS IoT Greengrass untuk memverifikasi identitas perangkat klien dan mengelola informasi konektivitas perangkat inti.

**catatan**  
AWS IoT Greengrass V1 juga menggunakan peran ini untuk melakukan tugas-tugas penting. Untuk informasi selengkapnya, lihat [Peran layanan Greengrass](https://docs.aws.amazon.com/greengrass/v1/developerguide/service-role.html) di *Panduan Developer AWS IoT Greengrass V1 *.

 AWS IoT Greengrass Untuk memungkinkan mengakses sumber daya Anda, peran layanan Greengrass harus dikaitkan dengan Akun AWS Anda dan AWS IoT Greengrass ditentukan sebagai entitas tepercaya. Peran harus menyertakan kebijakan [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy)terkelola atau kebijakan khusus yang menentukan izin setara untuk AWS IoT Greengrass fitur yang Anda gunakan. AWS mempertahankan kebijakan ini, yang menentukan kumpulan izin yang AWS IoT Greengrass digunakan untuk mengakses sumber daya Anda AWS . Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola: AWSGreengrass ResourceAccessRolePolicy](security-iam-aws-managed-policies.md#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy).

Anda dapat menggunakan kembali peran layanan Greengrass yang sama, tetapi Anda harus mengaitkannya dengan akun Anda Wilayah AWS di setiap tempat yang Anda gunakan. Wilayah AWS AWS IoT Greengrass Jika peran layanan tidak dikonfigurasi saat ini Wilayah AWS, perangkat inti gagal memverifikasi perangkat klien dan gagal memperbarui informasi konektivitas.

Bagian berikut menjelaskan cara membuat dan mengelola peran layanan Greengrass dengan atau. Konsol Manajemen AWS AWS CLI

**Topics**
+ [Kelola peran layanan Greengrass (konsol)](#manage-greengrass-service-role-console)
+ [Kelola peran layanan Greengrass (CLI)](#manage-service-role-cli)
+ [Lihat juga](#service-role-see-also)

**catatan**  
Selain peran layanan yang mengesahkan akses tingkat layanan, Anda menetapkan *peran pertukaran token* untuk perangkat inti Greengrass. Peran pertukaran token adalah peran IAM terpisah yang mengontrol bagaimana komponen Greengrass dan fungsi Lambda pada perangkat inti dapat mengakses layanan. AWS Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

## Kelola peran layanan Greengrass (konsol)
<a name="manage-greengrass-service-role-console"></a>

 AWS IoT Konsol memudahkan untuk mengelola peran layanan Greengrass Anda. Sebagai contoh, ketika Anda mengonfigurasi penemuan perangkat klien untuk perangkat inti, konsol tersebut akan memeriksa apakah Akun AWS Anda melekat pada peran layanan Greengrass di Wilayah AWS saat ini. Jika tidak, konsol dapat membuat dan mengonfigurasi peran layanan untuk Anda. Untuk informasi selengkapnya, lihat [Buat peran layanan Greengrass (konsol)](#create-greengrass-service-role-console).

Anda dapat menggunakan konsol untuk tugas-tugas manajemen peran berikut:

**Topics**
+ [Temukan peran layanan Greengrass Anda (konsol)](#get-greengrass-service-role-console)
+ [Buat peran layanan Greengrass (konsol)](#create-greengrass-service-role-console)
+ [Ubah peran layanan Greengrass (konsol)](#update-greengrass-service-role-console)
+ [Lapaskan peran layanan Greengrass (konsol)](#remove-greengrass-service-role-console)

**catatan**  
Pengguna yang masuk ke konsol harus memiliki izin untuk melihat, membuat, atau mengubah peran layanan.

### Temukan peran layanan Greengrass Anda (konsol)
<a name="get-greengrass-service-role-console"></a>

Gunakan langkah-langkah berikut untuk menemukan peran layanan yang AWS IoT Greengrass digunakan saat ini Wilayah AWS.

1. <a name="open-iot-console"></a>Navigasikan ke [konsol AWS IoT](https://console.aws.amazon.com/iot) tersebut.

1. <a name="open-iot-settings"></a>Di panel navigasi, pilih **Pengaturan**.

1. Gulir ke **Peran layanan Greengrass** untuk melihat peran layanan dan kebijakannya.

   Jika Anda tidak melihat peran layanan, konsol dapat membuat atau mengonfigurasinya untuk Anda. Untuk informasi selengkapnya, lihat [Buat peran layanan Greengrass](#create-greengrass-service-role-console).

### Buat peran layanan Greengrass (konsol)
<a name="create-greengrass-service-role-console"></a>

Konsol dapat membuat dan mengkonfigurasi peran layanan Greengrass default untuk Anda. Peran ini memiliki properti berikut.


| Properti | Nilai | 
| --- | --- | 
| Nama | Greengrass\$1ServiceRole | 
| Entitas tepercaya | AWS service: greengrass | 
| Kebijakan | [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy) | 

**catatan**  
Jika Anda membuat peran ini dengan [skrip penyiapan perangkat AWS IoT Greengrass V1](https://docs.aws.amazon.com/greengrass/v1/developerguide/quick-start.html), nama perannya adalah `GreengrassServiceRole_random-string`.

Saat Anda mengonfigurasi penemuan perangkat klien untuk perangkat inti, konsol akan memeriksa apakah peran layanan Greengrass terkait dengan peran Anda saat ini. Akun AWS Wilayah AWS Jika tidak, konsol meminta Anda untuk mengizinkan AWS IoT Greengrass membaca dan menulis ke AWS layanan atas nama Anda.

Jika Anda memberikan izin, konsol tersebut akan memeriksa apakah peran bernama `Greengrass_ServiceRole` ada di Akun AWS Anda.
+ Jika peran ada, konsol akan melampirkan peran layanan ke peran Anda Akun AWS saat ini Wilayah AWS.
+ Jika peran tidak ada, konsol akan membuat peran layanan Greengrass default dan menempelkannya ke peran Anda saat ini. Akun AWS Wilayah AWS

**catatan**  
Jika Anda ingin membuat peran layanan dengan kebijakan peran kustom, gunakan konsol IAM untuk membuat atau mengubah peran. Untuk informasi selengkapnya, lihat [Membuat peran untuk mendelegasikan izin ke AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) atau [Memodifikasi peran dalam Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) *IAM*. Pastikan bahwa peran memberikan izin yang setara dengan kebijakan terkelola `AWSGreengrassResourceAccessRolePolicy` untuk fitur dan sumber daya yang Anda gunakan. Kami menyarankan Anda juga menyertakan `aws:SourceArn` dan kunci konteks kondisi `aws:SourceAccount` global dalam kebijakan kepercayaan Anda untuk membantu mencegah masalah keamanan *wakil yang membingungkan*. Kunci konteks kondisi membatasi akses untuk mengizinkan hanya permintaan yang berasal dari akun tertentu dan ruang kerja Greengrass. Untuk informasi lebih lanjut tentang masalah wakil yang membingungkan, lihat[Pencegahan "confused deputy" lintas layanan](cross-service-confused-deputy-prevention.md).  
Jika Anda membuat peran layanan, kembali ke AWS IoT konsol dan lampirkan peran ke peran Anda Akun AWS. Anda dapat melakukannya di bawah **Peran layanan Greengrass** pada halaman **Pengaturan**.

### Ubah peran layanan Greengrass (konsol)
<a name="update-greengrass-service-role-console"></a>

Gunakan prosedur berikut untuk memilih peran layanan Greengrass yang berbeda untuk dilampirkan ke Akun AWS Anda di konsol yang Wilayah AWS saat ini dipilih.

1. <a name="open-iot-console"></a>Navigasikan ke [konsol AWS IoT](https://console.aws.amazon.com/iot) tersebut.

1. <a name="open-iot-settings"></a>Di panel navigasi, pilih **Pengaturan**.

1. Di bawah **Peran layanan Greengrass**, pilih **Ubah peran**.

   Kotak dialog **Perbarui peran layanan Greengrass** akan terbuka dan menampilkan peran IAM dalam Akun AWS Anda yang didefinisikan sebagai entitas tepercaya. AWS IoT Greengrass 

1. Pilih peran layanan Greengrass untuk dilampirkan.

1. Pilih **Lampirkan peran**.

### Lapaskan peran layanan Greengrass (konsol)
<a name="remove-greengrass-service-role-console"></a>

Gunakan prosedur berikut untuk melepaskan peran layanan Greengrass dari akun Anda saat ini. AWS Wilayah AWS Ini mencabut izin AWS IoT Greengrass untuk mengakses AWS layanan saat ini. Wilayah AWS

**penting**  
Melepaskan peran layanan dapat mengganggu operasi aktif.

1. <a name="open-iot-console"></a>Navigasikan ke [AWS IoT konsol](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>Di panel navigasi, pilih **Pengaturan**.

1. Di bawah **Peran layanan Greengrass**, pilih **Lepaskan peran**.

1. Dalam kotak dialog konfirmasi, pilih **Lepaskan**.

**catatan**  
Jika Anda tidak lagi memerlukan peran tersebut, Anda dapat menghapusnya di konsol IAM. Untuk informasi lebih lanjut, lihat [Menghapus peran atau profil instans](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) dalam *Panduan Pengguna IAM*.  
Peran lain mungkin memungkinkan AWS IoT Greengrass untuk mengakses sumber daya Anda. Untuk menemukan semua peran yang memungkinkan AWS IoT Greengrass untuk mengambil izin atas nama Anda, di konsol IAM, pada halaman **Peran**, cari peran yang mencakup **layanan AWS : Greengrass** di kolom **Entitas tepercaya**.

## Kelola peran layanan Greengrass (CLI)
<a name="manage-service-role-cli"></a>

Dalam prosedur berikut, kami berasumsi AWS Command Line Interface bahwa diinstal dan dikonfigurasi untuk menggunakan Anda Akun AWS. Untuk informasi selengkapnya, lihat [Menginstal, memperbarui, dan melepas pemasangan AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) dan [Mengonfigurasi AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) di *Panduan Pengguna AWS Command Line Interface *.

Anda dapat menggunakan AWS CLI untuk tugas manajemen peran berikut:

**Topics**
+ [Dapatkan peran layanan Greengrass (CLI)](#get-service-role)
+ [Buat peran layanan Greengrass (CLI)](#create-service-role)
+ [Hapus peran layanan Greengrass (CLI)](#remove-service-role)

### Dapatkan peran layanan Greengrass (CLI)
<a name="get-service-role"></a>

Gunakan prosedur berikut untuk mengetahui apakah peran layanan Greengrass dikaitkan dengan Akun AWS Anda di Wilayah AWS.
+ Dapatkan peran layanan. Ganti *region* dengan Anda Wilayah AWS (misalnya,`us-west-2`).

  ```
  aws greengrassv2 get-service-role-for-account --region region
  ```

  Jika peran layanan Greengrass telah dikaitkan dengan akun Anda, permintaan akan mengembalikan metadata peran berikut.

  ```
  {
    "associatedAt": "timestamp",
    "roleArn": "arn:aws:iam::account-id:role/path/role-name"
  }
  ```

  Jika permintaan tidak mengembalikan metadata peran, maka Anda harus membuat peran layanan (jika tidak ada) dan mengaitkannya dengan akun Anda di Wilayah AWS.

### Buat peran layanan Greengrass (CLI)
<a name="create-service-role"></a>

Gunakan langkah-langkah berikut untuk membuat peran dan mengaitkannya dengan perangkat Akun AWS Anda.

**Untuk membuat peran layanan dengan menggunakan IAM.**

1. Buat peran dengan kebijakan kepercayaan yang memungkinkan AWS IoT Greengrass untuk mengambil peran. Contoh ini menciptakan peran bernama `Greengrass_ServiceRole`, tetapi Anda dapat menggunakan nama yang berbeda. Kami menyarankan Anda juga menyertakan `aws:SourceArn` dan kunci konteks kondisi `aws:SourceAccount` global dalam kebijakan kepercayaan Anda untuk membantu mencegah masalah keamanan *wakil yang membingungkan*. Kunci konteks kondisi membatasi akses untuk mengizinkan hanya permintaan yang berasal dari akun tertentu dan ruang kerja Greengrass. Untuk informasi lebih lanjut tentang masalah wakil yang membingungkan, lihat[Pencegahan "confused deputy" lintas layanan](cross-service-confused-deputy-prevention.md).

------
#### [ Linux or Unix ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:region:account-id:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "account-id"
           }
         }
       }
     ]
   }'
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"greengrass.amazonaws.com\"},\"Action\":\"sts:AssumeRole\",\"Condition\":{\"ArnLike\":{\"aws:SourceArn\":\"arn:aws:greengrass:region:account-id:*\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
   ```

------
#### [ PowerShell ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:region:account-id:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "account-id"
           }
         }
       }
     ]
   }'
   ```

------

1. Salin peran ARN dari metadata peran dalam output. Anda menggunakan ARN untuk mengasosiasikan peran dengan akun Anda.

1. Lampirkan kebijakan `AWSGreengrassResourceAccessRolePolicy` pada peran tersebut.

   ```
   aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy
   ```

**Untuk mengaitkan peran layanan dengan Akun AWS**
+  Hubungkan peran itu dengan akun Anda. Ganti *role-arn* dengan peran layanan ARN dan *region* dengan Anda Wilayah AWS (misalnya,`us-west-2`).

  ```
  aws greengrassv2 associate-service-role-to-account --role-arn role-arn --region region
  ```

  Jika berhasil, permintaan tersebut akan mengembalikan tanggapan berikut.

  ```
  {
    "associatedAt": "timestamp"
  }
  ```

### Hapus peran layanan Greengrass (CLI)
<a name="remove-service-role"></a>

Gunakan langkah-langkah berikut untuk memisahkan peran layanan Greengrass dari perangkat Akun AWS.
+ Lepaskan peran layanan dari akun Anda. Ganti *region* dengan Anda Wilayah AWS (misalnya,`us-west-2`).

  ```
  aws greengrassv2 disassociate-service-role-from-account --region region
  ```

  Jika berhasil, respon berikut dikembalikan.

  ```
  {
    "disassociatedAt": "timestamp"
  }
  ```
**catatan**  
Anda harus menghapus peran layanan jika Anda tidak menggunakannya di salah satu Wilayah AWS. Pertama gunakan [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html) untuk melepaskan `AWSGreengrassResourceAccessRolePolicy` kebijakan terkelola dari peran, dan kemudian gunakan [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html) untuk menghapus peran. Untuk informasi lebih lanjut, lihat [Menghapus peran atau profil instans](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) dalam *Panduan Pengguna IAM*.

## Lihat juga
<a name="service-role-see-also"></a>
+ [Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) Pengguna *IAM*
+ [Mengubah peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) di *Panduan Pengguna IAM*
+ [Menghapus peran atau profil instans](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) dalam *Panduan Pengguna IAM*.
+ AWS IoT Greengrass perintah dalam *Referensi AWS CLI Perintah*
  + [associate-service-role-to-akun](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/associate-service-role-to-account.html)
  + [disassociate-service-role-from-akun](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/disassociate-service-role-from-account.html)
  + [get-service-role-for-akun](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/get-service-role-for-account.html)
+ Perintah IAM di *Referensi Perintah AWS CLI *
  + [attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)
  + [menciptakan-peran](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)
  + [hapus-peran](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html)
  + [delete-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html)

# AWS kebijakan terkelola untuk AWS IoT Greengrass
<a name="security-iam-aws-managed-policies"></a>

Kebijakan AWS terkelola adalah kebijakan mandiri yang dibuat dan dikelola oleh AWS. AWS Kebijakan terkelola dirancang untuk memberikan izin bagi banyak kasus penggunaan umum sehingga Anda dapat mulai menetapkan izin kepada pengguna, grup, dan peran.

Perlu diingat bahwa kebijakan AWS terkelola mungkin tidak memberikan izin hak istimewa paling sedikit untuk kasus penggunaan spesifik Anda karena tersedia untuk digunakan semua pelanggan. AWS Kami menyarankan Anda untuk mengurangi izin lebih lanjut dengan menentukan [kebijakan yang dikelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) yang khusus untuk kasus penggunaan Anda.

Anda tidak dapat mengubah izin yang ditentukan dalam kebijakan AWS terkelola. Jika AWS memperbarui izin yang ditentukan dalam kebijakan AWS terkelola, pembaruan akan memengaruhi semua identitas utama (pengguna, grup, dan peran) yang dilampirkan kebijakan tersebut. AWS kemungkinan besar akan memperbarui kebijakan AWS terkelola saat baru Layanan AWS diluncurkan atau operasi API baru tersedia untuk layanan yang ada.

Untuk informasi selengkapnya, lihat [Kebijakan terkelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dalam *Panduan Pengguna IAM*.

**Topics**
+ [AWS kebijakan terkelola: AWSGreengrass FullAccess](#aws-managed-policies-AWSGreengrassFullAccess)
+ [AWS kebijakan terkelola: AWSGreengrass ReadOnlyAccess](#aws-managed-policies-AWSGreengrassReadOnlyAccess)
+ [AWS kebijakan terkelola: AWSGreengrass ResourceAccessRolePolicy](#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy)
+ [AWS IoT Greengrass pembaruan kebijakan AWS terkelola](#aws-managed-policy-updates)

## AWS kebijakan terkelola: AWSGreengrass FullAccess
<a name="aws-managed-policies-AWSGreengrassFullAccess"></a>

Anda dapat melampirkan kebijakan `AWSGreengrassFullAccess` ke identitas IAM Anda.

Kebijakan ini memberikan izin administratif yang memungkinkan akses penuh utama ke semua tindakan AWS IoT Greengrass .

**Detail izin**

Kebijakan ini mencakup izin berikut:
+ `greengrass` – Mengizinkan bagian utama untuk mendapatkan akses penuh ke semua tindakan AWS IoT Greengrass .

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

****  

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

------

## AWS kebijakan terkelola: AWSGreengrass ReadOnlyAccess
<a name="aws-managed-policies-AWSGreengrassReadOnlyAccess"></a>

Anda dapat melampirkan kebijakan `AWSGreengrassReadOnlyAccess` ke identitas IAM Anda.

Kebijakan ini memberikan izin baca-saja yang memungkinkan prinsipal untuk melihat, tetapi tidak mengubah, informasi dalam AWS IoT Greengrass. Sebagai contoh, bagian utama dengan izin ini dapat melihat daftar komponen yang di-deploy ke perangkat inti Greengrass, tetapi tidak dapat membuat deployment untuk mengubah komponen yang berjalan pada perangkat tersebut.

**Detail izin**

Kebijakan ini mencakup izin berikut:
+ `greengrass` – Memungkinkan prinsipal untuk melakukan tindakan yang mengembalikan daftar item atau rincian tentang item. Ini termasuk operasi API yang dimulai dengan `List` atau `Get`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:List*",
                "greengrass:Get*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS kebijakan terkelola: AWSGreengrass ResourceAccessRolePolicy
<a name="aws-managed-policies-AWSGreengrassResourceAccessRolePolicy"></a>

Anda dapat melampirkan `AWSGreengrassResourceAccessRolePolicy` kebijakan ke entitas IAM Anda. AWS IoT Greengrass juga melampirkan kebijakan ini ke peran layanan yang memungkinkan AWS IoT Greengrass untuk melakukan tindakan atas nama Anda. Untuk informasi selengkapnya, lihat [Peran layanan Greengrass](greengrass-service-role.md).

Kebijakan ini memberikan izin administratif yang memungkinkan AWS IoT Greengrass untuk melakukan tugas-tugas penting, seperti mengambil fungsi Lambda, mengelola bayangan AWS IoT perangkat, dan memverifikasi perangkat klien Greengrass.

**Detail izin**

Kebijakan ini mencakup izin berikut.
+ `greengrass` — Kelola sumber daya Greengrass.
+ `iot`(`*Shadow`) — Kelola AWS IoT bayangan yang memiliki pengidentifikasi khusus berikut dalam nama mereka. Izin ini diperlukan sehingga AWS IoT Greengrass dapat berkomunikasi dengan perangkat inti.
  + `*-gci`— AWS IoT Greengrass menggunakan bayangan ini untuk menyimpan informasi konektivitas perangkat inti, sehingga perangkat klien dapat menemukan dan terhubung ke perangkat inti.
  + `*-gcm`— AWS IoT Greengrass V1 menggunakan bayangan ini untuk memberi tahu perangkat inti bahwa sertifikat otoritas sertifikat (CA) grup Greengrass telah diputar.
  + `*-gda`— AWS IoT Greengrass V1 menggunakan bayangan ini untuk memberi tahu perangkat inti dari penerapan.
  + `GG_*`- Tidak terpakai.
+ `iot`(`DescribeThing`dan`DescribeCertificate`) — Mengambil informasi tentang AWS IoT hal-hal dan sertifikat. Izin ini diperlukan agar AWS IoT Greengrass dapat memverifikasi perangkat klien yang terhubung ke perangkat inti. Untuk informasi selengkapnya, lihat [Berinteraksilah dengan perangkat IoT lokal](interact-with-local-iot-devices.md).
+ `lambda`— Mengambil informasi tentang AWS Lambda fungsi. Izin ini diperlukan agar AWS IoT Greengrass V1 dapat menyebarkan fungsi Lambda ke inti Greengrass. Untuk informasi selengkapnya, lihat [Menjalankan fungsi Lambda pada AWS IoT Greengrass inti di Panduan](https://docs.aws.amazon.com/greengrass/v1/developerguide/lambda-functions.html) Pengembang *AWS IoT Greengrass V1*.
+ `secretsmanager`— Ambil nilai AWS Secrets Manager rahasia yang namanya dimulai dengan`greengrass-`. Izin ini diperlukan agar AWS IoT Greengrass V1 dapat menyebarkan rahasia Secrets Manager ke inti Greengrass. Untuk informasi selengkapnya, lihat [Menerapkan rahasia ke AWS IoT Greengrass inti](https://docs.aws.amazon.com/greengrass/v1/developerguide/secrets.html) di Panduan *Pengembang AWS IoT Greengrass V1*.
+ `s3` — Ambil objek file dari bucket S3 yang namanya berisi `greengrass` atau `sagemaker`. Izin ini diperlukan agar AWS IoT Greengrass V1 dapat menyebarkan sumber daya pembelajaran mesin yang Anda simpan di bucket S3. Untuk informasi selengkapnya, lihat [Sumber pembelajaran mesin](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html#ml-resources) di *Panduan Pengembang AWS IoT Greengrass V1*.
+ `sagemaker`— Ambil informasi tentang model inferensi pembelajaran mesin Amazon SageMaker AI. Izin ini diperlukan agar AWS IoT Greengrass V1 dapat menyebarkan model ML ke inti Greengrass. Untuk informasi selengkapnya, lihat [Melakukan inferensi pembelajaran mesin](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html) di Panduan *Pengembang AWS IoT Greengrass V1*.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGreengrassAccessToShadows",
            "Action": [
                "iot:DeleteThingShadow",
                "iot:GetThingShadow",
                "iot:UpdateThingShadow"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:*:*:thing/GG_*",
                "arn:aws:iot:*:*:thing/*-gcm",
                "arn:aws:iot:*:*:thing/*-gda",
                "arn:aws:iot:*:*:thing/*-gci"
            ]
        },
        {
            "Sid": "AllowGreengrassToDescribeThings",
            "Action": [
                "iot:DescribeThing"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:thing/*"
        },
        {
            "Sid": "AllowGreengrassToDescribeCertificates",
            "Action": [
                "iot:DescribeCertificate"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:cert/*"
        },
        {
            "Sid": "AllowGreengrassToCallGreengrassServices",
            "Action": [
                "greengrass:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetLambdaFunctions",
            "Action": [
                "lambda:GetFunction",
                "lambda:GetFunctionConfiguration"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetGreengrassSecrets",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:secretsmanager:*:*:secret:greengrass-*"
        },
        {
            "Sid": "AllowGreengrassAccessToS3Objects",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*Greengrass*",
                "arn:aws:s3:::*GreenGrass*",
                "arn:aws:s3:::*greengrass*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*sagemaker*"
            ]
        },
        {
            "Sid": "AllowGreengrassAccessToS3BucketLocation",
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassAccessToSageMakerTrainingJobs",
            "Action": [
                "sagemaker:DescribeTrainingJob"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:sagemaker:*:*:training-job/*"
            ]
        }
    ]
}
```

------

## AWS IoT Greengrass pembaruan kebijakan AWS terkelola
<a name="aws-managed-policy-updates"></a>

Anda dapat melihat detail tentang pembaruan kebijakan AWS terkelola AWS IoT Greengrass sejak layanan ini mulai melacak perubahan ini. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan umpan RSS di halaman [riwayat dokumen AWS IoT Greengrass V2](document-history.md).


| Ubah | Deskripsi | Date | 
| --- | --- | --- | 
|  AWS IoT Greengrass mulai melacak perubahan  |  AWS IoT Greengrass mulai melacak perubahan untuk kebijakan yang AWS dikelola.  |  2 Juli 2021  | 

# Pencegahan "confused deputy" lintas layanan
<a name="cross-service-confused-deputy-prevention"></a>

Masalah "confused deputy" adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memengaruhi entitas yang memiliki hak akses lebih tinggi untuk melakukan tindakan. Pada tahun AWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan. Peniruan identitas lintas layanan dapat terjadi ketika satu layanan (*layanan yang dipanggil*) memanggil layanan lain (*layanan yang dipanggil*). Layanan pemanggilan dapat dimanipulasi menggunakan izinnya untuk bertindak pada sumber daya pelanggan lain dengan cara yang seharusnya tidak dilakukannya kecuali bila memiliki izin untuk mengakses. Untuk mencegah hal ini, AWS menyediakan alat yang membantu Anda melindungi data untuk semua layanan dengan principal layanan yang telah diberi akses ke sumber daya di akun Anda. 

Sebaiknya gunakan kunci konteks kondisi [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)dan dalam kebijakan sumber daya untuk membatasi izin yang AWS IoT Greengrass memberikan layanan lain ke sumber daya. Jika Anda menggunakan kedua kunci konteks kondisi global, `aws:SourceAccount` nilai dan akun dalam `aws:SourceArn` nilai harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan yang sama.

Nilai `aws:SourceArn` harus berupa sumber daya pelanggan Greengrass yang terkait dengan permintaan. `sts:AssumeRole`

Cara paling efektif untuk melindungi dari masalah "confused deputy" adalah dengan menggunakan kunci konteks kondisi global `aws:SourceArn` dengan ARN lengkap sumber daya. Jika Anda tidak mengetahui ARN lengkap sumber daya atau jika Anda menentukan beberapa sumber daya, gunakan kunci kondisi konteks `aws:SourceArn` global dengan wildcard (`*`) untuk bagian ARN yang tidak diketahui. Misalnya, `arn:aws:greengrass::account-id:*`. 

Untuk contoh kebijakan yang menggunakan kunci konteks kondisi `aws:SourceAccount` global `aws:SourceArn` dan global, lihat[Buat peran layanan Greengrass](greengrass-service-role.md#create-service-role).

# Memecahkan masalah identitas dan akses untuk AWS IoT Greengrass
<a name="security_iam_troubleshoot"></a>

Gunakan informasi berikut untuk membantu Anda mendiagnosis dan memperbaiki masalah umum yang mungkin Anda temui saat bekerja dengan AWS IoT Greengrass dan IAM.

**Topics**
+ [Saya tidak berwenang untuk melakukan tindakan di AWS IoT Greengrass](#security_iam_troubleshoot-no-permissions)
+ [Saya tidak berwenang untuk melakukan iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Saya seorang administrator dan ingin mengizinkan orang lain mengakses AWS IoT Greengrass](#security_iam_troubleshoot-admin-delegate)
+ [Saya ingin mengizinkan orang di luar saya Akun AWS untuk mengakses AWS IoT Greengrass sumber daya saya](#security_iam_troubleshoot-cross-account-access)

Untuk bantuan pemecahan masalah umum, lihat [Pemecahan masalah AWS IoT Greengrass V2](troubleshooting.md).

## Saya tidak berwenang untuk melakukan tindakan di AWS IoT Greengrass
<a name="security_iam_troubleshoot-no-permissions"></a>

Jika Anda menerima kesalahan yang menyatakan bahwa Anda tidak terotorisasi untuk melakukan tindakan, maka Anda harus menghubungi administrator untuk mendapatkan bantuan. Administrator Anda adalah orang yang memberikan nama pengguna dan kata sandi Anda.

Contoh kesalahan berikut terjadi saat pengguna IAM `mateojackson` mencoba melihat detail tentang perangkat inti, tetapi tidak memiliki izin `greengrass:GetCoreDevice`.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: greengrass:GetCoreDevice on resource: arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore
```

Dalam hal ini, Mateo meminta administratornya untuk memperbarui kebijakannya untuk memungkinkannya mengakses sumber daya `arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore` dengan menggunakan tindakan `greengrass:GetCoreDevice`.

Berikut adalah masalah IAM umum yang mungkin Anda hadapi saat bekerja dengan AWS IoT Greengrass.

## Saya tidak berwenang untuk melakukan iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Jika Anda menerima kesalahan yang tidak diizinkan untuk melakukan `iam:PassRole` tindakan, kebijakan Anda harus diperbarui agar Anda dapat meneruskan peran AWS IoT Greengrass.

Beberapa Layanan AWS memungkinkan Anda untuk meneruskan peran yang ada ke layanan tersebut alih-alih membuat peran layanan baru atau peran terkait layanan. Untuk melakukannya, Anda harus memiliki izin untuk meneruskan peran ke layanan.

Contoh kesalahan berikut terjadi ketika pengguna IAM bernama `marymajor` mencoba menggunakan konsol tersebut untuk melakukan tindakan di AWS IoT Greengrass. Namun, tindakan tersebut memerlukan layanan untuk mendapatkan izin yang diberikan oleh peran layanan. Mary tidak memiliki izin untuk meneruskan peran tersebut pada layanan.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Dalam kasus ini, kebijakan Mary harus diperbarui agar dia mendapatkan izin untuk melakukan tindakan `iam:PassRole` tersebut.

Jika Anda memerlukan bantuan, hubungi AWS administrator Anda. Administrator Anda adalah orang yang memberi Anda kredensial masuk.

## Saya seorang administrator dan ingin mengizinkan orang lain mengakses AWS IoT Greengrass
<a name="security_iam_troubleshoot-admin-delegate"></a>

Untuk memungkinkan orang lain mengakses AWS IoT Greengrass, Anda harus memberikan izin kepada orang atau aplikasi yang membutuhkan akses. Jika Anda menggunakan AWS IAM Identity Center untuk mengelola orang dan aplikasi, Anda menetapkan set izin kepada pengguna atau grup untuk menentukan tingkat akses mereka. Set izin secara otomatis membuat dan menetapkan kebijakan IAM ke peran IAM yang terkait dengan orang atau aplikasi. Untuk informasi selengkapnya, lihat [Set izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) di *Panduan AWS IAM Identity Center Pengguna*.

Jika Anda tidak menggunakan IAM Identity Center, Anda harus membuat entitas IAM (pengguna atau peran) untuk orang atau aplikasi yang membutuhkan akses. Anda kemudian harus melampirkan kebijakan yang memberi mereka izin yang tepat di AWS IoT Greengrass. Setelah izin diberikan, berikan kredensialnya kepada pengguna atau pengembang aplikasi. Mereka akan menggunakan kredensi tersebut untuk mengakses. AWS*Untuk mempelajari selengkapnya tentang membuat pengguna, grup, kebijakan, dan izin IAM, lihat [Identitas dan Kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) [dan izin di IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).*

## Saya ingin mengizinkan orang di luar saya Akun AWS untuk mengakses AWS IoT Greengrass sumber daya saya
<a name="security_iam_troubleshoot-cross-account-access"></a>

Anda dapat membuat peran IAM yang dapat digunakan pengguna di akun lain atau orang di luar organisasi Anda untuk mengakses AWS sumber daya Anda. Anda dapat menentukan siapa yang dipercaya untuk menjalankan peran tersebut. Untuk informasi selengkapnya, lihat [Menyediakan akses ke pengguna IAM di pengguna lain Akun AWS yang Anda miliki](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) dan [Menyediakan akses ke yang Akun AWS dimiliki oleh pihak ketiga](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) dalam *Panduan Pengguna IAM*.

AWS IoT Greengrass tidak mendukung akses lintas akun berdasarkan kebijakan berbasis sumber daya atau daftar kontrol akses (). ACLs

# Izinkan lalu lintas perangkat melalui proxy atau firewall
<a name="allow-device-traffic"></a>

Perangkat inti Greengrass dan komponen Greengrass melakukan permintaan keluar ke layanan dan situs web lain. AWS Sebagai langkah keamanan, Anda dapat membatasi lalu lintas keluar ke sejumlah kecil titik akhir dan port. Anda dapat menggunakan informasi berikut tentang titik akhir dan port untuk membatasi lalu lintas perangkat melalui proxy, firewall, atau grup keamanan [Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html). Untuk informasi selengkapnya tentang cara mengonfigurasi perangkat inti agar menggunakan proxy, lihat[Hubungkan pada port 443 atau melalui proksi jaringan](configure-greengrass-core-v2.md#configure-alpn-network-proxy).

**Topics**
+ [Titik akhir untuk operasi dasar](#core-endpoints)
+ [Titik akhir untuk instalasi dengan penyediaan otomatis](#automatic-provisioning-endpoints)
+ [Titik akhir untuk komponen AWS yang disediakan](#public-component-endpoints)

## Titik akhir untuk operasi dasar
<a name="core-endpoints"></a>

Perangkat inti Greengrass menggunakan titik akhir dan port berikut untuk operasi dasar.

### Ambil titik akhir AWS IoT
<a name="retrieve-iot-endpoints"></a>

Dapatkan AWS IoT titik akhir untuk Anda Akun AWS, dan simpan untuk digunakan nanti. Perangkat Anda menggunakan titik akhir ini untuk tersambung ke AWS IoT. Lakukan hal-hal berikut:

1. Dapatkan titik akhir AWS IoT data untuk Anda Akun AWS.

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
   }
   ```

1. Dapatkan titik akhir AWS IoT kredensial untuk Anda. Akun AWS

   ```
   aws iot describe-endpoint --endpoint-type iot:CredentialProvider
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
   }
   ```


| Titik akhir | Port | Diperlukan | Deskripsi | 
| --- | --- | --- | --- | 
|  `greengrass-ats.iot.region.amazonaws.com`  | 8443 atau 443 | Ya |  Digunakan untuk operasi pesawat data, seperti menginstal penerapan dan bekerja dengan perangkat klien.  | 
|  `device-data-prefix-ats.iot.region.amazonaws.com`  |  MQTT: 8883 atau 443 HTTPS: 8443 atau 443  | Ya |  Digunakan untuk operasi bidang data untuk manajemen perangkat, seperti komunikasi MQTT dan sinkronisasi bayangan dengan AWS IoT Core.  | 
|  `device-credentials-prefix.credentials.iot.region.amazonaws.com`  | 443 | Ya |  Digunakan untuk memperoleh AWS kredensi, yang digunakan perangkat inti untuk mengunduh artefak komponen dari Amazon S3 dan melakukan operasi lainnya. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).  | 
|  `*.s3.amazonaws.com` `*.s3.region.amazonaws.com`  | 443 | Ya |  Digunakan untuk deployment. Format ini mencakup karakter `*`, karena prefiks titik akhir dikendalikan secara internal dan mungkin berubah setiap saat.  | 
|  `data.iot.region.amazonaws.com`  | 443 | Tidak |  Diperlukan jika perangkat inti menjalankan versi inti [Greengrass](greengrass-nucleus-component.md) lebih awal dari v2.4.0 dan dikonfigurasi untuk menggunakan proxy jaringan. Perangkat inti menggunakan titik akhir ini untuk komunikasi MQTT dengan AWS IoT Core saat berada di belakang proxy. Untuk informasi selengkapnya, lihat [Konfigurasikan proksi jaringan](configure-greengrass-core-v2.md#configure-network-proxy).  | 

## Titik akhir untuk instalasi dengan penyediaan otomatis
<a name="automatic-provisioning-endpoints"></a>

Perangkat inti Greengrass menggunakan titik akhir dan port berikut saat [Anda menginstal AWS IoT Greengrass](quick-installation.md) perangkat lunak Core dengan penyediaan sumber daya otomatis.


| Titik akhir | Port | Diperlukan | Deskripsi | 
| --- | --- | --- | --- | 
|  `iot.region.amazonaws.com`  | 443 | Ya |  Digunakan untuk membuat AWS IoT sumber daya dan mengambil informasi tentang AWS IoT sumber daya yang ada.  | 
|  `iam.amazonaws.com`  | 443 | Ya |  Digunakan untuk membuat sumber daya IAM dan mengambil informasi tentang sumber daya IAM yang ada.  | 
|  `sts.region.amazonaws.com`  | 443 | Ya |  Digunakan untuk mendapatkan ID Anda Akun AWS.  | 
|  `greengrass.region.amazonaws.com`  | 443 | Tidak |  Diperlukan jika Anda menggunakan `--deploy-dev-tools` argumen untuk menyebarkan komponen CLI Greengrass ke perangkat inti.  | 

## Titik akhir untuk komponen AWS yang disediakan
<a name="public-component-endpoints"></a>

Perangkat inti Greengrass menggunakan titik akhir tambahan tergantung pada komponen perangkat lunak mana yang mereka jalankan. Anda dapat menemukan titik akhir yang dibutuhkan oleh setiap komponen AWS yang disediakan di bagian **Persyaratan** di setiap halaman komponen dalam panduan pengembang ini. Lihat informasi yang lebih lengkap di [Komponen yang disediakan oleh AWS](public-components.md).

# Validasi kepatuhan untuk AWS IoT Greengrass
<a name="compliance-validation"></a>

Untuk mempelajari apakah an Layanan AWS berada dalam lingkup program kepatuhan tertentu, lihat [Layanan AWS di Lingkup oleh Program Kepatuhan Layanan AWS](https://aws.amazon.com/compliance/services-in-scope/) dan pilih program kepatuhan yang Anda minati. Untuk informasi umum, lihat [Program AWS Kepatuhan Program AWS](https://aws.amazon.com/compliance/programs/) .

Anda dapat mengunduh laporan audit pihak ketiga menggunakan AWS Artifact. Untuk informasi selengkapnya, lihat [Mengunduh Laporan di AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Tanggung jawab kepatuhan Anda saat menggunakan Layanan AWS ditentukan oleh sensitivitas data Anda, tujuan kepatuhan perusahaan Anda, dan hukum dan peraturan yang berlaku. Untuk informasi selengkapnya tentang tanggung jawab kepatuhan Anda saat menggunakan Layanan AWS, lihat [Dokumentasi AWS Keamanan](https://docs.aws.amazon.com/security/).

# Titik akhir FIPS
<a name="FIPS"></a>

AWS IoT Greengrass mendukung penggunaan titik akhir FIPS ([Federal Information Processing Standard (FIPS) 140-2)](https://aws.amazon.com/compliance/fips/). [Ketika mode FIPS diaktifkan, semua transmisi data, termasuk protokol HTTP dan MQTT, ke AWS Cloud layanan harus memanggil dan membuat koneksi dengan titik akhir yang sesuai dengan FIPS (FIPS - Amazon Web Services ()).AWS](https://aws.amazon.com/compliance/fips/)

Komunikasi MQTT untuk AWS IoT memanfaatkan titik akhir FIPS jalur data IoT [(Menghubungkan ke titik akhir FIPS -) dan perpustakaan kriptografi yang sesuai dengan FIPS yang dikembangkan AWS IoT aws-lc](https://docs.aws.amazon.com/iot/latest/developerguide/iot-connect-fips.html#iot-connect-fips-data). AWS IoT Core AWS

Untuk komunikasi HTTP di Greengrass:
+ Untuk komponen inti dan plugin, semua klien HTTP SDK dikonfigurasi dengan titik akhir FIPS dengan menyetel properti AWS\$1USE\$1FIPS\$1ENDPOINT sistem ke true;
+ Untuk komponen generik, semua komponen dimulai dengan properti sistem AWS\$1USE\$1FIPS\$1ENDPOINT disetel ke true. Proses ini memastikan bahwa klien HTTP SDK yang digunakan oleh komponen generik ini mengirim permintaan ke titik akhir yang sesuai dengan FIPS.

**catatan**  
Dalam kasus Stream manager, Nucleus meneruskan variabel lingkungan AWS\$1GG \$1FIPS\$1MODE. Variabel lingkungan ini memungkinkan klien HTTP yang digunakan dalam Stream Manager untuk mengidentifikasi dan terhubung ke titik akhir FIPS yang sesuai.

AWS IoT Greengrass menawarkan dua metode untuk mengaktifkan mode FIPS: penyediaan dan penerapan. Untuk mengaktifkan mode FIPS, Anda harus menyetel parameter konfigurasi `fipsMode` ke true, Nucleus kemudian menyetel properti sistem AWS\$1USE\$1FIPS\$1ENDPOINT ke true dan menyebarkannya sebagai variabel lingkungan ke semua komponen lainnya. Selain itu, AWS IoT Greengrass akan mengunduh sertifikat CA root (CA3) dan menambahkannya ke file rootca.pem (atau.pem) yang ada. AmazonRoot CA1 Jika Anda mengaktifkan FIPS melalui penerapan baru, Nucleus akan memulai ulang untuk memastikan bahwa properti sistem berlaku setelah mengaktifkan mode FIPS.

 Selain mengkonfigurasi `fipsMode` parameter, Anda juga harus mengkonfigurasi`iotDataEndpoint`, `iotCredEndpoint` dan `greengrassDataEndpoint` parameter. Untuk informasi lebih lanjut, lihat dokumen yang relevan di bawah ini.

## Aktifkan titik akhir FIPS dengan penerapan
<a name="FIPS-deployment"></a>

Dapatkan AWS IoT titik akhir untuk Anda Akun AWS, dan simpan untuk digunakan nanti. Perangkat Anda menggunakan titik akhir ini untuk tersambung ke AWS IoT. Ada dua titik akhir yang diperlukan, yaitu `iotDataEndpoint` dan. `iotCredEndpoint` Lakukan hal-hal berikut:

1. Dapatkan titik akhir data FIPS untuk wilayah Anda di titik akhir bidang [data AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Titik akhir data FIPS untuk Anda akan Akun AWS terlihat seperti ini: *data.iot-fips.us-west-2.amazonaws.com*

1. Dapatkan titik akhir kredensi FIPS untuk wilayah Anda di titik akhir bidang data [AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Titik akhir kredensi FIPS untuk Anda Akun AWS akan terlihat seperti ini: *data.credentials.iot-fips.us-west-2.amazonaws.com*

Kemudian, untuk mengaktifkan FIPS dengan penerapan, Anda perlu menerapkan konfigurasi berikut ke Nucleus. Konfigurasi untuk digabungkan pada penerapan adalah sebagai berikut.

------
#### [ Console ]

**Konfigurasi untuk digabungkan**  

```
{
  "fipsMode": "true",
  "iotDataEndpoint": "data.iot-fips.us-west-2.amazonaws.com",
  "greengrassDataPlaneEndpoint": "iotData",
  "iotCredEndpoint": "data.credentials.iot-fips.us-west-2.amazonaws.com"
}
```

------
#### [ AWS CLI ]

Perintah berikut membuat penyebaran ke perangkat inti.

```
aws greengrassv2 create-deployment --cli-input-json file://dashboard-deployment.json
```

`dashboard-deployment.json`File berisi dokumen JSON berikut.

```
{
  "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
  "deploymentName": "Deployment for MyGreengrassCore",
  "components": {
    "aws.greengrass.Nucleus": {
      "componentVersion": "2.13.0",
      "configurationUpdate": {
        "merge":{\"fipsMode\":\"true\",\"iotDataEndpoint\":\"data.iot-fips.us-west-2.amazonaws.com\",\"greengrassDataPlaneEndpoint\":\"iotData\",\"iotCredEndpoint\":\"data.credentials.iot-fips.us-west-2.amazonaws.com\"}"
      }
    }
  }
}
```

------
#### [ Greengrass CLI ]

Perintah [Greengrass CLI](greengrass-cli-component.md) berikut membuat penerapan lokal pada perangkat inti.

```
sudo greengrass-cli deployment create \
  --recipeDir recipes \
  --artifactDir artifacts \
  --merge "aws.greengrass.Nucleus=2.13.0" \
  --update-config dashboard-configuration.json
```

`dashboard-configuration.json`File berisi dokumen JSON berikut.

```
{
  "aws.greengrass.Nucleus": {
    "MERGE": {
       "fipsMode": "true",
       "iotDataEndpoint": "data.iot-fips.us-west-2.amazonaws.com",
       "greengrassDataPlaneEndpoint": "iotData",
       "iotCredEndpoint": "data.credentials.iot-fips.us-west-2.amazonaws.com"

    }
  }
}
```

------

## Instal Nucleus dengan endpoint FIPS dengan penyediaan sumber daya manual
<a name="FIPS-manual-installation"></a>

Menyediakan AWS sumber daya secara manual untuk perangkat AWS IoT Greengrass V2 inti dengan titik akhir FIPS

**penting**  <a name="install-greengrass-core-requirements-note"></a>
Sebelum Anda mengunduh perangkat lunak AWS IoT Greengrass Core, periksa apakah perangkat inti Anda memenuhi [persyaratan](greengrass-nucleus-component.md#greengrass-v2-requirements) untuk menginstal dan menjalankan perangkat lunak AWS IoT Greengrass Core v2.0.

**Topics**
+ [Ambil titik akhir AWS IoT](#w2ab1c58c44c23b9)
+ [Buat AWS IoT sesuatu](#create-iot-thing)
+ [Buat sertifikat benda](#create-thing-certificate-fips)
+ [Buat peran pertukaran token](#create-token-exchange-role)
+ [Unduh sertifikat ke perangkat](#download-thing-certificates)
+ [Mengatur lingkungan perangkat](#set-up-device-environment)
+ [Unduh perangkat lunak AWS IoT Greengrass Inti](#download-greengrass-core-v2)
+ [Instal perangkat lunak AWS IoT Greengrass Inti](#run-greengrass-core-v2-installer-manual-fips)

### Ambil titik akhir AWS IoT
<a name="w2ab1c58c44c23b9"></a>

Dapatkan AWS IoT titik akhir untuk Anda Akun AWS, dan simpan untuk digunakan nanti. Perangkat Anda menggunakan titik akhir ini untuk tersambung ke AWS IoT. Ada dua titik akhir yang diperlukan, yaitu `iotDataEndpoint` dan. `iotCredEndpoint` Lakukan hal-hal berikut:

1. Dapatkan titik akhir data FIPS untuk wilayah Anda di titik akhir bidang [data AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Titik akhir data FIPS untuk Anda akan Akun AWS terlihat seperti ini: *data.iot-fips.us-west-2.amazonaws.com*

1. Dapatkan titik akhir kredensi FIPS untuk wilayah Anda di titik akhir bidang data [AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Titik akhir kredensi FIPS untuk Anda Akun AWS akan terlihat seperti ini: *data.credentials.iot-fips.us-west-2.amazonaws.com*

### Buat AWS IoT sesuatu
<a name="create-iot-thing"></a>

AWS IoT *hal-hal* mewakili perangkat dan entitas logis yang terhubung ke AWS IoT. Perangkat inti Greengrass adalah benda. AWS IoT Saat Anda mendaftarkan perangkat sebagai AWS IoT sesuatu, perangkat tersebut dapat menggunakan sertifikat digital untuk mengautentikasi. AWS

Di bagian ini, Anda membuat AWS IoT sesuatu yang mewakili perangkat Anda.

**Untuk menciptakan AWS IoT sesuatu**

1. Buat AWS IoT sesuatu untuk perangkat Anda. Pada komputer pengembangan Anda, jalankan perintah berikut.
   + Ganti *MyGreengrassCore* dengan nama benda yang akan digunakan. Nama ini juga merupakan nama perangkat inti Greengrass Anda.
**catatan**  <a name="install-argument-thing-name-constraint"></a>
Nama objek tidak dapat berisi karakter titik dua (`:`).

   ```
   aws iot create-thing --thing-name MyGreengrassCore
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "thingName": "MyGreengrassCore",
     "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
     "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42"
   }
   ```

1. (Opsional) Tambahkan AWS IoT benda ke grup hal baru atau yang sudah ada. Anda menggunakan grup objek untuk mengelola armada perangkat inti Greengrass. Saat menerapkan komponen perangkat lunak ke perangkat, Anda dapat menargetkan perangkat individual atau grup perangkat. Anda dapat menambahkan suatu perangkat ke grup objek dengan deployment Greengrass aktif untuk men-deploy komponen perangkat lunak grup objek tersebut ke perangkat. Lakukan hal-hal berikut:

   1. (Opsional) Buat grup AWS IoT benda.
      + Ganti *MyGreengrassCoreGroup* dengan nama grup benda yang akan dibuat.
**catatan**  <a name="install-argument-thing-group-name-constraint"></a>
Nama grup objek tidak dapat berisi karakter titik dua (`:`).

      ```
      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "thingGroupName": "MyGreengrassCoreGroup",
        "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
        "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa"
      }
      ```

   1. Tambahkan AWS IoT benda itu ke grup benda.
      + Ganti *MyGreengrassCore* dengan nama AWS IoT benda Anda.
      + Ganti *MyGreengrassCoreGroup* dengan nama grup benda.

      ```
      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

### Buat sertifikat benda
<a name="create-thing-certificate-fips"></a>

<a name="create-thing-certificate-intro-1"></a>Saat Anda mendaftarkan perangkat sebagai AWS IoT sesuatu, perangkat tersebut dapat menggunakan sertifikat digital untuk mengautentikasi. AWS Sertifikat ini memungkinkan perangkat untuk berkomunikasi dengan AWS IoT dan AWS IoT Greengrass.

<a name="create-thing-certificate-intro-2"></a>Di bagian ini, Anda membuat dan mengunduh sertifikat yang dapat digunakan perangkat Anda untuk terhubung AWS.

<a name="create-thing-certificate-intro-3"></a>Jika Anda ingin mengonfigurasi perangkat lunak AWS IoT Greengrass Core untuk menggunakan modul keamanan perangkat keras (HSM) untuk menyimpan kunci pribadi dan sertifikat dengan aman, ikuti langkah-langkah untuk membuat sertifikat dari kunci pribadi di HSM. Jika tidak, ikuti langkah-langkah untuk membuat sertifikat dan kunci pribadi dalam AWS IoT layanan. Fitur keamanan perangkat keras hanya tersedia di perangkat Linux. Untuk informasi selengkapnya tentang keamanan perangkat keras dan persyaratan untuk menggunakannya, lihat[Integrasi keamanan perangkat keras](hardware-security.md).

#### Buat sertifikat dan kunci pribadi dalam AWS IoT layanan
<a name="create-thing-certificate-cloud"></a><a name="create-thing-certificate-cloud-steps"></a>

**Untuk membuat sertifikat benda**

1. Buat folder tempat Anda mengunduh sertifikat untuk AWS IoT benda itu.

   ```
   mkdir greengrass-v2-certs
   ```

1. Buat dan unduh sertifikat untuk AWS IoT benda itu.

   ```
   aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile greengrass-v2-certs/device.pem.crt --public-key-outfile greengrass-v2-certs/public.pem.key --private-key-outfile greengrass-v2-certs/private.pem.key
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----",
     "keyPair": {
       "PublicKey": "-----BEGIN PUBLIC KEY-----\
   MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\
   MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\
   59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\
   hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\
   FQIDAQAB\
   -----END PUBLIC KEY-----\
   ",
       "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\
   key omitted for security reasons\
   -----END RSA PRIVATE KEY-----\
   "
     }
   }
   ```

   Simpan Nama Sumber Daya Amazon (ARN) sertifikat yang akan digunakan untuk mengonfigurasi sertifikat nanti.

#### Buat sertifikat dari kunci pribadi di HSM
<a name="create-thing-certificate-hardware-security"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.3 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md) AWS IoT Greengrass saat ini tidak mendukung fitur ini di perangkat inti Windows. 

**Untuk membuat sertifikat benda**

1. Pada perangkat inti, inisialisasi token PKCS \$111 di HSM, dan buat kunci pribadi. Kunci pribadi harus berupa kunci RSA dengan ukuran kunci RSA-2048 (atau lebih besar) atau kunci ECC.
**catatan**  <a name="hardware-security-module-requirements-key-notes"></a>
Untuk menggunakan modul keamanan perangkat keras dengan kunci ECC, Anda harus menggunakan [Greengrass](greengrass-nucleus-component.md) nucleus v2.5.6 atau yang lebih baru.  
Untuk menggunakan modul keamanan perangkat keras dan [manajer rahasia](secret-manager-component.md), Anda harus menggunakan modul keamanan perangkat keras dengan kunci RSA.

   Periksa dokumentasi untuk HSM Anda untuk mempelajari cara menginisialisasi token dan menghasilkan kunci pribadi. Jika HSM Anda mendukung objek IDs, tentukan ID objek saat Anda membuat kunci pribadi. Simpan ID slot, PIN pengguna, label objek, ID objek (jika HSM Anda menggunakannya) yang Anda tentukan saat Anda menginisialisasi token dan menghasilkan kunci pribadi. Anda menggunakan nilai-nilai ini nanti ketika Anda mengimpor sertifikat hal ke HSM dan mengkonfigurasi perangkat lunak AWS IoT Greengrass Core.

1. Buat permintaan penandatanganan sertifikat (CSR) dari kunci pribadi. AWS IoT menggunakan CSR ini untuk membuat sertifikat sesuatu untuk kunci pribadi yang Anda buat di HSM. Untuk informasi tentang cara membuat CSR dari kunci pribadi, lihat dokumentasi untuk HSM Anda. CSR adalah file, seperti`iotdevicekey.csr`.

1. Salin CSR dari perangkat ke komputer pengembangan Anda. Jika SSH dan SCP diaktifkan pada komputer pengembangan dan perangkat, Anda dapat menggunakan `scp` perintah di komputer pengembangan Anda untuk mentransfer CSR. Ganti *device-ip-address* dengan alamat IP perangkat Anda, dan ganti *\$1/iotdevicekey.csr* dengan jalur ke file CSR di perangkat.

   ```
   scp device-ip-address:~/iotdevicekey.csr iotdevicekey.csr
   ```

1. Di komputer pengembangan Anda, buat folder tempat Anda mengunduh sertifikat untuk AWS IoT benda itu.

   ```
   mkdir greengrass-v2-certs
   ```

1. Gunakan file CSR untuk membuat dan mengunduh sertifikat untuk AWS IoT hal itu ke komputer pengembangan Anda.

   ```
   aws iot create-certificate-from-csr --set-as-active --certificate-signing-request=file://iotdevicekey.csr --certificate-pem-outfile greengrass-v2-certs/device.pem.crt
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----"
   }
   ```

   Simpan ARN sertifikat untuk digunakan untuk mengonfigurasi sertifikat nanti.

Selanjutnya, konfigurasikan sertifikat benda. Untuk informasi selengkapnya, lihat [Konfigurasikan sertifikat benda](manual-installation.md#configure-thing-certificate).

### Buat peran pertukaran token
<a name="create-token-exchange-role"></a>

<a name="installation-create-token-exchange-role-intro"></a>Perangkat inti Greengrass menggunakan peran layanan IAM, yang disebut peran *pertukaran token, untuk mengotorisasi* panggilan ke layanan. AWS Perangkat menggunakan penyedia AWS IoT kredensyal untuk mendapatkan AWS kredensyal sementara untuk peran ini, yang memungkinkan perangkat berinteraksi, mengirim log ke Amazon Log AWS IoT, dan mengunduh CloudWatch artefak komponen khusus dari Amazon S3. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

<a name="installation-create-token-exchange-role-alias-intro"></a>Anda menggunakan *alias AWS IoT peran* untuk mengonfigurasi peran pertukaran token untuk perangkat inti Greengrass. Alias peran memungkinkan Anda mengubah peran pertukaran token untuk suatu perangkat tetapi menjaga konfigurasi perangkat tetap sama. Untuk informasi selengkapnya, lihat [Mengotorisasi panggilan langsung ke layanan AWS](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) di *Panduan Developer AWS IoT Core *.

Di bagian ini, Anda membuat peran IAM pertukaran token dan alias AWS IoT peran yang menunjuk ke peran tersebut. Jika Anda telah menyiapkan perangkat inti Greengrass, Anda dapat menggunakan peran pertukaran token dan alias peran alih-alih membuat yang baru. Kemudian, Anda mengonfigurasi objek AWS IoT untuk menggunakan peran dan alias itu.

**Buat peran pertukaran token IAM role**

1. <a name="create-token-exchange-role-create-iam-role"></a>Buat peran IAM yang dapat digunakan perangkat Anda sebagai peran pertukaran token. Lakukan hal-hal berikut:

   1. Buat file yang berisi dokumen kebijakan kepercayaan yang memerlukan peran pertukaran token.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano device-role-trust-policy.json
      ```

      Salin JSON berikut ke dalam file.

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

   1. Buat peran pertukaran token dengan dokumen kebijakan kepercayaan.
      + Ganti *GreengrassV2TokenExchangeRole* dengan nama peran IAM yang akan dibuat.

      ```
      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "Role": {
          "Path": "/",
          "RoleName": "GreengrassV2TokenExchangeRole",
          "RoleId": "AROAZ2YMUHYHK5OKM77FB",
          "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
          "CreateDate": "2021-02-06T00:13:29+00:00",
          "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Principal": {
                  "Service": "credentials.iot.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
              }
            ]
          }
        }
      ```

   1. Buat file yang berisi dokumen kebijakan akses yang diperlukan oleh peran pertukaran token.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano device-role-access-policy.json
      ```

      Salin JSON berikut ke dalam file.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents",
              "logs:DescribeLogStreams",
              "s3:GetBucketLocation"
            ],
            "Resource": "*"
          }
        ]
      }
      ```
**catatan**  
Kebijakan akses ini tidak mengizinkan akses ke artefak komponen dalam bucket S3. Untuk men-deploy komponen kustom yang menentukan artefak di Amazon S3, Anda harus menambahkan izin untuk peran tersebut untuk memungkinkan perangkat inti Anda untuk mengambil artefak komponen. Untuk informasi selengkapnya, lihat [Izinkan akses ke bucket S3 untuk artefak komponen](device-service-role.md#device-service-role-access-s3-bucket).  
Jika Anda belum memiliki bucket S3 untuk artefak komponen, Anda dapat menambahkan izin ini nanti setelah membuat bucket.

   1. Buat kebijakan IAM dari dokumen kebijakan.
      + Ganti *GreengrassV2TokenExchangeRoleAccess* dengan nama kebijakan IAM yang akan dibuat.

      ```
      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "Policy": {
          "PolicyName": "GreengrassV2TokenExchangeRoleAccess",
          "PolicyId": "ANPAZ2YMUHYHACI7C5Z66",
          "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
          "Path": "/",
          "DefaultVersionId": "v1",
          "AttachmentCount": 0,
          "PermissionsBoundaryUsageCount": 0,
          "IsAttachable": true,
          "CreateDate": "2021-02-06T00:37:17+00:00",
          "UpdateDate": "2021-02-06T00:37:17+00:00"
        }
      }
      ```

   1. Lampirkan kebijakan IAM untuk peran pertukaran token.
      + Ganti *GreengrassV2TokenExchangeRole* dengan nama peran IAM.
      + Ganti ARN peran dengan ARN dari kebijakan IAM yang Anda buat di langkah sebelumnya.

      ```
      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

1. <a name="create-token-exchange-role-create-iot-role-alias"></a>Buat alias AWS IoT peran yang menunjuk ke peran pertukaran token.
   + Ganti *GreengrassCoreTokenExchangeRoleAlias* dengan nama alias peran yang akan dibuat.
   + Ganti ARN peran dengan ARN dari IAM role yang Anda buat di langkah sebelumnya.

   ```
   aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "roleAlias": "GreengrassCoreTokenExchangeRoleAlias",
     "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
   }
   ```
**catatan**  
Untuk membuat alias peran, Anda harus memiliki izin untuk melewati IAM role pertukaran token ke AWS IoT. Jika Anda menerima pesan galat saat mencoba membuat alias peran, periksa apakah AWS pengguna Anda memiliki izin ini. Untuk informasi selengkapnya, lihat [Memberikan izin pengguna untuk meneruskan peran ke AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) di *AWS Identity and Access Management Panduan Pengguna*.

1. Buat dan lampirkan AWS IoT kebijakan yang memungkinkan perangkat inti Greengrass Anda menggunakan alias peran untuk mengambil peran pertukaran token. Jika Anda telah menyiapkan perangkat inti Greengrass sebelumnya, Anda dapat melampirkan kebijakan AWS IoT alias perannya alih-alih membuat yang baru. Lakukan hal-hal berikut:

   1. (Opsional) Buat file yang berisi dokumen AWS IoT kebijakan yang diperlukan alias peran.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano greengrass-v2-iot-role-alias-policy.json
      ```

      Salin JSON berikut ke dalam file.
      + Ganti ARN sumber daya dengan ARN alias peran Anda.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iot:AssumeRoleWithCertificate",
            "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
          }
        ]
      }
      ```

   1. Buat AWS IoT kebijakan dari dokumen kebijakan.
      + Ganti *GreengrassCoreTokenExchangeRoleAliasPolicy* dengan nama AWS IoT kebijakan yang akan dibuat.

      ```
      aws iot create-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --policy-document file://greengrass-v2-iot-role-alias-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "policyName": "GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyDocument": "{
          \\"Version\\":\\"2012-10-17		 	 	 \\",
          \\"Statement\\": [
            {
              \\"Effect\\": \\"Allow\\",
              \\"Action\\": \\"iot:AssumeRoleWithCertificate\\",
              \\"Resource\\": \\"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\\"
            }
          ]
        }",
        "policyVersionId": "1"
      }
      ```

   1. Lampirkan AWS IoT kebijakan ke sertifikat AWS IoT benda itu.
      + Ganti *GreengrassCoreTokenExchangeRoleAliasPolicy* dengan nama AWS IoT kebijakan alias peran.
      + Ganti ARN target dengan ARN sertifikat untuk objek AWS IoT Anda.

      ```
      aws iot attach-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

### Unduh sertifikat ke perangkat
<a name="download-thing-certificates"></a>

Sebelumnya, Anda mengunduh sertifikat perangkat ke komputer pengembangan Anda. Di bagian ini, Anda menyalin sertifikat ke perangkat inti Anda untuk mengatur perangkat dengan sertifikat yang digunakan untuk terhubung AWS IoT. Anda juga mengunduh sertifikat otoritas sertifikat root Amazon (CA). Jika Anda menggunakan HSM, Anda juga mengimpor file sertifikat ke HSM di bagian ini.
+ Jika Anda membuat sertifikat benda dan kunci pribadi di AWS IoT layanan sebelumnya, ikuti langkah-langkah untuk mengunduh sertifikat dengan kunci pribadi dan file sertifikat.
+ Jika Anda membuat sertifikat benda dari kunci pribadi dalam modul keamanan perangkat keras (HSM) sebelumnya, ikuti langkah-langkah untuk mengunduh sertifikat dengan kunci pribadi dan sertifikat di HSM.

#### Unduh sertifikat dengan kunci pribadi dan file sertifikat
<a name="download-thing-certificates-without-hardware-security"></a>

**Untuk mengunduh sertifikat ke perangkat**

1. <a name="installation-copy-thing-certificate-to-device"></a>Salin sertifikat AWS IoT benda dari komputer pengembangan Anda ke perangkat. Jika SSH dan SCP diaktifkan pada komputer pengembangan dan perangkat, Anda dapat menggunakan `scp` perintah di komputer pengembangan Anda untuk mentransfer sertifikat. Ganti *device-ip-address* dengan alamat IP perangkat Anda.

   ```
   scp -r greengrass-v2-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Buat folder akar Greengrass pada perangkat tersebut. Anda nantinya akan menginstal perangkat lunak AWS IoT Greengrass Core ke folder ini.
**catatan**  
Windows memiliki batasan panjang jalur 260 karakter. Jika Anda menggunakan Windows, gunakan folder root seperti `C:\greengrass\v2` atau `D:\greengrass\v2` untuk menjaga jalur komponen Greengrass di bawah batas 260 karakter.

------
#### [ Linux or Unix ]
   + Ganti `/greengrass/v2` dengan folder yang akan digunakan.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Hanya Linux) Atur izin induk folder root Greengrass.
   + Ganti */greengrass* dengan induk folder root.

   ```
   sudo chmod 755 /greengrass
   ```

1. Salin sertifikat AWS IoT benda ke folder root Greengrass.

------
#### [ Linux or Unix ]
   + Ganti `/greengrass/v2` dengan folder root Greengrass.

   ```
   sudo cp -R ~/greengrass-v2-certs/* /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   robocopy %USERPROFILE%\greengrass-v2-certs C:\greengrass\v2 /E
   ```

------
#### [ PowerShell ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   cp -Path ~\greengrass-v2-certs\* -Destination C:\greengrass\v2
   ```

------

1. Unduh sertifikat otoritas sertifikat root Amazon (CA). AWS IoT sertifikat dikaitkan dengan sertifikat CA root Amazon secara default. Unduh CA1 sertifikat dan [CA3sertifikat](https://www.amazontrust.com/repository/).

------
#### [ Linux or Unix ]
   + Ganti `/greengrass/v2` atau *C:\$1greengrass\$1v2* dengan folder root Greengrass.

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

#### Unduh sertifikat dengan kunci pribadi dan sertifikat di HSM
<a name="download-thing-certificates-with-hardware-security"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.3 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md) AWS IoT Greengrass saat ini tidak mendukung fitur ini di perangkat inti Windows. 

**Untuk mengunduh sertifikat ke perangkat**

1. <a name="installation-copy-thing-certificate-to-device"></a>Salin sertifikat AWS IoT benda dari komputer pengembangan Anda ke perangkat. Jika SSH dan SCP diaktifkan pada komputer pengembangan dan perangkat, Anda dapat menggunakan `scp` perintah di komputer pengembangan Anda untuk mentransfer sertifikat. Ganti *device-ip-address* dengan alamat IP perangkat Anda.

   ```
   scp -r greengrass-v2-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Buat folder akar Greengrass pada perangkat tersebut. Anda nantinya akan menginstal perangkat lunak AWS IoT Greengrass Core ke folder ini.
**catatan**  
Windows memiliki batasan panjang jalur 260 karakter. Jika Anda menggunakan Windows, gunakan folder root seperti `C:\greengrass\v2` atau `D:\greengrass\v2` untuk menjaga jalur komponen Greengrass di bawah batas 260 karakter.

------
#### [ Linux or Unix ]
   + Ganti `/greengrass/v2` dengan folder yang akan digunakan.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Hanya Linux) Atur izin induk folder root Greengrass.
   + Ganti */greengrass* dengan induk folder root.

   ```
   sudo chmod 755 /greengrass
   ```

1. Impor file sertifikat benda,`~/greengrass-v2-certs/device.pem.crt`, ke HSM. Periksa dokumentasi untuk HSM Anda untuk mempelajari cara mengimpor sertifikat ke dalamnya. Impor sertifikat menggunakan token, ID slot, PIN pengguna, label objek, dan ID objek yang sama (jika HSM Anda menggunakannya) tempat Anda membuat kunci pribadi di HSM sebelumnya.
**catatan**  
Jika Anda membuat kunci pribadi sebelumnya tanpa ID objek, dan sertifikat memiliki ID objek, atur ID objek kunci privat ke nilai yang sama dengan sertifikat. Periksa dokumentasi untuk HSM Anda untuk mempelajari cara mengatur ID objek untuk objek kunci pribadi.

1. (Opsional) Hapus file sertifikat benda, sehingga hanya ada di HSM.

   ```
   rm ~/greengrass-v2-certs/device.pem.crt
   ```

1. Unduh sertifikat otoritas sertifikat root Amazon (CA). AWS IoT sertifikat dikaitkan dengan sertifikat CA root Amazon secara default. Unduh sertifikat CA1 dan [CA3sertifikat](https://www.amazontrust.com/repository/).

------
#### [ Linux or Unix ]
   + Ganti `/greengrass/v2` atau *C:\$1greengrass\$1v2* dengan folder root Greengrass.

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

### Mengatur lingkungan perangkat
<a name="set-up-device-environment"></a>

Ikuti langkah-langkah di bagian ini untuk menyiapkan perangkat Linux atau Windows untuk digunakan sebagai perangkat AWS IoT Greengrass inti Anda.

#### Siapkan perangkat Linux
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Untuk mengatur perangkat Linux untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan. Perintah berikut menunjukkan cara menginstal OpenJDK di perangkat Anda.
   + Untuk distribusi berbasis Debian atau berbasis Ubuntu:

     ```
     sudo apt install default-jdk
     ```
   + Untuk distribusi berbasis Red Hat:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Untuk Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Untuk Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Ketika instalasi selesai, jalankan perintah berikut untuk memverifikasi bahwa Java berjalan pada perangkat Linux Anda.

   ```
   java -version
   ```

   Perintah mencetak versi Java yang berjalan pada perangkat. Misalnya, pada distribusi berbasis Debian, output mungkin terlihat mirip dengan sampel berikut.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Opsional) Buat pengguna dan grup sistem default yang menjalankan komponen pada perangkat. Anda juga dapat memilih untuk membiarkan penginstal perangkat lunak AWS IoT Greengrass Core membuat pengguna dan grup ini selama instalasi dengan argumen `--component-default-user` installer. Untuk informasi selengkapnya, lihat [Argumen penginstal](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Verifikasi bahwa pengguna yang menjalankan perangkat lunak AWS IoT Greengrass Core (biasanya`root`), memiliki izin untuk menjalankan `sudo` dengan pengguna dan grup apa pun.

   1. Jalankan perintah berikut untuk membuka `/etc/sudoers` file.

      ```
      sudo visudo
      ```

   1. Verifikasi bahwa izin untuk pengguna terlihat seperti contoh berikut.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. **(Opsional) Untuk [menjalankan fungsi Lambda kontainer](run-lambda-functions.md), Anda harus mengaktifkan [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1, dan Anda harus mengaktifkan dan memasang memori dan perangkat cgroups.** Jika Anda tidak berencana untuk menjalankan fungsi Lambda kontainer, Anda dapat melewati langkah ini.

   Untuk mengaktifkan opsi cgroups ini, boot perangkat dengan parameter kernel Linux berikut.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Untuk informasi tentang melihat dan menyetel parameter kernel untuk perangkat Anda, lihat dokumentasi untuk sistem operasi dan boot loader Anda. Ikuti instruksi untuk mengatur parameter kernel secara permanen.

1. Instal semua dependensi lain yang diperlukan pada perangkat Anda seperti yang ditunjukkan oleh daftar persyaratan di. [Persyaratan perangkat](greengrass-nucleus-component.md#greengrass-v2-requirements)

#### Mengatur perangkat Windows
<a name="set-up-windows-device-environment"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)<a name="set-up-windows-device-environment-procedure"></a>

**Untuk mengatur perangkat Windows untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan.

1. Periksa apakah Java tersedia pada variabel sistem [PATH](https://en.wikipedia.org/wiki/PATH_(variable)), dan tambahkan jika tidak. LocalSystem Akun menjalankan perangkat lunak AWS IoT Greengrass Core, jadi Anda harus menambahkan Java ke variabel sistem PATH alih-alih variabel pengguna PATH untuk pengguna Anda. Lakukan hal-hal berikut:

   1. Tekan tombol Windows untuk membuka menu mulai.

   1. Ketik **environment variables** untuk mencari opsi sistem dari menu mulai.

   1. Di hasil pencarian menu mulai, pilih **Edit variabel lingkungan sistem** untuk membuka jendela **Properti sistem**.

   1. Pilih **variabel Lingkungan...** untuk membuka jendela **Variabel Lingkungan**.

   1. Di bawah **Variabel sistem**, pilih **Path**, lalu pilih **Edit**. Di jendela **variabel Edit lingkungan**, Anda dapat melihat setiap jalur pada baris terpisah.

   1. Periksa apakah jalur ke `bin` folder instalasi Java ada. Jalannya mungkin terlihat mirip dengan contoh berikut.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Jika `bin` folder instalasi Java hilang dari **Path**, pilih **Baru** untuk menambahkannya, lalu pilih **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Buka Windows Command Prompt (`cmd.exe`) sebagai administrator.

1. <a name="set-up-windows-device-environment-create"></a>Buat pengguna default di LocalSystem akun di perangkat Windows. Ganti *password* dengan kata sandi yang aman.

   ```
   net user /add ggc_user password
   ```
**Tip**  <a name="windows-password-expiration-tip"></a>
Bergantung pada konfigurasi Windows Anda, kata sandi pengguna mungkin diatur untuk kedaluwarsa pada tanggal di masa mendatang. Untuk memastikan aplikasi Greengrass Anda terus beroperasi, lacak kapan kata sandi kedaluwarsa, dan perbarui sebelum kedaluwarsa. Anda juga dapat mengatur kata sandi pengguna agar tidak pernah kedaluwarsa.  
Untuk memeriksa kapan pengguna dan kata sandinya kedaluwarsa, jalankan perintah berikut.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Untuk mengatur kata sandi pengguna agar tidak pernah kedaluwarsa, jalankan perintah berikut.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Jika Anda menggunakan Windows 10 atau yang lebih baru di mana [`wmic`perintah tidak digunakan lagi](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), jalankan perintah berikut. PowerShell   

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Unduh dan instal [PsExecutilitas](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) dari Microsoft pada perangkat. 

1. <a name="set-up-windows-device-credentials"></a>Gunakan PsExec utilitas untuk menyimpan nama pengguna dan kata sandi untuk pengguna default dalam contoh Credential Manager untuk LocalSystem akun tersebut. Ganti *password* dengan kata sandi pengguna yang Anda tetapkan sebelumnya.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Jika **PsExec License Agreement**terbuka, pilih **Accept**untuk menyetujui lisensi dan jalankan perintah.
**catatan**  
Pada perangkat Windows, LocalSystem akun menjalankan inti Greengrass, dan Anda harus menggunakan utilitas untuk menyimpan PsExec informasi pengguna default di akun. LocalSystem Menggunakan aplikasi Credential Manager menyimpan informasi ini di akun Windows dari pengguna yang saat ini masuk, bukan LocalSystem akun.

### Unduh perangkat lunak AWS IoT Greengrass Inti
<a name="download-greengrass-core-v2"></a>

Anda dapat mengunduh versi terbaru perangkat lunak AWS IoT Greengrass Core dari lokasi berikut:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**catatan**  
Anda dapat mengunduh versi tertentu dari perangkat lunak AWS IoT Greengrass Core dari lokasi berikut. Ganti *version* dengan versi yang akan diunduh.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Untuk mengunduh perangkat lunak AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Di perangkat inti Anda, unduh perangkat lunak AWS IoT Greengrass Core ke file bernama`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Dengan mengunduh perangkat lunak ini, Anda menyetujui [Perjanjian Lisensi Perangkat Lunak Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Opsional) Untuk memverifikasi tanda tangan perangkat lunak inti Greengrass
**catatan**  
Fitur ini tersedia dengan Greengrass nucleus versi 2.9.5 dan yang lebih baru.

   1. Gunakan perintah berikut untuk memverifikasi tanda tangan artefak inti Greengrass Anda:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. `jarsigner`Pemanggilan menghasilkan output yang menunjukkan hasil verifikasi.

      1. Jika file zip inti Greengrass ditandatangani, output berisi pernyataan berikut:

         ```
         jar verified.
         ```

      1. Jika file zip inti Greengrass tidak ditandatangani, output berisi pernyataan berikut:

         ```
         jar is unsigned.
         ```

   1. Jika Anda memberikan `-certs` opsi Jarsigner bersama dengan `-verify` dan `-verbose` opsi, output juga menyertakan informasi sertifikat penandatangan terperinci.

1. <a name="installation-unzip-ggc-software-step"></a>Buka zip perangkat lunak AWS IoT Greengrass Core ke folder di perangkat Anda. Ganti *GreengrassInstaller* dengan folder yang ingin Anda gunakan.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Opsional) Jalankan perintah berikut untuk melihat versi perangkat lunak AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**penting**  <a name="installer-folder-2.4.0-warning"></a>
Jika Anda menginstal versi inti Greengrass lebih awal dari v2.4.0, jangan hapus folder ini setelah Anda menginstal perangkat lunak Core. AWS IoT Greengrass Perangkat lunak AWS IoT Greengrass Core menggunakan file dalam folder ini untuk dijalankan.  
Jika Anda mengunduh versi terbaru perangkat lunak, Anda menginstal v2.4.0 atau yang lebih baru, dan Anda dapat menghapus folder ini setelah Anda menginstal perangkat lunak AWS IoT Greengrass Core.

### Instal perangkat lunak AWS IoT Greengrass Inti
<a name="run-greengrass-core-v2-installer-manual-fips"></a>

Jalankan penginstal dengan argumen yang menentukan tindakan berikut:
+ Instal dari file konfigurasi parsial yang menentukan untuk menggunakan sumber daya AWS dan sertifikat yang Anda buat sebelumnya. Perangkat lunak AWS IoT Greengrass Core menggunakan file konfigurasi yang menentukan konfigurasi setiap komponen Greengrass pada perangkat. Installer membuat file konfigurasi lengkap dari file konfigurasi parsial yang Anda berikan.
+ <a name="install-argument-component-default-user"></a>Tentukan untuk menggunakan pengguna `ggc_user` sistem untuk menjalankan komponen perangkat lunak pada perangkat inti. Pada perangkat Linux, perintah ini juga menentukan untuk menggunakan grup `ggc_group` sistem, dan penginstal membuat pengguna dan grup sistem untuk Anda.
+ <a name="install-argument-system-service"></a>Siapkan perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem yang berjalan saat boot. Pada perangkat Linux, ini membutuhkan sistem init [Systemd](https://en.wikipedia.org/wiki/Systemd).
**penting**  <a name="windows-system-service-requirement-important-note"></a>
Pada perangkat inti Windows, Anda harus mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

Untuk informasi lebih lanjut tentang argumen yang dapat Anda tentukan, lihat [Argumen penginstal](configure-installer.md).

**catatan**  
<a name="jvm-tuning-note"></a>Jika Anda menjalankan AWS IoT Greengrass perangkat dengan memori terbatas, Anda dapat mengontrol jumlah memori yang digunakan perangkat lunak AWS IoT Greengrass Core. Untuk mengontrol alokasi memori, Anda dapat mengatur pilihan ukuran tumpukan JVM di konfigurasi parameter `jvmOptions` dalam komponen nukleus anda. Untuk informasi selengkapnya, lihat [Kontrol alokasi memori dengan opsi JVM](configure-greengrass-core-v2.md#jvm-tuning).
+ Jika Anda membuat sertifikat benda dan kunci pribadi di AWS IoT layanan sebelumnya, ikuti langkah-langkah untuk menginstal perangkat lunak AWS IoT Greengrass inti dengan kunci pribadi dan file sertifikat.
+ Jika Anda membuat sertifikat benda dari kunci pribadi dalam modul keamanan perangkat keras (HSM) sebelumnya, ikuti langkah-langkah untuk menginstal perangkat lunak AWS IoT Greengrass Core dengan kunci pribadi dan sertifikat di HSM.

#### Instal perangkat lunak AWS IoT Greengrass Core dengan kunci pribadi dan file sertifikat
<a name="FIPS-manual-installation-without-hardware-security"></a>

**Untuk menginstal perangkat lunak AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Periksa versi perangkat lunak AWS IoT Greengrass inti.
   + Ganti *GreengrassInstaller* dengan path ke folder yang berisi perangkat lunak.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Gunakan editor teks untuk membuat file konfigurasi bernama `config.yaml` yang akan disediakan ke penginstal.

   <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Salin konten YAML berikut ke dalam file. File konfigurasi parsial ini menentukan parameter sistem dan parameter inti Greengrass.

   ```
   ---
   system:
     certificateFilePath: "/greengrass/v2/device.pem.crt"
     privateKeyPath: "/greengrass/v2/private.pem.key"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.16.1"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
   ```

   Kemudian, lakukan hal berikut:
   + Ganti setiap instance `/greengrass/v2` dengan folder root Greengrass.
   + Ganti *MyGreengrassCore* dengan nama AWS IoT benda itu.
   + Ganti *2.16.1* dengan versi perangkat lunak AWS IoT Greengrass Core.
   + Ganti *us-west-2* dengan Wilayah AWS tempat Anda membuat sumber daya.
   + Ganti *GreengrassCoreTokenExchangeRoleAlias* dengan nama alias peran pertukaran token.
   + Ganti *iotDataEndpoint* dengan titik akhir AWS IoT data Anda.
   + Ganti *iotCredEndpoint* dengan titik akhir AWS IoT kredensial Anda.

1. Jalankan penginstal, dan tentukan `--init-config` untuk menyediakan file konfigurasi.
   + Ganti `/greengrass/v2` atau *C:\$1greengrass\$1v2* dengan folder root Greengrass.
   + Ganti setiap instance *GreengrassInstaller* dengan folder tempat Anda membongkar penginstal.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**penting**  <a name="windows-system-service-installer-argument-important-note"></a>
Pada perangkat inti Windows, Anda harus menentukan `--setup-system-service true` untuk mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

   <a name="installer-setup-system-service-output-message"></a>Jika Anda menentukan `--setup-system-service true`, penginstal akan mencetak `Successfully set up Nucleus as a system service` jika ia mengatur dan menjalankan perangkat lunak sebagai layanan. Jika tidak, installer tersebut tidak akan menghasilkan pesan apa pun jika ia berhasil menginstal perangkat lunak tersebut.
**catatan**  <a name="installer-deploy-dev-tools-without-provision"></a>
Anda tidak dapat menggunakan argumen `deploy-dev-tools` untuk men-deploy alat pengembangan lokal ketika Anda menjalankan penginstal tersebut tanpa argumen `--provision true`. Untuk informasi tentang cara men-deploy Greengrass CLI secara langsung pada perangkat Anda, lihat [Antarmuka Baris Perintah Greengrass](gg-cli.md).

1. <a name="installer-verify-installation"></a>Verifikasi instalasi dengan melihat file di folder root.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Jika penginstalan berhasil, folder akar berisi beberapa folder, seperti `config`, `packages`, dan `logs`.

#### Instal perangkat lunak AWS IoT Greengrass Core dengan kunci pribadi dan sertifikat di HSM
<a name="FIPS-manual-installation-with-hardware-security"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.3 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md) AWS IoT Greengrass saat ini tidak mendukung fitur ini di perangkat inti Windows. 

**Untuk menginstal perangkat lunak AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Periksa versi perangkat lunak AWS IoT Greengrass inti.
   + Ganti *GreengrassInstaller* dengan path ke folder yang berisi perangkat lunak.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Untuk mengaktifkan perangkat lunak AWS IoT Greengrass Core menggunakan kunci pribadi dan sertifikat di HSM, instal [komponen penyedia PKCS \$111](pkcs11-provider-component.md) saat Anda menginstal perangkat lunak Core. AWS IoT Greengrass Komponen penyedia PKCS \$111 adalah plugin yang dapat Anda konfigurasi selama instalasi. Anda dapat mengunduh versi terbaru komponen penyedia PKCS \$111 dari lokasi berikut:
   + [https://d2s8p88vqu9w66.cloudfront. net/releases/Pkcs11Provider/aws.GreenGrass.crypto.PKCS11Provider-Latest.jar](https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar)

   Unduh plugin penyedia PKCS \$111 ke file bernama. `aws.greengrass.crypto.Pkcs11Provider.jar` Ganti *GreengrassInstaller* dengan folder yang ingin Anda gunakan.

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar > GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar
   ```

   <a name="core-software-license"></a>Dengan mengunduh perangkat lunak ini, Anda menyetujui [Perjanjian Lisensi Perangkat Lunak Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. Gunakan editor teks untuk membuat file konfigurasi bernama `config.yaml` yang akan disediakan ke penginstal.

   <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Salin konten YAML berikut ke dalam file. File konfigurasi sebagian ini menentukan parameter sistem, parameter inti Greengrass, dan parameter penyedia PKCS \$111.

   ```
   ---
   system:
     certificateFilePath: "/greengrass/v2/device.pem.crt"
     privateKeyPath: "/greengrass/v2/private.pem.key"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.16.1"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
   ```

   Kemudian, lakukan hal berikut:
   + Ganti setiap instance *iotdevicekey* di PKCS \$111 URIs dengan label objek tempat Anda membuat kunci pribadi dan mengimpor sertifikat.
   + Ganti setiap instance `/greengrass/v2` dengan folder root Greengrass.
   + Ganti *MyGreengrassCore* dengan nama AWS IoT benda itu.
   + Ganti *2.16.1* dengan versi perangkat lunak AWS IoT Greengrass Core.
   + Ganti *us-west-2* dengan Wilayah AWS tempat Anda membuat sumber daya.
   + Ganti *GreengrassCoreTokenExchangeRoleAlias* dengan nama alias peran pertukaran token.
   + Ganti `iotDataEndpoint` dengan titik akhir AWS IoT data Anda.
   + Ganti `iotCredEndpoint` dengan titik akhir kredensial AWS IoT Anda.
   + Ganti parameter konfigurasi untuk `aws.greengrass.crypto.Pkcs11Provider` komponen dengan nilai untuk konfigurasi HSM pada perangkat inti.

1. Jalankan penginstal, dan tentukan `--init-config` untuk menyediakan file konfigurasi.
   + Ganti `/greengrass/v2` dengan folder root Greengrass.
   + Ganti setiap instance *GreengrassInstaller* dengan folder tempat Anda membongkar penginstal.

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```
**penting**  <a name="windows-system-service-installer-argument-important-note"></a>
Pada perangkat inti Windows, Anda harus menentukan `--setup-system-service true` untuk mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

   <a name="installer-setup-system-service-output-message"></a>Jika Anda menentukan `--setup-system-service true`, penginstal akan mencetak `Successfully set up Nucleus as a system service` jika ia mengatur dan menjalankan perangkat lunak sebagai layanan. Jika tidak, installer tersebut tidak akan menghasilkan pesan apa pun jika ia berhasil menginstal perangkat lunak tersebut.
**catatan**  <a name="installer-deploy-dev-tools-without-provision"></a>
Anda tidak dapat menggunakan argumen `deploy-dev-tools` untuk men-deploy alat pengembangan lokal ketika Anda menjalankan penginstal tersebut tanpa argumen `--provision true`. Untuk informasi tentang cara men-deploy Greengrass CLI secara langsung pada perangkat Anda, lihat [Antarmuka Baris Perintah Greengrass](gg-cli.md).

1. <a name="installer-verify-installation"></a>Verifikasi instalasi dengan melihat file di folder root.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Jika penginstalan berhasil, folder akar berisi beberapa folder, seperti `config`, `packages`, dan `logs`.

<a name="install-greengrass-core-run-software"></a>Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem, penginstal menjalankan perangkat lunak untuk Anda. Jika tidak, Anda harus menjalankan perangkat lunak itu secara manual. Untuk informasi selengkapnya, lihat [Jalankan perangkat lunak AWS IoT Greengrass Core](run-greengrass-core-v2.md).

<a name="install-greengrass-core-next-steps-intro"></a>Untuk informasi selengkapnya tentang cara mengkonfigurasi dan menggunakan perangkat lunak dan AWS IoT Greengrass, lihat berikut ini:<a name="install-greengrass-core-next-steps-links"></a>
+ [Konfigurasikan perangkat lunak AWS IoT Greengrass Inti](configure-greengrass-core-v2.md)
+ [Kembangkan AWS IoT Greengrass komponen](develop-greengrass-components.md)
+ [Menyebarkan AWS IoT Greengrass komponen ke perangkat](manage-deployments.md)
+ [Antarmuka Baris Perintah Greengrass](gg-cli.md)

## Instal titik akhir FIPS dengan penyediaan armada
<a name="FIPS-fleet-provisioning"></a>

[Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)

Instal titik akhir FIPS pada perangkat lunak AWS IoT Greengrass Core Anda dengan penyediaan AWS IoT armada untuk perangkat inti Anda.

**catatan**  
Plugin penyediaan armada saat ini tidak mendukung penyimpanan kunci pribadi dan file sertifikat dalam modul keamanan perangkat keras (HSM). Untuk menggunakan HSM, [instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan manual](#FIPS-fleet-provisioning).

Untuk menginstal perangkat lunak AWS IoT Greengrass Core dengan penyediaan AWS IoT armada, Anda harus menyiapkan sumber daya Akun AWS yang AWS IoT digunakan untuk menyediakan perangkat inti Greengrass. Sumber daya ini mencakup templat penyediaan, sertifikat klaim, dan peran [IAM pertukaran token](device-service-role.md). Setelah Anda membuat sumber daya ini, Anda dapat menggunakannya kembali untuk menyediakan beberapa perangkat inti dalam armada. Untuk informasi selengkapnya, lihat [Siapkan penyediaan AWS IoT armada untuk perangkat inti Greengrass](fleet-provisioning-setup.md).

**penting**  <a name="install-greengrass-core-requirements-note"></a>
Sebelum Anda mengunduh perangkat lunak AWS IoT Greengrass Core, periksa apakah perangkat inti Anda memenuhi [persyaratan](greengrass-nucleus-component.md#greengrass-v2-requirements) untuk menginstal dan menjalankan perangkat lunak AWS IoT Greengrass Core v2.0.

**Topics**
+ [Prasyarat](#fleet-provisioning-prerequisites)
+ [Ambil titik akhir AWS IoT](#retrieve-iot-endpoints)
+ [Unduh sertifikat ke perangkat](#download-claim-certificates)
+ [Mengatur lingkungan perangkat](#set-up-device-environment-fleet-provisioning)
+ [Unduh perangkat lunak AWS IoT Greengrass Inti](#download-greengrass-core-v2-fleet)
+ [Unduh plugin penyediaan AWS IoT armada](#download-fleet-provisioning-plugin)
+ [Instal perangkat lunak AWS IoT Greengrass Inti](#run-greengrass-core-v2-installer-fleet-provisioning)

### Prasyarat
<a name="fleet-provisioning-prerequisites"></a>

Untuk menginstal perangkat lunak AWS IoT Greengrass Core dengan penyediaan AWS IoT armada, Anda harus terlebih dahulu [mengatur penyediaan AWS IoT armada untuk perangkat inti Greengrass](fleet-provisioning-setup.md). Setelah Anda menyelesaikan langkah-langkah ini sekali, Anda dapat menggunakan penyediaan armada untuk menginstal perangkat lunak AWS IoT Greengrass Core di sejumlah perangkat.

### Ambil titik akhir AWS IoT
<a name="retrieve-iot-endpoints"></a>

Dapatkan titik akhir FIPS untuk Anda Akun AWS, dan simpan untuk digunakan nanti. Perangkat Anda menggunakan titik akhir ini untuk tersambung ke AWS IoT. Lakukan hal-hal berikut:

1. Dapatkan titik akhir data FIPS untuk wilayah Anda di titik akhir bidang [data AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Titik akhir data FIPS untuk Anda akan Akun AWS terlihat seperti ini: *data.iot-fips.us-west-2.amazonaws.com*

1. Dapatkan titik akhir kredensi FIPS untuk wilayah Anda di titik akhir bidang data [AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Titik akhir kredensi FIPS untuk Anda Akun AWS akan terlihat seperti ini: *data.credentials.iot-fips.us-west-2.amazonaws.com*

### Unduh sertifikat ke perangkat
<a name="download-claim-certificates"></a>

Perangkat menggunakan sertifikat klaim dan kunci pribadi untuk mengautentikasi permintaannya untuk menyediakan AWS sumber daya dan memperoleh sertifikat perangkat X.509. Anda dapat menyematkan sertifikat klaim dan kunci pribadi ke dalam perangkat selama pembuatan, atau menyalin sertifikat dan kunci ke perangkat selama instalasi. Di bagian ini, Anda menyalin sertifikat klaim dan kunci pribadi ke perangkat. Anda juga mengunduh sertifikat Amazon Root Certificate Authority (CA) ke perangkat.

**penting**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
Kunci pribadi klaim penyediaan harus diamankan setiap saat, termasuk pada perangkat inti Greengrass. Kami menyarankan Anda menggunakan CloudWatch metrik dan log Amazon untuk memantau indikasi penyalahgunaan, seperti penggunaan sertifikat klaim yang tidak sah ke perangkat penyediaan. Jika Anda mendeteksi penyalahgunaan, nonaktifkan sertifikat klaim penyediaan sehingga tidak dapat digunakan untuk penyediaan perangkat. Untuk informasi selengkapnya, lihat [Pemantauan AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) di *Panduan AWS IoT Core Pengembang*.  
Untuk membantu mengelola jumlah perangkat dengan lebih baik, dan perangkat mana, yang mendaftarkan diri di perangkat Anda Akun AWS, Anda dapat menentukan hook pra-penyediaan saat membuat templat penyediaan armada. Hook pra-penyediaan adalah AWS Lambda fungsi yang memvalidasi parameter template yang disediakan perangkat selama pendaftaran. Misalnya, Anda dapat membuat hook pra-penyediaan yang memeriksa ID perangkat terhadap database untuk memverifikasi bahwa perangkat memiliki izin untuk menyediakan. *Untuk informasi selengkapnya, lihat [Pra-penyediaan kait](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) di Panduan Pengembang.AWS IoT Core *

**Untuk mengunduh sertifikat klaim ke perangkat**

1. Salin sertifikat klaim dan kunci pribadi ke perangkat. Jika SSH dan SCP diaktifkan pada komputer pengembangan dan perangkat, Anda dapat menggunakan `scp` perintah di komputer pengembangan Anda untuk mentransfer sertifikat klaim dan kunci pribadi. Contoh perintah berikut mentransfer file-file ini folder bernama `claim-certs` pada komputer pengembangan Anda ke perangkat. Ganti *device-ip-address* dengan alamat IP perangkat Anda.

   ```
   scp -r claim-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Buat folder akar Greengrass pada perangkat tersebut. Anda nantinya akan menginstal perangkat lunak AWS IoT Greengrass Core ke folder ini.
**catatan**  
Windows memiliki batasan panjang jalur 260 karakter. Jika Anda menggunakan Windows, gunakan folder root seperti `C:\greengrass\v2` atau `D:\greengrass\v2` untuk menjaga jalur komponen Greengrass di bawah batas 260 karakter.

------
#### [ Linux or Unix ]
   + Ganti `/greengrass/v2` dengan folder yang akan digunakan.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Hanya Linux) Atur izin induk folder root Greengrass.
   + Ganti */greengrass* dengan induk folder root.

   ```
   sudo chmod 755 /greengrass
   ```

1. Pindahkan sertifikat klaim ke folder root Greengrass.
   + Ganti `/greengrass/v2` atau *C:\$1greengrass\$1v2* dengan folder root Greengrass.

------
#### [ Linux or Unix ]

   ```
   sudo mv ~/claim-certs /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   move %USERPROFILE%\claim-certs C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   mv -Path ~\claim-certs -Destination C:\greengrass\v2
   ```

------

1. Unduh CA1 sertifikat dan [CA3sertifikat](https://www.amazontrust.com/repository/).

------
#### [ Linux or Unix ]

   ```
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

### Mengatur lingkungan perangkat
<a name="set-up-device-environment-fleet-provisioning"></a>

Ikuti langkah-langkah di bagian ini untuk menyiapkan perangkat Linux atau Windows untuk digunakan sebagai perangkat AWS IoT Greengrass inti Anda.

#### Siapkan perangkat Linux
<a name="set-up-linux-device-environment-fleet-provisioning"></a><a name="set-up-linux-device-environment-procedure"></a>

**Untuk mengatur perangkat Linux untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan. Perintah berikut menunjukkan cara menginstal OpenJDK di perangkat Anda.
   + Untuk distribusi berbasis Debian atau berbasis Ubuntu:

     ```
     sudo apt install default-jdk
     ```
   + Untuk distribusi berbasis Red Hat:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Untuk Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Untuk Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Ketika instalasi selesai, jalankan perintah berikut untuk memverifikasi bahwa Java berjalan pada perangkat Linux Anda.

   ```
   java -version
   ```

   Perintah mencetak versi Java yang berjalan pada perangkat. Misalnya, pada distribusi berbasis Debian, output mungkin terlihat mirip dengan sampel berikut.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Opsional) Buat pengguna dan grup sistem default yang menjalankan komponen pada perangkat. Anda juga dapat memilih untuk membiarkan penginstal perangkat lunak AWS IoT Greengrass Core membuat pengguna dan grup ini selama instalasi dengan argumen `--component-default-user` installer. Untuk informasi selengkapnya, lihat [Argumen penginstal](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Verifikasi bahwa pengguna yang menjalankan perangkat lunak AWS IoT Greengrass Core (biasanya`root`), memiliki izin untuk menjalankan `sudo` dengan pengguna dan grup apa pun.

   1. Jalankan perintah berikut untuk membuka `/etc/sudoers` file.

      ```
      sudo visudo
      ```

   1. Verifikasi bahwa izin untuk pengguna terlihat seperti contoh berikut.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. **(Opsional) Untuk [menjalankan fungsi Lambda kontainer](run-lambda-functions.md), Anda harus mengaktifkan [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1, dan Anda harus mengaktifkan dan memasang memori dan perangkat cgroups.** Jika Anda tidak berencana untuk menjalankan fungsi Lambda kontainer, Anda dapat melewati langkah ini.

   Untuk mengaktifkan opsi cgroups ini, boot perangkat dengan parameter kernel Linux berikut.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Untuk informasi tentang melihat dan menyetel parameter kernel untuk perangkat Anda, lihat dokumentasi untuk sistem operasi dan boot loader Anda. Ikuti instruksi untuk mengatur parameter kernel secara permanen.

1. Instal semua dependensi lain yang diperlukan pada perangkat Anda seperti yang ditunjukkan oleh daftar persyaratan di. [Persyaratan perangkat](greengrass-nucleus-component.md#greengrass-v2-requirements)

#### Mengatur perangkat Windows
<a name="set-up-windows-device-environment-fleet-provisioning"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)<a name="set-up-windows-device-environment-procedure"></a>

**Untuk mengatur perangkat Windows untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan.

1. Periksa apakah Java tersedia pada variabel sistem [PATH](https://en.wikipedia.org/wiki/PATH_(variable)), dan tambahkan jika tidak. LocalSystem Akun menjalankan perangkat lunak AWS IoT Greengrass Core, jadi Anda harus menambahkan Java ke variabel sistem PATH alih-alih variabel pengguna PATH untuk pengguna Anda. Lakukan hal-hal berikut:

   1. Tekan tombol Windows untuk membuka menu mulai.

   1. Ketik **environment variables** untuk mencari opsi sistem dari menu mulai.

   1. Di hasil pencarian menu mulai, pilih **Edit variabel lingkungan sistem** untuk membuka jendela **Properti sistem**.

   1. Pilih **variabel Lingkungan...** untuk membuka jendela **Variabel Lingkungan**.

   1. Di bawah **Variabel sistem**, pilih **Path**, lalu pilih **Edit**. Di jendela **variabel Edit lingkungan**, Anda dapat melihat setiap jalur pada baris terpisah.

   1. Periksa apakah jalur ke `bin` folder instalasi Java ada. Jalannya mungkin terlihat mirip dengan contoh berikut.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Jika `bin` folder instalasi Java hilang dari **Path**, pilih **Baru** untuk menambahkannya, lalu pilih **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Buka Windows Command Prompt (`cmd.exe`) sebagai administrator.

1. <a name="set-up-windows-device-environment-create"></a>Buat pengguna default di LocalSystem akun di perangkat Windows. Ganti *password* dengan kata sandi yang aman.

   ```
   net user /add ggc_user password
   ```
**Tip**  <a name="windows-password-expiration-tip"></a>
Bergantung pada konfigurasi Windows Anda, kata sandi pengguna mungkin diatur untuk kedaluwarsa pada tanggal di masa mendatang. Untuk memastikan aplikasi Greengrass Anda terus beroperasi, lacak kapan kata sandi kedaluwarsa, dan perbarui sebelum kedaluwarsa. Anda juga dapat mengatur kata sandi pengguna agar tidak pernah kedaluwarsa.  
Untuk memeriksa kapan pengguna dan kata sandinya kedaluwarsa, jalankan perintah berikut.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Untuk mengatur kata sandi pengguna agar tidak pernah kedaluwarsa, jalankan perintah berikut.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Jika Anda menggunakan Windows 10 atau yang lebih baru di mana [`wmic`perintah tidak digunakan lagi](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), jalankan perintah berikut. PowerShell   

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Unduh dan instal [PsExecutilitas](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) dari Microsoft pada perangkat. 

1. <a name="set-up-windows-device-credentials"></a>Gunakan PsExec utilitas untuk menyimpan nama pengguna dan kata sandi untuk pengguna default dalam contoh Credential Manager untuk LocalSystem akun tersebut. Ganti *password* dengan kata sandi pengguna yang Anda tetapkan sebelumnya.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Jika **PsExec License Agreement**terbuka, pilih **Accept**untuk menyetujui lisensi dan jalankan perintah.
**catatan**  
Pada perangkat Windows, LocalSystem akun menjalankan inti Greengrass, dan Anda harus menggunakan utilitas untuk menyimpan PsExec informasi pengguna default di akun. LocalSystem Menggunakan aplikasi Credential Manager menyimpan informasi ini di akun Windows dari pengguna yang saat ini masuk, bukan LocalSystem akun.

### Unduh perangkat lunak AWS IoT Greengrass Inti
<a name="download-greengrass-core-v2-fleet"></a>

Anda dapat mengunduh versi terbaru perangkat lunak AWS IoT Greengrass Core dari lokasi berikut:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**catatan**  
Anda dapat mengunduh versi tertentu dari perangkat lunak AWS IoT Greengrass Core dari lokasi berikut. Ganti *version* dengan versi yang akan diunduh.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Untuk mengunduh perangkat lunak AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Di perangkat inti Anda, unduh perangkat lunak AWS IoT Greengrass Core ke file bernama`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Dengan mengunduh perangkat lunak ini, Anda menyetujui [Perjanjian Lisensi Perangkat Lunak Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Opsional) Untuk memverifikasi tanda tangan perangkat lunak inti Greengrass
**catatan**  
Fitur ini tersedia dengan Greengrass nucleus versi 2.9.5 dan yang lebih baru.

   1. Gunakan perintah berikut untuk memverifikasi tanda tangan artefak inti Greengrass Anda:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. `jarsigner`Pemanggilan menghasilkan output yang menunjukkan hasil verifikasi.

      1. Jika file zip inti Greengrass ditandatangani, output berisi pernyataan berikut:

         ```
         jar verified.
         ```

      1. Jika file zip inti Greengrass tidak ditandatangani, output berisi pernyataan berikut:

         ```
         jar is unsigned.
         ```

   1. Jika Anda memberikan `-certs` opsi Jarsigner bersama dengan `-verify` dan `-verbose` opsi, output juga menyertakan informasi sertifikat penandatangan terperinci.

1. <a name="installation-unzip-ggc-software-step"></a>Buka zip perangkat lunak AWS IoT Greengrass Core ke folder di perangkat Anda. Ganti *GreengrassInstaller* dengan folder yang ingin Anda gunakan.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Opsional) Jalankan perintah berikut untuk melihat versi perangkat lunak AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**penting**  <a name="installer-folder-2.4.0-warning"></a>
Jika Anda menginstal versi inti Greengrass lebih awal dari v2.4.0, jangan hapus folder ini setelah Anda menginstal perangkat lunak Core. AWS IoT Greengrass Perangkat lunak AWS IoT Greengrass Core menggunakan file dalam folder ini untuk dijalankan.  
Jika Anda mengunduh versi terbaru perangkat lunak, Anda menginstal v2.4.0 atau yang lebih baru, dan Anda dapat menghapus folder ini setelah Anda menginstal perangkat lunak AWS IoT Greengrass Core.

### Unduh plugin penyediaan AWS IoT armada
<a name="download-fleet-provisioning-plugin"></a>

Anda dapat mengunduh versi terbaru plugin penyediaan AWS IoT armada dari lokasi berikut:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim](https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar)-latest.jar

**catatan**  
Anda dapat mengunduh versi tertentu dari plugin penyediaan AWS IoT armada dari lokasi berikut. Ganti *version* dengan versi yang akan diunduh. Untuk informasi selengkapnya tentang setiap versi plugin penyediaan armada, lihat. [AWS IoT changelog plugin penyediaan armada](fleet-provisioning-changelog.md)  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-version.jar
```

Plugin penyediaan armada adalah open source. Untuk melihat kode sumbernya, lihat [plugin penyediaan AWS IoT armada](https://github.com/aws-greengrass/aws-greengrass-fleet-provisioning-by-claim) di. GitHub

**Untuk mengunduh plugin penyediaan AWS IoT armada**
+ Di perangkat Anda, unduh plugin penyediaan AWS IoT armada ke file bernama. `aws.greengrass.FleetProvisioningByClaim.jar` Ganti *GreengrassInstaller* dengan folder yang ingin Anda gunakan.

------
#### [ Linux or Unix ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ Windows Command Prompt (CMD) ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ PowerShell ]

  ```
  iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar -OutFile GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------

  <a name="core-software-license"></a>Dengan mengunduh perangkat lunak ini, Anda menyetujui [Perjanjian Lisensi Perangkat Lunak Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

### Instal perangkat lunak AWS IoT Greengrass Inti
<a name="run-greengrass-core-v2-installer-fleet-provisioning"></a>

Jalankan penginstal dengan argumen yang menentukan tindakan berikut:
+ Instal dari file konfigurasi sebagian yang menetapkan untuk menggunakan plugin penyediaan armada untuk menyediakan sumber daya. AWS Perangkat lunak AWS IoT Greengrass Core menggunakan file konfigurasi yang menentukan konfigurasi setiap komponen Greengrass pada perangkat. Penginstal membuat file konfigurasi lengkap dari file konfigurasi paral yang Anda sediakan dan AWS sumber daya yang dibuat oleh plugin penyediaan armada.
+ <a name="install-argument-component-default-user"></a>Tentukan untuk menggunakan pengguna `ggc_user` sistem untuk menjalankan komponen perangkat lunak pada perangkat inti. Pada perangkat Linux, perintah ini juga menentukan untuk menggunakan grup `ggc_group` sistem, dan penginstal membuat pengguna dan grup sistem untuk Anda.
+ <a name="install-argument-system-service"></a>Siapkan perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem yang berjalan saat boot. Pada perangkat Linux, ini membutuhkan sistem init [Systemd](https://en.wikipedia.org/wiki/Systemd).
**penting**  <a name="windows-system-service-requirement-important-note"></a>
Pada perangkat inti Windows, Anda harus mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

Untuk informasi lebih lanjut tentang argumen yang dapat Anda tentukan, lihat [Argumen penginstal](configure-installer.md).

**catatan**  
<a name="jvm-tuning-note"></a>Jika Anda menjalankan AWS IoT Greengrass perangkat dengan memori terbatas, Anda dapat mengontrol jumlah memori yang digunakan perangkat lunak AWS IoT Greengrass Core. Untuk mengontrol alokasi memori, Anda dapat mengatur pilihan ukuran tumpukan JVM di konfigurasi parameter `jvmOptions` dalam komponen nukleus anda. Untuk informasi selengkapnya, lihat [Kontrol alokasi memori dengan opsi JVM](configure-greengrass-core-v2.md#jvm-tuning).

**Untuk menginstal perangkat lunak AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Periksa versi perangkat lunak AWS IoT Greengrass inti.
   + Ganti *GreengrassInstaller* dengan path ke folder yang berisi perangkat lunak.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Gunakan editor teks untuk membuat file konfigurasi bernama `config.yaml` yang akan disediakan ke penginstal.

   <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Salin konten YAML berikut ke dalam file. File konfigurasi sebagian ini menentukan parameter untuk plugin penyediaan armada. Untuk informasi selengkapnya tentang opsi yang dapat Anda tentukan, lihat[Konfigurasikan AWS IoT plugin penyediaan armada](fleet-provisioning-configuration.md).

------
#### [ Linux or Unix ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
       configuration:
         fipsMode: "true"
         greengrassDataPlaneEndpoint: "iotData"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "/greengrass/v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "/greengrass/v2/claim-certs/claim.pem.crt"
         claimCertificatePrivateKeyPath: "/greengrass/v2/claim-certs/claim.private.pem.key"
         rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------
#### [ Windows ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "C:\\greengrass\\v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "C:\\greengrass\\v2\\claim-certs\\claim.pem.crt"
         claimCertificatePrivateKeyPath: "C:\\greengrass\\v2\\claim-certs\\claim.private.pem.key"
         rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------

   Kemudian, lakukan hal berikut:
   + Ganti *2.16.1* dengan versi perangkat lunak AWS IoT Greengrass Core.
   + Ganti setiap instance dari `/greengrass/v2` atau *C:\$1greengrass\$1v2* dengan folder root Greengrass.
**catatan**  
Pada perangkat Windows, Anda harus menentukan pemisah jalur sebagai garis miring terbalik ganda (`\\`), seperti. `C:\\greengrass\\v2`
   + Ganti *us-west-2* dengan AWS Wilayah tempat Anda membuat templat penyediaan dan sumber daya lainnya.
   + Ganti `iotDataEndpoint` dengan titik akhir AWS IoT data Anda.
   + Ganti `iotCredentialEndpoint` dengan titik akhir kredensial AWS IoT Anda.
   + Ganti *GreengrassCoreTokenExchangeRoleAlias* dengan nama alias peran pertukaran token.
   + Ganti *GreengrassFleetProvisioningTemplate* dengan nama template penyediaan armada.
   + Ganti `claimCertificatePath` dengan jalur ke sertifikat klaim pada perangkat.
   + Ganti `claimCertificatePrivateKeyPath` dengan jalur ke kunci pribadi sertifikat klaim pada perangkat.
   + Ganti parameter template (`templateParameters`) dengan nilai yang akan digunakan untuk menyediakan perangkat. Contoh ini mengacu pada [contoh template](fleet-provisioning-setup.md#example-fleet-provisioning-template) yang mendefinisikan `ThingName` dan `ThingGroupName` parameter.

1. Jalankan pemasang. Tentukan `--trusted-plugin` untuk menyediakan plugin penyediaan armada, dan tentukan `--init-config` untuk menyediakan file konfigurasi.
   + Ganti `/greengrass/v2` dengan folder root Greengrass.
   + Ganti setiap instance *GreengrassInstaller* dengan folder tempat Anda membongkar penginstal.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**penting**  <a name="windows-system-service-installer-argument-important-note"></a>
Pada perangkat inti Windows, Anda harus menentukan `--setup-system-service true` untuk mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

   <a name="installer-setup-system-service-output-message"></a>Jika Anda menentukan `--setup-system-service true`, penginstal akan mencetak `Successfully set up Nucleus as a system service` jika ia mengatur dan menjalankan perangkat lunak sebagai layanan. Jika tidak, installer tersebut tidak akan menghasilkan pesan apa pun jika ia berhasil menginstal perangkat lunak tersebut.
**catatan**  <a name="installer-deploy-dev-tools-without-provision"></a>
Anda tidak dapat menggunakan argumen `deploy-dev-tools` untuk men-deploy alat pengembangan lokal ketika Anda menjalankan penginstal tersebut tanpa argumen `--provision true`. Untuk informasi tentang cara men-deploy Greengrass CLI secara langsung pada perangkat Anda, lihat [Antarmuka Baris Perintah Greengrass](gg-cli.md).

1. <a name="installer-verify-installation"></a>Verifikasi instalasi dengan melihat file di folder root.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Jika penginstalan berhasil, folder akar berisi beberapa folder, seperti `config`, `packages`, dan `logs`.

<a name="install-greengrass-core-run-software"></a>Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem, penginstal menjalankan perangkat lunak untuk Anda. Jika tidak, Anda harus menjalankan perangkat lunak itu secara manual. Untuk informasi selengkapnya, lihat [Jalankan perangkat lunak AWS IoT Greengrass Core](run-greengrass-core-v2.md).

<a name="install-greengrass-core-next-steps-intro"></a>Untuk informasi selengkapnya tentang cara mengkonfigurasi dan menggunakan perangkat lunak dan AWS IoT Greengrass, lihat berikut ini:<a name="install-greengrass-core-next-steps-links"></a>
+ [Konfigurasikan perangkat lunak AWS IoT Greengrass Inti](configure-greengrass-core-v2.md)
+ [Kembangkan AWS IoT Greengrass komponen](develop-greengrass-components.md)
+ [Menyebarkan AWS IoT Greengrass komponen ke perangkat](manage-deployments.md)
+ [Antarmuka Baris Perintah Greengrass](gg-cli.md)

## Instal titik akhir FIPS dengan penyediaan sumber daya otomatis
<a name="FIPS-auto-installation"></a>

Perangkat lunak AWS IoT Greengrass Core mencakup penginstal yang mengatur perangkat Anda sebagai perangkat inti Greengrass. Untuk menyiapkan perangkat dengan cepat, penginstal dapat menyediakan hal, grup AWS IoT AWS IoT benda, peran IAM, dan alias AWS IoT peran yang dibutuhkan perangkat inti untuk beroperasi. Installer juga dapat men-deploy alat pengembangan lokal ke perangkat inti, sehingga Anda dapat menggunakan perangkat tersebut untuk mengembangkan dan menguji komponen perangkat lunak kustom. Installer membutuhkan kredensial AWS untuk menyediakan sumber daya ini dan membuat deployment.

Jika Anda tidak dapat memberikan AWS kredensi ke perangkat, Anda dapat menyediakan AWS sumber daya yang diperlukan perangkat inti untuk beroperasi. Anda juga dapat men-deploy alat pengembangan ke perangkat inti untuk digunakan sebagai perangkat pengembangan. Hal ini memungkinkan Anda untuk memberikan lebih sedikit izin untuk perangkat ketika Anda menjalankan installer. Untuk informasi selengkapnya, lihat [Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya manual](manual-installation.md).

**penting**  <a name="install-greengrass-core-requirements-note"></a>
Sebelum Anda mengunduh perangkat lunak AWS IoT Greengrass Core, periksa apakah perangkat inti Anda memenuhi [persyaratan](greengrass-nucleus-component.md#greengrass-v2-requirements) untuk menginstal dan menjalankan perangkat lunak AWS IoT Greengrass Core v2.0.

**Topics**
+ [Mengatur lingkungan perangkat](#set-up-device-environment)
+ [Memberikan AWS kredensi ke perangkat](#provide-installer-aws-credentials-auto)
+ [Unduh perangkat lunak AWS IoT Greengrass Inti](#download-greengrass-core-v2-auto)
+ [Instal perangkat lunak AWS IoT Greengrass Inti](#run-greengrass-core-v2-installer-auto)

### Mengatur lingkungan perangkat
<a name="set-up-device-environment"></a>

Ikuti langkah-langkah di bagian ini untuk menyiapkan perangkat Linux atau Windows untuk digunakan sebagai perangkat AWS IoT Greengrass inti Anda.

#### Siapkan perangkat Linux
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Untuk mengatur perangkat Linux untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan. Perintah berikut menunjukkan cara menginstal OpenJDK di perangkat Anda.
   + Untuk distribusi berbasis Debian atau berbasis Ubuntu:

     ```
     sudo apt install default-jdk
     ```
   + Untuk distribusi berbasis Red Hat:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Untuk Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Untuk Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Ketika instalasi selesai, jalankan perintah berikut untuk memverifikasi bahwa Java berjalan pada perangkat Linux Anda.

   ```
   java -version
   ```

   Perintah mencetak versi Java yang berjalan pada perangkat. Misalnya, pada distribusi berbasis Debian, output mungkin terlihat mirip dengan sampel berikut.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Opsional) Buat pengguna dan grup sistem default yang menjalankan komponen pada perangkat. Anda juga dapat memilih untuk membiarkan penginstal perangkat lunak AWS IoT Greengrass Core membuat pengguna dan grup ini selama instalasi dengan argumen `--component-default-user` installer. Untuk informasi selengkapnya, lihat [Argumen penginstal](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Verifikasi bahwa pengguna yang menjalankan perangkat lunak AWS IoT Greengrass Core (biasanya`root`), memiliki izin untuk menjalankan `sudo` dengan pengguna dan grup apa pun.

   1. Jalankan perintah berikut untuk membuka `/etc/sudoers` file.

      ```
      sudo visudo
      ```

   1. Verifikasi bahwa izin untuk pengguna terlihat seperti contoh berikut.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. **(Opsional) Untuk [menjalankan fungsi Lambda kontainer](run-lambda-functions.md), Anda harus mengaktifkan [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1, dan Anda harus mengaktifkan dan memasang memori dan perangkat cgroups.** Jika Anda tidak berencana untuk menjalankan fungsi Lambda kontainer, Anda dapat melewati langkah ini.

   Untuk mengaktifkan opsi cgroups ini, boot perangkat dengan parameter kernel Linux berikut.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Untuk informasi tentang melihat dan menyetel parameter kernel untuk perangkat Anda, lihat dokumentasi untuk sistem operasi dan boot loader Anda. Ikuti instruksi untuk mengatur parameter kernel secara permanen.

1. Instal semua dependensi lain yang diperlukan pada perangkat Anda seperti yang ditunjukkan oleh daftar persyaratan di. [Persyaratan perangkat](greengrass-nucleus-component.md#greengrass-v2-requirements)

#### Mengatur perangkat Windows
<a name="set-up-windows-device-environment"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)<a name="set-up-windows-device-environment-procedure"></a>

**Untuk mengatur perangkat Windows untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan.

1. Periksa apakah Java tersedia pada variabel sistem [PATH](https://en.wikipedia.org/wiki/PATH_(variable)), dan tambahkan jika tidak. LocalSystem Akun menjalankan perangkat lunak AWS IoT Greengrass Core, jadi Anda harus menambahkan Java ke variabel sistem PATH alih-alih variabel pengguna PATH untuk pengguna Anda. Lakukan hal-hal berikut:

   1. Tekan tombol Windows untuk membuka menu mulai.

   1. Ketik **environment variables** untuk mencari opsi sistem dari menu mulai.

   1. Di hasil pencarian menu mulai, pilih **Edit variabel lingkungan sistem** untuk membuka jendela **Properti sistem**.

   1. Pilih **variabel Lingkungan...** untuk membuka jendela **Variabel Lingkungan**.

   1. Di bawah **Variabel sistem**, pilih **Path**, lalu pilih **Edit**. Di jendela **variabel Edit lingkungan**, Anda dapat melihat setiap jalur pada baris terpisah.

   1. Periksa apakah jalur ke `bin` folder instalasi Java ada. Jalannya mungkin terlihat mirip dengan contoh berikut.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Jika `bin` folder instalasi Java hilang dari **Path**, pilih **Baru** untuk menambahkannya, lalu pilih **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Buka Windows Command Prompt (`cmd.exe`) sebagai administrator.

1. <a name="set-up-windows-device-environment-create"></a>Buat pengguna default di LocalSystem akun di perangkat Windows. Ganti *password* dengan kata sandi yang aman.

   ```
   net user /add ggc_user password
   ```
**Tip**  <a name="windows-password-expiration-tip"></a>
Bergantung pada konfigurasi Windows Anda, kata sandi pengguna mungkin diatur untuk kedaluwarsa pada tanggal di masa mendatang. Untuk memastikan aplikasi Greengrass Anda terus beroperasi, lacak kapan kata sandi kedaluwarsa, dan perbarui sebelum kedaluwarsa. Anda juga dapat mengatur kata sandi pengguna agar tidak pernah kedaluwarsa.  
Untuk memeriksa kapan pengguna dan kata sandinya kedaluwarsa, jalankan perintah berikut.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Untuk mengatur kata sandi pengguna agar tidak pernah kedaluwarsa, jalankan perintah berikut.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Jika Anda menggunakan Windows 10 atau yang lebih baru di mana [`wmic`perintah tidak digunakan lagi](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), jalankan perintah berikut. PowerShell   

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Unduh dan instal [PsExecutilitas](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) dari Microsoft pada perangkat. 

1. <a name="set-up-windows-device-credentials"></a>Gunakan PsExec utilitas untuk menyimpan nama pengguna dan kata sandi untuk pengguna default dalam contoh Credential Manager untuk LocalSystem akun tersebut. Ganti *password* dengan kata sandi pengguna yang Anda tetapkan sebelumnya.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Jika **PsExec License Agreement**terbuka, pilih **Accept**untuk menyetujui lisensi dan jalankan perintah.
**catatan**  
Pada perangkat Windows, LocalSystem akun menjalankan inti Greengrass, dan Anda harus menggunakan utilitas untuk menyimpan PsExec informasi pengguna default di akun. LocalSystem Menggunakan aplikasi Credential Manager menyimpan informasi ini di akun Windows dari pengguna yang saat ini masuk, bukan LocalSystem akun.

### Memberikan AWS kredensi ke perangkat
<a name="provide-installer-aws-credentials-auto"></a>

Berikan AWS kredensi Anda ke perangkat Anda sehingga penginstal dapat menyediakan sumber daya yang diperlukan. AWS Untuk informasi lebih lanjut tentang izin yang diperlukan, lihat [Kebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya](provision-minimal-iam-policy.md).

**Untuk memberikan AWS kredensi ke perangkat**
+ <a name="installer-export-aws-credentials"></a>Berikan AWS kredensi Anda ke perangkat sehingga penginstal dapat menyediakan sumber daya AWS IoT dan IAM untuk perangkat inti Anda. Untuk meningkatkan keamanan, sebaiknya Anda mendapatkan kredensi sementara untuk peran IAM yang hanya mengizinkan izin minimum yang diperlukan untuk penyediaan. Untuk informasi selengkapnya, lihat [Kebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya](provision-minimal-iam-policy.md).
**catatan**  
Penginstal tidak menyimpan atau menyimpan kredensial Anda.

  Di perangkat Anda, lakukan salah satu hal berikut untuk mengambil kredensi dan membuatnya tersedia untuk penginstal perangkat lunak AWS IoT Greengrass Core:
  + (Disarankan) Gunakan kredensi sementara dari AWS IAM Identity Center

    1. Berikan ID kunci akses, kunci akses rahasia, dan token sesi dari Pusat Identitas IAM. Untuk informasi selengkapnya, lihat **Penyegaran kredenal manual** di [Mendapatkan dan menyegarkan kredensyal sementara](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials) di panduan pengguna Pusat Identitas *IAM*.

    1. Jalankan perintah berikut untuk memberikan kredensi ke perangkat lunak AWS IoT Greengrass Core.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="
       ```

------
  + Gunakan kredenal keamanan sementara dari peran IAM:

    1. Berikan access key ID, secret access key, dan token sesi dari IAM role yang Anda teruskan. *Untuk informasi selengkapnya tentang cara mengambil kredensyal ini, lihat [Meminta kredensyal keamanan sementara di Panduan Pengguna IAM.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)*

    1. Jalankan perintah berikut untuk memberikan kredensi ke perangkat lunak AWS IoT Greengrass Core.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="
       ```

------
  + Gunakan kredensial jangka panjang dari pengguna IAM:

    1. Berikan access key ID dan secret access key untuk pengguna IAM Anda. Anda dapat membuat pengguna IAM untuk penyediaan yang kemudian Anda hapus. Untuk kebijakan IAM untuk memberikan pengguna, lihat[Kebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya](provision-minimal-iam-policy.md). Untuk informasi selengkapnya tentang cara mengambil kredensial jangka panjang, lihat [Mengelola access key untuk pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) di *Panduan Pengguna IAM*.

    1. Jalankan perintah berikut untuk memberikan kredensi ke perangkat lunak AWS IoT Greengrass Core.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       ```

------

    1. (Opsional) Jika Anda membuat pengguna IAM untuk menyediakan perangkat Greengrass Anda, hapus pengguna tersebut.

    1. (Opsional) Jika Anda menggunakan ID kunci akses dan kunci akses rahasia dari pengguna IAM yang ada, perbarui kunci untuk pengguna sehingga tidak lagi valid. Untuk informasi selengkapnya, lihat [Memperbarui kunci akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) di *panduan AWS Identity and Access Management pengguna*.

### Unduh perangkat lunak AWS IoT Greengrass Inti
<a name="download-greengrass-core-v2-auto"></a>

Anda dapat mengunduh versi terbaru perangkat lunak AWS IoT Greengrass Core dari lokasi berikut:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**catatan**  
Anda dapat mengunduh versi tertentu dari perangkat lunak AWS IoT Greengrass Core dari lokasi berikut. Ganti *version* dengan versi yang akan diunduh.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Untuk mengunduh perangkat lunak AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Di perangkat inti Anda, unduh perangkat lunak AWS IoT Greengrass Core ke file bernama`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Dengan mengunduh perangkat lunak ini, Anda menyetujui [Perjanjian Lisensi Perangkat Lunak Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Opsional) Untuk memverifikasi tanda tangan perangkat lunak inti Greengrass
**catatan**  
Fitur ini tersedia dengan Greengrass nucleus versi 2.9.5 dan yang lebih baru.

   1. Gunakan perintah berikut untuk memverifikasi tanda tangan artefak inti Greengrass Anda:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. `jarsigner`Pemanggilan menghasilkan output yang menunjukkan hasil verifikasi.

      1. Jika file zip inti Greengrass ditandatangani, output berisi pernyataan berikut:

         ```
         jar verified.
         ```

      1. Jika file zip inti Greengrass tidak ditandatangani, output berisi pernyataan berikut:

         ```
         jar is unsigned.
         ```

   1. Jika Anda memberikan `-certs` opsi Jarsigner bersama dengan `-verify` dan `-verbose` opsi, output juga menyertakan informasi sertifikat penandatangan terperinci.

1. <a name="installation-unzip-ggc-software-step"></a>Buka zip perangkat lunak AWS IoT Greengrass Core ke folder di perangkat Anda. Ganti *GreengrassInstaller* dengan folder yang ingin Anda gunakan.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Opsional) Jalankan perintah berikut untuk melihat versi perangkat lunak AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**penting**  <a name="installer-folder-2.4.0-warning"></a>
Jika Anda menginstal versi inti Greengrass lebih awal dari v2.4.0, jangan hapus folder ini setelah Anda menginstal perangkat lunak Core. AWS IoT Greengrass Perangkat lunak AWS IoT Greengrass Core menggunakan file dalam folder ini untuk dijalankan.  
Jika Anda mengunduh versi terbaru perangkat lunak, Anda menginstal v2.4.0 atau yang lebih baru, dan Anda dapat menghapus folder ini setelah Anda menginstal perangkat lunak AWS IoT Greengrass Core.

### Instal perangkat lunak AWS IoT Greengrass Inti
<a name="run-greengrass-core-v2-installer-auto"></a>

Jalankan installer dengan argumen yang menentukan untuk melakukan hal berikut:
+ <a name="install-argument-aws-resources"></a>Buat AWS sumber daya yang dibutuhkan perangkat inti untuk beroperasi.
+ <a name="install-argument-component-default-user"></a>Tentukan untuk menggunakan pengguna `ggc_user` sistem untuk menjalankan komponen perangkat lunak pada perangkat inti. Pada perangkat Linux, perintah ini juga menentukan untuk menggunakan grup `ggc_group` sistem, dan penginstal membuat pengguna dan grup sistem untuk Anda.
+ <a name="install-argument-system-service"></a>Siapkan perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem yang berjalan saat boot. Pada perangkat Linux, ini membutuhkan sistem init [Systemd](https://en.wikipedia.org/wiki/Systemd).
**penting**  <a name="windows-system-service-requirement-important-note"></a>
Pada perangkat inti Windows, Anda harus mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

Untuk menyiapkan perangkat pengembangan dengan alat pengembangan lokal, tentukan argumen `--deploy-dev-tools true`. Alat pengembangan lokal dapat memakan waktu hingga satu menit untuk ter-deploy setelah instalasi tersebut selesai. 

Untuk informasi lebih lanjut tentang argumen yang dapat Anda tentukan, lihat [Argumen penginstal](configure-installer.md).

**catatan**  
<a name="jvm-tuning-note"></a>Jika Anda menjalankan AWS IoT Greengrass perangkat dengan memori terbatas, Anda dapat mengontrol jumlah memori yang digunakan perangkat lunak AWS IoT Greengrass Core. Untuk mengontrol alokasi memori, Anda dapat mengatur pilihan ukuran tumpukan JVM di konfigurasi parameter `jvmOptions` dalam komponen nukleus anda. Untuk informasi selengkapnya, lihat [Kontrol alokasi memori dengan opsi JVM](configure-greengrass-core-v2.md#jvm-tuning).

**Untuk menginstal perangkat lunak AWS IoT Greengrass Core**

1. Gunakan editor teks untuk membuat file konfigurasi bernama `config.yaml` yang akan disediakan ke penginstal.

   <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Salin konten YAML berikut ke dalam file. File konfigurasi parsial ini menentukan parameter sistem dan parameter inti Greengrass.

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       configuration:
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
   ```
   + Ganti *us-west-2* dengan Wilayah AWS tempat Anda membuat sumber daya.
   + Ganti *iotDataEndpoint* dengan titik akhir data AWS IoT Anda.
   + Ganti *iotCredEndpoint* dengan titik akhir kredensial AWS IoT Anda.

1. Jalankan penginstal AWS IoT Greengrass Core. Ganti nilai argumen dalam perintah Anda sebagai berikut.
**catatan**  
Windows memiliki batasan panjang jalur 260 karakter. Jika Anda menggunakan Windows, gunakan folder root seperti `C:\greengrass\v2` atau `D:\greengrass\v2` untuk menjaga jalur komponen Greengrass di bawah batas 260 karakter.<a name="installer-replace-arguments"></a>

   1. `/greengrass/v2`atau*C:\$1greengrass\$1v2*: Jalur ke folder root yang akan digunakan untuk menginstal perangkat lunak AWS IoT Greengrass Core.

   1. *GreengrassInstaller*. Jalur ke folder tempat Anda membongkar penginstal perangkat lunak AWS IoT Greengrass Core.

   1. *region*. Wilayah AWS Di mana untuk menemukan atau membuat sumber daya.

   1. *MyGreengrassCore*. Nama AWS IoT benda untuk perangkat inti Greengrass Anda. Jika objek tidak ada, installer akan membuatnya. Pemasang mengunduh sertifikat untuk diautentikasi sebagai masalahnya. AWS IoT Untuk informasi selengkapnya, lihat [Otentikasi dan otorisasi perangkat untuk AWS IoT Greengrass](device-auth.md).
**catatan**  <a name="install-argument-thing-name-constraint"></a>
Nama objek tidak dapat berisi karakter titik dua (`:`).

   1. *MyGreengrassCoreGroup*. Nama grup AWS IoT benda untuk perangkat inti Greengrass Anda. Jika grup objek tidak ada, installer akan membuatnya dan menambahkan objek padanya. Jika grup objek ada dan memiliki deployment yang aktif, perangkat inti akan men-download dan menjalankan perangkat lunak yang ditetapkan oleh deployment.
**catatan**  <a name="install-argument-thing-group-name-constraint"></a>
Nama grup objek tidak dapat berisi karakter titik dua (`:`).

   1. *GreengrassV2IoTThingPolicy*. Nama AWS IoT kebijakan yang memungkinkan perangkat inti Greengrass untuk berkomunikasi dengan dan. AWS IoT AWS IoT Greengrass Jika AWS IoT kebijakan tidak ada, penginstal akan membuat AWS IoT kebijakan permisif dengan nama ini. Anda dapat membatasi izin kebijakan ini untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [AWS IoT Kebijakan minimal untuk perangkat AWS IoT Greengrass V2 inti](device-auth.md#greengrass-core-minimal-iot-policy).

   1. *GreengrassV2TokenExchangeRole*. Nama peran IAM yang memungkinkan perangkat inti Greengrass mendapatkan kredensi sementara. AWS Jika peran itu tidak ada, penginstal akan membuatnya dan membuat serta melampirkan kebijakan bernama `GreengrassV2TokenExchangeRoleAccess`. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

   1. *GreengrassCoreTokenExchangeRoleAlias*. Alias untuk peran IAM yang memungkinkan perangkat inti Greengrass untuk mendapatkan kredensi sementara nanti. Jika alias peran tidak ada, penginstal akan membuatnya dan mengarahkannya ke IAM role yang Anda tentukan. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --aws-region region \
     --thing-name MyGreengrassCore \
     --thing-group-name MyGreengrassCoreGroup \
     --thing-policy-name GreengrassV2IoTThingPolicy \
     --tes-role-name GreengrassV2TokenExchangeRole \
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias \
     --component-default-user ggc_user:ggc_group \
     --provision true \
     --init-config ./GreengrassInstaller/config.yaml \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --aws-region region ^
     --thing-name MyGreengrassCore ^
     --thing-group-name MyGreengrassCoreGroup ^
     --thing-policy-name GreengrassV2IoTThingPolicy ^
     --tes-role-name GreengrassV2TokenExchangeRole ^
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias ^
     --component-default-user ggc_user ^
     --provision true ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --aws-region region `
     --thing-name MyGreengrassCore `
     --thing-group-name MyGreengrassCoreGroup `
     --thing-policy-name GreengrassV2IoTThingPolicy `
     --tes-role-name GreengrassV2TokenExchangeRole `
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias `
     --component-default-user ggc_user `
     --provision true `
     --setup-system-service true
   ```

------
**penting**  <a name="windows-system-service-installer-argument-important-note"></a>
Pada perangkat inti Windows, Anda harus menentukan `--setup-system-service true` untuk mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

   Installer mencetak pesan berikut jika berhasil:
   + Jika Anda menentukan `--provision`, penginstal akan mencetak `Successfully configured Nucleus with provisioned resource details` jika berhasil mengonfigurasi sumber daya.
   + Jika Anda menentukan `--deploy-dev-tools`, penginstal akan mencetak `Configured Nucleus to deploy aws.greengrass.Cli component` jika berhasil membuat deployment.
   + Jika Anda menentukan `--setup-system-service true`, penginstal akan mencetak `Successfully set up Nucleus as a system service` jika ia mengatur dan menjalankan perangkat lunak sebagai layanan.
   + Jika Anda tidak menentukan `--setup-system-service true`, penginstal akan mencetak `Launched Nucleus successfully` jika berhasil dan menjalankan perangkat lunak.

1. Lewati langkah ini jika Anda menginstal v2.0.4 [Inti Greengrass](greengrass-nucleus-component.md) atau yang lebih baru. Jika Anda mengunduh versi terbaru dari perangkat lunak, Anda menginstal v2.0.4 atau yang lebih baru.

   Jalankan perintah berikut untuk mengatur izin file yang diperlukan untuk folder root perangkat lunak inti AWS IoT Greengrass Anda. Ganti `/greengrass/v2` dengan folder root yang Anda tentukan dalam perintah instalasi Anda, dan ganti */greengrass* dengan folder induk untuk folder root Anda.

   ```
   sudo chmod 755 /greengrass/v2 && sudo chmod 755 /greengrass
   ```

<a name="install-greengrass-core-run-software"></a>Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem, penginstal menjalankan perangkat lunak untuk Anda. Jika tidak, Anda harus menjalankan perangkat lunak itu secara manual. Untuk informasi selengkapnya, lihat [Jalankan perangkat lunak AWS IoT Greengrass Core](run-greengrass-core-v2.md).

**catatan**  
Secara default, IAM role yang dibuat oleh installer tidak mengizinkan akses ke artefak komponen dalam Bucket S3. Untuk men-deploy komponen kustom yang menentukan artefak di Amazon S3, Anda harus menambahkan izin untuk peran tersebut untuk memungkinkan perangkat inti Anda untuk mengambil artefak komponen. Untuk informasi selengkapnya, lihat [Izinkan akses ke bucket S3 untuk artefak komponen](device-service-role.md#device-service-role-access-s3-bucket).  
Jika Anda belum memiliki bucket S3 untuk artefak komponen, Anda dapat menambahkan izin ini nanti setelah membuat bucket.

<a name="install-greengrass-core-next-steps-intro"></a>Untuk informasi selengkapnya tentang cara mengkonfigurasi dan menggunakan perangkat lunak dan AWS IoT Greengrass, lihat berikut ini:<a name="install-greengrass-core-next-steps-links"></a>
+ [Konfigurasikan perangkat lunak AWS IoT Greengrass Inti](configure-greengrass-core-v2.md)
+ [Kembangkan AWS IoT Greengrass komponen](develop-greengrass-components.md)
+ [Menyebarkan AWS IoT Greengrass komponen ke perangkat](manage-deployments.md)
+ [Antarmuka Baris Perintah Greengrass](gg-cli.md)

## Kepatuhan FIPS komponen pihak pertama
<a name="FIPS-compliance"></a>


|  |  | 
| --- | --- | 
| aws.greengrass.Nucleus | data.iot-fips.us-east-1.amazonaws.com | 
|  | greengrass-fips.us-east-1.amazonaws.com | 
|  | data.credentials.iot-fips.us-east-1.amazonaws.com | 
| aws.greengrass.TokenExchangeService | data.credentials.iot-fips.us-east-1.amazonaws.com | 
| aws.greengrass.Cli |  | 
| aws.greengrass.StreamManager | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/FIPS.html) Manajer aliran tidak mendukung titik akhir AWS IoT Analytics FIPS  | 
| aws.greengrass.LogManager | log-fips. us-east-1.amazonaws.com | 
| aws.greengrass.crypto.Pkcs11Provider |  | 
| aws.greengrass.ShadowManager |  | 
| aws.greengrass.DockerApplicationManager | ecr-fips. us-east-1.amazonaws.com | 
| aws.greengrass.SecretManager | secretsmanager-fips. us-east-1.amazonaws.com | 
| aws.greengrass.telemetry.NucleusEmitter |  | 
| aws.greengrass.clientdevices.IPDetector |  | 
| aws.greengrass.DiskSpooler |  | 

# Ketahanan di AWS IoT Greengrass
<a name="disaster-recovery-resiliency"></a>

Infrastruktur AWS global dibangun di sekitar Amazon Web Services Regions dan Availability Zones. Masing-masing Wilayah AWS menyediakan beberapa Availability Zone yang terpisah secara fisik dan terisolasi, yang terhubung dengan latensi rendah, throughput tinggi, dan jaringan yang sangat redundan. Dengan Zona Ketersediaan, Anda dapat merancang serta mengoperasikan aplikasi dan basis data yang secara otomatis melakukan fail over di antara zona tanpa gangguan. Availability Zone lebih tersedia, toleran kegagalan, dan dapat diskalakan dibandingkan infrastruktur pusat data tunggal atau banyak yang tradisional. 

Untuk informasi lebih lanjut, lihat [AWS Infrastruktur Global](https://aws.amazon.com/about-aws/global-infrastructure/).

Selain infrastruktur AWS global, AWS IoT Greengrass menawarkan beberapa fitur untuk membantu mendukung ketahanan data dan kebutuhan cadangan Anda.
+ Anda dapat mengonfigurasi perangkat inti Greengrass untuk menulis log ke sistem file lokal dan ke Log. CloudWatch Jika perangkat inti kehilangan konektivitas, ia dapat terus mencatat pesan pada sistem file. Ketika terhubung kembali, ia menulis pesan log ke CloudWatch Log. Untuk informasi selengkapnya, lihat [Memantau AWS IoT Greengrass log](monitor-logs.md).
+ Jika perangkat inti kehilangan daya selama penerapan, perangkat tersebut melanjutkan penerapan setelah perangkat lunak AWS IoT Greengrass Core dimulai lagi.
+ Jika perangkat inti kehilangan konektivitas internet, perangkat klien Greengrass dapat terus berkomunikasi melalui jaringan lokal.
+ Anda dapat menulis komponen Greengrass yang membaca pengaliran [manajer pengaliran](manage-data-streams.md) dan mengirim data ke tujuan penyimpanan lokal.

# Keamanan infrastruktur di AWS IoT Greengrass
<a name="infrastructure-security"></a>

Sebagai layanan terkelola, AWS IoT Greengrass dilindungi oleh prosedur keamanan jaringan AWS global yang dijelaskan dalam whitepaper [Amazon Web Services: Tinjauan Proses Keamanan](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf).

Anda menggunakan panggilan API yang AWS dipublikasikan untuk mengakses AWS IoT Greengrass melalui jaringan. Klien harus mendukung Keamanan Lapisan Pengangkutan (TLS) 1.2 atau versi yang lebih baru. Kami merekomendasikan TLS 1.3 atau versi yang lebih baru. Selain itu, klien harus mendukung cipher suites dengan perfect forward secrecy (PFS) seperti Ephemeral Diffie-Hellman (DHE) atau Elliptic Curve Diffie-Hellman Ephemeral (ECDHE). Sebagian besar sistem modern seperti Java 7 dan versi lebih baru mendukung mode-mode ini.

Permintaan harus ditandatangani menggunakan access key ID dan secret access key yang terkait dengan prinsipal IAM. Atau Anda dapat menggunakan [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) untuk membuat kredensial keamanan sementara untuk menandatangani permintaan.

Dalam suatu AWS IoT Greengrass lingkungan, perangkat menggunakan sertifikat X.509 dan kunci kriptografi untuk menghubungkan dan mengotentikasi ke file. AWS Cloud Lihat informasi yang lebih lengkap di [Otentikasi dan otorisasi perangkat untuk AWS IoT Greengrass](device-auth.md).

# Konfigurasi dan analisis kerentanan di AWS IoT Greengrass
<a name="vulnerability-analysis-and-management"></a>

Lingkungan IoT dapat terdiri atas sejumlah besar perangkat yang memiliki beragam kemampuan, berumur panjang, dan didistribusikan secara geografis. Karakteristik ini membuat penyiapan perangkat menjadi kompleks dan rawan kesalahan. Dan karena perangkat sering dibatasi dalam daya komputasi, memori, dan kemampuan penyimpanan, ini membatasi penggunaan enkripsi dan bentuk keamanan lainnya pada perangkat itu sendiri. Selain itu, perangkat sering menggunakan perangkat lunak dengan kerentanan yang diketahui. Faktor-faktor ini membuat perangkat IoT menjadi target yang menarik bagi peretas dan membuatnya sulit untuk mengamankannya secara berkelanjutan.

AWS IoT Device Defender mengatasi tantangan ini dengan menyediakan alat untuk mengidentifikasi masalah keamanan dan penyimpangan dari praktik terbaik. Anda dapat menggunakan AWS IoT Device Defender untuk menganalisis, mengaudit, dan memantau perangkat yang terhubung untuk mendeteksi perilaku abnormal, dan mengurangi risiko keamanan. AWS IoT Device Defender dapat mengaudit perangkat untuk memastikan mereka mematuhi praktik terbaik keamanan dan mendeteksi perilaku abnormal pada perangkat. Hal ini memungkinkan untuk menerapkan kebijakan keamanan yang konsisten di seluruh perangkat Anda dan merespons dengan cepat ketika perangkat dikompromikan. IForinformasi lebih lanjut, lihat topik berikut:
+ [Komponen Pertahanan Perangkat](device-defender-component.md)
+ [AWS IoT Device Defender](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender.html) di *Panduan Developer AWS IoT Core *.

Di AWS IoT Greengrass lingkungan, Anda harus menyadari pertimbangan berikut:
+ Merupakan tanggung jawab Anda untuk mengamankan perangkat fisik Anda, sistem file pada perangkat Anda, dan jaringan lokal.
+ AWS IoT Greengrass tidak memberlakukan isolasi jaringan untuk komponen Greengrass yang ditentukan pengguna, baik dijalankan dalam wadah Greengrass atau tidak. Oleh karena itu, mungkin bagi komponen Greengrass untuk berkomunikasi dengan proses lain yang berjalan di sistem atau di luar melalui jaringan.

# Integritas kode di AWS IoT Greengrass V2
<a name="code-integrity"></a>

AWS IoT Greengrass menyebarkan komponen perangkat lunak dari AWS Cloud ke perangkat yang menjalankan perangkat lunak AWS IoT Greengrass Core. Komponen perangkat lunak ini termasuk [komponen AWS yang disediakan](public-components.md) dan [komponen khusus](create-components.md) yang Anda unggah ke Anda Akun AWS. Setiap komponen terdiri dari resep. Resep mendefinisikan metadata komponen, dan sejumlah artefak, yang merupakan binari komponen, seperti kode yang dikompilasi dan sumber daya statis. Artefak komponen disimpan di Amazon S3.

Saat Anda mengembangkan dan menerapkan komponen Greengrass, Anda mengikuti langkah-langkah dasar ini yang bekerja dengan artefak komponen di perangkat Anda dan di perangkat Anda: Akun AWS 

1. Buat dan unggah artefak ke bucket S3.

1. Buat komponen dari resep dan artefak dalam AWS IoT Greengrass layanan, yang menghitung [hash kriptografi](https://en.wikipedia.org/wiki/Cryptographic_hash_function) dari setiap artefak.

1. Menyebarkan komponen ke perangkat inti Greengrass, yang mengunduh dan memverifikasi integritas setiap artefak.

AWS bertanggung jawab untuk menjaga integritas artefak setelah Anda mengunggah artefak ke bucket S3, termasuk saat Anda menerapkan komponen ke perangkat inti Greengrass. Anda bertanggung jawab untuk mengamankan artefak perangkat lunak sebelum mengunggah artefak ke ember S3. Anda juga bertanggung jawab untuk mengamankan akses ke sumber daya di Anda Akun AWS, termasuk bucket S3 tempat Anda mengunggah artefak komponen.

**catatan**  
Amazon S3 menyediakan fitur yang disebut Kunci Objek S3 yang dapat Anda gunakan untuk melindungi terhadap perubahan artefak komponen di bucket S3 milik Anda. Akun AWS Anda dapat menggunakan S3 Object Lock untuk mencegah artefak komponen dihapus atau ditimpa. Untuk informasi selengkapnya, lihat [Menggunakan Kunci Objek S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.

Saat AWS menerbitkan komponen publik, dan saat Anda mengunggah komponen kustom, AWS IoT Greengrass hitung intisari kriptografi untuk setiap artefak komponen. AWS IoT Greengrass memperbarui resep komponen untuk memasukkan intisari setiap artefak dan algoritma hash yang digunakan untuk menghitung intisari itu. Intisari ini menjamin integritas artefak, karena jika artefak berubah dalam AWS Cloud atau selama pengunduhan, intisari filenya tidak akan cocok dengan intisari yang AWS IoT Greengrass disimpan dalam resep komponen. Untuk informasi lebih lanjut, lihat [Artefak dalam referensi resep komponen](component-recipe-reference.md#manifest-artifacts-definition).

Saat Anda menerapkan komponen ke perangkat inti, perangkat lunak AWS IoT Greengrass Core mengunduh resep komponen dan setiap artefak komponen yang ditentukan oleh resep. Perangkat lunak AWS IoT Greengrass Core menghitung intisari setiap file artefak yang diunduh dan membandingkannya dengan intisari artefak itu dalam resep. Jika intisari tidak cocok, penerapan gagal, dan perangkat lunak AWS IoT Greengrass Core menghapus artefak yang diunduh dari sistem file perangkat. Untuk informasi selengkapnya tentang cara koneksi antara perangkat inti dan AWS IoT Greengrass diamankan, lihat[Enkripsi bergerak](encryption-in-transit.md).

Anda bertanggung jawab untuk mengamankan file artefak komponen pada sistem file perangkat inti Anda. Perangkat lunak AWS IoT Greengrass Core menyimpan artefak ke `packages` folder di folder root Greengrass. Anda dapat menggunakan AWS IoT Device Defender untuk menganalisis, mengaudit, dan memantau perangkat inti. Untuk informasi selengkapnya, lihat [Konfigurasi dan analisis kerentanan di AWS IoT Greengrass](vulnerability-analysis-and-management.md).

# AWS IoT Greengrass dan antarmuka titik akhir VPC ()AWS PrivateLink
<a name="vpc-interface-endpoints"></a>

Anda dapat membuat koneksi pribadi antara VPC Anda dan bidang AWS IoT Greengrass kontrol dengan membuat titik akhir *VPC antarmuka*. Anda dapat menggunakan endpoint ini untuk mengelola komponen, penerapan, dan perangkat inti dalam layanan. AWS IoT Greengrass Endpoint antarmuka didukung oleh [AWS PrivateLink](https://aws.amazon.com/privatelink), teknologi yang memungkinkan Anda mengakses AWS IoT Greengrass APIs secara pribadi tanpa gateway internet, perangkat NAT, koneksi VPN, atau koneksi Direct AWS Connect. Instans di VPC Anda tidak memerlukan alamat IP publik untuk berkomunikasi. AWS IoT Greengrass APIs Lalu lintas antara VPC Anda dan AWS IoT Greengrass tidak meninggalkan jaringan Amazon.

Setiap titik akhir antarmuka diwakili oleh satu atau beberapa [Antarmuka Jaringan Elastis](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) di subnet Anda. 

Untuk informasi selengkapnya, lihat [Antarmuka VPC endpoint (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) dalam *Panduan Pengguna Amazon VPC*.

**Topics**
+ [Pertimbangan untuk titik akhir AWS IoT Greengrass VPC](#vpc-endpoint-considerations)
+ [Buat titik akhir VPC antarmuka untuk AWS IoT Greengrass operasi bidang kontrol](#create-vpc-endpoint-control-plane)
+ [Membuat kebijakan titik akhir VPC untuk AWS IoT Greengrass](#vpc-endpoint-policy)
+ [Mengoperasikan perangkat AWS IoT Greengrass inti di VPC](#vpc-operate-device-vpce)

## Pertimbangan untuk titik akhir AWS IoT Greengrass VPC
<a name="vpc-endpoint-considerations"></a>

Sebelum menyiapkan titik akhir VPC antarmuka AWS IoT Greengrass, tinjau [properti dan batasan titik akhir Antarmuka di](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-interface-limitations) Panduan Pengguna Amazon *VPC*. Selain itu, perhatikan pertimbangan berikut:
+ AWS IoT Greengrass mendukung panggilan ke semua tindakan API bidang kontrolnya dari VPC Anda. Pesawat kontrol mencakup operasi seperti [CreateDeployment](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateDeployment.html)dan [ListEffectiveDeployments](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_ListEffectiveDeployments.html). Pesawat kontrol *tidak* termasuk operasi seperti [ResolveComponentCandidates](device-auth.md#iot-policies)dan [Discover](greengrass-discover-api.md), yang merupakan operasi pesawat data.
+ Titik akhir VPC untuk saat ini tidak AWS IoT Greengrass didukung di Wilayah Tiongkok AWS .

## Buat titik akhir VPC antarmuka untuk AWS IoT Greengrass operasi bidang kontrol
<a name="create-vpc-endpoint-control-plane"></a>

Anda dapat membuat titik akhir VPC untuk bidang AWS IoT Greengrass kontrol menggunakan konsol VPC Amazon atau (). AWS Command Line Interface AWS CLI Untuk informasi selengkapnya, lihat [Membuat titik akhir antarmuka](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) dalam *Panduan Pengguna Amazon VPC*.

Buat titik akhir VPC untuk AWS IoT Greengrass menggunakan nama layanan berikut: 
+ com.amazonaws. *region*.greengrass

Jika Anda mengaktifkan DNS pribadi untuk titik akhir, Anda dapat membuat permintaan API untuk AWS IoT Greengrass menggunakan nama DNS default untuk Wilayah, misalnya,. `greengrass.us-east-1.amazonaws.com` DNS pribadi diaktifkan secara default.

Untuk informasi selengkapnya, lihat [Mengakses layanan melalui titik akhir antarmuka](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#access-service-though-endpoint) dalam *Panduan Pengguna Amazon VPC*.

## Membuat kebijakan titik akhir VPC untuk AWS IoT Greengrass
<a name="vpc-endpoint-policy"></a>

Anda dapat melampirkan kebijakan titik akhir ke titik akhir VPC Anda yang mengontrol akses AWS IoT Greengrass untuk mengontrol operasi pesawat. Kebijakan titik akhir menentukan informasi berikut:
+ Prinsip yang dapat melakukan tindakan.
+ Tindakan yang dapat dilakukan oleh prinsip.
+ Sumber daya yang dapat dilakukan oleh kepala sekolah.

Untuk informasi selengkapnya, lihat [Mengontrol Akses ke Layanan dengan titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) dalam *Panduan Pengguna Amazon VPC*.

**Example Contoh: Kebijakan titik akhir VPC untuk tindakan AWS IoT Greengrass**  
Berikut ini adalah contoh kebijakan endpoint untuk AWS IoT Greengrass. Saat dilampirkan ke titik akhir, kebijakan ini memberikan akses ke AWS IoT Greengrass tindakan yang tercantum untuk semua prinsipal di semua sumber daya.  

```
{
    "Statement": [
        {
            "Principal": "*",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "greengrass:ListEffectiveDeployments"
            ],
            "Resource": "*"
        }
    ]
}
```

## Mengoperasikan perangkat AWS IoT Greengrass inti di VPC
<a name="vpc-operate-device-vpce"></a>

Anda dapat mengoperasikan perangkat inti Greengrass dan melakukan penerapan di VPC tanpa akses internet publik. Minimal, Anda harus mengatur titik akhir VPC berikut dengan alias DNS yang sesuai. *Untuk informasi selengkapnya tentang cara membuat dan menggunakan titik akhir VPC, lihat [Membuat titik akhir VPC di Panduan Pengguna Amazon VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).*

**catatan**  
Fitur VPC untuk membuat catatan DNS secara otomatis dinonaktifkan untuk AWS IoT data dan Kredensialnya. AWS IoT Untuk menghubungkan titik akhir ini, Anda harus membuat catatan DNS Pribadi secara manual. Untuk informasi selengkapnya, lihat [DNS pribadi untuk titik akhir antarmuka](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#vpce-private-dns). Untuk informasi selengkapnya tentang batasan AWS IoT Core VPC, lihat [Batasan titik akhir VPC](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#VPC-limitations). 

### Prasyarat
<a name="vpc-endpoint-prerequisites"></a>
+ Anda harus menginstal perangkat lunak AWS IoT Greengrass Core menggunakan langkah-langkah penyediaan manual. Untuk informasi selengkapnya, lihat [Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya manual](manual-installation.md).

### Batasan
<a name="vpc-endpoint-limitaions"></a>
+ Mengoperasikan perangkat inti Greengrass di VPC tidak didukung di Wilayah Tiongkok dan. AWS GovCloud (US) Regions
+ [Untuk informasi selengkapnya tentang batasan AWS IoT data dan titik akhir VPC penyedia AWS IoT kredensi, lihat Batasan.](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#VPC-limitations)

### Siapkan perangkat inti Greengrass Anda untuk beroperasi di VPC
<a name="vpc-endpoint-operate-gg-core"></a>

****

1. Dapatkan AWS IoT titik akhir untuk Anda Akun AWS, dan simpan untuk digunakan nanti. Perangkat Anda menggunakan titik akhir ini untuk tersambung ke AWS IoT. Lakukan hal-hal berikut:

   1. Dapatkan titik akhir AWS IoT data untuk Anda Akun AWS.

      ```
      aws iot describe-endpoint --endpoint-type iot:Data-ATS
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
      }
      ```

   1. Dapatkan titik akhir AWS IoT kredensial untuk Anda. Akun AWS

      ```
      aws iot describe-endpoint --endpoint-type iot:CredentialProvider
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
      }
      ```

1. Buat antarmuka Amazon VPC untuk AWS IoT data dan titik akhir AWS IoT kredensialnya:

   1. **Arahkan ke konsol [VPC](https://console.aws.amazon.com/vpc/home#/endpoints) **Endpoints**, di bawah **Virtual private cloud** di menu sebelah kiri, pilih **Endpoints lalu Create Endpoint**.**

   1. Di halaman **Buat titik akhir**, tentukan informasi berikut.
      + Pilih **Layanan AWS s** untuk **kategori Layanan**.
      + Untuk **Nama Layanan**, cari dengan memasukkan kata kunci`iot`. Dalam daftar `iot` layanan yang ditampilkan, pilih titik akhir. 

        Jika Anda membuat titik akhir VPC untuk bidang AWS IoT Core data, pilih titik akhir API bidang AWS IoT Core data untuk Wilayah Anda. Titik akhir akan menjadi format`com.amazonaws.region.iot.data`. 

        Jika Anda membuat titik akhir VPC untuk penyedia AWS IoT Core kredensi, pilih titik akhir penyedia AWS IoT Core kredensi untuk Wilayah Anda. Titik akhir akan menjadi format`com.amazonaws.region.iot.credentials`.
**catatan**  
Nama layanan untuk pesawat AWS IoT Core data di Wilayah Tiongkok akan menjadi `cn.com.amazonaws.region.iot.data` format. Membuat titik akhir VPC untuk penyedia AWS IoT Core kredensi tidak didukung di Wilayah Tiongkok.
      + Untuk **VPC** dan **Subnet**, pilih VPC tempat Anda ingin membuat titik akhir, dan Availability Zones (AZs) tempat Anda ingin membuat jaringan endpoint.
      + Untuk **Aktifkan nama DNS**, pastikan **Aktifkan untuk titik akhir ini** tidak dipilih. Baik pesawat AWS IoT Core data maupun penyedia AWS IoT Core kredensi belum mendukung nama DNS pribadi.
      + Untuk **grup Keamanan**, pilih grup keamanan yang ingin Anda kaitkan dengan antarmuka jaringan titik akhir.
      + Secara opsional, Anda dapat menambah atau menghapus tag. Tag adalah pasangan nama-nilai yang Anda gunakan untuk mengasosiasikan dengan titik akhir Anda. 

   1. **Untuk membuat titik akhir VPC Anda, pilih Buat titik akhir.**

1. Setelah Anda membuat AWS PrivateLink titik akhir, di tab **Detail** titik akhir Anda, Anda akan melihat daftar nama DNS. Anda dapat menggunakan salah satu nama DNS yang Anda buat di bagian ini untuk [mengonfigurasi zona host pribadi Anda](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#connect-iot-core-create-phz-lns).

1. Buat titik akhir Amazon S3. Untuk informasi selengkapnya, lihat [Membuat titik akhir VPC untuk Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#s3-creating-vpc).

1. Jika Anda menggunakan komponen [Greengrass AWS-provided](https://docs.aws.amazon.com/greengrass/v2/developerguide/public-components.html), titik akhir dan konfigurasi tambahan mungkin diperlukan. Untuk melihat persyaratan titik akhir, pilih komponen dari daftar komponen AWS yang disediakan dan lihat bagian Persyaratan. Misalnya, [persyaratan komponen pengelola log](log-manager-component.md#log-manager-component-requirements) menyarankan bahwa komponen ini harus dapat melakukan permintaan keluar ke titik akhir`logs.region.amazonaws.com`.

   Jika Anda menggunakan komponen Anda sendiri, Anda mungkin perlu meninjau dependensi dan melakukan pengujian tambahan untuk menentukan apakah ada titik akhir tambahan yang diperlukan.

1. Dalam konfigurasi `greengrassDataPlaneEndpoint` inti Greengrass, harus diatur ke. **iotdata** Untuk informasi selengkapnya, lihat [konfigurasi nukleus Greengrass](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration).

1. Jika Anda berada di `us-east-1` wilayah tersebut, atur parameter konfigurasi `s3EndpointType` ke **REGIONAL** dalam konfigurasi inti Greengrass. Fitur ini tersedia untuk Greengrass nucleus versi 2.11.3 atau yang lebih baru.

**Example Contoh: Konfigurasi komponen**  

```
{
"aws.greengrass.Nucleus": {
   "configuration": {
      "awsRegion": "us-east-1",
      "iotCredEndpoint": "xxxxxx.credentials.iot.region.amazonaws.com",
      "iotDataEndpoint": "xxxxxx-ats.iot.region.amazonaws.com",
      "greengrassDataPlaneEndpoint": "iotdata",
      "s3EndpointType": "REGIONAL"
      ...
     }
   }
}
```

Tabel berikut memberikan informasi tentang alias DNS pribadi kustom yang sesuai.


| Layanan | Nama layanan titik akhir VPC | Jenis titik akhir VPC | Alias DNS pribadi kustom | Catatan | 
| --- | --- | --- | --- | --- | 
|  AWS IoT data  | `com.amazonaws.region.iot.data` | Antarmuka |  `prefix-ats.iot.region.amazonaws.com`  |  Catatan DNS pribadi harus sesuai dengan AWS IoT data titik akhir akun Anda:. `aws iot describe–endpoint ––endpoint–type iot:Data-ATS`  | 
| AWS IoT Kredensialnya | `com.amazonaws.region.iot.credentials` | Antarmuka | `prefix.credentials.iot.region.amazonaws.com` | Catatan DNS pribadi harus sesuai dengan titik akhir AWS IoT Kredensial akun Anda:. `aws iot describe–endpoint ––endpoint–type iot:CredentialProvider` | 
| Amazon S3 | `com.amazonaws.region.s3` | Antarmuka |  | Catatan DNS dibuat secara otomatis. | 

# Praktik terbaik keamanan untuk AWS IoT Greengrass
<a name="security-best-practices"></a>

Topik ini berisi praktik terbaik keamanan untuk AWS IoT Greengrass.

## Berikan izin minimum yang memungkinkan
<a name="least-privilege"></a>

Ikuti prinsip hak istimewa paling sedikit untuk komponen Anda dengan menjalankannya sebagai pengguna yang tidak memiliki hak istimewa. Komponen tidak boleh berjalan sebagai root kecuali benar-benar diperlukan.

Gunakan set izin minimum dalam peran IAM. Batasi penggunaan `*` wildcard untuk `Action` dan `Resource` di kebijakan IAM Anda. Sebaliknya, nyatakan serangkaian terbatas tindakan dan sumber daya bila memungkinkan. Untuk informasi lebih lanjut tentang hak istimewa minimum dan praktik terbaik kebijakan lainnya, lihat [Praktik terbaik kebijakan](security_iam_id-based-policy-examples.md#security_iam_service-with-iam-policy-best-practices).

Praktik terbaik hak istimewa terkecil juga berlaku untuk AWS IoT kebijakan yang Anda lampirkan ke inti Greengrass Anda.

## Jangan kode keras kredensial dalam komponen Greengrass
<a name="no-hardcoded-credentials"></a>

Jangan membuat kode keras pada kredensial dalam komponen Greengrass yang ditentukan pengguna Anda. Untuk melindungi kredensial Anda dengan lebih baik:
+ Untuk berinteraksi dengan AWS layanan, tentukan izin untuk tindakan dan sumber daya tertentu dalam peran layanan perangkat inti [Greengrass](device-service-role.md).
+ Gunakan [komponen secret manager](secret-manager-component.md) untuk menyimpan kredensial Anda. Atau, jika fungsi menggunakan AWS SDK, gunakan kredensyal dari rantai penyedia kredensyal default.

## Jangan log informasi sensitif
<a name="protect-pii"></a>

Anda harus mencegah logging kredensial dan informasi pengenal pribadi (PII) lainnya. Kami menyarankan Anda menerapkan perlindungan berikut meskipun akses ke log lokal pada perangkat inti memerlukan hak akses root dan akses ke CloudWatch Log memerlukan izin IAM.
+ Jangan gunakan informasi sensitif di jalur topik MQTT.
+ Jangan gunakan informasi sensitif pada nama, jenis, dan atribut perangkat (objek) di registri AWS IoT Core .
+ Jangan log informasi sensitif dalam komponen Greengrass yang ditetapkan pengguna Anda atau fungsi Lambda.
+ Jangan gunakan informasi sensitif dalam nama dan IDs sumber Greengrass:
  + Perangkat inti
  + Komponen-komponen
  + Deployment
  + Pencatat

## Sinkronkan jam perangkat Anda
<a name="device-clock"></a>

Penting untuk memiliki waktu yang akurat di perangkat Anda. Sertifikat X.509 memiliki tanggal dan waktu kedaluwarsa. Jam di perangkat Anda digunakan untuk memverifikasi bahwa sertifikat server masih valid. Jam perangkat dapat melayang dari waktu ke waktu atau baterai dapat habis.

Untuk informasi selengkapnya, lihat praktik terbaik [Terus sinkronkan jam perangkat](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html#device-clock) di *Panduan Developer AWS IoT Core *.

## Rekomendasi Cipher Suite
<a name="cipher-suites"></a>

Greengrass default memilih TLS Cipher Suites terbaru yang tersedia di perangkat. Pertimbangkan untuk menonaktifkan penggunaan suite cipher lama di perangkat. Misalnya, suite cipher CBC. 

Untuk informasi selengkapnya, lihat [Konfigurasi Kriptografi Java](https://www.java.com/configure_crypto.html).

## Lihat juga
<a name="security-best-practices-see-also"></a>
+ [Praktik terbaik keamanan di AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html) pada *Panduan Developer AWS IoT *
+ [Sepuluh aturan emas keamanan untuk solusi IoT Industri](https://aws.amazon.com/blogs/iot/ten-security-golden-rules-for-industrial-iot-solutions/) di *Internet of Things di Blog Resmi AWS *