手動リソースプロビジョニングによる AWS IoT Greengrass Core ソフトウェアのインストール - AWS IoT Greengrass

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

手動リソースプロビジョニングによる AWS IoT Greengrass Core ソフトウェアのインストール

AWS IoT Greengrass Core ソフトウェアには、デバイスを Greengrass コアデバイスとしてセットアップするインストーラが含まれています。デバイスを手動でセットアップするには、デバイスが使用するために必要な AWS IoT および IAM リソースを作成します。これらのリソースを手動で作成する場合、インストーラに AWS 認証情報を提供する必要はありません。

AWS IoT Greengrass Core ソフトウェアを手動でインストールする場合、ネットワークプロキシを使用するか、ポート 443 AWS で に接続するようにデバイスを設定することもできます。例えば、デバイスがファイアウォールやネットワークプロキシの背後で稼働している場合、これらの設定オプションの指定が必要な場合があります。詳細については、「ポート 443 での接続またはネットワークプロキシを通じた接続」を参照してください。

#11 インターフェイス を介してハードウェアセキュリティモジュール (HSM) を使用するように AWS IoT Greengrass Core ソフトウェアを設定することもできます。 PKCSこの機能は、プライベートキーと証明書ファイルを安全に保存して、ソフトウェアで公開または複製されないようにします。プライベートキーと証明書は、、トラステッドプラットフォームモジュール (TPM)HSM、または別の暗号化要素などのハードウェアモジュールに保存できます。この機能は、Linux デバイスでのみ利用できます。ハードウェアセキュリティとその使用要件の詳細については、「ハードウェアセキュリティ統合」を参照してください。

重要

AWS IoT Greengrass Core ソフトウェアをダウンロードする前に、コアデバイスが AWS IoT Greengrass Core ソフトウェア v2.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に接続する際に使用できる証明書を作成してダウンロードします。

ハードウェアセキュリティモジュール (HSM) を使用してプライベートキーと証明書を安全に保存するように AWS IoT Greengrass Core ソフトウェアを設定する場合は、 のプライベートキーから証明書を作成するステップに従います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

注記

この機能は、Greengrass nucleus コンポーネントの v2.5.3 以降で使用できます。現在、Windows AWS IoT Greengrass コアデバイスでこの機能をサポートしていません。

モノの証明書を作成するには
  1. コアデバイスで、 で PKCS#11 トークンを初期化しHSM、プライベートキーを生成します。プライベートキーは、RSA-2048 RSAキーサイズ (またはそれ以上) の キーまたは ECCキーである必要があります。

    注記

    ECC キーでハードウェアセキュリティモジュールを使用するには、Greengrass nucleus v2.5.6 以降を使用する必要があります。

    ハードウェアセキュリティモジュールとシークレットマネージャー を使用するには、 RSAキーでハードウェアセキュリティモジュールを使用する必要があります。

    トークンを初期化しHSM、プライベートキーを生成する方法については、 のドキュメントを参照してください。がオブジェクト HSMをサポートしている場合はIDs、プライベートキーの生成時にオブジェクト ID を指定します。トークンを初期化してプライベートキーを生成するときに指定するスロット IDPIN、ユーザー 、オブジェクトラベル、オブジェクト 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. Greengrass コアデバイスの AWS IoT アクセス許可を定義する AWS IoT ポリシーを作成してアタッチします。次のポリシーでは、すべてのMQTTトピックと Greengrass オペレーションへのアクセスを許可しているため、デバイスはカスタムアプリケーションや、新しい Greengrass オペレーションを必要とする将来の変更で動作します。ユースケースに基づいてこのポリシーを制限できます。詳細については、「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 ポリシードキュメントから ポリシーを作成します。

      • 置換 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\\": [ \\"*\\" ] } ] }", "policyVersionId": "1" }
    3. AWS IoT モノの証明書に AWS IoT ポリシーをアタッチします。

      • 置換 GreengrassV2IoTThingPolicy をアタッチするポリシーの名前に置き換えます。

      • ターゲットをモノの証明書ARNの ARNに置き換えます AWS IoT 。

      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 コアデバイスのトークン交換ロールを設定します。ロールエイリアスは、デバイスのトークン交換ロールを変更できるようにしますが、デバイス設定は同じ内容に保たれます。詳細については、「AWS IoT Core デベロッパーガイド」の「AWS サービスへの直接呼び出しを認証する」を参照してください。

このセクションでは、トークン交換IAMロールと AWS IoT 、ロールを指すロールエイリアスを作成します。Greengrass コアデバイスを既に設定している場合、新しく作成せず、トークン交換ロールとロールエイリアスを使用できます。次に、デバイスの AWS IoT モノを設定してそのロールとエイリアスを使用します。

トークン交換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ロールの名前に置き換えます。

      • ポリシーを、前のステップで作成したIAMポリシーARNの ARNに置き換えます。

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

      要求が正常に処理された場合、コマンドは出力されません。

  2. トークン交換 AWS IoT ロールを指す ロールエイリアスを作成します。

    • 置換 GreengrassCoreTokenExchangeRoleAlias は、作成するロールエイリアスの名前で指定します。

    • ロールを、前のステップで作成したIAMロールARNの 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. Greengrass コアデバイスがロールエイリアスを使用してトークン交換ロールを引き受けることを許可する AWS IoT ポリシーを作成してアタッチします。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 ポリシードキュメントから ポリシーを作成します。

      • 置換 GreengrassCoreTokenExchangeRoleAliasPolicy は、作成する AWS IoT ポリシーの名前で指定します。

      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の ARNに置き換えます AWS IoT 。

      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. デバイスに Greengrass ルートフォルダを作成します。後で AWS IoT Greengrass Core ソフトウェアをこのフォルダにインストールします。

    注記

    Windows では、パスの長さは 260 文字に制限されています。Windows を使用している場合は、 C:\greengrass\v2や などのルートフォルダを使用してD:\greengrass\v2、Greengrass コンポーネントのパスを 260 文字の制限未満に保ちます。

    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 ルートフォルダ/greengrass/v2に置き換えます。

    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) certificate. AWS IoT certificates のダウンロードは、デフォルトで 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

注記

この機能は、Greengrass nucleus コンポーネントの v2.5.3 以降で使用できます。現在、Windows AWS IoT Greengrass コアデバイスでこの機能をサポートしていません。

証明書をデバイスにダウンロードするには
  1. 開発用コンピュータからデバイスに AWS IoT モノの証明書をコピーします。開発用コンピュータとデバイスで SSHと SCPが有効になっている場合は、開発用コンピュータで scp コマンドを使用して証明書を転送できます。置換 device-ip-address デバイスの IP アドレス。

    scp -r greengrass-v2-certs/ device-ip-address:~
  2. デバイスに Greengrass ルートフォルダを作成します。後で AWS IoT Greengrass Core ソフトウェアをこのフォルダにインストールします。

    注記

    Windows では、パスの長さは 260 文字に制限されています。Windows を使用している場合は、 C:\greengrass\v2や などのルートフォルダを使用してD:\greengrass\v2、Greengrass コンポーネントのパスを 260 文字の制限未満に保ちます。

    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. モノの証明書ファイル を ~/greengrass-v2-certs/device.pem.crtにインポートしますHSM。証明書をインポートする方法についてはHSM、 のドキュメントを参照してください。HSM 前の でプライベートキーを生成したのと同じトークン、スロット ID、ユーザー PIN、オブジェクトラベル、およびオブジェクト ID ( がHSM使用している場合) を使用して証明書をインポートします。

    注記

    以前にオブジェクト ID なしでプライベートキーを生成し、かつ証明書にオブジェクト ID がある場合、プライベートキーのオブジェクト ID を証明書と同じ値に設定します。プライベートキーオブジェクトのオブジェクト ID を設定する方法については、 のドキュメントHSMを参照してください。

  5. (オプション) モノの証明書ファイルを削除して、 にのみ存在するようにしますHSM。

    rm ~/greengrass-v2-certs/device.pem.crt
  6. Amazon ルート認証局 (CA) certificate. AWS IoT certificates のダウンロードは、デフォルトで 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

デバイス環境をセットアップする

このセクションのステップに従って、 AWS IoT Greengrass コアデバイスとして使用する Linux または Windows デバイスをセットアップします。

Linux デバイスをセットアップする

の Linux デバイスを設定するには AWS IoT Greengrass V2
  1. Core ソフトウェアの実行に必要な Java AWS IoT Greengrass ランタイムをインストールします。Amazon Corretto または OpenJDK 長期サポートバージョンを使用することをお勧めします。バージョン 8 以降が必要です。次のコマンドは、デバイスに Open JDKをインストールする方法を示しています。

    • 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 Linux 2023:

      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. (オプション) デバイスにコンポーネントを実行するデフォルトのシステムユーザーおよびグループを作成します。Core AWS IoT Greengrass ソフトウェアインストーラがインストーラ--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 関数を実行するには、cgroups v1 を有効にし、メモリとデバイスの cgroups を有効にしてマウントする必要があります。コンテナ化された Lambda 関数を実行する予定がない場合、この手順を省略できます。

    これらの cgroups オプションを有効にするには、次の Linux カーネルパラメータを使用してデバイスを起動します。

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

    デバイスのカーネルパラメータを確認および設定するための情報については、オペレーティングシステムおよびブートローダーのドキュメントを参照してください。指示に従って、カーネルパラメータを永続的に設定します。

  5. デバイスの要件 にある要件リストで示されているように、その他の必要となる依存関係をすべてデバイスにインストールします。

Windows デバイスをセットアップする

注記

この機能は、Greengrass nucleus コンポーネントの v2.5.0 以降に利用できます。

の Windows デバイスを設定するには AWS IoT Greengrass V2
  1. Core ソフトウェアの実行に必要な Java AWS IoT Greengrass ランタイムをインストールします。Amazon Corretto または OpenJDK 長期サポートバージョンを使用することをお勧めします。バージョン 8 以降が必要です。

  2. PATH システム変数で Java が使用可能かどうかを確認し、使用できない場合は追加します。 LocalSystem アカウントは AWS IoT Greengrass Core ソフトウェアを実行するため、ユーザーのPATHユーザー変数の代わりに Java をPATHシステム変数に追加する必要があります。以下の操作を実行します。

    1. Windows キーを押してスタートメニューを開きます。

    2. environment variables を入力して、スタートメニューからシステムオプションを検索します。

    3. スタートメニューの検索結果から [Edit the system environment variables] (システム環境変数を編集) をクリックして、[System properties] (システムプロパティ) ウィンドウを開きます。

    4. [Environment variables...] (環境変数...) を選択して、[Environment Variables] (環境可変) ウィンドウを開きます。

    5. [System variables] (システム変数) で、[Path] (パス) 、[Edit] (編集) の順に選択します。[Edit environment variable] (環境変数の編集) ウィンドウでは、個別の行に各パスを表示できます。

    6. Java インストールの bin フォルダへのパスが存在しているかを確認します。このパスは、次の例のように表示されます。

      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
    7. [Path] (パス) で Java インストールの bin フォルダが で見つからない場合は、[New] (新規) を選択してこれを追加した上で、[OK] を選択します。

  3. 管理者として Windows コマンドプロンプト cmd.exe を開きます。

  4. Windows デバイスの LocalSystem アカウントにデフォルトユーザーを作成します。置換 password 安全なパスワードを使用します。

    net user /add ggc_user password
    ヒント

    Windows の構成によっては、ユーザーのパスワードの期限切れが、将来の日付に設定されている場合があります。Greengrass アプリケーションの動作を継続させるためには、パスワードの有効期限を追跡し、その期限が切れる前に更新します。ユーザーのパスワードには、期限切れを起こさないような設定も可能です。

    • ユーザーとパスワードの有効期限を確認するには、次のコマンドを実行します。

      net user ggc_user | findstr /C:expires
    • ユーザーのパスワードが期限切れにならないように設定するには、次のコマンドを実行します。

      wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
    • wmic コマンドが非推奨の Windows 10 以降を使用している場合は、次の PowerShell コマンドを実行します。

      Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
  5. Microsoft から PsExecユーティリティをダウンロードしてデバイスにインストールします。

  6. PsExec ユーティリティを使用して、デフォルトユーザーのユーザー名とパスワードを LocalSystem アカウントの Credential Manager インスタンスに保存します。置換 password 以前に設定したユーザーのパスワードを入力します。

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

    PsExec License Agreement が開いたら、Accept を選択し、ライセンスに同意してコマンドを実行します。

    注記

    Windows デバイスでは、 LocalSystem アカウントは Greengrass nucleus を実行します。デフォルトのユーザー情報を LocalSystem アカウントに保存するには、 PsExec ユーティリティを使用する必要があります。Credential Manager アプリケーションを使用すると、この情報は、アカウントではなく、現在ログオンしているユーザーの Windows LocalSystem アカウントに保存されます。

AWS IoT Greengrass Core ソフトウェアをダウンロードする

AWS IoT Greengrass Core ソフトウェアの最新バージョンは、次の場所からダウンロードできます。

注記

AWS IoT Greengrass Core ソフトウェアの特定のバージョンは、次の場所からダウンロードできます。置換 version ダウンロードする バージョン。

https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
AWS IoT Greengrass Core ソフトウェアをダウンロードするには
  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 Core ソフトウェアのライセンス契約に同意したものと見なされます。

  2. (オプション) Greengrass nucleus ソフトウェア署名を確認するには

    注記

    この機能は、Greengrass nucleus バージョン 2.9.5 以降で使用できます。

    1. 以下のコマンドを使用して、Greengrass nucleus アーティファクトの署名を確認します。

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

      ファイル名は、インストールするJDKバージョンによって異なる場合があります。置換 jdk17.0.6_10 インストールしたJDKバージョンを使用します。

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

      ファイル名は、インストールするJDKバージョンによって異なる場合があります。置換 jdk17.0.6_10 インストールしたJDKバージョンを使用します。

      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
    2. jarsigner が起動すると、検証結果を示す出力が得られます。

      1. Greengrass nucleus の zip ファイルに署名されると、出力に以下のような文が表示されます:

        jar verified.
      2. Greengrass nucleus の zip ファイルに署名されないと、出力に以下のような文が表示されます:

        jar is unsigned.
    3. Jarsigner -certs-verify-verbose オプションと一緒に提供した場合、出力には署名者証明書の詳細情報も含まれます。

  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
重要

v2.4.0 より前のバージョンの Greengrass nucleus をインストールする場合は、 AWS IoT Greengrass Core ソフトウェアをインストールした後にこのフォルダを削除しないでください。 AWS IoT Greengrass Core ソフトウェアは、このフォルダ内のファイルを使用して実行します。

最新バージョンのソフトウェアをダウンロードした場合は、v2.4.0 以降をインストールし、 AWS IoT Greengrass Core ソフトウェアをインストールした後にこのフォルダを削除できます。

AWS IoT Greengrass Core ソフトウェアのインストール

次のアクションを指定する引数を含むインストーラを実行します。

  • 以前に作成した AWS リソースと証明書を使用するように指定する部分設定ファイルから をインストールします。 AWS IoT Greengrass Core ソフトウェアは、デバイス上のすべての Greengrass コンポーネントの設定を指定する設定ファイルを使用します。インストーラは、提供する部分設定ファイルで完全な設定ファイルを作成します。

  • コアデバイスでソフトウェアコンポーネントを実行するために ggc_user システムユーザーを使用するように指定します。Linux デバイスでは、このコマンドも ggc_group システムグループを使用するように指定し、さらにインストーラによってシステムユーザーとグループが、ユーザーに代わって作成されます。

  • AWS IoT Greengrass Core ソフトウェアを、起動時に実行されるシステムサービスとしてセットアップします。Linux デバイスでは、これは Systemd init システムが必要です。

    重要

    Windows コアデバイスでは、 AWS IoT Greengrass Core ソフトウェアをシステムサービスとして設定する必要があります。

指定できる引数の詳細については、「インストーラ引数」を参照してください。

注記

メモリが制限された AWS IoT Greengrass デバイスで実行している場合は、 AWS IoT Greengrass Core ソフトウェアが使用するメモリ量を制御できます。メモリ割り当てを制御するには、nucleus コンポーネントの jvmOptions設定パラメータでJVMヒープサイズオプションを設定できます。詳細については、「JVM オプションを使用してメモリ割り当てを制御する」を参照してください。

  • 以前に AWS IoT サービスでモノの証明書とプライベートキーを作成した場合は、手順に従ってプライベートキーと証明書ファイルを含む AWS IoT Greengrass Core ソフトウェアをインストールします。

  • 以前にハードウェアセキュリティモジュール (HSM) のプライベートキーからモノの証明書を作成した場合は、手順に従って、 にプライベートキーと証明書を含む AWS IoT Greengrass Core ソフトウェアをインストールしますHSM。

プライベートキーと証明書ファイルを使用して AWS IoT Greengrass Core ソフトウェアをインストールする

AWS IoT Greengrass Core ソフトウェアをインストールするには
  1. AWS IoT Greengrass Core ソフトウェアのバージョンを確認します。

    • 置換 GreengrassInstaller ソフトウェアを含むフォルダへのパス。

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
  2. テキストエディタを使用し、config.yaml という名前の設定ファイルを作成してインストーラに提供します。

    例えば、Linux ベースのシステムでは、次のコマンドを実行して GNU nano を使用してファイルを作成できます。

    nano GreengrassInstaller/config.yaml

    次のYAMLコンテンツを ファイルにコピーします。この部分設定ファイルは、システムパラメータと Greengrass nucleus パラメータを指定します。

    --- 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.13.0" 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 ルートフォルダ/greengrass/v2に置き換えます。

    • 置換 MyGreengrassCore モノの名前。 AWS IoT

    • 置換 2.13.0 AWS IoT Greengrass Core ソフトウェアの バージョン。

    • 置換 us-west-2 リソースを AWS リージョン 作成した を使用します。

    • 置換 GreengrassCoreTokenExchangeRoleAlias トークン交換ロールのエイリアスの名前。

    • を AWS IoT データエンドポイントiotDataEndpointに置き換えます。

    • を AWS IoT 認証情報エンドポイントiotCredEndpointに置き換えます。

    注記

    この設定ファイルでは、使用するポートやネットワークプロキシなど、次の例で示すように、他の nucleus の設定オプションをカスタマイズできます。詳細については、Greengrass nucleus 設定を参照してください。

    --- 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.13.0" 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/v2 または を置き換える C:\greengrass\v2 Greengrass ルートフォルダ。

    • の各インスタンスを置き換える 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 コアデバイスでは、 AWS IoT Greengrass Core ソフトウェアをシステムサービスとして設定--setup-system-service trueするように を指定する必要があります。

    --setup-system-service true を指定する場合、ソフトウェアをシステムサービスとしてセットアップして実行したら、インストーラは Successfully set up Nucleus as a system service を出力します。それ以外の場合、正常にソフトウェアがインストールされていれば、インストーラはメッセージを出力しません。

    注記

    --provision true 引数なしでインストーラを実行するとき、ローカル開発ツールをデプロイするために deploy-dev-tools 引数を使用できません。Greengrass をデバイスCLIに直接デプロイする方法については、「」を参照してくださいGreengrass コマンドラインインターフェイス

  4. ルートフォルダのファイルを確認して、インストールを確認します。

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

    インストールが正常に処理された場合、ルートフォルダには configpackageslogs などの複数のフォルダが含まれます。

プライベートキーと証明書を使用して AWS IoT Greengrass Core ソフトウェアを にインストールする HSM

注記

この機能は、Greengrass nucleus コンポーネントの v2.5.3 以降で使用できます。現在、Windows AWS IoT Greengrass コアデバイスでこの機能をサポートしていません。

AWS IoT Greengrass Core ソフトウェアをインストールするには
  1. AWS IoT Greengrass Core ソフトウェアのバージョンを確認します。

    • 置換 GreengrassInstaller ソフトウェアを含むフォルダへのパス。

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
  2. AWS IoT Greengrass Core ソフトウェアが でプライベートキーと証明書を使用できるようにするには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 Core ソフトウェアのライセンス契約に同意したものと見なされます。

  3. テキストエディタを使用し、config.yaml という名前の設定ファイルを作成してインストーラに提供します。

    例えば、Linux ベースのシステムでは、次のコマンドを実行して GNU nano を使用してファイルを作成できます。

    nano GreengrassInstaller/config.yaml

    次のYAMLコンテンツを ファイルにコピーします。この部分設定ファイルは、システムパラメータ、Greengrass nucleus パラメータ、および 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.13.0" 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"

    次に、以下の操作を実行します。

    • の各インスタンスを置き換える iotdevicekey プライベートキーを作成し、証明書をインポートしたオブジェクトラベルURIsを持つ PKCS#11 の 。

    • の各インスタンスを Greengrass ルートフォルダ/greengrass/v2に置き換えます。

    • 置換 MyGreengrassCore をモノの名前に置き換えます AWS IoT 。

    • 置換 2.13.0 AWS IoT Greengrass Core ソフトウェアの バージョン。

    • 置換 us-west-2 リソースを AWS リージョン 作成した を使用します。

    • 置換 GreengrassCoreTokenExchangeRoleAlias トークン交換ロールエイリアスの名前。

    • を AWS IoT データエンドポイントiotDataEndpointに置き換えます。

    • を AWS IoT 認証情報エンドポイントiotCredEndpointに置き換えます。

    • aws.greengrass.crypto.Pkcs11Provider コンポーネントの設定パラメータを、コアデバイスのHSM設定の値に置き換えます。

    注記

    この設定ファイルでは、使用するポートやネットワークプロキシなど、次の例で示すように、他の nucleus の設定オプションをカスタマイズできます。詳細については、Greengrass nucleus 設定を参照してください。

    --- 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.13.0" 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 ルートフォルダ/greengrass/v2に置き換えます。

    • の各インスタンスを置き換える 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 コアデバイスでは、 AWS IoT Greengrass Core ソフトウェアをシステムサービスとして設定--setup-system-service trueするように を指定する必要があります。

    --setup-system-service true を指定する場合、ソフトウェアをシステムサービスとしてセットアップして実行したら、インストーラは Successfully set up Nucleus as a system service を出力します。それ以外の場合、正常にソフトウェアがインストールされていれば、インストーラはメッセージを出力しません。

    注記

    --provision true 引数なしでインストーラを実行するとき、ローカル開発ツールをデプロイするために deploy-dev-tools 引数を使用できません。Greengrass をデバイスCLIに直接デプロイする方法については、「」を参照してくださいGreengrass コマンドラインインターフェイス

  5. ルートフォルダのファイルを確認して、インストールを確認します。

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

    インストールが正常に処理された場合、ルートフォルダには configpackageslogs などの複数のフォルダが含まれます。

AWS IoT Greengrass Core ソフトウェアをシステムサービスとしてインストールした場合、インストーラはソフトウェアを自動的に実行します。それ以外の場合、ソフトウェアを手動で実行する必要があります。詳細については、「AWS IoT Greengrass Core ソフトウェアを実行する」を参照してください。

ソフトウェアと を設定して使用する方法の詳細については AWS IoT Greengrass、以下を参照してください。