Greengrass 服務角色 - AWS IoT Greengrass

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

Greengrass 服務角色

Greengrass 服務角色是一種 AWS Identity and Access Management (IAM) 服務角色,可授權代表AWS IoT Greengrass您從服AWS務存取資源。此角色可讓AWS IoT Greengrass您驗證用戶端裝置的身分識別,並管理核心裝置連線資訊。

注意

AWS IoT Greengrass V1也會使用此角色來執行基本工作。如需詳細資訊,請參閱開發人員指AWS IoT Greengrass V1南中的 Greengrass 服務角色

若AWS IoT Greengrass要允許存取您的資源,Greengrass 服務角色必須與您的關聯,AWS 帳戶並指定AWS IoT Greengrass為受信任的實體。角色必須包含AWSGreengrassResourceAccessRolePolicy受管理的原則或自訂原則,該原則可針對您使用的AWS IoT Greengrass功能定義對等權限。 AWS維護此策略,該策略定義了AWS IoT Greengrass用於存取AWS資源的一組權限。如需詳細資訊,請參閱 AWS 受管政策:AWSGreengrassResourceAccessRolePolicy

您可以在各處重複使用相同的 Greengrass 服務角色AWS 區域,但您必須在每個使用位置將AWS 區域其與您的帳戶建立關聯。AWS IoT Greengrass如果未在目前設定服務角色AWS 區域,核心裝置將無法驗證用戶端裝置,而且無法更新連線資訊。

下列各節說明如何使用或建立及管理 Greengrass 服務角色。AWS Management Console AWS CLI

注意

除了授權服務層級存取的服務角色之外,您還可以將權杖交換角色指派給 Greengrass 核心裝置。權杖交換角色是個別的 IAM 角色,可控制核心裝置上 Greengrass 元件和 Lambda 函數存取服務的方式。AWS如需詳細資訊,請參閱 授權核心裝置與 AWS 服務互動

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

您可以透過 AWS IoT 主控台,輕鬆管理 Greengrass 服務角色。例如,當您為核心裝置設定用戶端裝置探索時,主控台會檢查您AWS 帳戶是否已連接至目前的 Greengrass 服務角色。AWS 區域如果未連接,主控台可以為您建立和設定服務角色。如需詳細資訊,請參閱 建立 Greengrass 服務角色 (主控台)

您可以使用主控台執行下列角色管理工作:

注意

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

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

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

  1. 導覽至 AWS IoT主控台

  2. 在導覽窗格中,選擇設定

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

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

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

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

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

如果您使用AWS IoT Greengrass V1裝置設定指令碼建立此角色,則角色名稱為GreengrassServiceRole_random-string

當您為核心裝置設定用戶端裝置探索時,主控台會檢查 Greengrass 服務角色是否與目前裝置AWS 帳戶相關聯。AWS 區域如果沒有,主控台會提示您AWS IoT Greengrass允許代表您讀取和寫入AWS服務。

如果您授與權限,控制台會檢查您的AWS 帳戶. Greengrass_ServiceRole

  • 如果角色存在,則主控台會將服務角色附加到目前AWS 帳戶的服務角色AWS 區域。

  • 如果角色不存在,控制台會創建一個默認的 Greengrass 服務角色,並將其附加到當前的AWS 帳戶。AWS 區域

注意

如果要使用自訂角色政策建立服務角色,請使用 IAM 主控台建立或修改角色。如需詳細資訊,請參閱《IAM 使用者指南》中的建立角色以委派許可給AWS服務或修改角色。請確定角色會授與與您所使用功能和資源之 AWSGreengrassResourceAccessRolePolicy 受管政策相同的許可。我們建議您也在信任原則中加入aws:SourceArnaws:SourceAccount全域條件內容金鑰,以協助避免混淆的副安全性問題。條件內容索引鍵會限制存取權,只允許來自指定帳戶和 Greengrass 工作區的要求。如需有關混淆代理人問題的詳細資訊,請參閱 預防跨服務混淆代理人

如果您建立服務角色,請返回主AWS IoT控台並將角色附加到您的AWS 帳戶. 您可以在「設置」頁面上的 Greengrass 服務角色下執行此操作。

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

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

  1. 導覽至 AWS IoT主控台

  2. 在導覽窗格中,選擇設定

  3. 在「服務角色」下,選擇「變更角色」。

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

  4. 選擇要附加的 Greengrass 色服務角色。

  5. 選擇 [附加角色]。

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

使用下列程序,將 Greengrass 服務角色從目前AWS帳戶中卸離。AWS 區域這會撤銷存AWS IoT Greengrass取目前AWSAWS 區域服務的權限。

重要

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

  1. 導覽至 AWS IoT主控台

  2. 在導覽窗格中,選擇設定

  3. 在 [Greengrass 服務角色] 下,選擇 [卸離角色]。

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

注意

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

其他角色可能會允許 AWS IoT Greengrass 存取您的資源。若要尋找允許AWS IoT Greengrass代表您採用權限的所有角色,請在 IAM 主控台的 [角色] 頁面上,在 [受信任的實體] 欄中尋找包含AWS服務:greengrass 的角色。

管理綠色服務角色 (CLI)

在下列程序中,我們假設AWS Command Line Interface已安裝並設定為使用您的AWS 帳戶. 如需詳細資訊,請參閱《AWS Command Line Interface使用指南》AWS CLI中的〈安裝、更新AWS CLI和解除安裝〉和〈定〉

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

取得 Greengrass 服務角色 (CLI)

請使用下列程序來瞭解 Greengrass 服務角色是否與中的AWS 帳戶. AWS 區域

  • 取得服務角色。將區域取代為您的 AWS 區域 (例如,us-west-2)。

    aws greengrassv2 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 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": { "ArnLike": { "aws:SourceArn": "arn:aws:greengrass:region:account-id:*" }, "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }'
    Windows Command Prompt (CMD)
    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\"}}}]}"
    PowerShell
    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 帳戶
  • 將角色與您的帳戶相關聯。將角色 arn 替換為服務角色 ARN 和區域為您的AWS 區域(例如,)。us-west-2

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

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

    { "associatedAt": "timestamp" }

移除 Greengrass 服務角色 (CLI)

請使用下列步驟取消 Greengrass 服務角色與您的. AWS 帳戶

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

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

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

    { "disassociatedAt": "timestamp" }
    注意

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

另請參閱