Greengrass 服務角色 - AWS IoT Greengrass

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

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 資源的一組許可。

您可以在多個 AWS 區域內重複使用相同的 Greengrass 服務角色,但此角色必須與您在每個使用在 AWS IoT Greengrass 所在之 AWS 區域的帳戶相關聯。如果服務角色不存在於目前的 AWS 帳戶和區域,群組部署就會失敗。

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

注意

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

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

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

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

注意

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

 

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

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

  1. AWS IoT 主控台的導覽窗格中,選擇 Settings (設定)

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

    
              顯示於 AWS IoT 主控台 內 Settings (設定) 頁面上的 Greengrass 服務角色。

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

 

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

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

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

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

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

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

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

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

注意

如果您想要使用自訂角色政策建立服務角色,請使用 IAM 主控台來建立或修改角色。如需詳細資訊,請參閱 IAM 使用者指南中的建立角色以將許可委派給 AWS 服務修改角色。請確定角色會授與與您所使用功能和資源之 AWSGreengrassResourceAccessRolePolicy 受管政策相同的許可。

如果您建立服務角色,請返回 AWS IoT 主控台 並將角色連接至群組。您可以在群組 Settings (設定) 頁面的 Greengrass service role (Greengrass 服務角色) 下執行此動作。

 

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

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

  1. AWS IoT 主控台的導覽窗格中,選擇 Settings (設定)

  2. Greengrass service role (Greengrass 服務角色) 下,選擇 Choose different role (選擇不同角色)

    在您的 AWS 帳戶中,依信任實體身分定義 AWS IoT Greengrass 的 IAM 角色會出現在 Choose the Greengrass service role (選擇 Greengrass 服務角色) 對話方塊中。

  3. 選擇您的 Greengrass 服務角色。

  4. 選擇 Save (儲存)。

注意

若要允許主控台為您建立預設的 Greengrass 服務角色, 請選擇 Create role for me (為我建立角色),而不要從清單中選擇角色。如果名為 Greengrass_ServiceRole 的角色是在您的 AWS 帳戶之下,這時將不會顯示 Create role for me (為我建立角色) 連結。

 

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

使用以下程序,選擇要與您在主控台中目前選取 AWS 區域的 AWS 帳號分離的 Greengrass 服務角色。這會撤銷 AWS IoT Greengrass 存取存取 AWS 區域內 AWS 服務的許可。

重要

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

  1. AWS IoT 主控台的導覽窗格中,選擇 Settings (設定)

  2. Greengrass service role (Greengrass 服務角色) 下,選擇 Detach (分離)

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

注意

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

其他角色可能會允許 AWS IoT Greengrass 存取您的資源。若要尋找所有允許 AWS IoT Greengrass 代表您授予許可的所有角色, 請在 IAM 主控台的 Roles (角色) 頁面上,從 Trusted entities (信任實體) 欄中尋找包含 AWS service: greengrass 的角色。

管理 Greengrass 服務角色 (CLI)

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

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

 

取得 Greengrass 服務角色 (CLI)

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

  • 取得服務角色。將 region 換成您的 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 的角色,但您可以使用不同的名稱。

    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" } ] }'
    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\"}]}"
  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 帳戶相關聯

  • 將角色與您的帳戶相關聯。將 role-arn 取代為服務角色 ARN,將 region 取代為您的 AWS 區域 (例如 us-west-2)。

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

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

    { "AssociatedAt": "timestamp" }

 

移除 Greengrass 服務角色 (CLI)

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

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

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

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

    { "DisassociatedAt": "timestamp" }
    注意

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

另請參閱