透過手動佈建資源安裝 AWS IoT Greengrass 核心軟體 - AWS IoT Greengrass

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

透過手動佈建資源安裝 AWS IoT Greengrass 核心軟體

AWS IoT Greengrass 核心軟體包含一個安裝程式,可將您的裝置設定為 Greengrass 核心裝置。若要手動設定裝置,您可以建立要使用的必要 AWS IoT 和 IAM 資源。如果您手動建立這些資源,則不需要提供 AWS 認證給安裝程式。

當您手動安裝 AWS IoT Greengrass Core 軟體時,您也可以將裝置設定為使用網路 Proxy,或在連接埠 443 AWS 上連線。例如,如果您的裝置在防火牆或網路 Proxy 後方執行,您可能需要指定這些組態選項。如需詳細資訊,請參閱 連線至連接埠 443 或透過網路代理

您也可以透過 PKCS #11 介面將 AWS IoT Greengrass 核心軟體設定為使用硬體安全性模組 (HSM)。此功能可讓您安全地儲存私密金鑰和憑證檔案,以免在軟體中公開或複製這些檔案。您可以將私密金鑰和憑證儲存在硬體模組上,例如 HSM、信任平台模組 (TPM) 或其他加密元素。此功能僅適用於 Linux 裝置。如需有關硬體安全性及其使用需求的詳細資訊,請參閱硬體安全整合

重要

在您下載 AWS IoT Greengrass Core 軟體之前,請檢查您的核心裝置是否符合安裝和執行 AWS IoT Greengrass Core 軟體 2.0 的求。

擷取 AWS IoT 端點

取得您的 AWS IoT 端點 AWS 帳戶,並儲存以供稍後使用。您的裝置會使用這些端點連線至 AWS IoT。請執行下列操作:

  1. 取得適 AWS IoT 用於您的 AWS 帳戶.

    aws iot describe-endpoint --endpoint-type iot:Data-ATS

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

    { "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com" }
  2. 取 AWS IoT 得您的 AWS 帳戶.

    aws iot describe-endpoint --endpoint-type iot:CredentialProvider

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

    { "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" }

建立物 AWS IoT 件

AWS IoT 東西代表連接到的設備和邏輯實體 AWS IoT。Greengrass 核心設備是事情。 AWS IoT 當您將裝置註冊為 AWS IoT 物件時,該裝置可以使用數位憑證來進行驗證 AWS。

在本節中,您會建立代表您裝置的 AWS IoT 物件。

若要建立 AWS IoT 物件
  1. 為您的裝置建立項 AWS IoT 目。在您的開發電腦上,執行下列命令。

    • 以要MyGreengrassCore使用的物件名稱取代。這個名字也是您的 Greengrass 核心裝置的名稱。

      注意

      物件名稱不能包含冒號 (:) 字元。

    aws iot create-thing --thing-name MyGreengrassCore

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

    { "thingName": "MyGreengrassCore", "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42" }
  2. (選擇性) 將 AWS IoT 物件新增至新的或現有的物件群組。您可以使用物件群組來管理 Greengrass 核心裝置的叢集。將軟體元件部署到裝置時,您可以鎖定個別裝置或裝置群組。您可以將裝置新增至具有作用中 Greengrass 部署的物群組,以將該物件群組的軟體元件部署至裝置。請執行下列操作:

    1. (選擇性) 建立 AWS IoT 物件群組。

      • 以要建立的物件群組名稱取MyGreengrassCoreGroup代。

        注意

        物件群組名稱不能包含冒號 (:) 字元。

      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup

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

      { "thingGroupName": "MyGreengrassCoreGroup", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa" }
    2. 將 AWS IoT 物件新增至物件群組。

      • 替換MyGreengrassCore為您的 AWS IoT 事物的名稱。

      • MyGreengrassCoreGroup以物件群組的名稱取代。

      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup

      如果請求成功,該命令沒有任何輸出。

建立物件憑證

當您將裝置註冊為 AWS IoT 物件時,該裝置可以使用數位憑證來進行驗證 AWS。此憑證可讓裝置與 AWS IoT 和通訊 AWS IoT Greengrass。

在本節中,您會建立並下載裝置可用來連線的憑證 AWS。

如果您想要將 AWS IoT Greengrass Core 軟體設定為使用硬體安全性模組 (HSM) 來安全地儲存私密金鑰和憑證,請依照下列步驟從 HSM 中的私密金鑰建立憑證。否則,請按照以下步驟在 AWS IoT 服務中創建證書和私鑰。硬體安全性功能僅適用於 Linux 裝置。如需有關硬體安全性及其使用需求的詳細資訊,請參閱硬體安全整合

在 AWS IoT 服務中建立憑證和私密金鑰

若要建立物憑證
  1. 建立下載 AWS IoT 物件憑證的資料夾。

    mkdir greengrass-v2-certs
  2. 建立並下載 AWS IoT 物件的憑證。

    aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile greengrass-v2-certs/device.pem.crt --public-key-outfile greengrass-v2-certs/public.pem.key --private-key-outfile greengrass-v2-certs/private.pem.key

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

    { "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificatePem": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----", "keyPair": { "PublicKey": "-----BEGIN PUBLIC KEY-----\ MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\ MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\ 59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\ hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\ FQIDAQAB\ -----END PUBLIC KEY-----\ ", "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\ key omitted for security reasons\ -----END RSA PRIVATE KEY-----\ " } }

    儲存憑證的 Amazon 資源名稱 (ARN),以便稍後用來設定憑證。

從 HSM 中的私密金鑰建立憑證

注意

此功能適用於 v2.5.3 及更高版 Greeng rass 核組件。 AWS IoT Greengrass 目前在 Windows 核心裝置上不支援此功能。

若要建立物憑證
  1. 在核心裝置上,初始化 HSM 中的 PKCS #11 權杖,然後產生私密金鑰。私密金鑰必須是具有 RSA-2048 金鑰大小 (或更大) 的 RSA 金鑰或 ECC 金鑰。

    注意

    若要搭配 ECC 金鑰使用硬體安全性模組,您必須使用 Greengrass 核心 v2.5.6 或更新版本。

    要使用硬件安全模塊和密碼管理器,您必須使用帶有 RSA 密鑰的硬件安全模塊。

    請查看 HSM 的文件,以了解如何初始化權杖並產生私密金鑰。如果您的 HSM 支援物件 ID,請在產生私密金鑰時指定物件 ID。儲存初始化權杖並產生私密金鑰時指定的插槽 ID、使用者 PIN 碼、物件標籤、物件 ID (如果您的 HSM 使用的話)。稍後當您將物憑證匯入 HSM 並設定 AWS IoT Greengrass Core 軟體時,您可以使用這些值。

  2. 從私密金鑰建立憑證簽署要求 (CSR)。 AWS IoT 使用此 CSR 為您在 HSM 中產生的私密金鑰建立物件憑證。如需如何從私密金鑰建立 CSR 的詳細資訊,請參閱 HSM 的說明文件。CSR 是一個檔案,例如iotdevicekey.csr

  3. 將 CSR 從裝置複製到您的開發電腦。如果在開發電腦和裝置上啟用了 SSH 和 SCP,您可以使用開發電腦上的scp指令來傳輸 CSR。取代您裝置device-ip-address的 IP 位址,並將 ~/iotdevicekey.csr 取代為裝置上 CSR 檔案的路徑。

    scp device-ip-address:~/iotdevicekey.csr iotdevicekey.csr
  4. 在開發電腦上,建立下載物件憑證 AWS IoT 的資料夾。

    mkdir greengrass-v2-certs
  5. 使用 CSR 檔案建立 AWS IoT 物件的憑證,並將其下載到您的開發電腦。

    aws iot create-certificate-from-csr --set-as-active --certificate-signing-request=file://iotdevicekey.csr --certificate-pem-outfile greengrass-v2-certs/device.pem.crt

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

    { "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificatePem": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----" }

    儲存憑證的 ARN,以便稍後用來設定憑證。

配置物憑證

將物憑證附加至您先前建立的 AWS IoT 物件,並將 AWS IoT 原則新增至憑證以定義核心裝置的 AWS IoT 權限。

若要設定物件的憑證
  1. 將憑證附加至物 AWS IoT 件。

    • 替換MyGreengrassCore為您的 AWS IoT 事物的名稱。

    • 將憑證 Amazon 資源名稱 (ARN) 取代為您在上一個步驟中建立的憑證的 ARN。

    aws iot attach-thing-principal --thing-name MyGreengrassCore --principal arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4

    如果請求成功,該命令沒有任何輸出。

  2. 建立並附加 AWS IoT 定義 Greengrass 核心裝置 AWS IoT 權限的原則。下列原則允許存取所有 MQTT 主題和 Greengrass 作業,因此您的裝置可以處理需要新 Greengrass 作業的自訂應用程式和 future 變更。您可以根據您的使用案例來限制此政策。如需詳細資訊,請參閱 AWS IoT Greengrass V2核心裝置的最低AWS IoT原則

    如果您之前已設定過 Greengrass 核心裝置,則可以附加其 AWS IoT 原則,而不是建立新的原則。

    請執行下列操作:

    1. 建立包含 Greengrass 核心裝置所需之 AWS IoT 原則文件的檔案。

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

      nano greengrass-v2-iot-policy.json

      將下列 JSON 複製到檔案中。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect", "greengrass:*" ], "Resource": [ "*" ] } ] }
    2. 從 AWS IoT 策略文件建立策略。

      • 以要建立的策略名稱取代綠ThingPolicy色物聯網

      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\\": [ \\"*\\" ] } ] }", "policyVersionId": "1" }
    3. 將 AWS IoT 原則附加至物 AWS IoT 件的憑證。

      • 以要附加的原則名稱取代綠ThingPolicy色物聯網

      • 將目標 ARN 取代為物件憑證的 AWS IoT ARN。

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

      如果請求成功,該命令沒有任何輸出。

建立權杖交換角色

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

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

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

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

      • TokenExchangeRole以要建立的身分與存取權管理員角色的名稱取代 GreenGrassv2

      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 政策。

      • TokenExchangeRoleAccess以要建立的身分與存取權管理政策的名稱取代 GreenGrassv2

      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 政策附加到權杖交換角色。

      • 以 IAM 角色的名稱取代綠TokenExchangeRole色 V2

      • 將政策 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 服務的權限。

  3. 建立並附加 AWS IoT 原則,讓您的 Greengrass 核心裝置使用角色別名來承擔權杖交換角色。如果您之前已經設定過 Greengrass 核心裝置,則可以附加其角色別名 AWS IoT 原則,而不是建立新的別名原則。請執行下列操作:

    1. (選擇性) 建立包含角色別名所需之 AWS IoT 原則文件的檔案。

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

      nano greengrass-v2-iot-role-alias-policy.json

      將下列 JSON 複製到檔案中。

      • 將資源 ARN 取代為角色別名的 ARN。

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

      • 以要建立的 AWS IoT 策略名稱取GreengrassCoreTokenExchangeRoleAliasPolicy代。

      aws iot create-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --policy-document file://greengrass-v2-iot-role-alias-policy.json

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

      { "policyName": "GreengrassCoreTokenExchangeRoleAliasPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassCoreTokenExchangeRoleAliasPolicy", "policyDocument": "{ \\"Version\\":\\"2012-10-17\\", \\"Statement\\": [ { \\"Effect\\": \\"Allow\\", \\"Action\\": \\"iot:AssumeRoleWithCertificate\\", \\"Resource\\": \\"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\\" } ] }", "policyVersionId": "1" }
    3. 將 AWS IoT 原則附加至物 AWS IoT 件的憑證。

      • 以角GreengrassCoreTokenExchangeRoleAliasPolicy色別名 AWS IoT 原則的名稱取代。

      • 將目標 ARN 取代為物件憑證的 AWS IoT ARN。

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

      如果請求成功,該命令沒有任何輸出。

將憑證下載到裝置

之前,您已將裝置的憑證下載到開發電腦。在本節中,您會將憑證複製到您的核心裝置,以使用用來連線的憑證來設定裝置 AWS IoT。您也會下載 Amazon 根憑證授權單位 (CA) 憑證。如果您使用 HSM,也會將憑證檔案匯入本節中的 HSM。

  • 如果您先前在 AWS IoT 服務中建立了物憑證和私密金鑰,請依照下列步驟下載含有私密金鑰和憑證檔案的憑證。

  • 如果您先前從硬體安全性模組 (HSM) 中的私密金鑰建立物憑證,請依照下列步驟在 HSM 中下載含有私密金鑰和憑證的憑證。

下載包含私密金鑰和憑證檔案的憑證

將憑證下載到裝置
  1. 將 AWS IoT 物件憑證從開發電腦複製到裝置。如果在開發電腦和裝置上啟用了 SSH 和 SCP,您可以使用開發電腦上的scp指令來傳輸憑證。device-ip-address替換為設備的 IP 地址。

    scp -r greengrass-v2-certs/ device-ip-address:~
  2. 在設備上創建綠色根文件夾。您稍後將 AWS IoT Greengrass 核心軟體安裝到此資料夾中。

    Linux or Unix
    • 以要使/greengrass/v2用的資料夾取代。

    sudo mkdir -p /greengrass/v2
    Windows Command Prompt
    • C:\greengrass\v2 取代為要使用的資料夾。

    mkdir C:\greengrass\v2
    PowerShell
    • C:\greengrass\v2 取代為要使用的資料夾。

    mkdir C:\greengrass\v2
  3. (僅限 Linux) 設定 Greengrass 根資料夾的父系權限。

    • /greengrass 替換為根文件夾的父文件夾。

    sudo chmod 755 /greengrass
  4. 將 AWS IoT 物件憑證複製到 Greengrass 根資料夾。

    Linux or Unix
    • /greengrass/v2以 Greengrass 色根資料夾取代。

    sudo cp -R ~/greengrass-v2-certs/* /greengrass/v2
    Windows Command Prompt
    • C:\greengrass\v2 取代為要使用的資料夾。

    robocopy %USERPROFILE%\greengrass-v2-certs C:\greengrass\v2 /E
    PowerShell
    • C:\greengrass\v2 取代為要使用的資料夾。

    cp -Path ~\greengrass-v2-certs\* -Destination C:\greengrass\v2
  5. 下載 Amazon 根憑證授權單位 (CA) 憑證。 AWS IoT 憑證預設會與 Amazon 的根 CA 憑證相關聯。

    Linux or Unix
    sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    Windows Command Prompt (CMD)
    curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    PowerShell
    iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem

在 HSM 中下載具有私密金鑰和憑證的憑證

注意

此功能適用於 v2.5.3 及更高版 Greeng rass 核組件。 AWS IoT Greengrass 目前在 Windows 核心裝置上不支援此功能。

將憑證下載到裝置
  1. 將 AWS IoT 物件憑證從開發電腦複製到裝置。如果在開發電腦和裝置上啟用了 SSH 和 SCP,您可以使用開發電腦上的scp指令來傳輸憑證。device-ip-address替換為設備的 IP 地址。

    scp -r greengrass-v2-certs/ device-ip-address:~
  2. 在設備上創建綠色根文件夾。您稍後將 AWS IoT Greengrass 核心軟體安裝到此資料夾中。

    Linux or Unix
    • 以要使/greengrass/v2用的資料夾取代。

    sudo mkdir -p /greengrass/v2
    Windows Command Prompt
    • C:\greengrass\v2 取代為要使用的資料夾。

    mkdir C:\greengrass\v2
    PowerShell
    • C:\greengrass\v2 取代為要使用的資料夾。

    mkdir C:\greengrass\v2
  3. (僅限 Linux) 設定 Greengrass 根資料夾的父系權限。

    • /greengrass 替換為根文件夾的父文件夾。

    sudo chmod 755 /greengrass
  4. 將物憑證檔案匯入 HSM。~/greengrass-v2-certs/device.pem.crt請查看 HSM 的說明文件,以了解如何將憑證匯入其中。使用先前在 HSM 中產生私密金鑰的相同權杖、插槽識別碼、使用者 PIN 碼、物件標籤和物件 ID (如果您的 HSM 使用的話) 匯入憑證。

    注意

    如果您先前產生的私密金鑰不含物件 ID,且憑證具有物件 ID,請將私密金鑰的物件 ID 設定為與憑證相同的值。請查看 HSM 的文件,以了解如何設定私密金鑰物件的物件 ID。

  5. (選擇性) 刪除物憑證檔案,使其僅存在於 HSM 中。

    rm ~/greengrass-v2-certs/device.pem.crt
  6. 下載 Amazon 根憑證授權單位 (CA) 憑證。 AWS IoT 憑證預設會與 Amazon 的根 CA 憑證相關聯。

    Linux or Unix
    sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    Windows Command Prompt (CMD)
    curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    PowerShell
    iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem

設定裝置環境

請依照本節中的步驟設定 Linux 或 Windows 裝置作為 AWS IoT Greengrass 核心裝置使用。

設定裝置

若要設定下列項目的 Linux 設備 AWS IoT Greengrass V2
  1. 安裝 Java 執行階段, AWS IoT Greengrass 核心軟體需要執行。我們建議您使用 Amazon CorrettoOpenJDK 長期支持版本。需要版本 8 或更高版本。以下命令向您展示如何在設備上安裝 OpenJDK。

    • 針對 Debian 為基礎或 Ubuntu 為基礎的發行版本:

      sudo apt install default-jdk
    • 針對 Red Hat 為基礎的發行版本:

      sudo yum install java-11-openjdk-devel
    • 針對 Amazon Linux 2:

      sudo amazon-linux-extras install java-openjdk11
    • 對於 Amazon

      sudo dnf install java-11-amazon-corretto -y

    安裝完成時,請執行下列命令以確認 Java 是否在 Linux 裝置上執行。

    java -version

    此指令會列印在裝置上執行的 Java 版本。例如,在基於 Debian 的發行版上,輸出可能類似於以下示例。

    openjdk version "11.0.9.1" 2020-11-04
    OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
    OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
  2. (選擇性) 建立在裝置上執行元件的預設系統使用者和群組。您也可以選擇讓 AWS IoT Greengrass Core 軟體安裝程式在安裝期間使用安裝程式引數建立此使用者和群組。--component-default-user如需詳細資訊,請參閱 安裝器引數

    sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group
  3. 確認執行 AWS IoT Greengrass Core 軟體的使用者 (通常root) 具有sudo與任何使用者和任何群組一起執行的權限。

    1. 執行下列命令以開啟/etc/sudoers檔案。

      sudo visudo
    2. 確認使用者的權限看起來像下列範例。

      root ALL=(ALL:ALL) ALL
  4. (選擇性) 若要執行容器化 Lambda 函數,您必須啟用 cgroup v1,並且必須啟用並掛接記憶體和裝置 cgroup。如果您不打算執行容器化 Lambda 函數,則可以略過此步驟。

    若要啟用這些 cgroups 選項,請使用下列 Linux 核心參數來啟動裝置。

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

    如需有關檢視和設定裝置核心參數的資訊,請參閱作業系統和開機載入程式的說明文件。依照指示永久設定核心參數。

  5. 依照中的需求清單所指示,在您的裝置上安裝所有其他必要的相依性裝置要求

設定視窗裝置

注意

此功能適用於 v2.5.0 及更高版 Greeng rass 核組件。

若要設定視窗裝置 AWS IoT Greengrass V2
  1. 安裝 Java 執行階段, AWS IoT Greengrass 核心軟體需要執行。我們建議您使用 Amazon CorrettoOpenJDK 長期支持版本。需要版本 8 或更高版本。

  2. 檢查系統變數 PATH 上是否可用 Java,如果沒有,則加入它。此 LocalSystem 帳戶會執行 AWS IoT Greengrass 核心軟體,因此您必須將 Java 新增至系統變數 PATH,而非使用者的 PATH 使用者變數。請執行下列操作:

    1. 按視窗鍵開啟開始功能表。

    2. 鍵入environment variables以從開始功能表搜尋系統選項。

    3. 在開始功能表搜尋結果中,選擇 [編輯系統環境變數] 以開啟 [系統屬性] 視窗。

    4. 選擇環境變數... 以開啟 [環境變數] 視窗。

    5. 在 [系統變數] 下,選取 [路徑],然後選擇 [編輯]。在 「編輯」環境變數視窗中,您可以在不同的行上檢視每個路徑。

    6. 檢查 Java 安裝bin資料夾的路徑是否存在。路徑看起來可能類似下列範例。

      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
    7. 如果路徑中缺少 Java 安裝的bin資料夾,請選擇 [增] 加入,然後選擇 [確定]

  3. 以系統管理員身分開啟 Windows 命令提示字元 (cmd.exe)。

  4. 在 Windows 裝置上的 LocalSystem 帳戶中建立預設使用者。以安全密碼取代密碼。

    net user /add ggc_user password
    提示

    視您的 Windows 組態而定,使用者的密碼可能會設定為在 future 的某個日期到期。為確保您的 Greengrass 應用程式繼續運作,請追蹤密碼何時到期,並在密碼到期之前進行更新。您也可以將使用者的密碼設定為永不過期。

    • 若要檢查使用者及其密碼何時到期,請執行下列命令。

      net user ggc_user | findstr /C:expires
    • 若要將使用者的密碼設定為永不過期,請執行下列命令。

      wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
    • 如果您使用的是 Windows 10 或更新版本,而該wmic命令已被取代,請執行下列 PowerShell 命令。

      Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
  5. 在設備上從 Microsoft 下載並安裝該PsExec實用程序

  6. 使用此 PsExec 公用程式將預設使用者的使用者名稱和密碼儲存在 LocalSystem 帳戶的認證管理員執行個體中。以您先前設定的使用者密碼取代密碼。

    psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password

    如果打PsExec License Agreement開,請選Accept擇同意許可證並運行命令。

    注意

    在 Windows 裝置上, LocalSystem 帳戶會執行 Greengrass 核心,而且您必須使用公用 PsExec 程式將預設使用者資訊儲存在帳戶中。 LocalSystem 使用認證管理員應用程式會將此資訊儲存在目前登入使用者的 Windows 帳戶中,而非 LocalSystem 帳戶中。

下載 AWS IoT Greengrass 核心軟體

您可以從下列位置下載最新版本的 AWS IoT Greengrass Core 軟體:

注意

您可以從下列位置下載特定版本的 AWS IoT Greengrass Core 軟體。將版本取代為要下載的版本。

https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
若要下載 AWS IoT Greengrass 核心軟體
  1. 在您的核心裝置上,將 AWS IoT Greengrass Core 軟體下載至名為greengrass-nucleus-latest.zip.

    Linux or Unix
    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
    Windows Command Prompt (CMD)
    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
    PowerShell
    iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip

    下載此軟體,即表示您同意 Greengrass 核心軟體授權合約之規定。

  2. (選擇性) 驗證 Greengrass 核軟體簽章

    注意

    此功能適用於 Greengrass 核 2.9.5 及更高版本。

    1. 使用以下命令來驗證 Greengrass 核工件的簽名:

      Linux or Unix
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      Windows Command Prompt (CMD)

      根據您安裝的 JDK 版本,檔案名稱可能會有所不同。以您安裝的 JDK 版本取代jdk17.0.6_10

      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      PowerShell

      根據您安裝的 JDK 版本,檔案名稱可能會有所不同。以您安裝的 JDK 版本取代jdk17.0.6_10

      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
    2. jarsigner調用產生指示驗證結果的輸出。

      1. 如果 Greengrass 核 zip 文件簽名,則輸出包含以下語句:

        jar verified.
      2. 如果 Greengrass 核壓縮檔未簽署,則輸出會包含下列陳述式:

        jar is unsigned.
    3. 如果您提供了 Jarsigner -certs -verbose 選項-verify和選項,則輸出也會包含詳細的簽署者憑證資訊。

  3. 將 AWS IoT Greengrass Core 軟件解壓縮到設備上的文件夾。以您要使用的資料夾取GreengrassInstaller代。

    Linux or Unix
    unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
    Windows Command Prompt (CMD)
    mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
    PowerShell
    Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller rm greengrass-nucleus-latest.zip
  4. (選擇性) 執行下列命令以查看 AWS IoT Greengrass Core 軟體的版本。

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
重要

如果您安裝的 Greengrass 核心版本早於 v2.4.0,請不要在安裝核心軟體之後移除此資料夾。 AWS IoT Greengrass AWS IoT Greengrass 核心軟件使用此文件夾中的文件運行。

如果您下載了最新版本的軟體,請安裝 v2.4.0 或更新版本,而且您可以在安裝 AWS IoT Greengrass Core 軟體之後移除此資料夾。

安裝 AWS IoT Greengrass 核心軟體

使用指定下列動作的引數執行安裝程式:

  • 從指定使用您先前建立的 AWS 資源和憑證的部分組態檔進行安裝。 AWS IoT Greengrass 核心軟體使用組態檔案來指定裝置上每個 Greengrass 元件的組態。安裝程式會從您提供的部分組態檔案建立完整的組態檔案。

  • 指定使用ggc_user系統使用者在核心裝置上執行軟體元件。在 Linux 裝置上,此指令也會指定使用ggc_group系統群組,而安裝程式會為您建立系統使用者和群組。

  • 將 AWS IoT Greengrass Core 軟體設定為在開機時執行的系統服務。在 Linux 設備上,這需要系統初始化系統。

    重要

    在 Windows 核心裝置上,您必須將 AWS IoT Greengrass 核心軟體設定為系統服務。

如需可指定之引數的詳細資訊,請參閱安裝器引數

注意

如果您在記憶體有限的裝置 AWS IoT Greengrass 上執行,您可以控制 AWS IoT Greengrass Core 軟體使用的記憶體數量。若要控制記憶體分配,您可以在核心元件的jvmOptions組態參數中設定 JVM 堆積大小選項。如需詳細資訊,請參閱 使用 JVM 選項控制內存分配

  • 如果您先前在 AWS IoT 服務中建立了物憑證和私密金鑰,請依照下列步驟使用私密金鑰和憑證檔案安裝 AWS IoT Greengrass Core 軟體。

  • 如果您先前從硬體安全性模組 (HSM) 中的私密金鑰建立物憑證,請依照下列步驟在 HSM 中使用私密金鑰和憑證安裝 AWS IoT Greengrass Core 軟體。

使用私鑰和證書文件安裝 AWS IoT Greengrass Core 軟件

若要安裝 AWS IoT Greengrass 核心軟體
  1. 檢查 AWS IoT Greengrass 核心軟體的版本。

    • 以包含軟體的資料夾路徑取GreengrassInstaller代。

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
  2. 使用文字編輯器建立名為提供config.yaml給安裝程式的組態檔案。

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

    nano GreengrassInstaller/config.yaml

    將下列 YAML 內容複製到檔案中。此部分配置文件指定系統參數和 Greengrass 核參數。

    --- system: certificateFilePath: "/greengrass/v2/device.pem.crt" privateKeyPath: "/greengrass/v2/private.pem.key" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" rootpath: "/greengrass/v2" thingName: "MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.12.3" configuration: awsRegion: "us-west-2" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"

    然後,執行下列動作:

    • /greengrass/v2以 Greengrass 根資料夾取代的每個執行個體。

    • MyGreengrassCore以 AWS IoT 物件的名稱取代。

    • 以 AWS IoT Greengrass 核心軟體的版本取代 2.12.3

    • us-west-2 取代為您建立資源的 AWS 區域 位置。

    • 取代GreengrassCoreTokenExchangeRoleAlias為權杖交換角色別名的名稱。

    • iotDataEndpoint以您的 AWS IoT 資料端點取代。

    • iotCredEndpoint以您的 AWS IoT 認證端點取代。

    注意

    在此組態檔案中,您可以自訂其他核心組態選項,例如要使用的連接埠和網路 Proxy,如下列範例所示。如需詳細資訊,請參閱 Greengrass 核組態。

    --- system: certificateFilePath: "/greengrass/v2/device.pem.crt" privateKeyPath: "/greengrass/v2/private.pem.key" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" rootpath: "/greengrass/v2" thingName: "MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.12.3" configuration: awsRegion: "us-west-2" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" mqtt: port: 443 greengrassDataPlanePort: 443 networkProxy: noProxyAddresses: "http://192.168.0.1,www.example.com" proxy: url: "https://my-proxy-server:1100" username: "Mary_Major" password: "pass@word1357"
  3. 執行安裝程式,並指--init-config定提供組態檔案。

    • 使用 Greengrass 根資料夾取代/greengrass/v2C:\greengrass\v2

    • 將的每個執行個GreengrassInstaller體取代為解壓縮安裝程式的資料夾。

    Linux or Unix
    sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \ -jar ./GreengrassInstaller/lib/Greengrass.jar \ --init-config ./GreengrassInstaller/config.yaml \ --component-default-user ggc_user:ggc_group \ --setup-system-service true
    Windows Command Prompt (CMD)
    java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^ -jar ./GreengrassInstaller/lib/Greengrass.jar ^ --init-config ./GreengrassInstaller/config.yaml ^ --component-default-user ggc_user ^ --setup-system-service true
    PowerShell
    java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ` -jar ./GreengrassInstaller/lib/Greengrass.jar ` --init-config ./GreengrassInstaller/config.yaml ` --component-default-user ggc_user ` --setup-system-service true
    重要

    在 Windows 核心裝置上,您必須指--setup-system-service true定將 AWS IoT Greengrass 核心軟體設定為系統服務。

    如果您指定--setup-system-service true,安裝程式會列印是Successfully set up Nucleus as a system service否將軟體設定為系統服務並執行。否則,如果安裝程式成功安裝軟體,則不會輸出任何訊息。

    注意

    當您執行沒有deploy-dev-tools引數的安裝程式時,您無法使用--provision true引數來部署本機開發工具。如需直接在裝置上部署 Greengrass CLI 的相關資訊,請參閱。綠色命令行界面

  4. 檢視根資料夾中的檔案,以確認安裝。

    Linux or Unix
    ls /greengrass/v2
    Windows Command Prompt (CMD)
    dir C:\greengrass\v2
    PowerShell
    ls C:\greengrass\v2

    如果安裝成功,則根資料夾會包含數個資料夾config,例如packages、和logs

在 HSM 中使用私密金鑰和憑證安裝 AWS IoT Greengrass Core 軟體

注意

此功能適用於 v2.5.3 及更高版 Greeng rass 核組件。 AWS IoT Greengrass 目前在 Windows 核心裝置上不支援此功能。

若要安裝 AWS IoT Greengrass 核心軟體
  1. 檢查 AWS IoT Greengrass 核心軟體的版本。

    • 以包含軟體的資料夾路徑取GreengrassInstaller代。

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
  2. 若要讓 AWS IoT Greengrass 核心軟體使用 HSM 中的私密金鑰和憑證,請在安裝 Core 軟體時安裝 PKCS #11 提供者元件。 AWS IoT Greengrass PKCS #11 提供者元件是您可以在安裝期間設定的外掛程式。您可以從下列位置下載最新版本的 PKCS #11 提供者元件:

    將 PKCS #11 提供者外掛程式下載至名為的檔案。aws.greengrass.crypto.Pkcs11Provider.jar以您要使用的資料夾取GreengrassInstaller代。

    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar > GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar

    下載此軟體,即表示您同意 Greengrass 核心軟體授權合約之規定。

  3. 使用文字編輯器建立名為提供config.yaml給安裝程式的組態檔案。

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

    nano GreengrassInstaller/config.yaml

    將下列 YAML 內容複製到檔案中。此部分組態檔案會指定系統參數、Greengrass 核參數和 PKCS #11 提供者參數。

    --- system: certificateFilePath: "pkcs11:object=iotdevicekey;type=cert" privateKeyPath: "pkcs11:object=iotdevicekey;type=private" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" rootpath: "/greengrass/v2" thingName: "MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.12.3" configuration: awsRegion: "us-west-2" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" aws.greengrass.crypto.Pkcs11Provider: configuration: name: "softhsm_pkcs11" library: "/usr/local/Cellar/softhsm/2.6.1/lib/softhsm/libsofthsm2.so" slot: 1 userPin: "1234"

    然後,執行下列動作:

    • 將 PKCS #11 URI 中的每個 iotdevicekey 執行個體取代為您建立私密金鑰並匯入憑證的物件標籤。

    • /greengrass/v2以 Greengrass 根資料夾取代的每個執行個體。

    • MyGreengrassCore以 AWS IoT 物件的名稱取代。

    • 以 AWS IoT Greengrass 核心軟體的版本取代 2.12.3

    • us-west-2 取代為您建立資源的 AWS 區域 位置。

    • 取代GreengrassCoreTokenExchangeRoleAlias為權杖交換角色別名的名稱。

    • iotDataEndpoint以您的 AWS IoT 資料端點取代。

    • iotCredEndpoint以您的 AWS IoT 認證端點取代。

    • aws.greengrass.crypto.Pkcs11Provider元件的組態參數取代為核心裝置上 HSM 組態的值。

    注意

    在此組態檔案中,您可以自訂其他核心組態選項,例如要使用的連接埠和網路 Proxy,如下列範例所示。如需詳細資訊,請參閱 Greengrass 核組態。

    --- system: certificateFilePath: "pkcs11:object=iotdevicekey;type=cert" privateKeyPath: "pkcs11:object=iotdevicekey;type=private" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" rootpath: "/greengrass/v2" thingName: "MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.12.3" configuration: awsRegion: "us-west-2" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" mqtt: port: 443 greengrassDataPlanePort: 443 networkProxy: noProxyAddresses: "http://192.168.0.1,www.example.com" proxy: url: "https://my-proxy-server:1100" username: "Mary_Major" password: "pass@word1357" aws.greengrass.crypto.Pkcs11Provider: configuration: name: "softhsm_pkcs11" library: "/usr/local/Cellar/softhsm/2.6.1/lib/softhsm/libsofthsm2.so" slot: 1 userPin: "1234"
  4. 執行安裝程式,並指--init-config定提供組態檔案。

    • /greengrass/v2以 Greengrass 色根資料夾取代。

    • 將的每個執行個GreengrassInstaller體取代為解壓縮安裝程式的資料夾。

    sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \ -jar ./GreengrassInstaller/lib/Greengrass.jar \ --trusted-plugin ./GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar \ --init-config ./GreengrassInstaller/config.yaml \ --component-default-user ggc_user:ggc_group \ --setup-system-service true
    重要

    在 Windows 核心裝置上,您必須指--setup-system-service true定將 AWS IoT Greengrass 核心軟體設定為系統服務。

    如果您指定--setup-system-service true,安裝程式會列印是Successfully set up Nucleus as a system service否將軟體設定為系統服務並執行。否則,如果安裝程式成功安裝軟體,則不會輸出任何訊息。

    注意

    當您執行沒有deploy-dev-tools引數的安裝程式時,您無法使用--provision true引數來部署本機開發工具。如需直接在裝置上部署 Greengrass CLI 的相關資訊,請參閱。綠色命令行界面

  5. 檢視根資料夾中的檔案,以確認安裝。

    Linux or Unix
    ls /greengrass/v2
    Windows Command Prompt (CMD)
    dir C:\greengrass\v2
    PowerShell
    ls C:\greengrass\v2

    如果安裝成功,則根資料夾會包含數個資料夾config,例如packages、和logs

如果您將 AWS IoT Greengrass Core 軟體安裝為系統服務,安裝程式會為您執行該軟體。否則,您必須手動運行該軟件。如需詳細資訊,請參閱 執行AWS IoT Greengrass核心軟體

如需有關如何設定及使用軟體的詳細資訊 AWS IoT Greengrass,請參閱下列內容: