翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
コアデバイスが AWS サービスとやり取りできるように認証する
AWS IoT Greengrass コアデバイスは、 AWS IoT Core 認証情報プロバイダーを使用して サービスへの AWS 呼び出しを承認します。 AWS IoT Core 認証情報プロバイダーを使用すると、デバイスは X.509 証明書を一意のデバイス ID として使用して AWS リクエストを認証できます。これにより、 AWS アクセスキー ID とシークレットアクセスキーを AWS IoT Greengrass コアデバイスに保存する必要がなくなります。詳細については、「 AWS IoT Core デベロッパーガイド」の「 AWS サービスへの直接呼び出しの承認」を参照してください。
AWS IoT Greengrass Core ソフトウェアを実行するときに、コアデバイスが必要とする AWS リソースをプロビジョニングすることを選択できます。これには、コアデバイスが AWS IoT Core 認証情報プロバイダーを通じて引き受ける AWS Identity and Access Management (IAM) ロールが含まれます。--provision true
引数を使用して、コアデバイスが一時的な AWS 認証情報を取得できるようにするロールとポリシーを設定します。この引数は、この AWS IoT ロールを指すIAMロールエイリアスも設定します。使用するIAMロールと AWS IoT ロールエイリアスの名前を指定できます。これらの他の名前パラメータなしで --provision
true
を指定した場合、Greengrass コアデバイスは次のデフォルトリソースを作成して使用します。
-
IAM ロール:
GreengrassV2TokenExchangeRole
この役割には、
GreengrassV2TokenExchangeRoleAccess
という名前のポリシーと、credentials.iot.amazonaws.com
がロールを継承することができる信頼関係があります。ポリシーには、コアデバイスに対する最低限のアクセス許可が含まれます。重要
このポリシーには、S3 バケット内のファイルへのアクセスは含まれません。コアデバイスが S3 バケットからコンポーネントアーティファクトを取得できるように、ロールにアクセス許可を追加する必要があります。詳細については、「コンポーネントのアーティファクトの S3 バケットへのアクセスを許可する」を参照してください。
-
AWS IoT ロールエイリアス:
GreengrassV2TokenExchangeRoleAlias
このロールエイリアスはIAMロールを参照します。
詳細については、「ステップ 3: AWS IoT Greengrass Core ソフトウェアをインストールする」を参照してください。
既存のコアデバイスにロールエイリアスを設定することもできます。設定するには、Greengrass nucleus コンポーネントの iotRoleAlias
設定パラメータを設定します。
このIAMロールの一時的な AWS 認証情報を取得して、カスタムコンポーネントで AWS オペレーションを実行できます。詳細については、「AWS サービスとやり取り」を参照してください。
コアデバイスに対するサービスロールのアクセス許可
このロールにより、次のサービスがロールを継承できます。
-
credentials.iot.amazonaws.com
AWS IoT Greengrass Core ソフトウェアを使用してこのロールを作成する場合、次のアクセス許可ポリシーを使用して、コアデバイスが に接続してログを送信できるようにします AWS。ポリシーの名前は、デフォルトで で終わるIAMロールの名前になりますAccess
。例えば、デフォルトのIAMロール名を使用する場合、このポリシーの名前は ですGreengrassV2TokenExchangeRoleAccess
。
コンポーネントのアーティファクトの S3 バケットへのアクセスを許可する
コアデバイスのロールは、デフォルトではコアデバイスが S3 バケットにアクセスすることを許可しません。S3 バケットにアーティファクトを持つコンポーネントをデプロイするには、コアデバイスがコンポーネントアーティファクトをダウンロードすることを許可する s3:GetObject
アクセス許可を追加する必要があります。コアデバイスに新しいポリシーを追加することで、このアクセス許可を付与できます。
Amazon S3 のコンポーネントアーティファクトへのアクセスを許可するポリシーを追加するには
-
という名前のファイル
component-artifact-policy.json
を作成し、以下を ファイルにコピーJSONします。このポリシーは、S3 バケット内のすべてのファイルへのアクセスを許可します。amzn-s3-demo-bucket を S3 バケットの名前に置き換えて、コアデバイスがアクセスできるようにします。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
-
次のコマンドを実行して、
component-artifact-policy.json
のポリシードキュメントからポリシーを作成します。出力のポリシーメタデータからポリシー Amazon リソースネーム (ARN) をコピーします。これを使用してARN、次のステップでこのポリシーをコアデバイスロールにアタッチします。
-
次のコマンドを実行して、ポリシーをコアデバイスのロールにアタッチします。置換
GreengrassV2TokenExchangeRole
AWS IoT Greengrass Core ソフトウェアの実行時に指定したロールの名前。次に、ポリシーを前のステップARNARNの に置き換えます。コマンドに出力がない場合は成功したことを意味しており、コアデバイスがこの S3 バケットにアップロードしたアーティファクトにアクセスできるようになります。