Greengrass グループのロール - AWS IoT Greengrass

AWS IoT Greengrass Version 1 は、2023 年 6 月 30 日に延長ライフサイクルフェーズに入りました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日付を過ぎる AWS IoT Greengrass V1 と、 は機能、機能強化、バグ修正、セキュリティパッチを提供する更新プログラムをリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き動作し、クラウドに接続します。に移行する AWS IoT Greengrass Version 2ことを強くお勧めします。これにより、重要な新機能が追加され、追加のプラットフォームのサポートが追加されます

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

Greengrass グループのロール

Greengrass グループロールは、Greengrass コアで実行されているコードが AWS リソースにアクセスすることを許可する IAM ロールです。AWS Identity and Access Management (IAM) でロールを作成し、アクセス許可を管理し、そのロールを Greengrass グループにアタッチします。Greengrass グループには 1 つのグループロールがあります。アクセス許可を追加または変更するには、異なるロールをアタッチするか、ロールにアタッチされている IAM ポリシーを変更します。

ロールは、信頼されたエンティティとして AWS IoT Greengrass を定義する必要があります。ビジネス事例によっては、グループロールに次の項目を定義する IAM ポリシーが含まれている場合があります。

  • AWS サービスにアクセスするためのユーザー定義 Lambda 関数のアクセス許可。

  • AWS サービスにアクセスするためのコネクタのアクセス許可。

  • AWS IoT Analytics および Kinesis Data Streams にストリームをエクスポートするためのストリームマネージャーのアクセス許可。

  • CloudWatch ログ記録を許可するためのアクセス許可。

以下のセクションでは、AWS Management Console または AWS CLI に Greengrass グループロールをアタッチまたはデタッチする方法について説明します。

注記

Greengrass コアからのアクセスを承認するグループロールに加えて、自分の代わりに AWS IoT Greengrass が AWS リソースにアクセスできるようにする Greengrass サービスロールを割り当てることができます。

Greengrass グループロールの管理 (コンソール)

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

注記

コンソールにサインインするユーザーには、ロールを管理するアクセス許可が必要です。

 

Greengrass グループロールを見つける (コンソール)

Greengrass グループにアタッチされるロールを見つけるには、以下の手順に従います。

  1. AWS IoT コンソールのナビゲーションペインの [Manage](管理)で、[Greengrass devices](Greengrass デバイス)を展開して、[Group (V1)](グループ (V1))を選択します。

  2. ターゲットグループを選択します。

  3. グループの設定ページで、[View settings] (設定を表示) を選択します。

ロールがグループにアタッチされている場合は、[Group role] (グループのロール) の下に表示されます。

 

Greengrass グループロールの追加または変更 (コンソール)

以下の手順に従って、AWS アカウントから IAM ロールを選択し、Greengrass グループに追加します。

グループロールには、次の要件があります。

  • 信頼されたエンティティとして定義された AWS IoT Greengrass。

  • ロールにアタッチされたアクセス権限ポリシーは、グループ内の Lambda 関数とコネクタ、および Greengrass システムコンポーネントが必要とする AWS リソースに対してアクセス許可を付与する必要があります。

注記

また、aws:SourceArnaws:SourceAccount のグローバル条件コンテキストキーを信頼ポリシーに加えることで、「混乱した代理」によるセキュリティ上の問題への対策にすることをお勧めします。条件コンテキストキーを使用すると、指定したアカウントと Greengrass ワークスペースからのリクエストのみを許可するようにアクセスを制限できます。「混乱した代理」問題の詳細については、「サービス間の混乱した代理の防止」を参照してください。

IAM コンソールを使用して、ロールとそのアクセス許可を作成および設定します。Amazon DynamoDB テーブルへのアクセスを許可するロールの例を作成する手順については、「グループロールの設定」を参照してください。一般的な手順については、「IAM ユーザーガイド」の「AWS サービスのロールの作成 (コンソール)」を参照してください。

 

ロールを設定したら、AWS IoT コンソールを使用してロールをグループに追加します。

注記

この手順は、グループのロールを選択する場合にのみ必要です。現在選択されているグループロールのアクセス許可を変更した後は不要です。

  1. AWS IoT コンソールのナビゲーションペインの [Manage](管理)で、[Greengrass devices](Greengrass デバイス)を展開して、[Group (V1)](グループ (V1))を選択します。

  2. ターゲットグループを選択します。

  3. グループの設定ページで、[View settings] (設定を表示) を選択します。

  4. [Group role] (グループロール) で、次のロールの追加または変更を選択します。

    • ロールを追加するには、[Associate role] (ロールに関連付ける) を選択し、次に、役割のリストから自分の役割を選択します。これらは、信頼されたエンティティとして AWS IoT Greengrass を定義する AWS アカウント内のロールです。

    • 別の役割を選択するには、[Edit role] (ロールを編集) を選択し、次に、役割のリストから自分の役割を選択します。

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

 

Greengrass グループロールの削除 (コンソール)

Greengrass グループからロールをデタッチするには、以下の手順に従います。

  1. AWS IoT コンソールのナビゲーションペインの [Manage](管理)で、[Greengrass devices](Greengrass デバイス)を展開して、[Group (V1)](グループ (V1))を選択します。

  2. ターゲットグループを選択します。

  3. グループの設定ページで、[View settings] (設定を表示) を選択します。

  4. [Group role] から、[Disassociate role] (ロールの関連付けを解除する) を選択します。

  5. 確認ダイアログボックスで、[Disassociate role] (ロールの関連付けを解除) を選択します。この手順では、グループからロールが削除されますが、ロールは削除されません。ロールを削除する場合は、IAM コンソールを使用します。

Greengrass グループロールの管理 (CLI)

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

 

Greengrass グループロールの取得 (CLI)

Greengrass グループに関連付けられたロールがあるかどうかを確認するには、以下の手順に従います。

  1. グループのリストからターゲットグループの ID を取得します。

    aws greengrass list-groups

    以下に、list-groups 応答の例を示します。応答の各グループには、グループ ID を含む Id プロパティが含まれます。

    { "Groups": [ { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "Name": "MyFirstGroup", "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z", "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "CreationTimestamp": "2019-11-11T05:47:31.435Z", "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE" }, { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "Name": "GreenhouseSensors", "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z", "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "CreationTimestamp": "2020-01-07T19:58:36.774Z", "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE" }, ... ] }

    query オプションを使用して結果をフィルタリングする例など、詳細については、「グループ ID の取得」を参照してください。

  2. 出力からターゲットグループの Id をコピーします。

  3. グループロールを取得します。group-id をターゲットグループの ID に置き換えます。

    aws greengrass get-associated-role --group-id group-id

    ロールが Greengrass グループに関連付けられている場合、次のロールメタデータが返されます。

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

    グループにロールが関連付けられていない場合は、次のエラーが返されます。

    An error occurred (404) when calling the GetAssociatedRole operation: You need to attach an IAM role to this deployment group.

 

Greengrass グループロールの作成 (CLI)

以下の手順に従ってロールを作成し、それを Greengrass グループに関連付けます。

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

    Linux, macOS, or Unix
    aws iam create-role --role-name MyGreengrassGroupRole --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "greengrass.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:greengrass:region:account-id:/greengrass/groups/group-id" } } } ] }'
    Windows command prompt
    aws iam create-role --role-name MyGreengrassGroupRole --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:/greengrass/groups/group-id\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
  2. 出力のロールメタデータからロールの ARN をコピーします。ARN を使用して、ロールをグループに関連付けます。

  3. 管理ポリシーまたはインラインポリシーをビジネスケースをサポートするロールにアタッチします。例えば、ユーザー定義 Lambda 関数が Amazon S3 から読み取る場合、AmazonS3ReadOnlyAccess 管理ポリシーをロールにアタッチできます。

    aws iam attach-role-policy --role-name MyGreengrassGroupRole --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

    成功した場合、応答は返されません。

 

ロールを Greengrass グループに関連付けるには
  1. グループのリストからターゲットグループの ID を取得します。

    aws greengrass list-groups

    以下に、list-groups 応答の例を示します。応答の各グループには、グループ ID を含む Id プロパティが含まれます。

    { "Groups": [ { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "Name": "MyFirstGroup", "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z", "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "CreationTimestamp": "2019-11-11T05:47:31.435Z", "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE" }, { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "Name": "GreenhouseSensors", "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z", "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "CreationTimestamp": "2020-01-07T19:58:36.774Z", "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE" }, ... ] }

    query オプションを使用して結果をフィルタリングする例など、詳細については、「グループ ID の取得」を参照してください。

  2. 出力からターゲットグループの Id をコピーします。

  3. ロールとグループを関連付けます。group-id をターゲットグループの ID に置き換え、role-arn をグループロールの ARN に置き換えます。

    aws greengrass associate-role-to-group --group-id group-id --role-arn role-arn

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

    { "AssociatedAt": "timestamp" }

 

Greengrass グループロールの削除 (CLI)

以下の手順に従って、グループロールから Greengrass グループの関連付けを解除します。

  1. グループのリストからターゲットグループの ID を取得します。

    aws greengrass list-groups

    以下に、list-groups 応答の例を示します。応答の各グループには、グループ ID を含む Id プロパティが含まれます。

    { "Groups": [ { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "Name": "MyFirstGroup", "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z", "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "CreationTimestamp": "2019-11-11T05:47:31.435Z", "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE" }, { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "Name": "GreenhouseSensors", "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z", "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "CreationTimestamp": "2020-01-07T19:58:36.774Z", "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE" }, ... ] }

    query オプションを使用して結果をフィルタリングする例など、詳細については、「グループ ID の取得」を参照してください。

  2. 出力からターゲットグループの Id をコピーします。

  3. グループからロールの関連付けを解除します。group-id をターゲットグループの ID に置き換えます。

    aws greengrass disassociate-role-from-group --group-id group-id

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

    { "DisassociatedAt": "timestamp" }
    注記

    グループロールを使用していない場合は、そのグループロールを削除できます。最初に、delete-role-policy を使用して各管理ポリシーをロールからデタッチし、次に delete-role を使用してロールを削除します。詳細については、IAM ユーザーガイドの「ロールまたはインスタンスプロファイルを削除する」を参照してください。

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