

支援終止通知：2026 年 10 月 7 日 AWS 將停止 的支援 AWS IoT Greengrass Version 1。2026 年 10 月 7 日之後，您將無法再存取 AWS IoT Greengrass V1 資源。如需詳細資訊，請造訪[從 遷移 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Greengrass 服務角色
<a name="service-role"></a>

Greengrass 服務角色是 AWS Identity and Access Management (IAM) 服務角色，授權 代表您 AWS IoT Greengrass 從 AWS 服務存取資源。這可讓 AWS IoT Greengrass 執行基本任務，例如擷取 AWS Lambda 函數和管理 AWS IoT 陰影。

若要允許 AWS IoT Greengrass 存取您的 資源，Greengrass 服務角色必須與 建立關聯， AWS 帳戶 並指定 AWS IoT Greengrass 做為信任的實體。此角色必須包含 [ AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy) 受管政策或自訂政策，以定義您所使用的 AWS IoT Greengrass 功能的同等許可。此政策由 AWS 維護，並定義 AWS IoT Greengrass 用於存取 AWS 資源的一組許可。

您可以在 之間重複使用相同的 Greengrass AWS 區域服務角色，但您必須在使用 AWS 區域 的每個 中將其與您的帳戶建立關聯 AWS IoT Greengrass。如果目前 AWS 帳戶 和 區域中不存在服務角色，則群組部署會失敗。

下列各節說明如何在 AWS 管理主控台 或 中建立和管理 Greengrass 服務角色 AWS CLI。
+ [管理服務角色 (主控台)](#manage-service-role-console)
+ [管理服務角色 (CLI)](#manage-service-role-cli)

**注意**  
除了授權服務層級存取的服務角色之外，您還可以將*群組角色*指派給 AWS IoT Greengrass 群組。群組角色是獨立的 IAM 角色，可控制群組中的 Greengrass Lambda 函數和連接器如何存取 AWS 服務。

## 管理 Greengrass 服務角色 (主控台)
<a name="manage-service-role-console"></a>

 AWS IoT 主控台可讓您輕鬆管理您的 Greengrass 服務角色。例如，當您建立或部署 Greengrass 群組時，主控台會檢查 是否 AWS 帳戶 連接到主控台中目前選取的 中的 Greengrass AWS 區域 服務角色。如果未連接，主控台可以為您建立和設定服務角色。如需詳細資訊，請參閱[建立 Greengrass 服務角色 (主控台)](#create-service-role-console)。

您可以使用 AWS IoT 主控台執行下列角色管理任務：
+ [尋找您的 Greengrass 服務角色](#get-service-role-console)
+ [建立 Greengrass 服務角色](#create-service-role-console)
+ [變更 Greengrass 服務角色](#update-service-role-console)
+ [分離 Greengrass 服務角色](#remove-service-role-console)

**注意**  
登入主控台的使用者必須擁有可檢視、建立或變更服務角色的許可。

 

### 尋找您的 Greengrass 服務角色 (主控台)
<a name="get-service-role-console"></a>

使用下列步驟來尋找目前 AWS IoT Greengrass 中使用的服務角色 AWS 區域。

1. <a name="iot-settings"></a>從[AWS IoT 主控台](https://console.aws.amazon.com/iot/)導覽窗格中，選擇**設定**。

1. 捲動至 **Greengrass service role (Greengrass 服務角色)** 區段，查看您的服務角色及其政策。

   如果您沒有看到服務角色，您可以讓主控台為您建立或設定服務角色。如需詳細資訊，請參閱[建立 Greengrass 服務角色](#create-service-role-console)。

 

### 建立 Greengrass 服務角色 (主控台)
<a name="create-service-role-console"></a>

主控台可以為您建立和設定預設的 Greengrass 服務角色。這個角色具有以下屬性：


| 屬性 | Value | 
| --- | --- | 
| 名稱 | Greengrass\_ServiceRole | 
| 信任實體 | AWS service: greengrass | 
| 政策 | [AWSGreengrassResourceAccessRolePolicy (AWSGreengrassResourceAccessRolePolicy)](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy) | 

**注意**  
如果 [Greengrass 裝置安裝程式](quick-start.md)建立了服務角色，則角色名稱為 `GreengrassServiceRole_{{random-string}}`。

當您從 AWS IoT 主控台建立或部署 Greengrass 群組時，主控台會在目前在主控台中選取的 AWS 帳戶 AWS 區域 中，檢查 Greengrass 服務角色是否與 相關聯。如果沒有，主控台會提示您允許 代表您 AWS IoT Greengrass 讀取和寫入 AWS 服務。

如果您授予許可，主控台會檢查 `Greengrass_ServiceRole`中是否存在名為 的角色 AWS 帳戶。
+ 如果角色存在，主控台會將服務角色連接到目前 AWS 帳戶 中的 AWS 區域。
+ 如果角色不存在，主控台會建立預設 Greengrass 服務角色，並將其連接到目前 AWS 帳戶 中的 AWS 區域。

**注意**  
如果您想要使用自訂角色政策建立服務角色，請使用 IAM 主控台來建立或修改角色。如需詳細資訊，請參閱[《IAM 使用者指南》中的建立角色以將許可委派給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)[或修改角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html)。 **請確定角色會授與與您所使用功能和資源之 `AWSGreengrassResourceAccessRolePolicy` 受管政策相同的許可。我們建議您也在信任政策中包含 `aws:SourceArn`和 `aws:SourceAccount`全域條件內容金鑰，以協助防止*混淆代理人*安全問題。條件內容索引鍵會限制存取，只允許來自指定帳戶和 Greengrass 工作區的請求。如需有關混淆代理人問題的詳細資訊，請參閱 [預防跨服務混淆代理人](cross-service-confused-deputy-prevention.md)。  
如果您建立服務角色，請返回 AWS IoT 主控台，並將角色連接到 群組。您可以在群組**的設定**頁面上的 **Greengrass 服務角色**下執行此操作。

 

### 變更 Greengrass 服務角色 (主控台)
<a name="update-service-role-console"></a>

使用下列程序來選擇不同的 Greengrass 服務角色，以在主控台 AWS 區域 目前選取的 AWS 帳戶 中連接至您的 。

1. <a name="iot-settings"></a>從[AWS IoT 主控台](https://console.aws.amazon.com/iot/)導覽窗格中，選擇**設定**。

1. 在 **Greengrass 服務角色**下，選擇**變更角色**。

   **更新 Greengrass 服務角色**對話方塊隨即開啟，並顯示 中定義為 AWS IoT Greengrass 信任實體 AWS 帳戶 的 IAM 角色。

1. 選擇要連接的 Greengrass 服務角色。

1. 選擇**連接角色**。

**注意**  
若要允許主控台為您建立預設的 Greengrass 服務角色， 請選擇 **Create role for me (為我建立角色)**，而不要從清單中選擇角色。如果名為 **的角色位於您的 中，則不會顯示為我建立**角色連結 AWS 帳戶。 `Greengrass_ServiceRole`

 

### 分離 Greengrass 服務角色 (主控台)
<a name="remove-service-role-console"></a>

使用下列程序，在主控台 AWS 區域 目前選取的 AWS 帳戶 中，從 分離 Greengrass 服務角色。這會撤銷 AWS IoT Greengrass 存取目前 AWS 服務的權限 AWS 區域。

**重要**  
分離服務角色可能會中斷作用中的操作。

1. <a name="iot-settings"></a>從[AWS IoT 主控台](https://console.aws.amazon.com/iot/)導覽窗格中，選擇**設定**。

1. 在 **Greengrass 服務角色**下，選擇**分離角色**。

1. 在確認對話方塊中，選擇 **Detach** (分離)。

**注意**  
如果您不再需要該角色，您可以在 IAM 主控台中刪除該角色。如需詳細資訊，請參閱 *IAM 使用者指南*中的[刪除角色或執行個體描述檔](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html)。  
其他角色可能允許 AWS IoT Greengrass 存取您的 資源。若要尋找允許 代表您 AWS IoT Greengrass 擔任許可的所有角色，請在 IAM 主控台的角色****頁面上，尋找包含**AWS 服務的角色：信任實體欄中的 greengrass**。 ****

## 管理 Greengrass 服務角色 (CLI)
<a name="manage-service-role-cli"></a>

在下列程序中，我們假設 AWS CLI 已安裝並設定為使用您的 AWS 帳戶 ID。如需詳細資訊，請參閱*AWS Command Line Interface 《 使用者指南*》中的[安裝 AWS 命令列界面](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)和[設定 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) 。

您可以使用 AWS CLI 執行下列角色管理任務：
+ [取得您的 Greengrass 服務角色](#get-service-role)
+ [建立 Greengrass 服務角色](#create-service-role)
+ [移除 Greengrass 服務角色](#remove-service-role)

 

### 取得 Greengrass 服務角色 (CLI)
<a name="get-service-role"></a>

使用下列程序來了解 Greengrass 服務角色是否與 AWS 帳戶 中的 相關聯 AWS 區域。
+ 取得服務角色。將{{區域}}取代為您的 AWS 區域 （例如，`us-west-2`)。

  ```
  aws Greengrass get-service-role-for-account --region {{region}}
  ```

  如果 Greengrass 服務角色已與您的帳戶關聯，會傳回下列的角色中繼資料。

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

  如果未傳回任何角色中繼資料，則必須建立服務角色 （如果不存在），並將其與 中的帳戶建立關聯 AWS 區域。

 

### 建立 Greengrass 服務角色 (CLI)
<a name="create-service-role"></a>

使用下列步驟來建立角色，並將其與您的 建立關聯 AWS 帳戶。

**使用 IAM 建立服務角色**

1. 使用允許 AWS IoT Greengrass 擔任角色的信任政策來建立角色。此範例會建立名為 `Greengrass_ServiceRole` 的角色，但您可以使用不同的名稱。我們建議您也在信任政策中包含 `aws:SourceArn`和 `aws:SourceAccount`全域條件內容金鑰，以協助防止*混淆代理人*安全問題。條件內容索引鍵會限制存取，只允許來自指定帳戶和 Greengrass 工作區的請求。如需有關混淆代理人問題的詳細資訊，請參閱 [預防跨服務混淆代理人](cross-service-confused-deputy-prevention.md)。

------
#### [ Linux, macOS, 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": {
           "StringEquals": {
             "aws:SourceAccount": "{{account-id}}"
           },
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:{{region}}:{{account-id}}:*"
           }
         }
       }
     ]
   }'
   ```

------
#### [ Windows command prompt ]

   ```
   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. 從輸出中的角色中繼資料，複製角色 ARN。您使用 ARN 將角色與您的帳戶相關聯。

1. 將 `AWSGreengrassResourceAccessRolePolicy` 政策連接到角色。

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

**將服務角色與您的 建立關聯 AWS 帳戶**
+ 將角色與您的帳戶相關聯。將 {{role-arn}} 取代為服務角色 ARN，並將 {{region}} 取代為您的 AWS 區域 （例如，`us-west-2`)。

  ```
  aws greengrass associate-service-role-to-account --role-arn {{role-arn}} --region {{region}}
  ```

  如果成功，會傳回下列回應。

  ```
  {
    "AssociatedAt": "{{timestamp}}"
  }
  ```

 

### 移除 Greengrass 服務角色 (CLI)
<a name="remove-service-role"></a>

使用下列步驟取消 Greengrass 服務角色與 的關聯 AWS 帳戶。
+ 將服務角色與您的帳戶取消關聯。將{{區域}}取代為您的 AWS 區域 （例如，`us-west-2`)。

  ```
  aws greengrass disassociate-service-role-from-account --region {{region}}
  ```

  如果成功，會傳回下列回應。

  ```
  {
    "DisassociatedAt": "{{timestamp}}"
  }
  ```
**注意**  
如果您未在任何 中使用服務角色，您應該將其刪除 AWS 區域。首先，使用 [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) 將 `AWSGreengrassResourceAccessRolePolicy` 受管政策從角色中分離，然後使用 [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html) 來刪除角色。如需詳細資訊，請參閱 *IAM 使用者指南*中的[刪除角色或執行個體描述檔](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html)。

## 另請參閱
<a name="service-role-see-also"></a>
+ 《*IAM 使用者指南*》中的[建立角色以將許可委派給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) 
+ 《*IAM 使用者指南*》中的[修改角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) 
+ 《*IAM 使用者指南*》中的[刪除角色或執行個體描述](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html)檔
+ AWS IoT Greengrass 命令*AWS CLI 參考中的 命令*
  + [associate-service-role-to-account](https://docs.aws.amazon.com/cli/latest/reference/greengrass/associate-service-role-to-account.html)
  + [disassociate-service-role-from-account](https://docs.aws.amazon.com/cli/latest/reference/greengrass/disassociate-service-role-from-account.html)
  + [get-service-role-for-account](https://docs.aws.amazon.com/cli/latest/reference/greengrass/get-service-role-for-account.html)
+ 《 命令*AWS CLI 參考》中的 IAM 命令*
  + [attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)
  + [create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)
  + [delete-role](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)