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

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

Greengrass サービスロール

Greengrass サービスロールは、ユーザーに代わって AWS のサービスからリソースへのアクセスを AWS IoT Greengrass に許可する AWS Identity and Access Management (IAM) サービスロールです。これにより、AWS IoT Greengrass は AWS Lambda 関数を取得したり、AWS IoT シャドウを管理するなど、重要なタスクを実行できます。

リソースへのアクセスを AWS IoT Greengrass を許可するには、Greengrass サービスロールが AWS アカウントに関連付けられていて、信頼されたエンティティとして AWS IoT Greengrass を指定する必要があります。ロールには AWSGreengrassResourceAccessRolePolicy 管理ポリシーまたはお使いの AWS IoT Greengrass の機能に同等のアクセス許可を定義するカスタムポリシーを含める必要があります。このポリシーは AWS によって維持され、AWS IoT Greengrass が AWS リソースにアクセスするために使用する一連のアクセス許可を定義します。

AWS リージョン全体で同じ Greengrass サービスロールを再利用できますが、AWS IoT Greengrass を使用するすべての AWS リージョンでお客様のアカウントに関連付ける必要があります。現在の AWS アカウントとリージョンにサービスロールが存在しない場合、グループのデプロイは失敗します。

以下のセクションでは、AWS マネジメントコンソール または AWS CLI で Greengrass サービスロールを作成および管理する方法について説明します。

注記

サービスレベルのアクセスを承認するサービスロールに加えて、グループロールを AWS IoT Greengrass グループ に割り当てることができます。グループロールは、グループ内の Greengrass Lambda 関数とコネクタが AWS のサービスにアクセスする方法をコントロールする個別の IAM ロールです。

Greengrass サービスロールの管理 (コンソール)

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

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

注記

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

 

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

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

  1. AWS IoT コンソールのナビゲーションペインで、[Settings (設定)] を選択します。

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

    
              AWS IoT コンソール の [Settings (設定)] ページに表示される Greengrass サービスロール。

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

 

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

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

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

Greengrass デバイスセットアップがサービスロールを作成する場合、ロール名は GreengrassServiceRole_random-string です。

AWS IoT コンソール から Greengrass グループを作成またはデプロイすると、コンソールでは、現在選択されている AWS リージョンの AWS アカウントに、Greengrass サービスロールが関連付けられているかどうかが確認されます。関連付けられていない場合、コンソールでは、AWS のサービスに対してお客様に代わって読み書きすることを AWS IoT Greengrass に許可するように求められます。

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

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

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

注記

カスタムロールポリシーを使用してサービスロールを作成する場合は、IAM コンソールを使用してロールを作成または変更します。詳細については、IAM ユーザーガイド の「AWS のサービスにアクセス許可を委任するロールの作成」または「ロールの変更」を参照してください。使用する機能およびリソースの AWSGreengrassResourceAccessRolePolicy マネージドポリシーと同等のアクセス許可が、ロールによって付与されることを確認します。

サービスロールを作成する場合は、AWS IoT コンソール に戻り、ロールをグループにアタッチします。この操作は、グループの [設定] ページの [Greengrass サービスロール] で行うことができます。

 

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

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

  1. AWS IoT コンソールのナビゲーションペインで、[Settings (設定)] を選択します。

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

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

  3. Greengrass サービスロールを選択します。

  4. [Save] を選択します。

注記

コンソールによるデフォルトの Greengrass サービスロールの作成を許可するには、リストからロールを選択する代わりに [Create role for me (ロールの作成を許可)] を選択します。Greengrass_ServiceRole という名前のロールが AWS アカウントにある場合、[Create role for me (ロールの作成を許可)] リンクは表示されません。

 

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

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

重要

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

  1. AWS IoT コンソールのナビゲーションペインで、[Settings (設定)] を選択します。

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

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

注記

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

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

Greengrass サービスロールの管理 (CLI)

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

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

 

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

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

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

    aws greengrass get-service-role-for-account --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 という名前のロールを作成しますが、別の名前を使用できます。

    Linux, macOS, 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" } ] }'
    Windows command prompt
    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\"}]}"
  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 と置き換え、リージョン を AWS リージョン (us-west-2 など) と置き換えます。

    aws greengrass associate-service-role-to-account --role-arn role-arn --region リージョン

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

    { "AssociatedAt": "timestamp" }

 

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

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

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

    aws greengrass disassociate-service-role-from-account --region リージョン

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

    { "DisassociatedAt": "timestamp" }
    注記

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

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