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 服務角色AWS Identity and Access Management(IAM) 服務角色,授權AWS IoT Greengrass以存取資源AWS代您提供服務。這可讓 AWS IoT Greengrass 執行基本任務,例如擷取您的 AWS Lambda 函數及管理 AWS IoT 陰影。

若要允許AWS IoT Greengrass若要存取您的資源,Greengrass 服務角色必須與您的相關聯AWS 帳戶並指定AWS IoT Greengrass作為受信任的實體。角色必須包含 AWSGreengrassResourceAccessRolePolicy受管政策或自訂政策,為AWS IoT Greengrass您使用的功能。本政策由AWS並定義了一組權限AWS IoT Greengrass用於訪問您的AWS的費用。

您可以重複使用相同 Greengrass 服務角色AWS 區域s, 但你必須將其與您的帳戶關聯在每AWS 區域您在哪裡使用AWS IoT Greengrass。如果服務角色不存在於目前的群組部署就會失敗AWS 帳戶和地區。

以下幾節將說明如何在 AWS Management Console 或 AWS CLI 中建立和管理 Greengrass 服務角色 。

注意

除了授權服務層級存取權的服務角色之外,您還可以指派群組角色到一個AWS IoT Greengrass群組。群組角色是一個不同的 IAM 角色,其能夠控制 Greengrass Lambda 函數和連接器如何存取群組中的 Greengrass Lambda 函數和連接器。AWS服務。

管理 Greengrass 服務角色 (主控台)

您可以透過 AWS IoT 主控台,輕鬆管理 Greengrass 服務角色。例如,當您建立或部署 Greengrass 群組時,主控台會檢查您的群組是否為 Greengrass 群組。AWS 帳戶連接至 Greengrass 服務角色AWS 區域目前在主控台中選取的。如果未連接,主控台可以為您建立和設定服務角色。如需詳細資訊,請參閱 建立 Greengrass 服務角色 (主控台)

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

注意

登入主控台的使用者必須擁有可檢視、建立或變更服務角色的許可。

 

尋找您的 Greengrass 服務角色 (主控台)

請使用下列步驟來尋找服務角色AWS IoT Greengrass正在使用目前AWS 區域。

  1. 來自AWS IoT安慰導覽窗格中,選擇設定

  2. 捲動至 Greengrass service role (Greengrass 服務角色) 區段,查看您的服務角色及其政策。

    如果您沒有看到服務角色,您可以讓主控台為您建立或設定服務角色。如需詳細資訊,請參閱 建立 Greengrass 服務角色

 

建立 Greengrass 服務角色 (主控台)

主控台可以為您建立和設定預設的 Greengrass 服務角色。這個角色具有以下屬性:

屬性 數值
名稱 Greengrass_ServiceRole
信任實體 AWS service: greengrass
政策 AWSGreengrassResourceAccessRolePolicy
注意

如果 Greengrass 裝置安裝程式建立了服務角色,則角色名稱為 GreengrassServiceRole_random-string

當您從中建立或部署 Greengrass 群組時AWS IoT主控台,主控台會檢查 Greengrass 服務角色是否與您的相關聯AWS 帳戶中的AWS 區域目前在主控台中選取的。如果沒有關聯,主控台會提示您允許AWS IoT Greengrass讀取和寫入AWS代您提供服務。

如果您授予許可,主控台就會檢查是否為名為的角色Greengrass_ServiceRole存在於AWS 帳戶。

  • 如果該角色存在,主控台就會將該服務角色連接至您的AWS 帳戶在目前AWS 區域。

  • 如果該角色不存在,主控台會建立預設的 Greengrass 服務角色,並將其連接至您的AWS 帳戶在目前AWS 區域。

注意

如果您想要使用自訂角色政策建立服務角色,請使用 IAM 主控台來建立或修改角色。如需詳細資訊,請參閱「」建立角色以將許可委派給AWS服務或者修改角色中的IAM User Guide。請確定角色會授與與您所使用功能和資源之 AWSGreengrassResourceAccessRolePolicy 受管政策相同的許可。我們推薦您也包含aws:SourceArnaws:SourceAccount信任策略中的全局條件上下文鍵,以幫助防止混淆代理人安全問題。條件內容索引鍵會限制存取權,只允許來自指定帳戶和 Greengrass 工作區的要求。如需混淆代理人問題的詳細資訊,請參閱預防跨服務混淆代理人

如果您建立服務角色,請返回AWS IoT主控台並將角色連接至群組。您可以在Greengrass 服務角色在該集團的設定(憑證已建立!) 頁面上的名稱有些許差異。

 

變更 Greengrass 服務角色 (主控台)

使用下列程序,選擇要連接至您的不同 Greengrass 服務角色,以連接至您的AWS 帳戶中的AWS 區域目前在主控台中選取。

  1. 來自AWS IoT安慰導覽窗格中,選擇設定

  2. UnderGreengrass 服務角色,選擇變更角色

    所以此更新 Greengrass 服務角色對話方塊隨即開啟,並顯示您的 IAM 角色AWS 帳戶定義AWS IoT Greengrass作為受信任的實體。

  3. 選擇 Greengrass 服務角色以連接。

  4. 選擇連接角色

注意

若要允許主控台為您建立預設的 Greengrass 服務角色, 請選擇 Create role for me (為我建立角色),而不要從清單中選擇角色。所以此為我建立角色如果角色命名為,則不會出現鏈接Greengrass_ServiceRole在您的AWS 帳戶。

 

分離 Greengrass 服務角色 (主控台)

使用下列程序從您的 Greengrass 服務角色從您的AWS 帳戶中的AWS 區域目前在主控台中選取。這會撤銷的權限AWS IoT Greengrass若要存取AWS目前的服務AWS 區域。

重要

分離服務角色可能會中斷作用中的操作。

  1. 來自AWS IoT安慰導覽窗格中,選擇設定

  2. UnderGreengrass 服務角色,選擇分離角色

  3. 在確認對話方塊中,選擇 Detach (分離)。

注意

如果您不再需要該角色,請在 IAM 主控台中將其刪除。如需詳細資訊,請參閱 IAM 使用者指南中的刪除角色或執行個體描述檔

其他角色可能會允許 AWS IoT Greengrass 存取您的資源。若要尋找允許的所有角色AWS IoT Greengrass在 IAM 主控台中代表您假設許可角色頁面中,尋找包含的角色AWS服務:Greengrass中的信任實體欄位。

管理 Greengrass 服務角色 (CLI)

在以下程序中,我們假設AWS CLI已安裝並配置為使用AWS 帳戶ID。如需詳細資訊,請參閱「」安裝AWS命令列界面設定AWS CLI中的AWS Command Line Interface使用者指南

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

 

取得 Greengrass 服務角色 (CLI)

請使用下列程序,確認一個 Greengrass 服務角色是否與您的相關聯。AWS 帳戶在一個AWS 區域。

  • 取得服務角色。Replace區域與您的AWS 區域(例如,us-west-2

    aws Greengrass get-service-role-for-account --region region

    如果 Greengrass 服務角色已與您的帳戶關聯,會傳回下列的角色中繼資料。

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

    如果沒有傳回角色中繼資料,則您必須建立服務角色 (如果角色不存在),並將該角色與您在的帳戶相關聯AWS 區域。

 

建立 Greengrass 服務角色 (CLI)

請使用下列步驟來建立角色,並將其與您的角色產生關聯AWS 帳戶。

使用 IAM 建立服務角色
  1. 建立包含信任政策,可讓 AWS IoT Greengrass 擔任角色之角色。此範例會建立名為 Greengrass_ServiceRole 的角色,但您可以使用不同的名稱。我們推薦您也包含aws:SourceArnaws:SourceAccount信任策略中的全局條件上下文鍵,以幫助防止混淆代理人安全問題。條件內容索引鍵會限制存取權,只允許來自指定帳戶和 Greengrass 工作區的要求。如需混淆代理人問題的詳細資訊,請參閱預防跨服務混淆代理人

    Linux, macOS, or Unix
    aws iam create-role --role-name Greengrass_ServiceRole --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:*" } } } ] }'
    Windows command prompt
    aws iam create-role --role-name Greengrass_ServiceRole --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:*\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
  2. 從輸出中的角色中繼資料,複製角色 ARN。您使用 ARN 將角色與您的帳戶相關聯。

  3. AWSGreengrassResourceAccessRolePolicy 政策連接到角色。

    aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy
將服務角色與您的AWS 帳戶
  • 將角色與您的帳戶相關聯。Replace角色 arn具有服務角色 ARN區域與您的AWS 區域(例如,us-west-2

    aws greengrass associate-service-role-to-account --role-arn role-arn --region region

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

    { "AssociatedAt": "timestamp" }

 

移除 Greengrass 服務角色 (CLI)

使用下列步驟將 Greengrass 服務角色與您的服務角色取消關聯AWS 帳戶。

  • 將服務角色與您的帳戶取消關聯。Replace區域與您的AWS 區域(例如,us-west-2

    aws greengrass disassociate-service-role-from-account --region region

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

    { "DisassociatedAt": "timestamp" }
    注意

    如果您不使用服務角色,則應該刪除服務角色AWS 區域。首先,使用 delete-role-policyAWSGreengrassResourceAccessRolePolicy 受管政策從角色中分離,然後使用 delete-role 來刪除角色。如需詳細資訊,請參閱 IAM 使用者指南中的刪除角色或執行個體描述檔

另請參閱