Greengrass 群組角色 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 於 2023 年 6 月 30 日進入延長壽命階段。如需詳細資訊,請參閱 AWS IoT Greengrass V1 維護政策 。在此日期之後, AWS IoT Greengrass V1 不會發佈提供功能、增強功能、錯誤修正或安全修補程式的更新。在 上執行的裝置 AWS IoT Greengrass V1 不會中斷,並會繼續運作和連線至雲端。我們強烈建議您遷移至 AWS IoT Greengrass Version 2,這會新增重要的新功能,並支援其他平台

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

Greengrass 群組角色

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

該角色必須將 AWS IoT Greengrass 定義為受信任的實體。視您的商業案例而定,群組角色可能包含定義下列的 IAM 政策:

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

注意

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

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

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

注意

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

 

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

請遵循下列步驟,尋找連接至 Greengrass 群組的角色。

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

  2. 選擇目標群組。

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

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

 

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

請遵循下列步驟,從AWS 帳戶以新增至 Greengrass 群組。

群組角色具有下列需求:

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

  • 附加至角色的權限原則必須將權限授與您的AWS群組中的 Lambda 函數和連接器,以及 Greengrass 系統元件所需的資源。

注意

我們推薦您也包括aws:SourceArnaws:SourceAccount信任策略中的全局條件上下文鍵,以幫助防止混淆代理人安全問題。條件內容索引鍵會限制存取權,只允許來自指定帳戶和 Greengrass 工作區的要求。如需混淆代理人問題的詳細資訊,請參閱預防跨服務混淆代理人

使用 IAM 主控台建立和設定角色及其許可。如需建立允許存取 Amazon DynamoDB 表格的範例角色的步驟,請參閱設定群組角色。針對一般步驟,請參閱建立的角色AWS服務(控制台)中的IAM User Guide

 

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

注意

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

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

  2. 選擇目標群組。

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

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

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

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

  5. 選擇 Save (儲存)。

 

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

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

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

  2. 選擇目標群組。

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

  4. UNUNER群組角色,選擇解除關聯角色

  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 使用者指南中的刪除角色或執行個體描述檔

另請參閱