翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
FIPS エンドポイント
AWS IoT Greengrass は、FIPS (Federal Information Processing Standard (FIPS) 140-2)
IoT データプレーン FIPS エンドポイント (FIPS AWS IoT エンドポイントへの接続 - AWS IoT Core) と、 AWSが開発した FIPS 準拠の暗号化ライブラリ aws-lc AWS IoT を利用する MQTT 通信。
Greengrass での HTTP 通信の場合:
-
nucleus およびプラグインコンポーネントの場合、すべての SDK HTTP クライアントは、システムプロパティ AWS_USE_FIPS_ENDPOINT を true に設定して FIPS エンドポイントで設定されます。
-
汎用コンポーネントの場合、すべてのコンポーネントはシステムプロパティ AWS_USE_FIPS_ENDPOINT を True に設定して開始します。このプロセスにより、これらの汎用コンポーネントで使用される SDK HTTP クライアントが FIPS 準拠のエンドポイントにリクエストを送信できるようになります。
注記
Stream Manager の場合、Nucleus は環境変数 AWS_GG_FIPS_MODE を渡します。この環境変数により、Stream Manager 内で使用されている HTTP クライアントは、対応する FIPS 準拠エンドポイントを識別して接続できます。
AWS IoT Greengrass には、FIPS モードを有効にする 2 つの方法として、プロビジョニングとデプロイがあります。FIPS モードを有効にするには、設定パラメータ fipsMode
を True に設定する必要があります。その後、Nucleus はシステムプロパティ AWS_USE_FIPS_ENDPOINT を True に設定し、他のすべてのコンポーネントに環境変数として伝達します。さらに、 AWS IoT Greengrass はルート CA 証明書 (CA3) をダウンロードし、既存の rootCA.pem (または AmazonRootCA1.pem) ファイルに追加します。新しいデプロイで FIPS を有効にすると、Nucleus は再起動して、FIPS モードを有効にした後にシステムプロパティが有効になります。
fipsMode
パラメータの設定とは別に、iotDataEndpoint
、iotCredEndpoint
、および greengrassDataEndpoint
パラメータも設定する必要があります。詳細については、以下で関連するリソースタイプのドキュメントを参照してください。
デプロイで FIPS エンドポイントを有効にする
の AWS IoT エンドポイントを取得し AWS アカウント、後で使用するために保存します。デバイスはこれらのエンドポイントを使用して AWS IoTに接続します。必要なエンドポイントは、iotDataEndpoint
と iotCredEndpoint
の 2 つです。以下の操作を実行します。
-
AWS IoT Core FIPS データプレーンエンドポイントで、リージョンの FIPS データエンドポイントを取得します。の FIPS データエンドポイント AWS アカウント は次のようになります。
data.iot-fips.us-west-2.amazonaws.com
-
AWS IoT Core FIPS データプレーンエンドポイントで、リージョンの FIPS 認証情報エンドポイントを取得します。の FIPS 認証情報エンドポイント AWS アカウント は次のようになります。
data.credentials.iot-fips.us-west-2.amazonaws.com
次に、デプロイで FIPS を有効にするには、次の設定を Nucleus に適用する必要があります。デプロイでマージする設定は次のとおりです。
手動でのリソースプロビジョニングによる FIPS エンドポイントを使用した Nucleus のインストール
FIPS エンドポイントを使用して AWS IoT Greengrass V2 コアデバイスの AWS リソースを手動でプロビジョニングする
重要
AWS IoT Greengrass Core ソフトウェアをダウンロードする前に、コアデバイスが AWS IoT Greengrass Core ソフトウェア v2.0 をインストールして実行するための要件を満たしていることを確認してください。
トピック
AWS IoT エンドポイントを取得する
の AWS IoT エンドポイントを取得し AWS アカウント、後で使用するために保存します。デバイスはこれらのエンドポイントを使用して AWS IoTに接続します。必要なエンドポイントは、iotDataEndpoint
と iotCredEndpoint
の 2 つです。以下の操作を実行します。
-
AWS IoT Core FIPS データプレーンエンドポイントで、リージョンの FIPS データエンドポイントを取得します。の FIPS データエンドポイント AWS アカウント は次のようになります。
data.iot-fips.us-west-2.amazonaws.com
-
AWS IoT Core FIPS データプレーンエンドポイントで、リージョンの FIPS 認証情報エンドポイントを取得します。の FIPS 認証情報エンドポイント AWS アカウント は次のようになります。
data.credentials.iot-fips.us-west-2.amazonaws.com
AWS IoT モノを作成する
AWS IoT モノは、 に接続するデバイスと論理エンティティを表します AWS IoT。Greengrass コアデバイスは AWS IoT モノです。デバイスを AWS IoT モノとして登録すると、そのデバイスはデジタル証明書を使用して認証できます AWS。
このセクションでは、デバイスを表す AWS IoT モノを作成します。
AWS IoT モノを作成するには
-
デバイスの 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" }
-
-
(オプション) AWS IoT モノを新規または既存のモノグループに追加します。モノグループを使用して Greengrass コアデバイスのフリートを管理します。ソフトウェアコンポーネントをデバイスにデプロイするとき、個々のデバイスまたはデバイスのグループを対象にできます。アクティブな Greengrass デプロイを持つモノグループにデバイスを追加して、そのモノグループのソフトウェアコンポーネントをデバイスにデプロイできます。以下の操作を実行します。
-
(オプション) 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" }
-
-
AWS IoT モノをモノのグループに追加します。
-
MyGreengrassCore
を AWS IoT モノの名前に置き換えます。 -
MyGreengrassCoreGroup
をモノグループの名前に置き換えます。
aws iot add-thing-to-thing-group --thing-name
MyGreengrassCore
--thing-group-nameMyGreengrassCoreGroup
要求が正常に処理された場合、コマンドは出力されません。
-
-
モノの証明書を作成する
デバイスを AWS IoT モノとして登録すると、そのデバイスはデジタル証明書を使用して認証できます AWS。この証明書により、デバイスは AWS IoT および と通信できます AWS IoT Greengrass。
このセクションでは、デバイスが AWSに接続する際に使用できる証明書を作成してダウンロードします。
ハードウェアセキュリティモジュール (HSM) を使用してプライベートキーと証明書を安全に保存するように AWS IoT Greengrass Core ソフトウェアを設定する場合は、手順に従って HSM のプライベートキーから証明書を作成します。それ以外の場合は、手順に従って AWS IoT サービスに証明書とプライベートキーを作成します。ハードウェアセキュリティ機能は Linux デバイスでのみ利用できます。ハードウェアセキュリティとその使用要件の詳細については、「ハードウェアセキュリティ統合」を参照してください。
AWS IoT サービスで証明書とプライベートキーを作成する
モノの証明書を作成するには
-
AWS IoT モノの証明書をダウンロードするフォルダを作成します。
mkdir greengrass-v2-certs
-
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 コアデバイスでサポートされていません。
モノの証明書を作成するには
-
コアデバイスで、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 ソフトウェアを設定するときに使用します。
-
プライベートキーで証明書署名リクエスト (CSR) を作成します。 AWS IoT はこの CSR を使用して、HSM で生成したプライベートキーのモノ証明書を作成します。プライベートキーで CSR を作成する方法については、HSM のマニュアルを参照してください。CSR は
iotdevicekey.csr
などのようなファイルです。 -
CSR をデバイスから開発用コンピュータにコピーします。開発用コンピュータとデバイスで SSH と SCP が有効になっている場合、開発用コンピュータで
scp
コマンドを使用して CSR を転送できます。device-ip-address
をデバイスの IP アドレスに置き換えて、~/iotdevicekey.csr
をデバイスの CSR ファイルへのパスに置き換えます。scp
device-ip-address
:~/iotdevicekey.csr
iotdevicekey.csr -
開発用コンピュータで、 AWS IoT モノの証明書をダウンロードするフォルダを作成します。
mkdir greengrass-v2-certs
-
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 アクセス許可を定義します。
モノの証明書を設定するには
-
証明書を AWS IoT モノにアタッチします。
-
MyGreengrassCore
を AWS IoT モノの名前に置き換えます。 -
証明書 Amazon リソースネーム (ARN) を、前のステップで作成した証明書の ARN に置き換えます。
aws iot attach-thing-principal --thing-name
MyGreengrassCore
--principalarn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
要求が正常に処理された場合、コマンドは出力されません。
-
-
Greengrass コアデバイスの AWS IoT アクセス許可を定義する AWS IoT ポリシーを作成してアタッチします。次のポリシーは、すべての MQTT トピックと Greengrass 操作へのアクセスを許可するため、デバイスがカスタムアプリケーションや新しい Greengrass 操作を必要とする今後の変更でも動作するようになります。ユースケースに基づいてこのポリシーを制限できます。詳細については、「AWS IoT Greengrass V2 コアデバイスの最小 AWS IoT ポリシー」を参照してください。
Greengrass コアデバイスを以前にセットアップしたことがある場合は、新しいポリシーを作成する代わりに、その AWS IoT ポリシーをアタッチできます。
以下の操作を実行します。
-
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": [ "*" ] } ] }
-
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" }
-
-
AWS IoT モノの証明書に AWS IoT ポリシーをアタッチします。
-
GreengrassV2IoTThingPolicy
をアタッチするポリシーの名前に置き換えます。 -
ターゲット ARN を AWS IoT モノの証明書の ARN に置き換えます。
aws iot attach-policy --policy-name
GreengrassV2IoTThingPolicy
--targetarn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
要求が正常に処理された場合、コマンドは出力されません。
-
-
トークン交換ロールを作成する
Greengrass コアデバイスは、トークン交換ロールと呼ばれる IAM サービスロールを使用して、 AWS サービスへの呼び出しを承認します。デバイスは認証情報 AWS IoT プロバイダーを使用して、このロールの一時的な AWS 認証情報を取得します。これにより、デバイスは Amazon CloudWatch Logs とやり取りし AWS IoT、ログを送信し、Amazon S3 からカスタムコンポーネントアーティファクトをダウンロードできるようになります。詳細については、「コアデバイスが AWS サービスとやり取りできるように承認する」を参照してください。
AWS IoT ロールエイリアスを使用して、Greengrass コアデバイスのトークン交換ロールを設定します。ロールエイリアスは、デバイスのトークン交換ロールを変更できるようにしますが、デバイス設定は同じ内容に保たれます。詳細については、「AWS IoT Core デベロッパーガイド」の「AWS サービスへの直接呼び出しを認証する」を参照してください。
このセクションでは、トークン交換 IAM ロールと AWS IoT 、ロールを指す ロールエイリアスを作成します。Greengrass コアデバイスを既に設定している場合、新しく作成せず、トークン交換ロールとロールエイリアスを使用できます。次に、デバイスの AWS IoT モノを設定してそのロールとエイリアスを使用します。
トークン交換 IAM ロールを作成するには
-
デバイスがトークン交換ロールとして使用できる IAM ロールを作成します。以下の操作を実行します。
-
トークン交換ロールが必要とする、信頼できるポリシードキュメントが含まれるファイルを作成します。
例えば、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" } ] }
-
信頼ポリシードキュメントでトークン交換ロールを作成します。
-
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" } ] } }
-
-
トークン交換ロールが必要なアクセスポリシードキュメントを含むファイルを作成します。
例えば、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 バケットをまだ持っていない場合、バケットを作成した後でこれらのアクセス許可を追加できます。
-
ポリシードキュメントから 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" } }
-
-
IAM ポリシーをトークン交換ロールにアタッチします。
-
GreengrassV2TokenExchangeRole
を、IAM ロールの名前に置き換えます。 -
ポリシー ARN を前のステップで作成した IAM ポリシーの ARN に置き換えます。
aws iam attach-role-policy --role-name
GreengrassV2TokenExchangeRole
--policy-arnarn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
要求が正常に処理された場合、コマンドは出力されません。
-
-
-
トークン交換 AWS IoT ロールを指す ロールエイリアスを作成します。
-
GreengrassCoreTokenExchangeRoleAlias
を作成するロールエイリアスの名前に置き換えます。 -
ロール ARN を前のステップで作成した IAM ロールの ARN に置き換えます。
aws iot create-role-alias --role-alias
GreengrassCoreTokenExchangeRoleAlias
--role-arnarn: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 サービスにロールを渡すアクセス許可をユーザーに付与する」を参照してください。
-
-
Greengrass コアデバイスがロールエイリアスを使用してトークン交換ロールを引き受けることを許可する AWS IoT ポリシーを作成してアタッチします。Greengrass コアデバイスを以前にセットアップしたことがある場合は、新しいロールエイリアスポリシーを作成する代わりに、そのロールエイリアス AWS IoT ポリシーをアタッチできます。以下の操作を実行します。
-
(オプション) ロールエイリアスに必要な 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
" } ] } -
-
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" }
-
-
AWS IoT モノの証明書に AWS IoT ポリシーをアタッチします。
-
GreengrassCoreTokenExchangeRoleAliasPolicy
をロールエイリアス AWS IoT ポリシーの名前に置き換えます。 -
ターゲット ARN を AWS IoT モノの証明書の ARN に置き換えます。
aws iot attach-policy --policy-name
GreengrassCoreTokenExchangeRoleAliasPolicy
--targetarn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
要求が正常に処理された場合、コマンドは出力されません。
-
-
デバイスに証明書をダウンロードする
以前に、デバイスの証明書を開発用コンピュータにダウンロードしました。このセクションでは、コアデバイスに証明書をコピーして、 AWS IoTに接続するために使用する証明書でデバイスをセットアップします。Amazon ルート認証機関 (CA) の証明書もダウンロードします。HSM を使用する場合、このセクションの HSM に証明書ファイルもインポートします。
-
以前に AWS IoT サービスでモノの証明書とプライベートキーを作成した場合は、手順に従ってプライベートキーと証明書ファイルを含む証明書をダウンロードします。
-
以前にハードウェアセキュリティモジュール (HSM) のプライベートキーからモノ証明書を作成した場合、手順に従って HSM のプライベートキーと証明書で証明書をダウンロードします。
プライベートキーと証明書ファイルで証明書をダウンロード
証明書をデバイスにダウンロードするには
-
開発用コンピュータからデバイスに AWS IoT モノの証明書をコピーします。開発用コンピュータとデバイスで SSH と SCP が有効になっている場合、開発用コンピュータの
scp
コマンドを実行して、証明書を転送できます。device-ip-address
をデバイスの IP アドレスに置き換えます。scp -r greengrass-v2-certs/
device-ip-address
:~ -
デバイスに Greengrass ルートフォルダを作成します。後で AWS IoT Greengrass Core ソフトウェアをこのフォルダにインストールします。
注記
Windows では、パスの長さは 260 文字に制限されています。Windows を使用している場合は、
C:\greengrass\v2
やD:\greengrass\v2
などのルートフォルダを使用して、Greengrass コンポーネントのパスを 260 文字の制限内に留めます。 -
(Linux のみ) Greengrass ルートフォルダの親の許可を設定します。
-
/greengrass
をルートフォルダへの親に置き換えます。
sudo chmod 755
/greengrass
-
-
AWS IoT モノの証明書を Greengrass ルートフォルダにコピーします。
-
Amazon のルート認証局 (CA) 証明書をダウンロードします。デフォルトでは、 AWS IoT 証明書が Amazon のルート CA 証明書と関連付けられています。CA1 証明書と CA3 証明書
をダウンロードします。
HSM にプライベートキーと証明書を含む証明書をダウンロード
注記
この機能は、Greengrass nucleus コンポーネントの v2.5.3 以降で使用できます。現在、この機能は Windows AWS IoT Greengrass コアデバイスでサポートされていません。
証明書をデバイスにダウンロードするには
-
開発用コンピュータからデバイスに AWS IoT モノの証明書をコピーします。開発用コンピュータとデバイスで SSH と SCP が有効になっている場合、開発用コンピュータの
scp
コマンドを実行して、証明書を転送できます。device-ip-address
をデバイスの IP アドレスに置き換えます。scp -r greengrass-v2-certs/
device-ip-address
:~ -
デバイスに Greengrass ルートフォルダを作成します。後で AWS IoT Greengrass Core ソフトウェアをこのフォルダにインストールします。
注記
Windows では、パスの長さは 260 文字に制限されています。Windows を使用している場合は、
C:\greengrass\v2
やD:\greengrass\v2
などのルートフォルダを使用して、Greengrass コンポーネントのパスを 260 文字の制限内に留めます。 -
(Linux のみ) Greengrass ルートフォルダの親の許可を設定します。
-
/greengrass
をルートフォルダへの親に置き換えます。
sudo chmod 755
/greengrass
-
-
モノの証明書ファイルである
~/greengrass-v2-certs/device.pem.crt
を HSM にインポートします。証明書をインポートする方法については、HSM のマニュアルを参照してください。以前に HSM でプライベートキーを生成したときと同じトークン、スロット ID、ユーザー PIN、オブジェクトラベル、オブジェクト ID (HSM が使用している場合) を使用して証明書をインポートします。注記
以前にオブジェクト ID なしでプライベートキーを生成し、かつ証明書にオブジェクト ID がある場合、プライベートキーのオブジェクト ID を証明書と同じ値に設定します。プライベートキーオブジェクトのオブジェクト ID を設定する方法については、HSM のマニュアルを参照してください。
-
(オプション) モノ証明書のファイルを削除して、HSM にのみ存在するようにします。
rm ~/greengrass-v2-certs/device.pem.crt
-
Amazon のルート認証局 (CA) 証明書をダウンロードします。デフォルトでは、 AWS IoT 証明書が Amazon のルート CA 証明書と関連付けられています。CA1 証明書と CA3 証明書
の両方をダウンロードします。
デバイス環境をセットアップする
このセクションのステップに従って、 AWS IoT Greengrass コアデバイスとして使用する Linux または Windows デバイスをセットアップします。
Linux デバイスをセットアップする
の Linux デバイスを設定するには AWS IoT Greengrass V2
-
AWS IoT Greengrass Core ソフトウェアの実行に必要な Java ランタイムをインストールします。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)
-
-
(オプション) デバイスにコンポーネントを実行するデフォルトのシステムユーザーおよびグループを作成します。インストーラ
--component-default-user
引数を使用して、インストール中に AWS IoT Greengrass Core ソフトウェアインストーラでこのユーザーとグループを作成することもできます。詳細については、「インストーラ引数」を参照してください。sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group
-
AWS IoT Greengrass Core ソフトウェアを実行するユーザー (通常は
root
) に、任意のユーザーと任意のグループsudo
で を実行するアクセス許可があることを確認します。-
/etc/sudoers
ファイルを開くには、次のコマンドを実行します。sudo visudo
-
ユーザーの権限が次の例のようになっていることを確認します。
root ALL=(ALL:ALL) ALL
-
-
(オプション) コンテナ化された Lambda 関数を実行するには、cgroups
v1 を有効にし、メモリとデバイスの cgroups を有効にしてマウントする必要があります。コンテナ化された Lambda 関数を実行する予定がない場合、この手順を省略できます。 これらの cgroups オプションを有効にするには、次の Linux カーネルパラメータを使用してデバイスを起動します。
cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
デバイスのカーネルパラメータを確認および設定するための情報については、オペレーティングシステムおよびブートローダーのドキュメントを参照してください。指示に従って、カーネルパラメータを永続的に設定します。
-
デバイスの要件 にある要件リストで示されているように、その他の必要となる依存関係をすべてデバイスにインストールします。
Windows デバイスをセットアップする
注記
この機能は、Greengrass nucleus コンポーネントの v2.5.0 以降に利用できます。
の Windows デバイスを設定するには AWS IoT Greengrass V2
-
AWS IoT Greengrass Core ソフトウェアの実行に必要な Java ランタイムをインストールします。Amazon Corretto
または OpenJDK の長期サポートバージョンを使用することをお勧めします。バージョン 8 以降が必要です。 -
PATH
システム変数で Java が使用可能か確認し、そうでない場合は追加します。LocalSystem アカウントは AWS IoT Greengrass Core ソフトウェアを実行するため、ユーザーの PATH ユーザー変数の代わりに PATH システム変数に Java を追加する必要があります。以下の操作を実行します。 -
Windows キーを押してスタートメニューを開きます。
-
environment variables
を入力して、スタートメニューからシステムオプションを検索します。 -
スタートメニューの検索結果から [Edit the system environment variables] (システム環境変数を編集) をクリックして、[System properties] (システムプロパティ) ウィンドウを開きます。
-
[Environment variables...] (環境変数...) を選択して、[Environment Variables] (環境可変) ウィンドウを開きます。
-
[System variables] (システム変数) で、[Path] (パス) 、[Edit] (編集) の順に選択します。[Edit environment variable] (環境変数の編集) ウィンドウでは、個別の行に各パスを表示できます。
-
Java インストールの
bin
フォルダへのパスが存在しているかを確認します。このパスは、次の例のように表示されます。C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
-
[Path] (パス) で Java インストールの
bin
フォルダが で見つからない場合は、[New] (新規) を選択してこれを追加した上で、[OK] を選択します。
-
-
管理者として Windows コマンドプロンプト
cmd.exe
を開きます。 -
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"}
-
-
PsExec ユーティリティ
を Microsoft からダウンロードしてデバイスにインストールします。 -
PsExec ユーティリティを使用して、デフォルトユーザーのユーザー名とパスワードを LocalSystem アカウントの認証情報マネージャーインスタンスに格納します。
パスワード
を以前に設定したユーザーのパスワードに置き換えます。psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:
password
PsExec License Agreement が開いたら、Accept を選択し、ライセンスに同意してコマンドを実行します。
注記
Windows デバイスでは、LocalSystem アカウントによって Greengrass nucleus が実行され、PsExec ユーティリティを使用して LocalSystem アカウントにデフォルトのユーザー情報を保存する必要があります。認証情報マネージャーアプリケーションを使用すると、この情報は LocalSystem アカウントではなく、現在ログオンしているユーザーの Windows アカウントに保存されます。
AWS IoT Greengrass Core ソフトウェアをダウンロードする
AWS IoT Greengrass Core ソフトウェアの最新バージョンは、次の場所からダウンロードできます。
注記
Core AWS IoT Greengrass ソフトウェアの特定のバージョンは、次の場所からダウンロードできます。バージョン
をダウンロードするバージョンに置き換えます。
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-
version
.zip
AWS IoT Greengrass Core ソフトウェアをダウンロードするには
-
コアデバイスで、 AWS IoT Greengrass Core ソフトウェアを という名前のファイルにダウンロードします
greengrass-nucleus-latest.zip
。このソフトウェアをダウンロードすると、Greengrass Core ソフトウェアのライセンス契約
に同意したものと見なされます。 -
(オプション) Greengrass nucleus ソフトウェア署名を確認するには
注記
この機能は、Greengrass nucleus バージョン 2.9.5 以降で使用できます。
-
以下のコマンドを使用して、Greengrass nucleus アーティファクトの署名を確認します。
-
jarsigner
が起動すると、検証結果を示す出力が得られます。-
Greengrass nucleus の zip ファイルに署名されると、出力に以下のような文が表示されます:
jar verified.
-
Greengrass nucleus の zip ファイルに署名されないと、出力に以下のような文が表示されます:
jar is unsigned.
-
-
Jarsigner
-certs
を-verify
と-verbose
オプションと一緒に提供した場合、出力には署名者証明書の詳細情報も含まれます。
-
-
AWS IoT Greengrass Core ソフトウェアをデバイスのフォルダに解凍します。
GreengrassInstaller
を使用するフォルダに置き換えます。 -
(オプション) 次のコマンドを実行して、 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
システムグループを使用するように指定し、さらにインストーラによってシステムユーザーとグループが、ユーザーに代わって作成されます。 -
Core AWS IoT Greengrass ソフトウェアを、起動時に実行されるシステムサービスとしてセットアップします。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 ソフトウェアをインストールするには
-
AWS IoT Greengrass Core ソフトウェアのバージョンを確認します。
-
GreengrassInstaller
を、ソフトウェアが含まれるフォルダへのパスに置き換えます。
java -jar ./
GreengrassInstaller
/lib/Greengrass.jar --version -
-
テキストエディタを使用し、
config.yaml
という名前の設定ファイルを作成してインストーラに提供します。例えば、Linux ベースのシステムでは、次のコマンドを実行し、GNU nano を使用してファイルを作成できます。
nano
GreengrassInstaller
/config.yaml次の YAML コンテンツをファイルにコピーします。この部分設定ファイルは、システムパラメータと Greengrass nucleus パラメータを指定します。
--- system: certificateFilePath: "
/device.pem.crt" privateKeyPath: "/greengrass/v2
/private.pem.key" rootCaPath: "/greengrass/v2
/AmazonRootCA1.pem" rootpath: "/greengrass/v2
" thingName: "/greengrass/v2
MyGreengrassCore
" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.14.0
" configuration: awsRegion: "us-west-2
" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias
" fipsMode: "true" iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com
" greengrassDataPlaneEndpoint: "iotData" iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com
"次に、以下の操作を実行します。
-
の各インスタンスを Greengrass のルートフォルダに置き換えます。/greengrass/v2
-
MyGreengrassCore
を AWS IoT モノの名前に置き換えます。 -
2.14.0
を AWS IoT Greengrass Core ソフトウェアのバージョンに置き換えます。 -
us-west-2
をリソースを作成した AWS リージョン に置き換えます。 -
GreengrassCoreTokenExchangeRoleAlias
をトークン交換ロールエイリアスの名前に置き換えます。 -
iotDataEndpoint
を AWS IoT データエンドポイントに置き換えます。 -
iotCredEndpoint
を AWS IoT 認証情報エンドポイントに置き換えます。
-
-
インストーラを実行して、設定ファイルを提供するように、
--init-config
に対して指定します。-
または/greengrass/v2
C:\greengrass\v2
を Greengrass ルートフォルダに置き換えます。 -
GreengrassInstaller
の各インスタンスをインストーラを解凍したフォルダに置き換えます。
重要
Windows コアデバイスでは、 を指定
--setup-system-service true
して AWS IoT Greengrass Core ソフトウェアをシステムサービスとしてセットアップする必要があります。--setup-system-service true
を指定する場合、ソフトウェアをシステムサービスとしてセットアップして実行したら、インストーラはSuccessfully set up Nucleus as a system service
を出力します。それ以外の場合、正常にソフトウェアがインストールされていれば、インストーラはメッセージを出力しません。注記
--provision true
引数なしでインストーラを実行するとき、ローカル開発ツールをデプロイするためにdeploy-dev-tools
引数を使用できません。Greengrass CLI をデバイスに直接デプロイする方法の情報については、「Greengrass コマンドラインインターフェイス」を参照してください。 -
-
ルートフォルダのファイルを確認して、インストールを確認します。
インストールが正常に処理された場合、ルートフォルダには
config
、packages
、logs
などの複数のフォルダが含まれます。
HSM にプライベートキーと証明書ファイルを備えた AWS IoT Greengrass Core ソフトウェアのインストール
注記
この機能は、Greengrass nucleus コンポーネントの v2.5.3 以降で使用できます。現在、この機能は Windows AWS IoT Greengrass コアデバイスでサポートされていません。
AWS IoT Greengrass Core ソフトウェアをインストールするには
-
AWS IoT Greengrass Core ソフトウェアのバージョンを確認します。
-
GreengrassInstaller
を、ソフトウェアが含まれるフォルダへのパスに置き換えます。
java -jar ./
GreengrassInstaller
/lib/Greengrass.jar --version -
-
AWS IoT Greengrass Core ソフトウェアが HSM でプライベートキーと証明書を使用できるようにするには、 AWS IoT Greengrass Core ソフトウェアをインストールするときに PKCS#11 プロバイダーコンポーネントをインストールします。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 ソフトウェアのライセンス契約
に同意したものと見なされます。 -
テキストエディタを使用し、
config.yaml
という名前の設定ファイルを作成してインストーラに提供します。例えば、Linux ベースのシステムでは、次のコマンドを実行し、GNU nano を使用してファイルを作成できます。
nano
GreengrassInstaller
/config.yaml次の YAML コンテンツをファイルにコピーします。この部分設定ファイルは、システムパラメータ、Greengrass nucleus パラメータ、PKCS#11 プロバイダパラメータを指定します。
--- system: certificateFilePath: "
/device.pem.crt" privateKeyPath: "/greengrass/v2
/private.pem.key" rootCaPath: "/greengrass/v2
/AmazonRootCA1.pem" rootpath: "/greengrass/v2
" thingName: "/greengrass/v2
MyGreengrassCore
" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.14.0
" configuration: awsRegion: "us-west-2
" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias
" fipsMode: "true" iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com
" greengrassDataPlaneEndpoint: "iotData" iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com
"次に、以下の操作を実行します。
-
PKCS#11 URI の
iotdevicekey
の各インスタンスを、プライベートキーを作成して証明書をインポートしたオブジェクトラベルに置き換えます。 -
の各インスタンスを Greengrass のルートフォルダに置き換えます。/greengrass/v2
-
MyGreengrassCore
を AWS IoT モノの名前に置き換えます。 -
2.14.0
を AWS IoT Greengrass Core ソフトウェアのバージョンに置き換えます。 -
us-west-2
をリソースを作成した AWS リージョン に置き換えます。 -
GreengrassCoreTokenExchangeRoleAlias
をトークン交換ロールエイリアスの名前に置き換えます。 -
を AWS IoT データエンドポイント
iotDataEndpoint
に置き換えます。 -
iotCredEndpoint
を AWS IoT 認証情報のエンドポイントに置き換えます。 -
aws.greengrass.crypto.Pkcs11Provider
コンポーネントの設定パラメータを、コアデバイスの HSM 設定の値に置き換えます。
-
-
インストーラを実行して、設定ファイルを提供するように、
--init-config
に対して指定します。-
を Greengrass のルートフォルダに置き換えます。/greengrass/v2
-
GreengrassInstaller
の各インスタンスをインストーラを解凍したフォルダに置き換えます。
sudo -E java -Droot="
" -Dlog.store=FILE \ -jar .//greengrass/v2
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 Core ソフトウェアをシステムサービスとしてセットアップする必要があります。--setup-system-service true
を指定する場合、ソフトウェアをシステムサービスとしてセットアップして実行したら、インストーラはSuccessfully set up Nucleus as a system service
を出力します。それ以外の場合、正常にソフトウェアがインストールされていれば、インストーラはメッセージを出力しません。注記
--provision true
引数なしでインストーラを実行するとき、ローカル開発ツールをデプロイするためにdeploy-dev-tools
引数を使用できません。Greengrass CLI をデバイスに直接デプロイする方法の情報については、「Greengrass コマンドラインインターフェイス」を参照してください。 -
-
ルートフォルダのファイルを確認して、インストールを確認します。
インストールが正常に処理された場合、ルートフォルダには
config
、packages
、logs
などの複数のフォルダが含まれます。
AWS IoT Greengrass Core ソフトウェアをシステムサービスとしてインストールした場合、インストーラによってソフトウェアが実行されます。それ以外の場合、ソフトウェアを手動で実行する必要があります。詳細については、「AWS IoT Greengrass Core ソフトウェアを実行する」を参照してください。
ソフトウェアと を設定および使用する方法の詳細については AWS IoT Greengrass、以下を参照してください。
フリートプロビジョニングを使って FIPS エンドポイントをインストールする
この機能は、Greengrass nucleus コンポーネントの v2.4.0 以降に利用できます。
AWS IoT Greengrass コアデバイスの AWS IoT フリートプロビジョニングを使用して、 Core ソフトウェアに FIPS エンドポイントをインストールします。
注記
フリートプロビジョニングプラグインは、現在、ハードウェアセキュリティモジュール (HSM) へのプライベートキーと証明書ファイルの保存をサポートしていません。HSM を使用するには、手動プロビジョニングで AWS IoT Greengrass Core ソフトウェアをインストールします。
AWS IoT フリートプロビジョニングを使用して AWS IoT Greengrass Core ソフトウェアをインストールするには、 AWS アカウント が Greengrass コアデバイスのプロビジョニング AWS IoT に使用する リソースを に設定する必要があります。これらのリソースには、プロビジョニングテンプレート、クレーム証明書、およびトークン交換 IAM ロールが含まれます。これらのリソースを作成した後、これらのリソースを再利用して、フリート内の複数のコアデバイスをプロビジョニングできます。詳細については、「Greengrass コアデバイスの AWS IoT フリートプロビジョニングを設定する」を参照してください。
重要
AWS IoT Greengrass Core ソフトウェアをダウンロードする前に、コアデバイスが AWS IoT Greengrass Core ソフトウェア v2.0 をインストールして実行するための要件を満たしていることを確認してください。
トピック
前提条件
AWS IoT フリートプロビジョニングを使用して AWS IoT Greengrass Core ソフトウェアをインストールするには、まず Greengrass コアデバイスの AWS IoT フリートプロビジョニングを設定する必要があります。これらのステップを 1 回完了すると、フリートプロビジョニングを使用して、任意の数のデバイスに AWS IoT Greengrass Core ソフトウェアをインストールできます。
AWS IoT エンドポイントを取得する
の FIPS エンドポイントを取得し AWS アカウント、後で使用するために保存します。デバイスはこれらのエンドポイントを使用して AWS IoTに接続します。以下の操作を実行します。
-
AWS IoT Core FIPS データプレーンエンドポイントで、リージョンの FIPS データエンドポイントを取得します。の FIPS データエンドポイント AWS アカウント は次のようになります。
data.iot-fips.us-west-2.amazonaws.com
-
AWS IoT Core FIPS データプレーンエンドポイントで、リージョンの FIPS 認証情報エンドポイントを取得します。の FIPS 認証情報エンドポイント AWS アカウント は次のようになります。
data.credentials.iot-fips.us-west-2.amazonaws.com
デバイスに証明書をダウンロードする
デバイスは、クレーム証明書とプライベートキーを使用して、 AWS リソースをプロビジョニングし、X.509 デバイス証明書を取得するリクエストを認証します。クレーム証明書とプライベートキーは製造時にデバイスに埋め込むか、 インストール時に証明書とキーをデバイスにコピーすることができます。このセクションでは、クレーム証明書とプライベートキーをデバイスにコピーします。また、デバイスに Amazon ルート認証局 (CA) 証明書もダウンロードします。
重要
プロビジョニングクレームプライベートキーは、Greengrass コアデバイス上にある場合を含め、常に保護する必要があります。Amazon CloudWatch メトリクスとログを使用して、デバイスをプロビジョニングするクレーム証明書の不正使用などの悪用の兆候がないか監視することをお勧めします。悪用を検出した場合は、プロビジョニングクレーム証明書を無効にして、デバイスのプロビジョニングに使用できないようにします。詳細については、「AWS IoT Core デベロッパーガイド」の「AWS IoTのモニタリング」を参照してください。
に登録するデバイスの数とデバイスをより適切に管理できるように AWS アカウント、フリートプロビジョニングテンプレートを作成するときに事前プロビジョニングフックを指定できます。事前プロビジョニングフックは、登録時にデバイスが提供するテンプレートパラメータを検証する AWS Lambda 関数です。例えば、デバイス ID をデータベースと照合して、デバイスにプロビジョニングする権限があることを確認する事前プロビジョニングフックを作成することができます。詳細については、「AWS IoT Core デベロッパーガイド」の「事前プロビジョニングフック」を参照してください。
デバイスにクレーム証明書をダウンロードする
-
クレーム証明書とプライベートキーをデバイスにコピーします。開発用コンピュータとデバイスで SSH と SCP が有効になっている場合、開発用コンピュータで
scp
コマンドを使用してクレーム証明書とプライベートキーを転送できます。次のコマンド例では、これらのファイルを開発用コンピュータ上のclaim-certs
という名のフォルダからデバイスに転送します。device-ip-address
をデバイスの IP アドレスに置き換えます。scp -r claim-certs/
device-ip-address
:~ -
デバイスに Greengrass ルートフォルダを作成します。後で AWS IoT Greengrass Core ソフトウェアをこのフォルダにインストールします。
注記
Windows では、パスの長さは 260 文字に制限されています。Windows を使用している場合は、
C:\greengrass\v2
やD:\greengrass\v2
などのルートフォルダを使用して、Greengrass コンポーネントのパスを 260 文字の制限内に留めます。 -
(Linux のみ) Greengrass ルートフォルダの親の許可を設定します。
-
/greengrass
をルートフォルダへの親に置き換えます。
sudo chmod 755
/greengrass
-
-
クレーム証明書を Greengrass ルートフォルダに移動します。
-
または/greengrass/v2
C:\greengrass\v2
を Greengrass ルートフォルダに置き換えます。
-
-
CA1 証明書と CA3 証明書
の両方をダウンロードします。
デバイス環境をセットアップする
AWS IoT Greengrass コアデバイスとして使用する Linux または Windows デバイスを設定するには、このセクションのステップに従います。
Linux デバイスをセットアップする
の Linux デバイスを設定するには AWS IoT Greengrass V2
-
AWS IoT Greengrass Core ソフトウェアの実行に必要な Java ランタイムをインストールします。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)
-
-
(オプション) デバイスにコンポーネントを実行するデフォルトのシステムユーザーおよびグループを作成します。インストーラ
--component-default-user
引数を使用して、インストール中に AWS IoT Greengrass Core ソフトウェアインストーラでこのユーザーとグループを作成することもできます。詳細については、「インストーラ引数」を参照してください。sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group
-
AWS IoT Greengrass Core ソフトウェアを実行するユーザー (通常は
root
) に、任意のユーザーと任意のグループsudo
で を実行するアクセス許可があることを確認します。-
/etc/sudoers
ファイルを開くには、次のコマンドを実行します。sudo visudo
-
ユーザーの権限が次の例のようになっていることを確認します。
root ALL=(ALL:ALL) ALL
-
-
(オプション) コンテナ化された Lambda 関数を実行するには、cgroups
v1 を有効にし、メモリとデバイスの cgroups を有効にしてマウントする必要があります。コンテナ化された Lambda 関数を実行する予定がない場合、この手順を省略できます。 これらの cgroups オプションを有効にするには、次の Linux カーネルパラメータを使用してデバイスを起動します。
cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
デバイスのカーネルパラメータを確認および設定するための情報については、オペレーティングシステムおよびブートローダーのドキュメントを参照してください。指示に従って、カーネルパラメータを永続的に設定します。
-
デバイスの要件 にある要件リストで示されているように、その他の必要となる依存関係をすべてデバイスにインストールします。
Windows デバイスをセットアップする
注記
この機能は、Greengrass nucleus コンポーネントの v2.5.0 以降に利用できます。
の Windows デバイスを設定するには AWS IoT Greengrass V2
-
AWS IoT Greengrass Core ソフトウェアの実行に必要な Java ランタイムをインストールします。Amazon Corretto
または OpenJDK の長期サポートバージョンを使用することをお勧めします。バージョン 8 以降が必要です。 -
PATH
システム変数で Java が使用可能か確認し、そうでない場合は追加します。LocalSystem アカウントは AWS IoT Greengrass Core ソフトウェアを実行するため、ユーザーの PATH ユーザー変数の代わりに PATH システム変数に Java を追加する必要があります。以下の操作を実行します。 -
Windows キーを押してスタートメニューを開きます。
-
environment variables
を入力して、スタートメニューからシステムオプションを検索します。 -
スタートメニューの検索結果から [Edit the system environment variables] (システム環境変数を編集) をクリックして、[System properties] (システムプロパティ) ウィンドウを開きます。
-
[Environment variables...] (環境変数...) を選択して、[Environment Variables] (環境可変) ウィンドウを開きます。
-
[System variables] (システム変数) で、[Path] (パス) 、[Edit] (編集) の順に選択します。[Edit environment variable] (環境変数の編集) ウィンドウでは、個別の行に各パスを表示できます。
-
Java インストールの
bin
フォルダへのパスが存在しているかを確認します。このパスは、次の例のように表示されます。C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
-
[Path] (パス) で Java インストールの
bin
フォルダが で見つからない場合は、[New] (新規) を選択してこれを追加した上で、[OK] を選択します。
-
-
管理者として Windows コマンドプロンプト
cmd.exe
を開きます。 -
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"}
-
-
PsExec ユーティリティ
を Microsoft からダウンロードしてデバイスにインストールします。 -
PsExec ユーティリティを使用して、デフォルトユーザーのユーザー名とパスワードを LocalSystem アカウントの認証情報マネージャーインスタンスに格納します。
パスワード
を以前に設定したユーザーのパスワードに置き換えます。psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:
password
PsExec License Agreement が開いたら、Accept を選択し、ライセンスに同意してコマンドを実行します。
注記
Windows デバイスでは、LocalSystem アカウントによって Greengrass nucleus が実行され、PsExec ユーティリティを使用して LocalSystem アカウントにデフォルトのユーザー情報を保存する必要があります。認証情報マネージャーアプリケーションを使用すると、この情報は LocalSystem アカウントではなく、現在ログオンしているユーザーの Windows アカウントに保存されます。
AWS IoT Greengrass Core ソフトウェアをダウンロードする
AWS IoT Greengrass Core ソフトウェアの最新バージョンは、次の場所からダウンロードできます。
注記
Core AWS IoT Greengrass ソフトウェアの特定のバージョンは、次の場所からダウンロードできます。バージョン
をダウンロードするバージョンに置き換えます。
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-
version
.zip
AWS IoT Greengrass Core ソフトウェアをダウンロードするには
-
コアデバイスで、 AWS IoT Greengrass Core ソフトウェアを という名前のファイルにダウンロードします
greengrass-nucleus-latest.zip
。このソフトウェアをダウンロードすると、Greengrass Core ソフトウェアのライセンス契約
に同意したものと見なされます。 -
(オプション) Greengrass nucleus ソフトウェア署名を確認するには
注記
この機能は、Greengrass nucleus バージョン 2.9.5 以降で使用できます。
-
以下のコマンドを使用して、Greengrass nucleus アーティファクトの署名を確認します。
-
jarsigner
が起動すると、検証結果を示す出力が得られます。-
Greengrass nucleus の zip ファイルに署名されると、出力に以下のような文が表示されます:
jar verified.
-
Greengrass nucleus の zip ファイルに署名されないと、出力に以下のような文が表示されます:
jar is unsigned.
-
-
Jarsigner
-certs
を-verify
と-verbose
オプションと一緒に提供した場合、出力には署名者証明書の詳細情報も含まれます。
-
-
AWS IoT Greengrass Core ソフトウェアをデバイスのフォルダに解凍します。
GreengrassInstaller
を使用するフォルダに置き換えます。 -
(オプション) 次のコマンドを実行して、 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 フリートプロビジョニングプラグインをダウンロードする
フリー AWS IoT トプロビジョニングプラグインの最新バージョンは、次の場所からダウンロードできます。
注記
フリー AWS IoT トプロビジョニングプラグインの特定のバージョンは、次の場所からダウンロードできます。バージョン
をダウンロードするバージョンに置き換えます。フリートプロビジョニングプラグインの各バージョンの詳細については、「AWS IoT フリートプロビジョニングプラグインの変更ログ」を参照してください。
https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-
version
.jar
フリートプロビジョニングプラグインはオープンソースです。ソースコードを確認する場合は、GitHub 上の「AWS IoT フリートプロビジョニングプラグイン
AWS IoT フリートプロビジョニングプラグインをダウンロードするには
-
デバイスで、 AWS IoT フリートプロビジョニングプラグインを という名前のファイルにダウンロードします
aws.greengrass.FleetProvisioningByClaim.jar
。GreengrassInstaller
を使用するフォルダに置き換えます。このソフトウェアをダウンロードすると、Greengrass Core ソフトウェアのライセンス契約
に同意したものと見なされます。
AWS IoT Greengrass Core ソフトウェアをインストールします。
次のアクションを指定する引数を含むインストーラを実行します。
-
フリートプロビジョニングプラグインを使用して AWS リソースをプロビジョニングするように指定する部分設定ファイルから をインストールします。 AWS IoT Greengrass Core ソフトウェアは、デバイス上のすべての Greengrass コンポーネントの設定を指定する設定ファイルを使用します。インストーラは、指定した部分設定ファイルとフリートプロビジョニングプラグインが作成する AWS リソースから完全な設定ファイルを作成します。
-
コアデバイスでソフトウェアコンポーネントを実行するために
ggc_user
システムユーザーを使用するように指定します。Linux デバイスでは、このコマンドもggc_group
システムグループを使用するように指定し、さらにインストーラによってシステムユーザーとグループが、ユーザーに代わって作成されます。 -
Core AWS IoT Greengrass ソフトウェアを、起動時に実行されるシステムサービスとしてセットアップします。Linux デバイスでは、これは Systemd
init システムが必要です。 重要
Windows コアデバイスでは、 AWS IoT Greengrass Core ソフトウェアをシステムサービスとして設定する必要があります。
指定できる引数の詳細については、「インストーラ引数」を参照してください。
注記
メモリが制限された AWS IoT Greengrass デバイスで実行している場合は、 AWS IoT Greengrass Core ソフトウェアが使用するメモリ量を制御できます。メモリ割り当てを制御するには、nucleus コンポーネントの jvmOptions
設定パラメータで JVM ヒープのサイズオプションを設定できます。詳細については、「JVM オプションでメモリ割り当てを制御する」を参照してください。
AWS IoT Greengrass Core ソフトウェアをインストールするには
-
AWS IoT Greengrass Core ソフトウェアのバージョンを確認します。
-
GreengrassInstaller
を、ソフトウェアが含まれるフォルダへのパスに置き換えます。
java -jar ./
GreengrassInstaller
/lib/Greengrass.jar --version -
-
テキストエディタを使用し、
config.yaml
という名前の設定ファイルを作成してインストーラに提供します。例えば、Linux ベースのシステムでは、次のコマンドを実行し、GNU nano を使用してファイルを作成できます。
nano
GreengrassInstaller
/config.yaml次の YAML コンテンツをファイルにコピーします。この部分設定ファイルは、フリートプロビジョニングプラグインのパラメータを指定します。指定できるオプションの詳細については、「AWS IoT フリートプロビジョニングプラグインを設定する」を参照してください。
次に、以下の操作を実行します。
-
2.14.0
を AWS IoT Greengrass Core ソフトウェアのバージョンに置き換えます。 -
または/greengrass/v2
C:\greengrass\v2
の各インスタンスを Greengrass ルートフォルダに置き換えます。注記
Windows デバイスでは、パスセパレータは二重バックスラッシュ (
\\
) で指定する必要があります (例:C:\\greengrass\\v2
)。 -
us-west-2
を、プロビジョニングテンプレートおよびその他のリソースを作成した AWS リージョンに置き換えます。 -
を AWS IoT データエンドポイント
iotDataEndpoint
に置き換えます。 -
iotCredentialEndpoint
を AWS IoT 認証情報のエンドポイントに置き換えます。 -
GreengrassCoreTokenExchangeRoleAlias
をトークン交換ロールエイリアスの名前に置き換えます。 -
GreengrassFleetProvisioningTemplate
を、フリートプロビジョニングテンプレートの名前に置き換えます。 -
claimCertificatePath
をデバイス上のクレーム証明書へのパスに置き換えます。 -
claimCertificatePrivateKeyPath
をデバイス上のクレーム証明書のプライベートキーへのパスに置き換えます。 -
テンプレートパラメータ (
templateParameters
) を、デバイスのプロビジョニングに使用する値に置き換えます。この例は、ThingName
およびThingGroupName
パラメータを定義するテンプレート例を参照しています。
-
-
インストーラーを実行します。
--trusted-plugin
を指定してフリートプロビジョニングプラグインを提供し、--init-config
を指定して設定ファイルを提供します。-
を Greengrass のルートフォルダに置き換えます。/greengrass/v2
-
GreengrassInstaller
の各インスタンスをインストーラを解凍したフォルダに置き換えます。
重要
Windows コアデバイスでは、 を指定
--setup-system-service true
して AWS IoT Greengrass Core ソフトウェアをシステムサービスとしてセットアップする必要があります。--setup-system-service true
を指定する場合、ソフトウェアをシステムサービスとしてセットアップして実行したら、インストーラはSuccessfully set up Nucleus as a system service
を出力します。それ以外の場合、正常にソフトウェアがインストールされていれば、インストーラはメッセージを出力しません。注記
--provision true
引数なしでインストーラを実行するとき、ローカル開発ツールをデプロイするためにdeploy-dev-tools
引数を使用できません。Greengrass CLI をデバイスに直接デプロイする方法の情報については、「Greengrass コマンドラインインターフェイス」を参照してください。 -
-
ルートフォルダのファイルを確認して、インストールを確認します。
インストールが正常に処理された場合、ルートフォルダには
config
、packages
、logs
などの複数のフォルダが含まれます。
AWS IoT Greengrass Core ソフトウェアをシステムサービスとしてインストールした場合、インストーラによってソフトウェアが実行されます。それ以外の場合、ソフトウェアを手動で実行する必要があります。詳細については、「AWS IoT Greengrass Core ソフトウェアを実行する」を参照してください。
ソフトウェアと を設定および使用する方法の詳細については AWS IoT Greengrass、以下を参照してください。
自動リソースプロビジョニングを使用した FIPS エンドポイントのインストール
AWS IoT Greengrass Core ソフトウェアには、デバイスを Greengrass コアデバイスとしてセットアップするインストーラが含まれています。デバイスをすばやくセットアップするために、インストーラはコアデバイスが動作するために必要な AWS IoT モノ、 AWS IoT モノのグループ、IAM ロール、および AWS IoT ロールエイリアスをプロビジョニングできます。インストーラは、ローカル開発ツールをコアデバイスにデプロイすることもできるため、デバイスを使用してカスタムソフトウェアコンポーネントを開発とテストできます。インストーラは、これらのリソースをプロビジョニングしてデプロイを作成すには、 AWS 認証情報が必要です。
デバイスに AWS 認証情報を提供できない場合は、コアデバイスが動作するために必要なリソースをプロビジョニング AWS できます。開発ツールをコアデバイスにデプロイして、開発デバイスとして使用することもできます。これにより、インストーラの実行時にデバイスに与える許可を減らすことができます。詳細については、「手動リソースプロビジョニングを使用して AWS IoT Greengrass Core ソフトウェアをインストールする」を参照してください。
重要
AWS IoT Greengrass Core ソフトウェアをダウンロードする前に、コアデバイスが AWS IoT Greengrass Core ソフトウェア v2.0 をインストールして実行するための要件を満たしていることを確認してください。
トピック
デバイス環境をセットアップする
このセクションのステップに従って、 AWS IoT Greengrass コアデバイスとして使用する Linux または Windows デバイスをセットアップします。
Linux デバイスをセットアップする
の Linux デバイスを設定するには AWS IoT Greengrass V2
-
AWS IoT Greengrass Core ソフトウェアの実行に必要な Java ランタイムをインストールします。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)
-
-
(オプション) デバイスにコンポーネントを実行するデフォルトのシステムユーザーおよびグループを作成します。インストーラ
--component-default-user
引数を使用して、インストール中に AWS IoT Greengrass Core ソフトウェアインストーラでこのユーザーとグループを作成することもできます。詳細については、「インストーラ引数」を参照してください。sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group
-
AWS IoT Greengrass Core ソフトウェアを実行するユーザー (通常は
root
) に、任意のユーザーと任意のグループsudo
で を実行するアクセス許可があることを確認します。-
/etc/sudoers
ファイルを開くには、次のコマンドを実行します。sudo visudo
-
ユーザーの権限が次の例のようになっていることを確認します。
root ALL=(ALL:ALL) ALL
-
-
(オプション) コンテナ化された Lambda 関数を実行するには、cgroups
v1 を有効にし、メモリとデバイスの cgroups を有効にしてマウントする必要があります。コンテナ化された Lambda 関数を実行する予定がない場合、この手順を省略できます。 これらの cgroups オプションを有効にするには、次の Linux カーネルパラメータを使用してデバイスを起動します。
cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
デバイスのカーネルパラメータを確認および設定するための情報については、オペレーティングシステムおよびブートローダーのドキュメントを参照してください。指示に従って、カーネルパラメータを永続的に設定します。
-
デバイスの要件 にある要件リストで示されているように、その他の必要となる依存関係をすべてデバイスにインストールします。
Windows デバイスをセットアップする
注記
この機能は、Greengrass nucleus コンポーネントの v2.5.0 以降に利用できます。
の Windows デバイスを設定するには AWS IoT Greengrass V2
-
AWS IoT Greengrass Core ソフトウェアの実行に必要な Java ランタイムをインストールします。Amazon Corretto
または OpenJDK の長期サポートバージョンを使用することをお勧めします。バージョン 8 以降が必要です。 -
PATH
システム変数で Java が使用可能か確認し、そうでない場合は追加します。LocalSystem アカウントは AWS IoT Greengrass Core ソフトウェアを実行するため、ユーザーの PATH ユーザー変数の代わりに PATH システム変数に Java を追加する必要があります。以下の操作を実行します。 -
Windows キーを押してスタートメニューを開きます。
-
environment variables
を入力して、スタートメニューからシステムオプションを検索します。 -
スタートメニューの検索結果から [Edit the system environment variables] (システム環境変数を編集) をクリックして、[System properties] (システムプロパティ) ウィンドウを開きます。
-
[Environment variables...] (環境変数...) を選択して、[Environment Variables] (環境可変) ウィンドウを開きます。
-
[System variables] (システム変数) で、[Path] (パス) 、[Edit] (編集) の順に選択します。[Edit environment variable] (環境変数の編集) ウィンドウでは、個別の行に各パスを表示できます。
-
Java インストールの
bin
フォルダへのパスが存在しているかを確認します。このパスは、次の例のように表示されます。C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
-
[Path] (パス) で Java インストールの
bin
フォルダが で見つからない場合は、[New] (新規) を選択してこれを追加した上で、[OK] を選択します。
-
-
管理者として Windows コマンドプロンプト
cmd.exe
を開きます。 -
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"}
-
-
PsExec ユーティリティ
を Microsoft からダウンロードしてデバイスにインストールします。 -
PsExec ユーティリティを使用して、デフォルトユーザーのユーザー名とパスワードを LocalSystem アカウントの認証情報マネージャーインスタンスに格納します。
パスワード
を以前に設定したユーザーのパスワードに置き換えます。psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:
password
PsExec License Agreement が開いたら、Accept を選択し、ライセンスに同意してコマンドを実行します。
注記
Windows デバイスでは、LocalSystem アカウントによって Greengrass nucleus が実行され、PsExec ユーティリティを使用して LocalSystem アカウントにデフォルトのユーザー情報を保存する必要があります。認証情報マネージャーアプリケーションを使用すると、この情報は LocalSystem アカウントではなく、現在ログオンしているユーザーの Windows アカウントに保存されます。
デバイスに AWS 認証情報を提供する
インストーラが必要な AWS リソースをプロビジョニングできるように、デバイスに AWS 認証情報を提供します。必要な許可の詳細については、「インストーラがリソースをプロビジョニングするための最小限の IAM ポリシー」を参照してください。
デバイスに AWS 認証情報を提供するには
-
インストーラがコアデバイスの AWS IoT および IAM リソースをプロビジョニングできるように、デバイスに AWS 認証情報を提供します。セキュリティを強化するには、プロビジョニングに必要な最小限の許可のみを与える IAM ロールの一時的な認証情報を取得することをお勧めします。詳細については、「インストーラがリソースをプロビジョニングするための最小限の IAM ポリシー」を参照してください。
注記
インストーラが認証情報を保存したり保管することはありません。
デバイスで、次のいずれかを実行して認証情報を取得し、 AWS IoT Greengrass Core ソフトウェアインストーラで使用できるようにします。
-
(推奨) から一時的な認証情報を使用する AWS IAM Identity Center
-
継承する IAM Identity Center から、アクセスキー ID、シークレットアクセスキー、セッショントークンを提供します。これらの方法の詳細については、IAM Identity Center ユーザーガイドの「一時的な認証情報の取得と更新」で「認証情報の手動更新」を参照してください。
-
次のコマンドを実行して、 AWS IoT Greengrass Core ソフトウェアに認証情報を提供します。
-
-
IAM ロールから一時的なセキュリティ認証情報を使用します。
-
継承する IAM ロールから、アクセスキー ID、シークレットアクセスキー、セッショントークンを提供します。これらの認証情報を取得する方法の詳細については、「IAM ユーザーガイド」の「一時的なセキュリティ認証情報のリクエスト」を参照してください。
-
次のコマンドを実行して、 AWS IoT Greengrass Core ソフトウェアに認証情報を提供します。
-
-
IAM ユーザーからの長期的な認証情報を使用する:
-
IAM ユーザーのアクセスキー ID とシークレットアクセスキーを提供します。後で削除するプロビジョニング用の IAM ユーザーを作成できます。ユーザーに付与する IAM ポリシーについては、「インストーラがリソースをプロビジョニングするための最小限の IAM ポリシー」を参照してください。長期認証情報を取得する方法の詳細については、「IAM ユーザーガイド」の「IAM ユーザーのアクセスキー管理」を参照してください。
-
次のコマンドを実行して、 AWS IoT Greengrass Core ソフトウェアに認証情報を提供します。
-
(オプション) Greengrass デバイスをプロビジョニングする IAM ユーザーを作成した場合は、ユーザーを削除します。
-
(オプション) 既存の IAM ユーザーのアクセスキー ID とシークレットアクセスキーを使用した場合は、そのユーザーのキーを更新して、そのキーが無効になるようにします。詳細については、「AWS Identity and Access Management ユーザーガイド」の「アクセスキーの更新」を参照してください。
-
-
AWS IoT Greengrass Core ソフトウェアをダウンロードする
AWS IoT Greengrass Core ソフトウェアの最新バージョンは、次の場所からダウンロードできます。
注記
Core AWS IoT Greengrass ソフトウェアの特定のバージョンは、次の場所からダウンロードできます。バージョン
をダウンロードするバージョンに置き換えます。
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-
version
.zip
AWS IoT Greengrass Core ソフトウェアをダウンロードするには
-
コアデバイスで、 AWS IoT Greengrass Core ソフトウェアを という名前のファイルにダウンロードします
greengrass-nucleus-latest.zip
。このソフトウェアをダウンロードすると、Greengrass Core ソフトウェアのライセンス契約
に同意したものと見なされます。 -
(オプション) Greengrass nucleus ソフトウェア署名を確認するには
注記
この機能は、Greengrass nucleus バージョン 2.9.5 以降で使用できます。
-
以下のコマンドを使用して、Greengrass nucleus アーティファクトの署名を確認します。
-
jarsigner
が起動すると、検証結果を示す出力が得られます。-
Greengrass nucleus の zip ファイルに署名されると、出力に以下のような文が表示されます:
jar verified.
-
Greengrass nucleus の zip ファイルに署名されないと、出力に以下のような文が表示されます:
jar is unsigned.
-
-
Jarsigner
-certs
を-verify
と-verbose
オプションと一緒に提供した場合、出力には署名者証明書の詳細情報も含まれます。
-
-
AWS IoT Greengrass Core ソフトウェアをデバイスのフォルダに解凍します。
GreengrassInstaller
を使用するフォルダに置き換えます。 -
(オプション) 次のコマンドを実行して、 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 リソースを作成します。
-
コアデバイスでソフトウェアコンポーネントを実行するために
ggc_user
システムユーザーを使用するように指定します。Linux デバイスでは、このコマンドもggc_group
システムグループを使用するように指定し、さらにインストーラによってシステムユーザーとグループが、ユーザーに代わって作成されます。 -
Core AWS IoT Greengrass ソフトウェアを、起動時に実行されるシステムサービスとしてセットアップします。Linux デバイスでは、これは Systemd
init システムが必要です。 重要
Windows コアデバイスでは、 AWS IoT Greengrass Core ソフトウェアをシステムサービスとして設定する必要があります。
ローカル開発ツールで開発デバイスをセットアップするには、--deploy-dev-tools true
引数を指定します。インストール完了後、ローカル開発ツールのデプロイには最大 1 分かかることがあります。
指定できる引数の詳細については、「インストーラ引数」を参照してください。
注記
メモリが制限された AWS IoT Greengrass デバイスで実行している場合は、 AWS IoT Greengrass Core ソフトウェアが使用するメモリ量を制御できます。メモリ割り当てを制御するには、nucleus コンポーネントの jvmOptions
設定パラメータで JVM ヒープのサイズオプションを設定できます。詳細については、「JVM オプションでメモリ割り当てを制御する」を参照してください。
AWS IoT Greengrass Core ソフトウェアをインストールするには
-
テキストエディタを使用し、
config.yaml
という名前の設定ファイルを作成してインストーラに提供します。例えば、Linux ベースのシステムでは、次のコマンドを実行し、GNU nano を使用してファイルを作成できます。
nano
GreengrassInstaller
/config.yaml次の YAML コンテンツをファイルにコピーします。この部分設定ファイルは、システムパラメータと Greengrass nucleus パラメータを指定します。
--- services: aws.greengrass.Nucleus: configuration: fipsMode: "true" iotDataEndpoint: "
data.iot-fips.us-west-2.amazonaws.com
" iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com
" greengrassDataPlaneEndpoint: "iotData"-
us-west-2
をリソースを作成した AWS リージョン に置き換えます。 -
iotDataEndpoint
を AWS IoT データエンドポイントに置き換えます。 -
iotCredEndpoint
を AWS IoT 認証情報のエンドポイントに置き換えます。
-
-
AWS IoT Greengrass Core インストーラを実行します。コマンドの引数値を次のように置き換えます。
注記
Windows では、パスの長さは 260 文字に制限されています。Windows を使用している場合は、
C:\greengrass\v2
やD:\greengrass\v2
などのルートフォルダを使用して、Greengrass コンポーネントのパスを 260 文字の制限内に留めます。-
または/greengrass/v2
C:\greengrass\v2
: AWS IoT Greengrass Core ソフトウェアのインストールに使用するルートフォルダへのパス。 -
GreengrassInstaller
。 AWS IoT Greengrass Core ソフトウェアインストーラを解凍したフォルダへのパス。 -
リージョン
。リソースを検索または作成する AWS リージョン 。 -
MyGreengrassCore
。Greengrass コアデバイスの AWS IoT モノの名前。モノが存在しない場合、インストーラによって作成されます。インストーラは証明書をダウンロードして、 AWS IoT モノとして認証します。詳細については、「AWS IoT Greengrassのデバイス認証と認可」を参照してください。注記
モノの名前にコロン (
:
) 記号を含むことができません。 -
MyGreengrassCoreGroup
。Greengrass コアデバイスの AWS IoT モノグループの名前。モノグループが存在しない場合、インストーラはそのグループを作成してモノを追加します。モノグループが存在してアクティブなデプロイがある場合、コアデバイスはデプロイで指定されたソフトウェアをダウンロードして実行します。注記
モノグループ名にコロン (
:
) 記号を含めることはできません。 -
GreengrassV2IoTThingPolicy
。Greengrass コアデバイスが AWS IoT および と通信することを許可する AWS IoT ポリシーの名前 AWS IoT Greengrass。ポリシーが存在しない場合 AWS IoT 、インストーラはこの名前で許可 AWS IoT ポリシーを作成します。ユースケースに合わせて、このポリシーのアクセス許可を制限することができます。詳細については、「AWS IoT Greengrass V2 コアデバイスの最小 AWS IoT ポリシー」を参照してください。 -
GreengrassV2TokenExchangeRole
。Greengrass コアデバイスに一時的な AWS 認証情報の取得を許可する IAM ロールの名前。ロールが存在しない場合、インストーラがロールを作成し、
という名前のポリシーを作成してアタッチします。詳細については、「コアデバイスが AWS サービスとやり取りできるように承認する」を参照してください。GreengrassV2TokenExchangeRole
Access -
GreengrassCoreTokenExchangeRoleAlias
。Greengrass コアデバイスが後で一時的な認証情報を取得できるようにする IAM ロールのエイリアス。ロールエイリアスが存在しない場合、インストーラがロールエイリアスを作成し、指定した IAM ロールを指します。詳細については、「コアデバイスが AWS サービスとやり取りできるように承認する」を参照してください。
重要
Windows コアデバイスでは、 を指定
--setup-system-service true
して AWS IoT Greengrass Core ソフトウェアをシステムサービスとしてセットアップする必要があります。インストーラが正常に処理すると、次のメッセージを印刷します。
-
--provision
を指定すると、インストーラがリソースに正しく設定した場合、Successfully configured Nucleus with provisioned resource details
を印刷します。 -
--deploy-dev-tools
を指定すると、インストーラがデプロイを正しく作成した場合、Configured Nucleus to deploy aws.greengrass.Cli component
を印刷します。 -
--setup-system-service true
を指定すると、インストーラがソフトウェアをサービスとして設定して実行した場合、Successfully set up Nucleus as a system service
を印刷します。 -
--setup-system-service true
を指定しないと、インストーラが正常に処理できてソフトウェアを実行した場合、Launched Nucleus successfully
を印刷します。
-
-
Greengrass nucleus v2.0.4 以降をインストールした場合、この手順を省略できます。ソフトウェアの最新バージョンをダウンロード済みで、v2.0.4 以降をインストールしています。
次のコマンドを実行して、 AWS IoT Greengrass Core ソフトウェアのルートフォルダに必要なファイル許可を設定します。
をインストールコマンドで指定したルートフォルダに置き換えて、/greengrass/v2
/greengrass
をルートフォルダの親フォルダに置き換えます。sudo chmod 755
&& sudo chmod 755/greengrass/v2
/greengrass
AWS IoT Greengrass Core ソフトウェアをシステムサービスとしてインストールした場合、インストーラによってソフトウェアが実行されます。それ以外の場合、ソフトウェアを手動で実行する必要があります。詳細については、「AWS IoT Greengrass Core ソフトウェアを実行する」を参照してください。
注記
デフォルトでは、インストーラが作成する IAM ロールは S3 バケットのコンポーネントアーティファクトへのアクセスを許可しません。Amazon S3 でアーティファクトを定義するカスタムコンポーネントをデプロイするには、コアデバイスがコンポーネントアーティファクトを取得できるようにする許可をロールに追加する必要があります。詳細については、「コンポーネントのアーティファクトの S3 バケットへのアクセスを許可する」を参照してください。
コンポーネントアーティファクトに S3 バケットをまだ持っていない場合、バケットを作成した後でこれらのアクセス許可を追加できます。
ソフトウェアと を設定および使用する方法の詳細については AWS IoT Greengrass、以下を参照してください。
FIPS コンプライアンスのファーストパーティコンポーネント
aws.greengrass.Nucleus |
data.iot-fips. |
greengrass-fips. |
|
data.credentials.iot-fips. |
|
aws.greengrass.TokenExchangeService |
data.credentials.iot-fips. |
aws.greengrass.Cli |
|
aws.greengrass.StreamManager |
注記ストリームマネージャーは FIPS AWS IoT Analytics エンドポイントをサポートしていません |
aws.greengrass.LogManager |
logs-fips.us-east-1 .amazonaws.com |
aws.greengrass.crypto.Pkcs11Provider |
|
aws.greengrass.ShadowManager |
|
aws.greengrass.DockerApplicationManager |
ecr-fips.us-east-1 .amazonaws.com |
aws.greengrass.SecretManager |
secretsmanager-fips.us-east-1 .amazonaws.com |
aws.greengrass.telemetry.NucleusEmitter |
|
aws.greengrass.clientdevices.IPDetector |
|
aws.greengrass.DiskSpooler |