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 政策:
使用者定義的許可Lambda 函數存取AWS服務。
讓連接器存取 AWS 服務的許可。
的許可串流管理員將串流匯出至AWS IoT Analytics和 Kinesis Data Streams
允許 CloudWatch 記錄的許可。
下列各節說明如何在 AWS Management Console 或 AWS CLI 中連接或分開 Greengrass 群組角色。
注意
除了授權從 Greengrass 核心存取權的群組角色之外,您還可以指派Greengrass 服務角色允許AWS IoT Greengrass存取AWS代表您的資源。
管理 Greengrass 群組角色 (主控台)
您可以使用AWS IoT下列角色管理任務的主控台:
注意
登入主控台的使用者必須具有管理角色的許可。
尋找您的 Greengrass 群組角色 (主控台)
請遵循下列步驟,尋找連接至 Greengrass 群組的角色。
在 中AWS IoT主控台導覽窗格, 下Manage (管理),展開Greengrass 群,然後選擇群組 (V1)。
選擇目標群組。
如果角色已連接至群組,則該角色會顯示在群組角色。
新增或變更 Greengrass 群組角色 (主控台)
請遵循下列步驟,從AWS 帳戶以新增至 Greengrass 群組。
群組角色具有下列需求:
-
將 AWS IoT Greengrass 定義為受信任的實體。
-
附加至角色的權限原則必須將權限授與您的AWS群組中的 Lambda 函數和連接器,以及 Greengrass 系統元件所需的資源。
注意
我們推薦您也包括aws:SourceArn
和aws:SourceAccount
信任策略中的全局條件上下文鍵,以幫助防止混淆代理人安全問題。條件內容索引鍵會限制存取權,只允許來自指定帳戶和 Greengrass 工作區的要求。如需混淆代理人問題的詳細資訊,請參閱預防跨服務混淆代理人。
使用 IAM 主控台建立和設定角色及其許可。如需建立允許存取 Amazon DynamoDB 表格的範例角色的步驟,請參閱設定群組角色。針對一般步驟,請參閱建立的角色AWS服務(控制台)中的IAM User Guide。
設定角色之後,使用AWS IoT主控台,將角色新增至群組。
注意
只有為群組選擇角色時,才需要此程序。變更目前選取之群組角色的許可後,不需要此程序。
在 中AWS IoT主控台導覽窗格, 下Manage (管理),展開Greengrass 群,然後選擇群組 (V1)。
選擇目標群組。
-
UNUNER群組角色,選擇新增或變更角色:
-
若要新增角色,請選擇關聯角色,然後從角色清單中選取您的角色。這些是你的角色AWS 帳戶定義AWS IoT Greengrass作為受信任的實體。
-
若要選擇不同的角色,請選擇編輯角色,然後從角色清單中選取您的角色。
-
-
選擇 Save (儲存)。
移除 Greengrass 群組角色 (主控台)
請依照下列步驟來分開 Greengrass 群組的角色。
在 中AWS IoT主控台導覽窗格, 下Manage (管理),展開Greengrass 群,然後選擇群組 (V1)。
選擇目標群組。
-
UNUNER群組角色,選擇解除關聯角色。
-
在確認對話方塊中,選擇解除關聯角色。此步驟會從群組移除角色,但不會刪除角色。如果您要刪除角色,請使用 IAM 主控台。
管理 Greengrass 群組角色 (CLI)
您可以使用 AWS CLI 進行下列角色管理任務 :
取得 Greengrass 群組角色 (CLI)
請依照下列步驟來了解 Greengrass 群組是否具有相關聯的角色。
-
從群組清單中取得目標群組的 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。 -
從輸出複製目標群組的
Id
。 -
取得群組角色。以目標群組的 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 建立群組角色
-
建立包含信任政策,可讓 AWS IoT Greengrass 擔任角色之角色。此範例會建立名為
MyGreengrassGroupRole
的角色,但您可以使用不同的名稱。我們推薦您也包括aws:SourceArn
和aws:SourceAccount
信任策略中的全局條件上下文鍵,以幫助防止混淆代理人安全問題。條件內容索引鍵會限制存取權,只允許來自指定帳戶和 Greengrass 工作區的要求。如需混淆代理人問題的詳細資訊,請參閱預防跨服務混淆代理人。 -
從輸出中的角色中繼資料,複製角色 ARN。您使用 ARN 將角色與您的帳戶相關聯。
-
將受管或內嵌政策連接至角色,以支援您的商業案例。例如,如果使用者定義的 Lambda 函數從 Amazon S3 讀取,您可以連接
AmazonS3ReadOnlyAccess
受管政策的角色。aws iam attach-role-policy --role-name MyGreengrassGroupRole --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
如果成功,則不會傳回任何回應。
將角色與您的 Greengrass 群組建立關聯
-
從群組清單中取得目標群組的 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。 -
從輸出複製目標群組的
Id
。 -
將角色與叢集相關聯。以目標群組的 ID 取代
group-id
並以群組角色的 ARN 取代role-arn
。aws greengrass associate-role-to-group --group-id
group-id
--role-arnrole-arn
如果成功,會傳回下列回應。
{ "AssociatedAt": "
timestamp
" }
移除 Greengrass 群組角色 (CLI)
請依照下列步驟來取消群組角色與 Greengrass 群組的關聯。
-
從群組清單中取得目標群組的 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。 -
從輸出複製目標群組的
Id
。 -
取消角色與群組的關聯。以目標群組的 ID 取代
group-id
。aws greengrass disassociate-role-from-group --group-id
group-id
如果成功,會傳回下列回應。
{ "DisassociatedAt": "
timestamp
" }注意
如果您不使用群組角色,可以將其刪除。首先,使用 delete-role-policy 將每個受管政策從角色中分開,然後使用 delete-role 來刪除角色。如需詳細資訊,請參閱 IAM 使用者指南中的刪除角色或執行個體描述檔。
另請參閱
-
Related topics in the IAM User Guide
-
AWS IoT Greengrass中的指令AWS CLI命令參考
-
中的 IAM 命令AWS CLI命令參考