設定 Greengrass 核心裝置的 AWS IoT 機群佈建 - AWS IoT Greengrass

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

設定 Greengrass 核心裝置的 AWS IoT 機群佈建

若要使用機群佈建安裝 AWS IoT Greengrass 核心軟體,您必須先在 中設定下列資源 AWS 帳戶。這些資源可讓裝置向 註冊, AWS IoT 並做為 Greengrass 核心裝置運作。請遵循本節中的步驟,在 中建立和設定這些資源 AWS 帳戶。

  • 權杖交換 IAM 角色,核心裝置會使用該角色來授權對 AWS 服務的呼叫。

  • 指向字符交換角色 AWS IoT 的角色別名。

  • (選用) 政策,核心裝置會使用該 AWS IoT 政策來授權對 AWS IoT 和 AWS IoT Greengrass 服務的呼叫。此 AWS IoT 政策必須允許指向字符交換 AWS IoT 角色的角色別名iot:AssumeRoleWithCertificate許可。

    您可以針對機群中的所有核心裝置使用單一 AWS IoT 政策,也可以設定機群佈建範本來為每個核心裝置建立 AWS IoT 政策。

  • AWS IoT 機群佈建範本。此範本必須指定下列項目:

    • AWS IoT 實物資源。您可以指定現有物件群組的清單,以便在元件上線時將元件部署到每個裝置。

    • AWS IoT 政策資源。此資源可以定義下列其中一個屬性:

      • 現有 AWS IoT 政策的名稱。如果您選擇此選項,則您從此範本建立的核心裝置會使用相同的 AWS IoT 政策,而且您可以將其許可管理為機群。

      • AWS IoT 政策文件。如果您選擇此選項,您從此範本建立的每個核心裝置都會使用唯一的 AWS IoT 政策,而且您可以管理每個核心裝置的許可。

    • AWS IoT 憑證資源。此憑證資源必須使用 AWS::IoT::Certificate::Id 參數將憑證連接至核心裝置。如需詳細資訊,請參閱《 AWS IoT 開發人員指南》中的Just-in-time佈建

  • 機群 AWS IoT 佈建範本的佈建宣告憑證和私有金鑰。您可以在製造期間將此憑證和私有金鑰內嵌在裝置中,讓裝置可以在上線時自行註冊和佈建。

    重要

    佈建宣告私有金鑰應隨時受到保護,包括在 Greengrass 核心裝置上。我們建議您使用 Amazon CloudWatch 指標和日誌來監控是否有濫用跡象,例如未經授權使用宣告憑證佈建裝置。如果您偵測到誤用,請停用佈建宣告憑證,使其無法用於裝置佈建。如需詳細資訊,請參閱《 AWS IoT Core 開發人員指南》中的監控 AWS IoT

    為了協助您更妥善地管理在 中自行註冊的裝置數量, AWS 帳戶您可以在建立機群佈建範本時指定預先佈建掛鉤。預先佈建勾點是驗證裝置在註冊期間提供的範本參數的 AWS Lambda 函數。例如,您可以建立預先佈建掛鉤,檢查資料庫的裝置 ID,以確認裝置具有佈建的許可。如需詳細資訊,請參閱《 AWS IoT Core 開發人員指南》中的預先佈建掛鉤。

  • 您連接至佈建宣告憑證 AWS IoT 的政策,允許裝置註冊和使用機群佈建範本。

建立權杖交換角色

Greengrass 核心裝置使用稱為字符交換角色的 IAM 服務角色來授權對 AWS 服務的呼叫。裝置使用 AWS IoT 登入資料提供者來取得此角色的臨時 AWS 登入資料,這可讓裝置與 互動 AWS IoT、將日誌傳送至 Amazon CloudWatch Logs,以及從 Amazon S3 下載自訂元件成品。如需詳細資訊,請參閱授權核心裝置與服務 AWS 互動

您可以使用 AWS IoT 角色別名來設定 Greengrass 核心裝置的字符交換角色。角色別名可讓您變更裝置的字符交換角色,但保持裝置組態相同。如需詳細資訊,請參閱《 AWS IoT Core 開發人員指南》中的授權對 AWS 服務的直接呼叫

在本節中,您會建立權杖交換 IAM 角色和指向角色 AWS IoT 的角色別名。如果您已經設定 Greengrass 核心裝置,您可以使用其字符交換角色和角色別名,而不是建立新的角色。

建立權杖交換 IAM 角色
  1. 建立 IAM 角色,您的裝置可以用作字符交換角色。請執行下列操作:

    1. 建立包含權杖交換角色所需信任政策文件的檔案。

      例如,在以 Linux 為基礎的系統上,您可以執行下列命令來使用 GNU nano 來建立 檔案。

      nano device-role-trust-policy.json

      將下列 JSON 複製到 檔案。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 使用信任政策文件建立權杖交換角色。

      • GreengrassV2TokenExchangeRole 取代為要建立的 IAM 角色名稱。

      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json

      如果請求成功,回應看起來與下列範例類似。

      { "Role": { "Path": "/", "RoleName": "GreengrassV2TokenExchangeRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole", "CreateDate": "2021-02-06T00:13:29+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } }
    3. 建立檔案,其中包含權杖交換角色所需的存取政策文件。

      例如,在以 Linux 為基礎的系統上,您可以執行下列命令來使用 GNU nano 來建立 檔案。

      nano device-role-access-policy.json

      將下列 JSON 複製到 檔案。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
      注意

      此存取政策不允許存取 S3 儲存貯體中的元件成品。若要部署自訂元件來定義 Amazon S3 中的成品,您必須將許可新增至角色,以允許核心裝置擷取元件成品。如需詳細資訊,請參閱允許存取元件成品的 S3 儲存貯體

      如果您還沒有元件成品的 S3 儲存貯體,您可以在建立儲存貯體之後新增這些許可。

    4. 從政策文件中建立 IAM 政策。

      • GreengrassV2TokenExchangeRoleAccess 取代為要建立的 IAM 政策名稱。

      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json

      如果請求成功,回應看起來與下列範例類似。

      { "Policy": { "PolicyName": "GreengrassV2TokenExchangeRoleAccess", "PolicyId": "ANPAZ2YMUHYHACI7C5Z66", "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2021-02-06T00:37:17+00:00", "UpdateDate": "2021-02-06T00:37:17+00:00" } }
    5. 將 IAM 政策連接至權杖交換角色。

      • GreengrassV2TokenExchangeRole 取代為 IAM 角色的名稱。

      • 將政策 ARN 取代為您在上一個步驟中建立的 IAM 政策 ARN。

      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess

      如果請求成功,命令不會有任何輸出。

  2. 建立指向字符交換 AWS IoT 角色的角色別名。

    • 以要建立的角色別名名稱取代 GreengrassCoreTokenExchangeRoleAlias

    • 將角色 ARN 取代為您在上一個步驟中建立的 IAM 角色 ARN。

    aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole

    如果請求成功,回應看起來與下列範例類似。

    { "roleAlias": "GreengrassCoreTokenExchangeRoleAlias", "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" }
    注意

    若要建立角色別名,您必須具有將字符交換 IAM 角色傳遞至 的許可 AWS IoT。如果您在嘗試建立角色別名時收到錯誤訊息,請檢查您的 AWS 使用者是否具有此許可。如需詳細資訊,請參閱《 AWS Identity and Access Management 使用者指南》中的授予使用者將角色傳遞至 AWS 服務的許可

建立 AWS IoT 政策

將裝置註冊為 AWS IoT 物件後,該裝置可以使用數位憑證進行身分驗證 AWS。此憑證包含一或多個政策,這些 AWS IoT 政策定義裝置可與憑證搭配使用的許可。這些政策允許裝置與 AWS IoT 和 通訊 AWS IoT Greengrass。

透過 AWS IoT 機群佈建,裝置會連線至 AWS IoT 以建立和下載裝置憑證。在下一個區段中建立的機群佈建範本中,您可以指定是否將相同的 AWS IoT 政策 AWS IoT 連接到所有裝置的憑證,或為每個裝置建立新的政策。

在本節中,您可以建立 AWS IoT 連接到所有裝置憑證 AWS IoT 的政策。使用此方法,您可以管理所有裝置的許可,做為機群。如果您寧願為每個裝置建立新的 AWS IoT 政策,您可以略過本節,並在定義機群範本時參考其中的政策。

建立 AWS IoT 政策
  • 建立 AWS IoT 政策,定義 Greengrass 核心裝置機群的 AWS IoT 許可。下列政策允許存取所有 MQTT 主題和 Greengrass 操作,因此您的裝置可以使用需要新的 Greengrass 操作的自訂應用程式和未來變更。此政策也允許 iot:AssumeRoleWithCertificate許可,允許您的裝置使用您在上一節中建立的字符交換角色。您可以根據使用案例來限制此政策。如需詳細資訊,請參閱AWS IoT Greengrass V2 核心裝置的最低 AWS IoT 政策

    請執行下列操作:

    1. 建立檔案,其中包含 Greengrass 核心裝置所需的 AWS IoT 政策文件。

      例如,在以 Linux 為基礎的系統上,您可以執行下列命令來使用 GNU nano 來建立 檔案。

      nano greengrass-v2-iot-policy.json

      將下列 JSON 複製到 檔案。

      • iot:AssumeRoleWithCertificate資源取代為您在上一節中建立的角色 AWS IoT 別名 ARN。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect", "greengrass:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" } ] }
    2. 從 AWS IoT 政策文件建立政策。

      • GreengrassV2IoTThingPolicy 取代為要建立的政策名稱。

      aws iot create-policy --policy-name GreengrassV2IoTThingPolicy --policy-document file://greengrass-v2-iot-policy.json

      如果請求成功,回應看起來與下列範例類似。

      { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": [ \"iot:Publish\", \"iot:Subscribe\", \"iot:Receive\", \"iot:Connect\", \"greengrass:*\" ], \"Resource\": [ \"*\" ] }, { \"Effect\": \"Allow\", \"Action\": \"iot:AssumeRoleWithCertificate\", \"Resource\": \"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\" } ] }", "policyVersionId": "1" }

建立機群佈建範本

AWS IoT 機群佈建範本定義如何佈建 AWS IoT 物件、政策和憑證。若要使用機群佈建外掛程式佈建 Greengrass 核心裝置,您必須建立指定下列項目的範本:

  • AWS IoT 實物資源。您可以指定現有物件群組的清單,以便在元件上線時將元件部署到每個裝置。

  • AWS IoT 政策資源。此資源可以定義下列其中一個屬性:

    • 現有 AWS IoT 政策的名稱。如果您選擇此選項,則您從此範本建立的核心裝置會使用相同的 AWS IoT 政策,而且您可以將其許可管理為機群。

    • AWS IoT 政策文件。如果您選擇此選項,您從此範本建立的每個核心裝置都會使用唯一的 AWS IoT 政策,而且您可以管理每個核心裝置的許可。

  • AWS IoT 憑證資源。此憑證資源必須使用 AWS::IoT::Certificate::Id 參數將憑證連接至核心裝置。如需詳細資訊,請參閱《 AWS IoT 開發人員指南》中的Just-in-time佈建

在範本中,您可以指定 將 AWS IoT 物件新增至現有物件群組的清單。當核心裝置 AWS IoT Greengrass 第一次連線至 時,它會針對其成員所在的每個物件群組接收 Greengrass 部署。您可以在物件群組上線時,立即將最新的軟體部署到每個裝置。如需詳細資訊,請參閱將 AWS IoT Greengrass 元件部署至裝置

在佈建裝置 AWS 帳戶 時, AWS IoT 服務需要許可,才能在 中建立和更新 AWS IoT 資源。若要授予 AWS IoT 服務存取權,您可以建立 IAM 角色,並在建立 範本時提供該角色。 AWS IoT 提供受管政策 AWSIoTThingsRegistration,允許存取佈建裝置時 AWS IoT 可能使用的所有許可。您可以使用此受管政策,或建立自訂政策,以縮小受管政策中的使用案例許可範圍。

在本節中,您會建立允許 AWS IoT 為裝置佈建資源的 IAM 角色,並建立使用該 IAM 角色的機群佈建範本。

建立機群佈建範本
  1. 建立 AWS IoT 可在 中佈建資源的 IAM 角色 AWS 帳戶。請執行下列操作:

    1. 建立檔案,其中包含允許 AWS IoT 擔任角色的信任政策文件。

      例如,在以 Linux 為基礎的系統上,您可以執行下列命令來使用 GNU nano 來建立 檔案。

      nano aws-iot-trust-policy.json

      將下列 JSON 複製到 檔案。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 使用信任政策文件建立 IAM 角色。

      • GreengrassFleetProvisioningRole 取代為要建立的 IAM 角色名稱。

      aws iam create-role --role-name GreengrassFleetProvisioningRole --assume-role-policy-document file://aws-iot-trust-policy.json

      如果請求成功,回應看起來與下列範例類似。

      { "Role": { "Path": "/", "RoleName": "GreengrassFleetProvisioningRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole", "CreateDate": "2021-07-26T00:15:12+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } }
    3. 檢閱 AWSIoTThingsRegistration 政策,允許存取佈建裝置時 AWS IoT 可能使用的所有許可。您可以使用此受管政策,或建立自訂政策來定義使用案例的範圍縮減許可。如果您選擇建立自訂政策,請現在執行此操作。

    4. 將 IAM 政策連接至機群佈建角色。

      • GreengrassFleetProvisioningRole 取代為 IAM 角色的名稱。

      • 如果您在上一個步驟中建立了自訂政策,請將政策 ARN 取代為要使用的 IAM 政策 ARN。

      aws iam attach-role-policy --role-name GreengrassFleetProvisioningRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration

      如果請求成功,命令不會有任何輸出。

  2. (選用) 建立預先佈建勾點,這是 AWS Lambda 驗證裝置在註冊期間提供的範本參數的 函數。您可以使用預先佈建掛鉤,以更妥善地控制您 中加入哪些裝置和裝置數量 AWS 帳戶。如需詳細資訊,請參閱《 AWS IoT Core 開發人員指南》中的預先佈建掛鉤。

  3. 建立機群佈建範本。請執行下列操作:

    1. 建立 檔案以包含佈建範本文件。

      例如,在以 Linux 為基礎的系統上,您可以執行下列命令來使用 GNU nano 來建立 檔案。

      nano greengrass-fleet-provisioning-template.json

      撰寫佈建範本文件。您可以從下列範例佈建範本開始,該範本指定 建立具有下列屬性的 AWS IoT 物件:

      • 物件的名稱是您在ThingName範本參數中指定的值。

      • 物件是您在ThingGroupName範本參數中指定的物件群組成員。物件群組必須存在於您的 中 AWS 帳戶。

      • 物件的憑證已GreengrassV2IoTThingPolicy連接名為 AWS IoT 的政策。

      如需詳細資訊,請參閱《 AWS IoT Core 開發人員指南》中的佈建範本

      { "Parameters": { "ThingName": { "Type": "String" }, "ThingGroupName": { "Type": "String" }, "AWS::IoT::Certificate::Id": { "Type": "String" } }, "Resources": { "MyThing": { "OverrideSettings": { "AttributePayload": "REPLACE", "ThingGroups": "REPLACE", "ThingTypeName": "REPLACE" }, "Properties": { "AttributePayload": {}, "ThingGroups": [ { "Ref": "ThingGroupName" } ], "ThingName": { "Ref": "ThingName" } }, "Type": "AWS::IoT::Thing" }, "MyPolicy": { "Properties": { "PolicyName": "GreengrassV2IoTThingPolicy" }, "Type": "AWS::IoT::Policy" }, "MyCertificate": { "Properties": { "CertificateId": { "Ref": "AWS::IoT::Certificate::Id" }, "Status": "Active" }, "Type": "AWS::IoT::Certificate" } } }
      注意

      MyThingMyPolicyMyCertificate 是任意名稱,可識別機群佈建範本中的每個資源規格。 AWS IoT 不會在從範本建立的資源中使用這些名稱。您可以使用這些名稱,或將其取代為值,協助您識別範本中的每個資源。

    2. 從佈建範本文件建立機群佈建範本。

      • GreengrassFleetProvisioningTemplate 取代為要建立的範本名稱。

      • 將範本描述取代為您的範本描述。

      • 將佈建角色 ARN 取代為您先前建立的角色 ARN。

      Linux or Unix
      aws iot create-provisioning-template \ --template-name GreengrassFleetProvisioningTemplate \ --description "A provisioning template for Greengrass core devices." \ --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" \ --template-body file://greengrass-fleet-provisioning-template.json \ --enabled
      Windows Command Prompt (CMD)
      aws iot create-provisioning-template ^ --template-name GreengrassFleetProvisioningTemplate ^ --description "A provisioning template for Greengrass core devices." ^ --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" ^ --template-body file://greengrass-fleet-provisioning-template.json ^ --enabled
      PowerShell
      aws iot create-provisioning-template ` --template-name GreengrassFleetProvisioningTemplate ` --description "A provisioning template for Greengrass core devices." ` --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" ` --template-body file://greengrass-fleet-provisioning-template.json ` --enabled
      注意

      如果您建立了預先佈建掛鉤,請使用 --pre-provisioning-hook引數指定預先佈建掛鉤的 Lambda 函數 ARN。

      --pre-provisioning-hook targetArn=arn:aws:lambda:us-west-2:123456789012:function:GreengrassPreProvisioningHook

      如果請求成功,回應看起來與下列範例類似。

      { "templateArn": "arn:aws:iot:us-west-2:123456789012:provisioningtemplate/GreengrassFleetProvisioningTemplate", "templateName": "GreengrassFleetProvisioningTemplate", "defaultVersionId": 1 }

建立佈建宣告憑證和私有金鑰

宣告憑證是 X.509 憑證,可讓裝置註冊為 AWS IoT 物件,並擷取唯一 X.509 裝置憑證,以用於一般操作。建立宣告憑證後,您連接 AWS IoT 政策,允許裝置使用它來建立唯一的裝置憑證,並使用機群佈建範本佈建。具有宣告憑證的裝置只能使用您在政策中 AWS IoT 允許的佈建範本進行佈建。

在本節中,您可以建立宣告憑證,並將其設定為讓裝置與您在上一節中建立的機群佈建範本搭配使用。

重要

佈建宣告私有金鑰應隨時受到保護,包括在 Greengrass 核心裝置上。我們建議您使用 Amazon CloudWatch 指標和日誌來監控是否有濫用跡象,例如未經授權使用宣告憑證佈建裝置。如果您偵測到誤用,請停用佈建宣告憑證,使其無法用於裝置佈建。如需詳細資訊,請參閱《 AWS IoT Core 開發人員指南》中的監控 AWS IoT

為了協助您更妥善地管理在 中自行註冊的裝置數量, AWS 帳戶您可以在建立機群佈建範本時指定預先佈建掛鉤。預先佈建勾點是驗證裝置在註冊期間提供的範本參數的 AWS Lambda 函數。例如,您可以建立預先佈建掛鉤,檢查資料庫的裝置 ID,以確認裝置具有佈建的許可。如需詳細資訊,請參閱《 AWS IoT Core 開發人員指南》中的預先佈建掛鉤。

建立佈建宣告憑證和私有金鑰
  1. 建立資料夾以下載宣告憑證和私有金鑰。

    mkdir claim-certs
  2. 建立並儲存憑證和私有金鑰,以用於佈建。 AWS IoT 提供由 Amazon 根憑證授權機構 (CA) 簽署的用戶端憑證。

    Linux or Unix
    aws iot create-keys-and-certificate \ --certificate-pem-outfile "claim-certs/claim.pem.crt" \ --public-key-outfile "claim-certs/claim.public.pem.key" \ --private-key-outfile "claim-certs/claim.private.pem.key" \ --set-as-active
    Windows Command Prompt (CMD)
    aws iot create-keys-and-certificate ^ --certificate-pem-outfile "claim-certs/claim.pem.crt" ^ --public-key-outfile "claim-certs/claim.public.pem.key" ^ --private-key-outfile "claim-certs/claim.private.pem.key" ^ --set-as-active
    PowerShell
    aws iot create-keys-and-certificate ` --certificate-pem-outfile "claim-certs/claim.pem.crt" ` --public-key-outfile "claim-certs/claim.public.pem.key" ` --private-key-outfile "claim-certs/claim.private.pem.key" ` --set-as-active

    如果請求成功,回應會包含憑證的相關資訊。儲存憑證的 ARN 以供稍後使用。

  3. 建立並連接 AWS IoT 政策,允許裝置使用憑證來建立唯一的裝置憑證,並使用機群佈建範本佈建。下列政策允許存取裝置佈建 MQTT API。如需詳細資訊,請參閱《 AWS IoT Core 開發人員指南》中的裝置佈建 MQTT API

    請執行下列操作:

    1. 建立檔案,其中包含 Greengrass 核心裝置所需的 AWS IoT 政策文件。

      例如,在以 Linux 為基礎的系統上,您可以執行下列命令來使用 GNU nano 來建立 檔案。

      nano greengrass-provisioning-claim-iot-policy.json

      將下列 JSON 複製到 檔案。

      • 將每個 區域的執行個體取代為您設定機群佈建 AWS 區域 的 。

      • 將每個 account-id 執行個體取代為您的 AWS 帳戶 ID。

      • GreengrassFleetProvisioningTemplate 的每個執行個體取代為您在上一節中建立的機群佈建範本名稱。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/certificates/create/*", "arn:aws:iot:region:account-id:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*" ] }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/certificates/create/*", "arn:aws:iot:region:account-id:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*" ] } ] }
    2. 從 AWS IoT 政策文件建立政策。

      • GreengrassProvisioningClaimPolicy 取代為要建立的政策名稱。

      aws iot create-policy --policy-name GreengrassProvisioningClaimPolicy --policy-document file://greengrass-provisioning-claim-iot-policy.json

      如果請求成功,回應看起來與下列範例類似。

      { "policyName": "GreengrassProvisioningClaimPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassProvisioningClaimPolicy", "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": \"iot:Connect\", \"Resource\": \"*\" }, { \"Effect\": \"Allow\", \"Action\": [ \"iot:Publish\", \"iot:Receive\" ], \"Resource\": [ \"arn:aws:iot:region:account-id:topic/$aws/certificates/create/*\", \"arn:aws:iot:region:account-id:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\" ] }, { \"Effect\": \"Allow\", \"Action\": \"iot:Subscribe\", \"Resource\": [ \"arn:aws:iot:region:account-id:topicfilter/$aws/certificates/create/*\", \"arn:aws:iot:region:account-id:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\" ] } ] }", "policyVersionId": "1" }
  4. 將 AWS IoT 政策連接至佈建宣告憑證。

    • GreengrassProvisioningClaimPolicy 取代為要連接的政策名稱。

    • 將目標 ARN 取代為佈建宣告憑證的 ARN。

    aws iot attach-policy --policy-name GreengrassProvisioningClaimPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4

    如果請求成功,命令不會有任何輸出。

您現在擁有佈建宣告憑證和私有金鑰,裝置可用來向 註冊, AWS IoT 並將自己佈建為 Greengrass 核心裝置。您可以在製造期間將宣告憑證和私有金鑰內嵌在裝置中,或在安裝 AWS IoT Greengrass Core 軟體之前將憑證和金鑰複製到裝置。如需詳細資訊,請參閱使用 AWS IoT 機群佈建安裝 AWS IoT Greengrass 核心軟體