手動リソースプロビジョニングによる 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 での接続またはネットワークプロキシを通じた接続」を参照してください。

PKCS#11 インターフェイス を介してハードウェアセキュリティモジュール (HSM) を使用するように AWS IoT Greengrass Core ソフトウェアを設定することもできます。 https://en.wikipedia.org/wiki/PKCS_11この機能は、プライベートキーと証明書ファイルを安全に保存して、ソフトウェアで公開または複製されないようにします。プライベートキーと証明書を、HSM、Trusted Platform Module (TPM)、別の暗号化要素などのハードウェアモジュールに保存できます。この機能は、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. コアデバイスで、HSM 内に PKCS#11 トークンを初期化してプライベートキーを生成します。プライベートキーは、RSA-2048 キーサイズ (またはそれ以上) の RSA キーまたは ECC キーである必要があります。

    注記

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

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

    トークンを初期化してプライベートキーを生成する方法については、HSM のマニュアルを参照してください。HSM がオブジェクト ID をサポートしている場合、プライベートキーの生成時にオブジェクト ID を指定してください。トークンの初期化とプライベートキーの生成時に指定するスロット ID、ユーザー PIN、オブジェクトラベル、オブジェクト ID (HSM が使用する場合) を保存します。これらの値は、後でモノの証明書を HSM にインポートし、 AWS IoT Greengrass Core ソフトウェアを設定するときに使用します。

  2. プライベートキーから証明書署名リクエスト (CSR) を作成します。 はこの CSR AWS IoT を使用して、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 を 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 コアデバイスのトークン交換ロールを設定します。ロールエイリアスは、デバイスのトークン交換ロールを変更できるようにしますが、デバイス設定は同じ内容に保たれます。詳細については、「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 ロールの名前に置き換えます。

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

    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 ソフトウェアをこのフォルダにインストールします。

    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 以降が必要です。次のコマンドは、デバイスに 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 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 ユーザー変数の代わりに PATH システム変数に Java を追加する必要があります。以下の操作を実行します。

    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 アカウントにデフォルトユーザーを作成します。パスワードを安全なパスワードに置き換えます。

    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 インスタンスに保存します。パスワードを以前に設定したユーザーのパスワードに置き換えます。

    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 ソフトウェアの特定のバージョンは、次の場所からダウンロードできます。バージョンをダウンロードするバージョンに置き換えます。

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 のバージョンによって、ファイル名が異なる場合があります。インストールした 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 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) のプライベートキーからモノの証明書を作成した場合は、手順に従ってプライベートキーと証明書を HSM AWS IoT Greengrass に Core ソフトウェアをインストールします。

プライベートキーと証明書ファイルを使用して 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.12.6" 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.12.6 を 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.12.6" 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 などの複数のフォルダが含まれます。

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

注記

この機能は、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.12.6" 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 ルートフォルダ/greengrass/v2に置き換えます。

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

    • 2.12.6 を 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.12.6" 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、以下を参照してください。