支援終止通知: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 政策:
使用者定義 Lambda 函數存取 AWS 服務的許可。
連接器存取 AWS 服務的許可。
串流管理員將串流匯出至 AWS IoT Analytics 和 Kinesis Data Streams 的許可。
允許 CloudWatch 記錄的許可。
下列各節說明如何在 AWS Management Console 或 中連接或分離 Greengrass 群組角色 AWS CLI。
注意
除了授權從 Greengrass 核心存取的群組角色之外,您還可以指派允許 代表您 AWS IoT Greengrass 存取 AWS 資源的 Greengrass 服務角色。
管理 Greengrass 群組角色 (主控台)
您可以使用 AWS IoT 主控台執行下列角色管理任務:
注意
登入主控台的使用者必須具有管理角色的許可。
尋找您的 Greengrass 群組角色 (主控台)
請依照下列步驟尋找連接到 Greengrass 群組的角色。
在 AWS IoT 主控台導覽窗格的管理下,展開 Greengrass 裝置,然後選擇群組 (V1)。
選擇目標群組。
如果角色已連接至群組,則會顯示在群組角色下。
新增或變更 Greengrass 群組角色 (主控台)
請依照下列步驟,從 中選擇 AWS 帳戶 要新增至 Greengrass 群組的 IAM 角色。
群組角色具有下列需求:
-
AWS IoT Greengrass 定義為信任的實體。
-
連接到角色的許可政策必須將許可授予群組中 Lambda 函數和連接器以及 Greengrass 系統元件所需的 AWS 資源。
注意
我們建議您也在信任政策中包含 aws:SourceArn和 aws:SourceAccount全域條件內容金鑰,以協助防止混淆代理人安全問題。條件內容索引鍵會限制存取,只允許來自指定帳戶和 Greengrass 工作區的請求。如需有關混淆代理人問題的詳細資訊,請參閱 預防跨服務混淆代理人。
使用 IAM 主控台來建立和設定角色及其許可。如需建立允許存取 Amazon DynamoDB 資料表的範例角色的步驟,請參閱 設定群組角色。如需一般步驟,請參閱《IAM 使用者指南》中的為 AWS 服務建立角色 (主控台)。
設定角色之後,請使用 AWS IoT 主控台將角色新增至群組。
注意
只有為群組選擇角色時,才需要此程序。變更目前選取之群組角色的許可後,不需要此程序。
在 AWS IoT 主控台導覽窗格的管理下,展開 Greengrass 裝置,然後選擇群組 (V1)。
選擇目標群組。
-
在群組角色下,選擇新增或變更角色:
-
若要新增角色,請選擇關聯角色,然後從角色清單中選擇您的角色。這些是您 中 AWS IoT Greengrass 將 AWS 帳戶 定義為信任實體的角色。
-
若要選擇不同的角色,請選擇編輯角色,然後從角色清單中選擇您的角色。
-
-
選擇儲存。
移除 Greengrass 群組角色 (主控台)
請依照下列步驟來分開 Greengrass 群組的角色。
在 AWS IoT 主控台導覽窗格的管理下,展開 Greengrass 裝置,然後選擇群組 (V1)。
選擇目標群組。
-
在群組角色下,選擇取消關聯角色。
-
在確認對話方塊中,選擇取消關聯角色。此步驟會從群組移除角色,但不會刪除角色。如果您想要刪除角色,請使用 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-idgroup-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-idgroup-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-idgroup-id如果成功,會傳回下列回應。
{ "DisassociatedAt": "timestamp" }注意
如果您不使用群組角色,可以將其刪除。首先,使用 delete-role-policy 將每個受管政策從角色中分開,然後使用 delete-role 來刪除角色。如需詳細資訊,請參閱 IAM 使用者指南中的刪除角色或執行個體描述檔。
另請參閱
-
IAM 使用者指南中的相關主題
-
AWS IoT Greengrass 命令AWS CLI 參考中的 命令
-
《 命令AWS CLI 參考》中的 IAM 命令