

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