設定AWS IoT適用於 Greengrass 核心裝置的叢集佈建 - AWS IoT Greengrass

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

設定AWS IoT適用於 Greengrass 核心裝置的叢集佈建

安裝AWS IoT Greengrass具備叢集佈建的核心軟體,您必須先設定下列資源AWS 帳戶。這些資源可讓裝置自行註冊AWS IoT並作為格林格拉斯核心設備運行。按照本節中的步驟進行一次,即可在AWS 帳戶。

  • 令牌交換 IAM 角色,核心設備用於授權呼叫AWS服務。

  • 一個AWS IoT指向權杖交換角色的角色別名。

  • (選擇性) 一個AWS IoT原則,核心裝置用來授權呼叫AWS IoT和AWS IoT Greengrass服務。這個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憑證資源。此憑證資源必須使用AWS::IoT::Certificate::Id將憑證附加至核心裝置的參數。如需詳細資訊,請參閱〈Just-in-time 服務開通AWS IoT開發者指南

  • 一個AWS IoT佈建叢集佈建範本的宣告憑證和私密金鑰。您可以在製造過程中將此憑證和私密金鑰嵌入裝置中,以便裝置在上線時可以自行註冊和佈建。

    重要

    佈建宣告私密金鑰應始終受到保護,包括在 Greengrass 核心裝置上。我們建議您使用亞馬遜 CloudWatch 用於監控濫用指標的指標和日誌,例如未經授權使用索賠證書來佈建設備。如果您偵測到誤用,請停用佈建宣告憑證,使其無法用於裝置佈建。如需詳細資訊,請參閱〈監控AWS IoTAWS IoT Core開發者指南

    為了幫助您更好地管理在您的設備中註冊的設備數量以及哪些設備AWS 帳戶,您可以在建立叢集佈建範本時指定預先佈建勾點。預先佈建勾點是AWS Lambda驗證設備在註冊過程中提供的模板參數的功能。例如,您可以建立預先佈建勾點,以根據資料庫檢查裝置 ID,以確認裝置是否具有佈建權限。如需詳細資訊,請參閱〈預先佈建掛接AWS IoT Core開發者指南

  • 一個AWS IoT您附加至佈建宣告憑證的原則,以允許裝置註冊並使用叢集佈建範本。

建立權杖交換角色

核心裝置使用 IAM 服務角色,稱為令牌交換角色,授權呼叫AWS服務。該設備使用AWS IoT憑據提供者獲得臨時AWS此角色的認證,可讓裝置與之互動AWS IoT,將日誌發送到亞馬遜 CloudWatch 從 Amazon S3 記錄和下載自訂元件成品。如需詳細資訊,請參閱授權核心設備與AWS服務

您使用AWS IoT 角色別名以設定 Greengrass 核心裝置的權杖交換角色。角色別名可讓您變更裝置的 Token 交換角色,但保持裝置設定不變。如需詳細資訊,請參閱〈授權直接呼叫AWS服務AWS IoT Core開發者指南

在本節中,您將創建令牌交換 IAM 角色和AWS IoT指向角色的角色別名。如果您已經設置了 Greengrass 核心設備,則可以使用其令牌交換角色和角色別名,而不是創建新的。

若要建立權杖交換 IAM 角色
  1. 建立 IAM 角色,您的裝置可用作權杖交換角色。請執行下列動作:

    1. 建立包含 Token 交換角色所需之信任原則文件的檔案。

      例如,在 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. 使用信任原則文件建立權杖交換角色。

      • 取代格林格拉斯 V2TokenExchangeRole使用要創建的 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 政策。

      • 取代格林格拉斯 V2TokenExchangeRoleAccess使用要建立的 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 政策附加到權杖交換角色。

      • 取代格林格拉斯 V2TokenExchangeRole使用 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服務AWS Identity and Access Management使用者指南

建立 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定義的策略AWS IoT您的 Greengrass 核心設備群的權限。下列原則允許存取所有 MQTT 主題和 Greengrass 作業,因此您的裝置可以處理需要新 Greengrass 作業的自訂應用程式和未來變更。此政策也允許iot:AssumeRoleWithCertificate權限,允許您的設備使用您在上一節中創建的令牌交換角色。您可以根據您的使用案例來限制此政策。如需詳細資訊,請參閱AWS IoT Greengrass V2核心裝置的最低AWS IoT原則

    請執行下列動作:

    1. 建立包含AWS IoTGreengrass 核心裝置所需的政策文件。

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

      nano greengrass-v2-iot-policy.json

      將下列 JSON 複製到檔案中。

      • 更換iot:AssumeRoleWithCertificate具有 ARN 的資源AWS IoT您在上一節中創建的角色別名。

      { "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政策文件中的政策。

      • 取代格雷格拉斯 V2IoTThingPolicy使用要建立的策略名稱。

      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將憑證附加至核心裝置的參數。如需詳細資訊,請參閱〈Just-in-time 服務開通AWS IoT開發者指南

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

該AWS IoT服務需要權限才能創建和更新AWS IoT在您的資源AWS 帳戶佈建裝置時。給AWS IoT服務存取權時,您可以建立 IAM 角色,並在建立範本時提供該角色。AWS IoT提供受管理的策略,AWSIoTThingsRegistration,允許訪問所有權限AWS IoT可能會在佈建裝置時使用。您可以使用此受管理的原則,或建立自訂原則,針對您的使用案例在受管理原則中設定權限的範圍。

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

若要建立叢集佈建範本
  1. 建立一個 IAM 角色AWS IoT可以假設在您的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 帳戶。

      • 事情的證書有AWS IoT具名的策略GreengrassV2IoTThingPolicy附加到它。

      如需詳細資訊,請參閱〈佈建範本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" } } }
      注意

      MyThing,MyPolicy,以及MyCertificate是識別叢集佈建範本中每個資源規格的任意名稱。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參數。

      --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 核心裝置上。我們建議您使用亞馬遜 CloudWatch 用於監控濫用指標的指標和日誌,例如未經授權使用索賠證書來佈建設備。如果您偵測到誤用,請停用佈建宣告憑證,使其無法用於裝置佈建。如需詳細資訊,請參閱〈監控AWS IoTAWS IoT Core開發者指南

為了幫助您更好地管理在您的設備中註冊的設備數量以及哪些設備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。如需詳細資訊,請參閱〈裝置佈建 MQTT 應用程式介面AWS IoT Core開發者指南

    請執行下列動作:

    1. 建立包含AWS IoTGreengrass 核心裝置所需的政策文件。

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

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

      將下列 JSON 複製到檔案中。

      • 取代的每個執行個體區域與AWS 區域您設定叢集佈建的位置。

      • 取代的每個執行個體帳戶識別碼與您的AWS 帳戶識別碼。

      • 取代的每個執行個體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核心軟體。如需詳細資訊,請參閱 透過AWS IoT叢集佈建安裝AWS IoT Greengrass核心軟體