Greengrass 群組角色 - AWS IoT Greengrass

若我們提供該指南英語版本的翻譯,在有任何牴觸的狀況下請以英文版本的指南為主。其透過機器翻譯提供翻譯。

Greengrass 群組角色

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

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

下列各節說明如何在 AWS 管理主控台 或 AWS CLI 中連接或分開 Greengrass 群組角色。

注意

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

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

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

注意

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

 

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

請依照下列步驟來尋找連接到 Greengrass 群組的角色。

  1. 在 AWS IoT 主控台中,選擇 Greengrass,然後選擇 Groups (群組)

  2. 選擇目標群組。

  3. 請在群組組態頁面選擇設定

    
                群組設定頁面。

如果角色已連接至群組,則該角色會顯示在 Group Role (群組角色) 下方。

 

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

請遵循下列步驟,從您的 AWS 帳戶中選擇要新增至 Greengrass 群組的 IAM 角色。

群組角色具有下列需求:

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

  • 連接至角色的許可政策必須將許可授予群組中的 Lambda 函數和連接器,以及 Greengrass 系統元件所需的 AWS 資源。

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

 

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

注意

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

  1. 在 AWS IoT 主控台中,選擇 Greengrass,然後選擇 Groups (群組)

  2. 選擇目標群組。

  3. 請在群組組態頁面選擇設定

    
                群組設定頁面。
  4. Group Role (群組角色) 下,選擇新增或變更角色:

    • 若要新增角色,請選擇 Add Role (新增角色)

    • 若要選擇不同的角色,請選擇角色的省略符號 (...),然後選擇 Edit IAM Role (編輯 IAM 角色)

  5. Your Group’s IAM Role (您群組的 IAM 角色) 頁面上,從角色清單中選擇目標角色,然後選擇 Save (儲存)。這些是 AWS 帳戶中將 AWS IoT Greengrass 定義為受信任實體的角色。

 

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

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

  1. 在 AWS IoT 主控台中,選擇 Greengrass,然後選擇 Groups (群組)

  2. 選擇目標群組。

  3. 請在群組組態頁面選擇設定

    
                群組設定頁面。
  4. Group Role (群組角色) 下,選擇角色的省略符號 (...),然後選擇 Remove IAM Role (移除 IAM 角色)

    此步驟會從群組移除角色,但不會刪除角色。如果您要刪除角色,請使用 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 的角色,但您可以使用不同的名稱。

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

另請參閱