翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT Greengrass Core ソフトウェアには、デバイスを Greengrass コアデバイスとしてセットアップするインストーラが含まれています。デバイスを手動でセットアップするには、デバイスが使用するために必要な AWS IoT および IAM リソースを作成できます。これらのリソースを手動で作成する場合、インストーラに AWS 認証情報を提供する必要はありません。
AWS IoT Greengrass Core ソフトウェアを手動でインストールする場合、ネットワークプロキシを使用するか、ポート 443 AWS で に接続するようにデバイスを設定することもできます。例えば、デバイスがファイアウォールやネットワークプロキシの背後で稼働している場合、これらの設定オプションの指定が必要な場合があります。詳細については、「ポート 443 での接続またはネットワークプロキシを通じた接続」を参照してください。
PKCS#11 インターフェイス
重要
AWS IoT Greengrass Core ソフトウェアをダウンロードする前に、コアデバイスが AWS IoT Greengrass Core ソフトウェア v2.0 をインストールして実行するための要件を満たしていることを確認してください。
トピック
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 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) を作成します。 はこの CSR AWS IoT を使用して、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 文字の制限内に留めます。-
を使用するフォルダに置き換えます。/greengrass/v2
sudo mkdir -p
/greengrass/v2
-
(Linux のみ) Greengrass ルートフォルダの親の許可を設定します。
-
/greengrass
をルートフォルダへの親に置き換えます。
sudo chmod 755
/greengrass
-
-
AWS IoT モノの証明書を Greengrass ルートフォルダにコピーします。
-
を Greengrass のルートフォルダに置き換えます。/greengrass/v2
sudo cp -R ~/greengrass-v2-certs/*
/greengrass/v2
-
Amazon ルート認証局 (CA) 証明書をダウンロードします。 AWS IoT 証明書は、デフォルトで Amazon のルート CA 証明書に関連付けられます。
sudo curl -o
/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem/greengrass/v2
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 文字の制限内に留めます。-
を使用するフォルダに置き換えます。/greengrass/v2
sudo mkdir -p
/greengrass/v2
-
(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 証明書に関連付けられます。
sudo curl -o
/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem/greengrass/v2
デバイス環境をセットアップする
このセクションのステップに従って、 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
。curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
このソフトウェアをダウンロードすると、Greengrass Core ソフトウェアのライセンス契約
に同意したものと見なされます。 -
(オプション) Greengrass nucleus ソフトウェア署名を確認するには
注記
この機能は、Greengrass nucleus バージョン 2.9.5 以降で使用できます。
-
以下のコマンドを使用して、Greengrass nucleus アーティファクトの署名を確認します。
jarsigner -verify -certs -verbose
greengrass-nucleus-latest.zip
-
jarsigner
が起動すると、検証結果を示す出力が得られます。-
Greengrass nucleus の zip ファイルに署名されると、出力に以下のような文が表示されます:
jar verified.
-
Greengrass nucleus の zip ファイルに署名されないと、出力に以下のような文が表示されます:
jar is unsigned.
-
-
Jarsigner
-certs
を-verify
と-verbose
オプションと一緒に提供した場合、出力には署名者証明書の詳細情報も含まれます。
-
-
AWS IoT Greengrass Core ソフトウェアをデバイスのフォルダに解凍します。
GreengrassInstaller
を使用するフォルダに置き換えます。unzip greengrass-nucleus-latest.zip -d
GreengrassInstaller
&& rm greengrass-nucleus-latest.zip -
(オプション) 次のコマンドを実行して、 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
" 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.14.0
を AWS IoT Greengrass Core ソフトウェアのバージョンに置き換えます。 -
us-west-2
を、リソースを作成した AWS リージョン に置き換えます。 -
GreengrassCoreTokenExchangeRoleAlias
をトークン交換ロールエイリアスの名前に置き換えます。 -
を AWS IoT データエンドポイント
iotDataEndpoint
に置き換えます。 -
を AWS IoT 認証情報エンドポイント
iotCredEndpoint
に置き換えます。
注記
この設定ファイルでは、使用するポートやネットワークプロキシなど、次の例で示すように、他の nucleus の設定オプションをカスタマイズできます。詳細については、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
" 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" -
-
インストーラを実行して、設定ファイルを提供するように、
--init-config
に対して指定します。-
または/greengrass/v2
C:\greengrass\v2
を Greengrass ルートフォルダに置き換えます。 -
GreengrassInstaller
の各インスタンスをインストーラを解凍したフォルダに置き換えます。
sudo -E java -Droot="
" -Dlog.store=FILE \ -jar .//greengrass/v2
GreengrassInstaller
/lib/Greengrass.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 コマンドラインインターフェイス」を参照してください。 -
-
ルートフォルダのファイルを確認して、インストールを確認します。
ls
/greengrass/v2
インストールが正常に処理された場合、ルートフォルダには
config
、packages
、logs
などの複数のフォルダが含まれます。
プライベートキーと証明書を使用して AWS IoT Greengrass Core ソフトウェアを HSM にインストールする
注記
この機能は、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: "pkcs11:object=
iotdevicekey
;type=cert" privateKeyPath: "pkcs11:object=iotdevicekey
;type=private" rootCaPath: "
/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
" 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.14.0
を AWS IoT Greengrass Core ソフトウェアのバージョンに置き換えます。 -
us-west-2
を、リソースを作成した AWS リージョン に置き換えます。 -
GreengrassCoreTokenExchangeRoleAlias
をトークン交換ロールエイリアスの名前に置き換えます。 -
を AWS IoT データエンドポイント
iotDataEndpoint
に置き換えます。 -
を AWS IoT 認証情報エンドポイント
iotCredEndpoint
に置き換えます。 -
aws.greengrass.crypto.Pkcs11Provider
コンポーネントの設定パラメータを、コアデバイスの HSM 設定の値に置き換えます。
注記
この設定ファイルでは、使用するポートやネットワークプロキシなど、次の例で示すように、他の nucleus の設定オプションをカスタマイズできます。詳細については、Greengrass nucleus 設定を参照してください。
--- system: certificateFilePath: "pkcs11:object=
iotdevicekey
;type=cert" privateKeyPath: "pkcs11:object=iotdevicekey
;type=private" rootCaPath: "
/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
" 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
" -
-
インストーラを実行して、設定ファイルを提供するように、
--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 コマンドラインインターフェイス」を参照してください。 -
-
ルートフォルダのファイルを確認して、インストールを確認します。
ls
/greengrass/v2
インストールが正常に処理された場合、ルートフォルダには
config
、packages
、logs
などの複数のフォルダが含まれます。
AWS IoT Greengrass Core ソフトウェアをシステムサービスとしてインストールした場合、インストーラによってソフトウェアが実行されます。それ以外の場合、ソフトウェアを手動で実行する必要があります。詳細については、「AWS IoT Greengrass Core ソフトウェアを実行する」を参照してください。
ソフトウェアと を設定および使用する方法の詳細については AWS IoT Greengrass、以下を参照してください。