

支援終止通知：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="group-role"></a>

Greengrass 群組角色是一種 IAM 角色，可授權在 Greengrass 核心上執行的程式碼存取您的 AWS 資源。您可以在 AWS Identity and Access Management (IAM) 中建立角色和管理許可，並將角色連接到 Greengrass 群組。Greengrass 群組有一個群組角色。若要新增或變更許可，您可以連接不同的角色或變更連接到角色的 IAM 政策。

角色必須 AWS IoT Greengrass 定義為信任的實體。根據您的業務案例，群組角色可能包含定義下列項目的 IAM 政策：
+ 使用者定義 [Lambda 函數](lambda-functions.md)存取 AWS 服務的許可。
+ [連接器](connectors.md)存取 AWS 服務的許可。
+ [串流管理員](stream-manager.md)將串流匯出至 AWS IoT Analytics 和 Kinesis Data Streams 的許可。
+ 允許 [CloudWatch 記錄](greengrass-logs-overview.md)的許可。

下列各節說明如何在 AWS 管理主控台 或 中連接或分離 Greengrass 群組角色 AWS CLI。
+ [管理群組角色 (主控台)](#manage-group-role-console)
+ [管理群組角色 (CLI)](#manage-group-role-cli)

**注意**  
除了授權從 Greengrass 核心存取的群組角色之外，您還可以指派允許 代表您 AWS IoT Greengrass 存取 AWS 資源的 [Greengrass 服務角色](service-role.md)。

## 管理 Greengrass 群組角色 (主控台)
<a name="manage-group-role-console"></a>

您可以使用 AWS IoT 主控台執行下列角色管理任務：
+ [尋找您的 Greengrass 群組角色](#get-group-role-console)
+ [新增或變更 Greengrass 群組角色](#add-or-change-group-role-console)
+ [移除 Greengrass 群組角色](#remove-group-role-console)

**注意**  
登入主控台的使用者必須具有管理角色的許可。

 

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

請依照下列步驟尋找連接到 Greengrass 群組的角色。

1. <a name="console-gg-groups"></a>在 AWS IoT 主控台導覽窗格的**管理**下，展開 **Greengrass 裝置**，然後選擇**群組 (V1)**。

1. <a name="group-choose-target-group"></a>選擇目標群組。

1. <a name="shared-group-settings"></a>在群組組態頁面上，選擇**檢視設定**。

如果角色已連接至群組，則會顯示在**群組角色**下。

 

### 新增或變更 Greengrass 群組角色 (主控台)
<a name="add-or-change-group-role-console"></a>

請依照下列步驟，從 中選擇 AWS 帳戶 要新增至 Greengrass 群組的 IAM 角色。

群組角色具有下列需求：
+ AWS IoT Greengrass 定義為信任的實體。
+ 連接到角色的許可政策必須將許可授予群組中 Lambda 函數和連接器以及 Greengrass 系統元件所需的 AWS 資源。

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

使用 IAM 主控台來建立和設定角色及其許可。如需建立允許存取 Amazon DynamoDB 資料表的範例角色的步驟，請參閱 [設定群組角色](config-iam-roles.md)。如需一般步驟，請參閱《*IAM 使用者指南*》中的[為 AWS 服務建立角色 （主控台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)。

 

設定角色之後，請使用 AWS IoT 主控台將角色新增至群組。

**注意**  
只有為群組選擇角色時，才需要此程序。變更目前選取之群組角色的許可後，不需要此程序。

1. <a name="console-gg-groups"></a>在 AWS IoT 主控台導覽窗格的**管理**下，展開 **Greengrass 裝置**，然後選擇**群組 (V1)**。

1. <a name="group-choose-target-group"></a>選擇目標群組。

1. <a name="shared-group-settings"></a>在群組組態頁面上，選擇**檢視設定**。

1. 在**群組角色**下，選擇新增或變更角色：
   + 若要新增角色，請選擇**關聯角色**，然後從角色清單中選擇您的角色。這些是您 中 AWS IoT Greengrass 將 AWS 帳戶 定義為信任實體的角色。
   + 若要選擇不同的角色，請選擇**編輯角色**，然後從角色清單中選擇您的角色。

1. 選擇**儲存**。

 

### 移除 Greengrass 群組角色 (主控台)
<a name="remove-group-role-console"></a>

請依照下列步驟來分開 Greengrass 群組的角色。

1. <a name="console-gg-groups"></a>在 AWS IoT 主控台導覽窗格的**管理**下，展開 **Greengrass 裝置**，然後選擇**群組 (V1)**。

1. <a name="group-choose-target-group"></a>選擇目標群組。

1. <a name="shared-group-settings"></a>在群組組態頁面上，選擇**檢視設定**。

1. 在**群組角色**下，選擇**取消關聯角色**。

1. 在確認對話方塊中，選擇**取消關聯角色**。此步驟會從群組移除角色，但不會刪除角色。如果您想要刪除角色，請使用 IAM 主控台。

## 管理 Greengrass 群組角色 (CLI)
<a name="manage-group-role-cli"></a>

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

 

### 取得 Greengrass 群組角色 (CLI)
<a name="get-group-role"></a>

請依照下列步驟來了解 Greengrass 群組是否具有相關聯的角色。

1. <a name="cli-list-groups"></a>從群組清單中取得目標群組的 ID。

   ```
   aws greengrass list-groups
   ```

   以下是 `list-groups` 回應範例。回應中的每個群組都包含 `Id` 屬性。當中包含群組 ID。

   ```
   {
       "Groups": [
           {
               "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
               "Name": "MyFirstGroup",
               "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z",
               "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
               "CreationTimestamp": "2019-11-11T05:47:31.435Z",
               "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE",
               "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE"
           },
           {
               "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
               "Name": "GreenhouseSensors",
               "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z",
               "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
               "CreationTimestamp": "2020-01-07T19:58:36.774Z",
               "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE",
               "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE"
           },
           ...
       ]
   }
   ```

   如需詳細資訊，包括使用 `query` 選項篩選結果的範例，請參閱[取得群組 ID](deployments.md#api-get-group-id)。

1. <a name="cli-list-groups-copy-id"></a>從輸出複製目標群組的 `Id`。

1. 取得群組角色。以目標群組的 ID 取代 *group-id*。

   ```
   aws greengrass get-associated-role --group-id group-id
   ```

   如果角色與您的 Greengrass 群組相關聯，則會傳回下列角色中繼資料。

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

   如果您的群組沒有相關聯的角色，則會傳回下列錯誤。

   ```
   An error occurred (404) when calling the GetAssociatedRole operation: You need to attach an IAM role to this deployment group.
   ```

 

### 建立 Greengrass 群組角色 (CLI)
<a name="create-group-role"></a>

請依照下列步驟建立角色，並將其與 Greengrass 群組產生關聯。

**使用 IAM 建立群組角色**

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

------
#### [ Linux, macOS, or Unix ]

   ```
   aws iam create-role --role-name MyGreengrassGroupRole --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:/greengrass/groups/group-id"
           }
         }
       }
     ]
   }'
   ```

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

   ```
   aws iam create-role --role-name MyGreengrassGroupRole --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:/greengrass/groups/group-id\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
   ```

------

1. 從輸出中的角色中繼資料，複製角色 ARN。您使用 ARN 將角色與您的帳戶相關聯。

1. 將受管或內嵌政策連接至角色，以支援您的商業案例。例如，如果使用者定義的 Lambda 函數從 Amazon S3 讀取，您可以將 `AmazonS3ReadOnlyAccess`受管政策連接至角色。

   ```
   aws iam attach-role-policy --role-name MyGreengrassGroupRole --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
   ```

   如果成功，則不會傳回任何回應。

 

**將角色與您的 Greengrass 群組建立關聯**

1. <a name="cli-list-groups"></a>從群組清單中取得目標群組的 ID。

   ```
   aws greengrass list-groups
   ```

   以下是 `list-groups` 回應範例。回應中的每個群組都包含 `Id` 屬性。當中包含群組 ID。

   ```
   {
       "Groups": [
           {
               "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
               "Name": "MyFirstGroup",
               "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z",
               "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
               "CreationTimestamp": "2019-11-11T05:47:31.435Z",
               "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE",
               "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE"
           },
           {
               "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
               "Name": "GreenhouseSensors",
               "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z",
               "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
               "CreationTimestamp": "2020-01-07T19:58:36.774Z",
               "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE",
               "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE"
           },
           ...
       ]
   }
   ```

   如需詳細資訊，包括使用 `query` 選項篩選結果的範例，請參閱[取得群組 ID](deployments.md#api-get-group-id)。

1. <a name="cli-list-groups-copy-id"></a>從輸出複製目標群組的 `Id`。

1. 將角色與叢集相關聯。以目標群組的 ID 取代 *group-id* 並以群組角色的 ARN 取代 *role-arn* 。

   ```
   aws greengrass associate-role-to-group --group-id group-id --role-arn role-arn
   ```

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

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

 

### 移除 Greengrass 群組角色 (CLI)
<a name="remove-group-role"></a>

請依照下列步驟來取消群組角色與 Greengrass 群組的關聯。

1. <a name="cli-list-groups"></a>從群組清單中取得目標群組的 ID。

   ```
   aws greengrass list-groups
   ```

   以下是 `list-groups` 回應範例。回應中的每個群組都包含 `Id` 屬性。當中包含群組 ID。

   ```
   {
       "Groups": [
           {
               "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
               "Name": "MyFirstGroup",
               "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z",
               "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
               "CreationTimestamp": "2019-11-11T05:47:31.435Z",
               "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE",
               "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE"
           },
           {
               "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
               "Name": "GreenhouseSensors",
               "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z",
               "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
               "CreationTimestamp": "2020-01-07T19:58:36.774Z",
               "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE",
               "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE"
           },
           ...
       ]
   }
   ```

   如需詳細資訊，包括使用 `query` 選項篩選結果的範例，請參閱[取得群組 ID](deployments.md#api-get-group-id)。

1. <a name="cli-list-groups-copy-id"></a>從輸出複製目標群組的 `Id`。

1. 取消角色與群組的關聯。以目標群組的 ID 取代 *group-id*。

   ```
   aws greengrass disassociate-role-from-group --group-id group-id
   ```

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

   ```
   {
     "DisassociatedAt": "timestamp"
   }
   ```
**注意**  
如果您不使用群組角色，可以將其刪除。首先，使用 [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) 將每個受管政策從角色中分開，然後使用 [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="group-role-see-also"></a>
+ *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)
  + [新增和移除 IAM 身分許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)
  + [刪除角色或執行個體描述檔](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html)
+ AWS IoT Greengrass 命令*AWS CLI 參考中的 命令*
  + [list-groups](https://docs.aws.amazon.com/cli/latest/reference/greengrass/list-groups.html)
  + [associate-role-to-group](https://docs.aws.amazon.com/cli/latest/reference/greengrass/associate-role-to-group.html)
  + [disassociate-role-from-group](https://docs.aws.amazon.com/cli/latest/reference/greengrass/disassociate-role-from-group.html)
  + [get-associated-role](https://docs.aws.amazon.com/cli/latest/reference/greengrass/get-associated-role.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)