IAM ポリシーでのタグの使用 - AWS IoT Core

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

IAM ポリシーでのタグの使用

API アクションに使用するIAM AWS IoT ポリシーに、タグベースのリソースレベルのアクセス許可を適用できます。これにより、ユーザーがどのリソースを作成、変更、または使用できるかを制御しやすくなります。IAM ポリシーの以下の条件コンテキストのキーと値とともに Condition 要素 (Condition ブロックとも呼ばれる) を使用して、リソースのタグに基づいてユーザーアクセス (アクセス許可) を制御できます。

  • 特定のタグを持つリソースに対してユーザーアクションを許可または拒否するには、aws:ResourceTag/tag-key: tag-value を使用します。

  • を使用してaws:RequestTag/tag-key: tag-value、タグを許可するリソースを作成または変更するAPIリクエストを行うときに、特定のタグを使用する (または使用しない) ことを要求します。

  • を使用してaws:TagKeys: [tag-key, ...]、タグを許可するリソースを作成または変更するAPIリクエストを行うときに、特定のタグキーのセットを使用する (または使用しない) ことを要求します。

注記

IAM ポリシーの条件コンテキストキーと値は、タグ付け可能なリソースの識別子が必須パラメータである AWS IoT アクションにのみ適用されます。例えば、このリクエストDescribeEndpointではタグ付け可能なリソース (モノのグループ、モノのタイプ、トピックルール、ジョブ、またはセキュリティプロファイル) が参照されないため、 の使用は条件コンテキストのキーと値に基づいて許可または拒否されません。タグ付け可能な AWS IoT リソースとそれらがサポートする条件キーの詳細については、「アクション、リソース、および条件キー AWS IoT」を参照してください。

タグの使用の詳細については、[AWS Identity and Access Management User Guide](ユーザーガイド)の[Controlling Access Using Tags](タグを使用したアクセスの制御)を参照してください。そのガイドのIAMJSON「ポリシーリファレンス」セクションには、 のJSONポリシーの要素、変数、評価ロジックの詳細な構文、説明、例が記載されていますIAM。

次のポリシー例では、ThingGroup アクションにタグベースの 2 つの制約が適用されています。このポリシーによって制限されている IAM ユーザー:

  • モノグループにタグ「env=prod」を作成する事はできません (この例の"aws:RequestTag/env" : "prod"の行を参照)。

  • 既存のタグ "env=prod" を持つモノグループに対しては、変更またはアクセスできません (この例の "aws:ResourceTag/env" : "prod" の行を参照)。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "iot:CreateThingGroup", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/env": "prod" } } }, { "Effect": "Deny", "Action": [ "iot:CreateThingGroup", "iot:DeleteThingGroup", "iot:DescribeThingGroup", "iot:UpdateThingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/env": "prod" } } }, { "Effect": "Allow", "Action": [ "iot:CreateThingGroup", "iot:DeleteThingGroup", "iot:DescribeThingGroup", "iot:UpdateThingGroup" ], "Resource": "*" } ] }

次のように、タグ値を1 つのリストとして指定して、1 つのタグキーに対して複数のタグ値を指定することもできます。

"StringEquals" : { "aws:ResourceTag/env" : ["dev", "test"] }
注記

タグに基づいてリソースへのユーザーのアクセスを許可または拒否する場合は、ユーザーが同じリソースに対してそれらのタグを追加または削除することを明示的に拒否することを検討する必要があります。そうしないと、ユーザーはそのリソースのタグを変更することで、制限を回避してリソースにアクセスできてしまいます。