Otorisasi perangkat inti untuk berinteraksi dengan AWS layanan - AWS IoT Greengrass

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

Otorisasi perangkat inti untuk berinteraksi dengan AWS layanan

AWS IoT Greengrass perangkat inti menggunakan AWS IoT Core penyedia kredensial untuk mengotorisasi panggilan ke AWS layanan. Penyedia kredensial AWS IoT Core memungkinkan perangkat untuk menggunakan sertifikat X.509 mereka sebagai identitas perangkat yang unik untuk mengautentikasi AWS permintaan. Hal ini menghilangkan kebutuhan untuk menyimpan AWS access key ID dan secret access key di perangkat inti AWS IoT Greengrass Anda. Untuk informasi selengkapnya, lihat Mengotorisasi panggilan langsung ke layanan AWS di Panduan Developer AWS IoT Core.

Ketika Anda menjalankan AWS IoT Greengrass Perangkat lunak inti, Anda dapat memilih untuk menyediakan AWS sumber daya yang dibutuhkan perangkat inti. Perangkat lunak ini mencakup AWS Identity and Access Management (IAM) role yang dilakukan oleh perangkat inti Anda melalui AWS IoT Core penyedia kredensialnya. Gunakan argumen --provision true untuk mengonfigurasi peran dan kebijakan yang memungkinkan perangkat inti untuk mendapatkan kredensial AWS sementara. Argumen ini juga mengonfigurasi sebuah AWS IoT alias peran yang menunjuk ke IAM role ini. Anda dapat menentukan nama IAM role dan AWS IoT alias peran untuk 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.

  • AWS IoT alias peran: GreengrassV2TokenExchangeRoleAlias

    Alias peran ini mengacu pada IAM role.

Untuk informasi selengkapnya, lihat Langkah 3: Instal perangkat lunakAWS IoT Greengrass inti.

Anda juga dapat mengatur alias peran untuk perangkat inti yang ada. Untuk melakukannya, konfigurasikan parameter konfigurasi iotRoleAlias komponen inti Greengrass.

Anda dapat memperoleh kredensial AWS sementara untuk IAM role ini untuk melakukan operasi AWS di komponen kustom Anda. Untuk informasi selengkapnya, lihat Berinteraksilah dengan layanan AWS.

Izin peran layanan untuk perangkat inti

Peran memungkinkan layanan berikut untuk menjalankan peran tersebut:

  • credentials.iot.amazonaws.com

Jika Anda menggunakan AWS IoT Greengrass Perangkat lunak inti untuk membuat peran ini, ia menggunakan kebijakan izin berikut untuk mengizinkan perangkat inti untuk menyambungkan 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
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
v2.4.x
{ "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
{ "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

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 DOC-EXAMPLE-BUCKET dengan nama bucket S3 agar perangkat inti dapat mengakses.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
  2. Jalankan perintah berikut untuk membuat kebijakan dari kebijakan dokumen 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.

  3. Jalankan perintah berikut untuk melampirkan kebijakan tersebut pada peran perangkat inti. Ganti GreengrassV2TokenExchangeRole dengan nama peran yang Anda tentukan saat Anda menjalankan perintah AWS IoT Greengrass Perangkat lunak inti. 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.