Bagaimana AWS IoT Greengrass bekerja dengan IAM - AWS IoT Greengrass

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

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

Bagaimana AWS IoT Greengrass bekerja dengan IAM

Sebelum Anda menggunakan IAM untuk mengelola akses ke AWS IoT Greengrass, Anda harus memahami fitur IAM apa yang tersedia untuk digunakan dengan AWS IoT Greengrass.

Untuk mendapatkan tampilan tingkat tinggi tentang cara dan layanan AWS lainnya bekerja dengan IAM, lihat AWS layanan yang bekerja dengan IAM dalam Panduan Pengguna IAM.

Kebijakan berbasis identitas untuk AWS IoT Greengrass

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan tindakan dan sumber daya yang diizinkan atau ditolak, dan juga ketentuan di mana tindakan tersebut diperbolehkan 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 dalam Panduan Pengguna IAM.

Tindakan

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

Elemen Action dari kebijakan JSON menjelaskan tindakan yang dapat Anda gunakan untuk mengizinkan atau menolak akses dalam sebuah kebijakan. Tindakan kebijakan biasanya memiliki nama yang sama seperti operasi API AWS terkait. Ada beberapa pengecualian, misalnya tindakan hanya izin yang tidak memiliki operasi API yang cocok. Ada juga beberapa operasi yang memerlukan beberapa tindakan dalam suatu kebijakan. Tindakan tambahan ini disebut tindakan dependen.

Menyertakan tindakan dalam suatu kebijakan untuk memberikan izin melakukan operasi terkait.

Tindakan kebijakan AWS IoT Greengrass menggunakan greengrass: prefiks berikut sebelum tindakan:. Sebagai contoh, untuk mengizinkan seseorang untuk menggunakan ListGroups operasi API untuk daftar grup di mereka Akun AWS, Anda termasuk greengrass:ListGroups tindakan dalam kebijakan mereka. Pernyataan kebijakan harus mencakup salah satu Action atau NotAction elemen. AWS IoT Greengrass mendefinisikan serangkaian tindakan yang menjelaskan tugas yang Anda dapat 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.

Untuk melihat daftar tindakan AWS IoT Greengrass, lihat Tindakan yang Ditetapkan oleh AWS IoT Greengrass di Panduan Pengguna IAM.

Sumber daya

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

Elemen kebijakan JSON Resource menentukan objek atau beberapa objek yang menjadi target penerapan tindakan. Pernyataan harus menyertakan elemen Resource atau NotResource. Praktik terbaiknya, tentukan sumber daya menggunakan Amazon Resource Name (ARN). Anda dapat melakukan ini untuk tindakan yang mendukung jenis sumber daya tertentu, yang dikenal sebagai izin tingkat sumber daya.

Untuk tindakan yang tidak mendukung izin tingkat sumber daya, misalnya operasi pembuatan daftar, gunakan wildcard (*) untuk menunjukkan bahwa pernyataan tersebut berlaku bagi semua sumber daya.

"Resource": "*"

Tabel berikut berisi AWS IoT Greengrass sumber daya ARN yang dapat digunakan dalam Resource elemen pernyataan kebijakan. Untuk pemetaan izin tingkat sumber daya yang didukung untuk AWS IoT Greengrass tindakan, lihat Tindakan Ditetapkan oleh AWS IoT Greengrass dalam Panduan Pengguna IAM.

Sumber daya ARN
Group arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}
GroupVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/versions/${VersionId}
CertificateAuthority arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/certificateauthorities/${CertificateAuthorityId}
Deployment arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/deployments/${DeploymentId}
BulkDeployment arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/bulk/deployments/${BulkDeploymentId}
ConnectorDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}
ConnectorDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}/versions/${VersionId}
CoreDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}
CoreDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}/versions/${VersionId}
DeviceDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}
DeviceDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}/versions/${VersionId}
FunctionDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}
FunctionDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}/versions/${VersionId}
LoggerDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}
LoggerDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}/versions/${VersionId}
ResourceDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}
ResourceDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}/versions/${VersionId}
SubscriptionDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}
SubscriptionDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}/versions/${VersionId}
ConnectivityInfo arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/connectivityInfo

Contoh berikut Resource slemen menentukan ARN dari grup di Wilayah US West (Oregon) di Akun AWS 123456789012:

"Resource": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Atau, untuk menentukan semua grup yang dimiliki Akun AWS dalam spesifik Wilayah AWS, gunakan wildcard di tempat ID grup:

"Resource": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/*"

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

"Resource": "*"

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

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

Untuk informasi selengkapnya tentang format ARN, lihat Amazon Resource Names (ARN) dan ruang nama AWS layanan di. Referensi Umum Amazon Web Services

Kunci syarat

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

Elemen Condition (atau blok Condition) memungkinkan Anda menentukan kondisi di mana suatu pernyataan akan diterapkan. Elemen Condition bersifat opsional. Anda dapat membuat ekspresi kondisional yang menggunakan operator kondisi, misalnya sama dengan atau kurang dari, untuk mencocokkan kondisi dalam kebijakan dengan nilai-nilai yang diminta.

Jika Anda menentukan beberapa elemen Condition dalam satu pernyataan, atau beberapa kunci dalam satu elemen Condition, AWS akan mengevaluasinya dengan menggunakan operasi AND logis. Jika Anda menentukan beberapa niilai untuk satu kunci persyaratan, AWS akan mengevaluasi syarat tersebut menggunakan operasi OR yang logis. Semua kondisi harus dipenuhi sebelum izin pernyataan diberikan.

Anda juga dapat menggunakan variabel placeholder saat menentukan kondisi. Sebagai contoh, Anda dapat memberikan izin kepada pengguna IAM untuk mengakses sumber daya hanya jika izin tersebut mempunyai tanda yang sesuai dengan nama pengguna IAM mereka. Untuk informasi selengkapnya, silakan lihat Elemen kebijakan IAM: variabel dan tanda di Panduan Pengguna IAM.

AWS mendukung kunci kondisi global dan kunci kondisi spesifik layanan. Untuk melihat semua AWS kunci syarat global, lihat AWS kunci konteks syarat global dalam Panduan Pengguna IAM.

AWS IoT Greengrass mendukung kunci syarat global berikut.

Kunci Deskripsi
aws:CurrentTime Filter mengakses dengan memeriksa kondisi tanggal/waktu untuk tanggal dan waktu saat ini.
aws:EpochTime Filter mengakses dengan memeriksa kondisi tanggal/waktu untuk tanggal dan waktu saat ini dalam jangka waktu atau waktu Unix.
aws:MultiFactorAuthAge Filter mengakses dengan memeriksa berapa lama yang lalu (dalam detik) kredensial keamanan yang divalidasi oleh autentikasi multi faktor (MFA) dalam permintaan dikeluarkan menggunakan MFA.
aws:MultiFactorAuthPresent Filter mengakses ini untuk memeriksa apakah autentikasi multi-faktor (MFA) digunakan untuk memvalidasi kredensial keamanan sementara yang membuat permintaan.
aws:RequestTag/${TagKey} Filter membuat permintaan berdasarkan set yang diizinkan nilai untuk masing-masing tag wajib.
aws:ResourceTag/${TagKey} Filter tindakan berdasarkan menandai nilai yang terkait dengan sumber daya.
aws:SecureTransport Filter mengakses dengan memeriksa apakah permintaan dikirim menggunakan SSL.
aws:TagKeys Filter membuat permintaan berdasarkan adanya tag wajib dalam permintaan.
aws:UserAgent Filter mengakses oleh aplikasi klien pemohon.

Untuk informasi lebih lanjut, lihat kunci konteks syarat global AWS dalam Panduan Pengguna IAM.

Contoh-contoh

Untuk melihat contoh AWS IoT Greengrass kebijakan berbasis identitas, lihat Contoh kebijakan berbasis identitas untuk AWS IoT Greengrass.

Kebijakan berbasis sumber daya untuk AWS IoT Greengrass

AWS IoT Greengrass tidak mendukung kebijakan berbasis sumber daya.

Daftar kontrol akses (ACL)

AWS IoT Greengrass tidak mendukung ACL.

Otorisasi berdasarkan tanda AWS IoT Greengrass

Anda dapat melampirkan tag di sumber daya AWS IoT Greengrass atau meneruskan tag dalam permintaan ke AWS IoT Greengrass. Untuk mengendalikan akses berdasarkan tanda, Anda dapat memberikan informasi tentang tanda di Elemen syarat kebijakan dengan menggunakan kunci syarat aws:ResourceTag/${TagKey}, aws:RequestTag/${TagKey}, atau aws:TagKeys. Untuk informasi selengkapnya, lihat Menandai Sumber Daya AWS IoT Greengrass Anda.

IAM role untuk AWS IoT Greengrass

IAM role adalah entitas dalam Akun AWS Anda yang memiliki izin khusus.

Menggunakan kredensial sementara dengan AWS IoT Greengrass

Kredensial sementara digunakan untuk masuk bersama gabungan, menjalankan IAM role, atau menjalankan peran lintas-akun. Anda memperoleh kredensyal keamanan sementara dengan memanggil operasi AWS STS API seperti AssumeRoleatau. GetFederationToken

Pada core Greengrass, kredensial sementara untuk peran grup dibuat tersedia untuk fungsi dan konektor Lambda yang ditentukan pengguna. Jika fungsi Lambda Anda menggunakan AWS SDK, Anda tidak perlu menambahkan logika untuk mendapatkan kredensial karena AWS SDK melakukan ini untuk Anda.

Peran terkait layanan

AWS IoT Greengrass tidak mendukung peran terkait layanan.

Peran layanan

Fitur ini memungkinkan layanan untuk menerima peran layanan 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 menggunakan peran layanan untuk mengakses beberapa perangkat AWS sumber daya atas nama Anda. Untuk informasi selengkapnya, lihat Peran layanan Greengrass.

Memilih peran IAM di konsol AWS IoT Greengrass

Di AWS IoT Greengrass konsol, Anda mungkin harus memilih peran layanan Greengrass atau peran grup Greengrass dari daftar IAM role di akun Anda.

  • Peran layanan Greengrass mengizinkan AWS IoT Greengrass untuk mengakses sumber daya AWS Anda di layanan lain atas nama Anda. Biasanya, Anda tidak perlu memilih peran layanan karena konsol dapat membuat dan mengonfigurasinya untuk Anda. Untuk informasi selengkapnya, lihat Peran layanan Greengrass.

  • Peran grup Greengrass digunakan untuk mengizinkan fungsi Greengrass Lambda dan konektor dalam grup untuk mengakses Anda AWS sumber daya. Itu juga dapat memberikan AWS IoT Greengrass izin untuk mengekspor aliran ke AWS layanan dan menulis CloudWatch log. Lihat informasi yang lebih lengkap di Peran grup Greengrass.