Greengrass 群組角色 - AWS IoT Greengrass

支援終止通知:2026 年 10 月 7 日 AWS 將停止 的支援 AWS IoT Greengrass Version 1。2026 年 10 月 7 日之後,您將無法再存取 AWS IoT Greengrass V1 資源。如需詳細資訊,請造訪從 遷移 AWS IoT Greengrass Version 1

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

Greengrass 群組角色

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

角色必須 AWS IoT Greengrass 定義為信任的實體。根據您的業務案例,群組角色可能包含定義下列項目的 IAM 政策:

下列各節說明如何在 AWS Management Console 或 中連接或分離 Greengrass 群組角色 AWS CLI。

注意

除了授權從 Greengrass 核心存取的群組角色之外,您還可以指派允許 代表您 AWS IoT Greengrass 存取 AWS 資源的 Greengrass 服務角色

管理 Greengrass 群組角色 (主控台)

您可以使用 AWS IoT 主控台執行下列角色管理任務:

注意

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

 

尋找您的 Greengrass 群組角色 (主控台)

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

  1. 在 AWS IoT 主控台導覽窗格的管理下,展開 Greengrass 裝置,然後選擇群組 (V1)

  2. 選擇目標群組。

  3. 在群組組態頁面上,選擇檢視設定

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

 

新增或變更 Greengrass 群組角色 (主控台)

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

群組角色具有下列需求:

  • AWS IoT Greengrass 定義為信任的實體。

  • 連接到角色的許可政策必須將許可授予群組中 Lambda 函數和連接器以及 Greengrass 系統元件所需的 AWS 資源。

注意

我們建議您也在信任政策中包含 aws:SourceArnaws:SourceAccount全域條件內容金鑰,以協助防止混淆代理人安全問題。條件內容索引鍵會限制存取,只允許來自指定帳戶和 Greengrass 工作區的請求。如需有關混淆代理人問題的詳細資訊,請參閱 預防跨服務混淆代理人

使用 IAM 主控台來建立和設定角色及其許可。如需建立允許存取 Amazon DynamoDB 資料表的範例角色的步驟,請參閱 設定群組角色。如需一般步驟,請參閱《IAM 使用者指南》中的為 AWS 服務建立角色 (主控台)

 

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

注意

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

  1. 在 AWS IoT 主控台導覽窗格的管理下,展開 Greengrass 裝置,然後選擇群組 (V1)

  2. 選擇目標群組。

  3. 在群組組態頁面上,選擇檢視設定

  4. 群組角色下,選擇新增或變更角色:

    • 若要新增角色,請選擇關聯角色,然後從角色清單中選擇您的角色。這些是您 中 AWS IoT Greengrass 將 AWS 帳戶 定義為信任實體的角色。

    • 若要選擇不同的角色,請選擇編輯角色,然後從角色清單中選擇您的角色。

  5. 選擇儲存

 

移除 Greengrass 群組角色 (主控台)

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

  1. 在 AWS IoT 主控台導覽窗格的管理下,展開 Greengrass 裝置,然後選擇群組 (V1)

  2. 選擇目標群組。

  3. 在群組組態頁面上,選擇檢視設定

  4. 群組角色下,選擇取消關聯角色

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

管理 Greengrass 群組角色 (CLI)

您可以使用 AWS CLI 執行下列角色管理任務:

 

取得 Greengrass 群組角色 (CLI)

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

  1. 從群組清單中取得目標群組的 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

  2. 從輸出複製目標群組的 Id

  3. 取得群組角色。以目標群組的 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)

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

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

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

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

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

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

 

將角色與您的 Greengrass 群組建立關聯
  1. 從群組清單中取得目標群組的 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

  2. 從輸出複製目標群組的 Id

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

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

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

    { "AssociatedAt": "timestamp" }

 

移除 Greengrass 群組角色 (CLI)

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

  1. 從群組清單中取得目標群組的 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

  2. 從輸出複製目標群組的 Id

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

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

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

    { "DisassociatedAt": "timestamp" }
    注意

    如果您不使用群組角色,可以將其刪除。首先,使用 delete-role-policy 將每個受管政策從角色中分開,然後使用 delete-role 來刪除角色。如需詳細資訊,請參閱 IAM 使用者指南中的刪除角色或執行個體描述檔

另請參閱