翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT フリートプロビジョニングを使用して AWS IoT Greengrass Core ソフトウェアをインストールする
この機能は、Greengrass nucleus コンポーネントの v2.4.0 以降に利用できます。
AWS IoT フリートプロビジョニングを使用すると、X.509 デバイス証明書とプライベートキー AWS IoT を AWS IoT 初めて接続するときに生成してデバイスに安全に配信するように を設定できます。 は、Amazon ルート認証局 (CA) によって署名されたクライアント証明書 AWS IoT を提供します。フリートプロビジョニングでプロビジョニングする Greengrass コアデバイスのモノグループ、モノのタイプ、およびアクセス許可を指定する AWS IoT ように を設定することもできます。プロビジョニングテンプレートを定義して、 が各デバイスを AWS IoT プロビジョニングする方法を定義します。プロビジョニングテンプレートは、プロビジョニング時にデバイス用に作成するもの、ポリシー、および証明書リソースを指定します。詳細については、「AWS IoT Core デベロッパーガイド」の「プロビジョニングテンプレート」を参照してください。
AWS IoT Greengrass は、 AWS IoT フリートプロビジョニングによって作成された AWS リソースを使用して AWS IoT Greengrass Core ソフトウェアをインストールするために使用できる AWS IoT フリートプロビジョニングプラグインを提供します。フリートプロビジョニングプラグインはクレームによるプロビジョニングを使用します。デバイスは、プロビジョニングクレーム証明書とプライベートキーを使用して、通常の操作に使用できる一意の X.509 デバイス証明書とプライベートキーを取得します。製造中に各デバイスにクレーム証明書とシークレットキーを埋め込むことができるので、お客様は後で各デバイスがオンラインになったときにデバイスをアクティブにできます。複数のデバイスに対して同じクレーム証明書とプライベートキーを使用することができます。詳細については、「AWS IoT Core デベロッパーガイド」の「クレームによるプロビジョニング」を参照してください。
注記
フリートプロビジョニングプラグインは、現在、ハードウェアセキュリティモジュール (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 エンドポイントを取得する
の AWS IoT エンドポイントを取得し AWS アカウント、後で使用するために保存します。デバイスはこれらのエンドポイントを使用して AWS IoTに接続します。以下の操作を実行します。
-
AWS IoT のデータエンドポイントを取得します AWS アカウント。
aws iot describe-endpoint --endpoint-type iot:Data-ATS
要求が正常に処理された場合、レスポンスは次の例のようになります。
{ "endpointAddress": "
device-data-prefix
-ats.iot.us-west-2.amazonaws.com" } -
の AWS IoT 認証情報エンドポイントを取得します AWS アカウント。
aws iot describe-endpoint --endpoint-type iot:CredentialProvider
要求が正常に処理された場合、レスポンスは次の例のようになります。
{ "endpointAddress": "
device-credentials-prefix
.credentials.iot.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
という名のフォルダからデバイスに転送します。をデバイスの IP アドレスdevice-ip-address
に置き換えます。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 ルートフォルダに置き換えます。
-
-
Amazon ルート認証局 (CA) Certificate. AWS IoT certificates のダウンロードは、デフォルトで Amazon のルート CA 証明書に関連付けられています。
デバイス環境をセットアップする
このセクションのステップに従って、 AWS IoT Greengrass コアデバイスとして使用する Linux または Windows デバイスをセットアップします。
Linux デバイスをセットアップする
の Linux デバイスを設定するには AWS IoT Greengrass V2
-
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)
-
-
(オプション) デバイスにコンポーネントを実行するデフォルトのシステムユーザーおよびグループを作成します。 AWS IoT Greengrass Core ソフトウェアインストーラがインストーラ
--component-default-user
引数を使用してインストール中にこのユーザーとグループを作成することを許可することもできます。詳細については、「インストーラ引数」を参照してください。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
-
Core ソフトウェアの実行に必要な Java AWS IoT Greengrass ランタイムをインストールします。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"}
-
-
Microsoft から PsExecユーティリティ
をダウンロードしてデバイスにインストールします。 -
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 ソフトウェアをダウンロードするには
-
コアデバイスで、 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
フリートプロビジョニングプラグインはオープンソースです。ソースコードを表示するには、「」の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.12.6
を AWS IoT Greengrass Core ソフトウェアのバージョンに置き換えます。 -
または/greengrass/v2
C:\greengrass\v2
の各インスタンスを Greengrass ルートフォルダに置き換えます。注記
Windows デバイスでは、パスセパレータは二重バックスラッシュ (
\\
) で指定する必要があります (例:C:\\greengrass\\v2
)。 -
us-west-2
を、プロビジョニングテンプレートおよびその他のリソースを作成した AWS リージョンに置き換えます。 -
を AWS IoT データエンドポイント
iotDataEndpoint
に置き換えます。 -
を AWS IoT 認証情報エンドポイント
iotCredentialEndpoint
に置き換えます。 -
をトークン交換ロールエイリアスの名前
GreengrassCoreTokenExchangeRoleAlias
に置き換えます。 -
をフリートプロビジョニングテンプレートの名前
GreengrassFleetProvisioningTemplate
に置き換えます。 -
claimCertificatePath
をデバイス上のクレーム証明書へのパスに置き換えます。 -
claimCertificatePrivateKeyPath
をデバイス上のクレーム証明書のプライベートキーへのパスに置き換えます。 -
テンプレートパラメータ (
templateParameters
) を、デバイスのプロビジョニングに使用する値に置き換えます。この例は、ThingName
およびThingGroupName
パラメータを定義するテンプレート例を参照しています。
注記
この設定ファイルでは、使用するポートやネットワークプロキシなど、次の例で示すように、他の設定オプションをカスタマイズすることができます。詳細については、Greengrass nucleus 設定を参照してください。
HTTPS プロキシを使用するには、フリートプロビジョニングプラグインのバージョン 1.1.0 以降を使用する必要があります。次の例に示すように、さらに、
system
にあるrootCaPath
も指定する必要があります。 -
-
インストーラーを実行します。
--trusted-plugin
を指定してフリートプロビジョニングプラグインを提供し、--init-config
を指定して設定ファイルを提供します。-
を Greengrass ルートフォルダ
に置き換えます。/greengrass/v2
-
の各インスタンスを
GreengrassInstaller
、インストーラを解凍したフォルダに置き換えます。
重要
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 コマンドラインインターフェイス」を参照してください。 -
-
ルートフォルダのファイルを確認して、インストールを確認します。
インストールが正常に処理された場合、ルートフォルダには
config
、packages
、logs
などの複数のフォルダが含まれます。
AWS IoT Greengrass Core ソフトウェアをシステムサービスとしてインストールした場合、インストーラはソフトウェアを自動的に実行します。それ以外の場合、ソフトウェアを手動で実行する必要があります。詳細については、「AWS IoT Greengrass Core ソフトウェアを実行する」を参照してください。
ソフトウェアと を設定して使用する方法の詳細については AWS IoT Greengrass、以下を参照してください。