Greengrass サービスロール - AWS IoT Greengrass

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Greengrass サービスロール

Greengrass サービスロールは、ユーザーに代わって AWS サービスからリソースへのアクセスを AWS IoT Greengrass に許可する AWS Identity and Access Management (IAM) サービスロールです。このロールにより、AWS IoT Greengrass でクライアントデバイスの ID を確認し、コアデバイスの接続情報を管理できるようになります。

注記

また、AWS IoT Greengrass V1 はこのロールを使用して重要なタスクを実行します。詳細については、「AWS IoT Greengrass V1 デベロッパーガイド」の「Greengrass サービスロール」を参照してください。

AWS IoT Greengrass がリソースにアクセスすることを許可するには、AWS アカウント にGreengrass サービスロールが関連付けられていて、信頼されたエンティティとして AWS IoT Greengrass が指定されている必要があります。ロールには、 AWSGreengrassResourceAccessRolePolicyマネージドポリシー、または使用するAWS IoT Greengrass機能に対する同等のアクセス許可を定義するカスタムポリシーを含める必要があります。 はこのポリシーAWSを維持し、 が AWSリソースにアクセスAWS IoT Greengrassするために使用するアクセス許可のセットを定義します。詳細については、「AWS マネージドポリシー: AWSGreengrassResourceAccessRolePolicy」を参照してください。

AWS リージョン で同じ Greengrass サービスロールを再利用できますが、AWS IoT Greengrass を使用するすべての AWS リージョン でユーザーのアカウントに関連付けられている必要があります。サービスロールが現在の AWS リージョン で設定されていない場合、コアデバイスはクライアントデバイスの検証に失敗し、接続情報の更新に失敗します。

以下のセクションでは、AWS Management Console または AWS CLI で Greengrass サービスロールを作成して管理する方法について説明します。

注記

サービスレベルのアクセスを承認するサービスロールに加えて、Greengrass コアデバイスにトークン交換サービスを割り当てます。トークン交換ロールは、コアデバイス上の Greengrass コンポーネントと Lambda 関数が AWS のサービスにどのようにアクセスできるかを制御する別の IAM ロールです。詳細については、「コアデバイスが AWS サービスとやり取りできるように認証する」を参照してください。

Greengrass サービスロールを管理する (コンソール)

AWS IoT コンソールを使用すると、Greengrass サービスロールを簡単に管理できます。たとえば、コアデバイスに対してクライアントデバイスの検出を設定すると、コンソールでユーザーの AWS アカウント が現在の AWS リージョン の Greengrass サービスロールに添付されているかどうかの確認が行われます。アタッチされていない場合、コンソールによるサービスロールの作成および設定が可能です。詳細については、「Greengrass サービスロールを作成する (コンソール)」を参照してください。

コンソールは以下のロール管理タスクに使用できます。

注記

コンソールにサインインするユーザーには、サービスロールを表示、作成、または変更するためのアクセス許可が必要です。

Greengrass サービスロールを見つける (コンソール)

以下の手順を使用して、現在の AWS リージョン で AWS IoT Greengrass が使用しているサービスロールを探します。

  1. AWS IoT コンソールに移動します。

  2. ナビゲーションペインで [設定] を選択します。

  3. [Greengrass service role (Greengrass サービスロール)] セクションまでスクロールして、サービスロールとそのポリシーを表示します。

    サービスロールが表示されない場合は、コンソールでサービスロールの作成または設定が可能です。詳細については、「Greengrass サービスロールを作成する」を参照してください。

Greengrass サービスロールを作成する (コンソール)

コンソールによるデフォルトの Greengrass サービスロールの作成と設定が可能です。このロールには以下のプロパティがあります。

プロパティ
名前 Greengrass_ServiceRole
信頼されたエンティティ AWS service: greengrass
ポリシー AWSGreengrassResourceAccessRolePolicy
注記

このロールをAWS IoT Greengrass V1 デバイスセットアップスクリプトで作成する場合、ロール名は GreengrassServiceRole_random-string になります。

コアデバイスのクライアントデバイス検出を設定すると、現在の AWS リージョン でユーザーの AWS アカウント に Greengrass サービスロール が関連付けられているかどうかを、コンソールが確認します。関連付けられていない場合、コンソールでは、AWS のサービスに対してユーザーに代わって読み書きすることを AWS IoT Greengrass に許可するように求められます。

許可を付与すると、コンソールでは、AWS アカウント に Greengrass_ServiceRole という名前のロールがあるかどうかの確認が行われます。

  • そのロールがある場合、コンソールで、そのサービスロールが現在の AWS リージョン の AWS アカウント にアタッチされます。

  • そのロールがない場合、コンソールで、デフォルトの Greengrass サービスロールが作成され、現在の AWS リージョン の AWS アカウント にアタッチされます。

注記

カスタムロールポリシーを使用してサービスロールを作成する場合は、IAM コンソールを使用してロールを作成または変更します。詳細については、「IAM ユーザーガイド」の「AWS サービスにアクセス許可を委任するロールの作成」または「ロールの修正」を参照してください。使用する機能およびリソースの AWSGreengrassResourceAccessRolePolicy マネージドポリシーと同等のアクセス許可が、ロールによって付与されることを確認します。また、信頼ポリシーには、aws:SourceArn および aws:SourceAccount グローバル条件コンテキストキーも含めて、混乱した代理によるセキュリティ問題を防止することをお勧めします。条件コンテキストキーを使用すると、指定したアカウントと Greengrass ワークスペースからのリクエストのみを許可するようにアクセスを制限できます。混乱した代理に関する問題の詳細については、「サービス間の混乱した代理の防止」を参照してください。

サービスロールを作成する場合は、AWS IoT コンソールに戻り、ロールを AWS アカウント にアタッチします。これは、[Settings] (設定) ページの [Greengrass service role] (Greengrass サービスロール) で行えます。

Greengrass サービスロールを変更する (コンソール)

以下の手順を使用して、コンソールで現在選択されている AWS リージョン の AWS アカウント にアタッチする別の Greengrass サービスロールを選択します。

  1. AWS IoT コンソールに移動します。

  2. ナビゲーションペインで [設定] を選択します。

  3. [Greengrass service role] (Greengrass サービスロール) で、[Choose different role] (別のロールの選択) を選択します。

    [Update Greengrass service role] (Greengrass サービスロールを更新) ダイアログボックスが開き、AWS IoT Greengrass を信頼するエンティティとして定義する AWS アカウント の IAM ロールが表示されます。

  4. アタッチする Greengrass サービスロールを選択します。

  5. [Attach role] (ロールをアタッチする)を選択します。

Greengrass サービスロールをデタッチする (コンソール)

コンソールで現在選択されている AWS リージョン の AWS アカウントから Greengrass サービスロールをデタッチするには、以下の手順を使用します。これにより、現在の AWS リージョン の AWS のサービスに対する AWS IoT Greengrass の許可が取り消されます。

重要

サービスロールをデタッチすると、アクティブなオペレーションが中断される場合があります。

  1. AWS IoT コンソールに移動します。

  2. ナビゲーションペインで [設定] を選択します。

  3. [Greengrass service role] (Greengrass サービスロール) で、[Detach role] (ロールのデタッチ) を選択します。

  4. 確認ダイアログボックスで、[Detach] (デタッチ) を選択します。

注記

ロールが不要になった場合は、IAM コンソールで削除できます。詳細については、「IAM ユーザーガイド」の「ロールまたはインスタンスプロファイルを削除する」を参照してください。

他のロールで、AWS IoT Greengrass にお客様のリソースへのアクセスを許可している可能性があります。ユーザーに代わってアクセス権限を引き受けることを AWS IoT Greengrass に許可するロールをすべて見つけるには、IAM コンソールの [Roles] (ロール) ページにある [Trusted entities] (信頼済みエンティティ) 列で、[AWS service: greengrass] ( サービス: greengrass) を含むロールを探します。

Greengrass サービスロールを管理する (CLI)

次の手順では、AWS Command Line Interface がインストールされていて AWS アカウント を使用するように設定されていることを前提としています。詳細については、「AWS Command Line Interface ユーザーガイド」の「AWS CLI のインストール、更新、アンインストール」と「AWS CLI の設定」を参照してください。

AWS CLI は以下のロール管理タスクに使用できます。

Greengrass サービスロールを取得する (CLI)

Greengrass サービスロールが AWS リージョン 内の AWS アカウント に関連付けられているかどうか調べるには、以下の手順を使用します。

  • サービスロールを取得します。region を AWS リージョン に置き換えます (例:us-west-2)。

    aws greengrassv2 get-service-role-for-account --region region

    Greengrass サービスロールが既にアカウントに関連付けられている場合、リクエストに対して以下のロールメタデータが返されます。

    { "associatedAt": "timestamp", "roleArn": "arn:aws:iam::account-id:role/path/role-name" }

    リクエストしてもロールメタデータが返されない場合は、サービスロールを作成し (存在しない場合)、AWS リージョン 内でアカウントに関連付ける必要があります。

Greengrass サービスロールを作成する (CLI)

次のステップを使用してロールを作成し、AWS アカウント に関連付けます。

IAM を使用して、サービスロールを作成するには
  1. AWS IoT Greengrass がロールを継承できるように許可する信頼ポリシーを持つロールを作成します。この例では、Greengrass_ServiceRole という名前のロールを作成しますが、別の名前を使用できます。また、信頼ポリシーには、aws:SourceArn および aws:SourceAccount グローバル条件コンテキストキーも含めて、混乱した代理によるセキュリティ問題を防止することをお勧めします。条件コンテキストキーを使用すると、指定したアカウントと Greengrass ワークスペースからのリクエストのみを許可するようにアクセスを制限できます。混乱した代理に関する問題の詳細については、「サービス間の混乱した代理の防止」を参照してください。

    Linux or Unix
    aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "greengrass.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:greengrass:region:account-id:*" }, "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }'
    Windows Command Prompt (CMD)
    aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"greengrass.amazonaws.com\"},\"Action\":\"sts:AssumeRole\",\"Condition\":{\"ArnLike\":{\"aws:SourceArn\":\"arn:aws:greengrass:region:account-id:*\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
    PowerShell
    aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "greengrass.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:greengrass:region:account-id:*" }, "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }'
  2. 出力のロールメタデータからロールの ARN をコピーします。ARN を使用して、ロールをアカウントに関連付けます。

  3. AWSGreengrassResourceAccessRolePolicy ポリシーをロールにアタッチします。

    aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy
AWS アカウント にサービスロールを関連付けるには
  • ロールとアカウントを関連付けます。role-arn をサービスロール ARN と置き換え、region を AWS リージョン (us-west-2 など) と置き換えます。

    aws greengrassv2 associate-service-role-to-account --role-arn role-arn --region region

    成功すると、リクエストは、以下のようなレスポンスを返します。

    { "associatedAt": "timestamp" }

Greengrass サービスロールを削除する (CLI)

次のステップを使用して、Greengrass サービスロールの関連付けを AWS アカウント から解除します。

  • アカウントからサービスロールの関連付けを解除します。region を AWS リージョン に置き換えます (例:us-west-2)。

    aws greengrassv2 disassociate-service-role-from-account --region region

    成功すると、以下のレスポンスが返されます。

    { "disassociatedAt": "timestamp" }
    注記

    任意の AWS リージョン で使用していない場合は、サービスロールを削除する必要があります。最初に、delete-role-policy を使用して AWSGreengrassResourceAccessRolePolicy 管理ポリシーをロールからデタッチし、次に delete-role を使用してロールを削除します。詳細については、「IAM ユーザーガイド」の「ロールまたはインスタンスプロファイルを削除する」を参照してください。

以下も参照してください。