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

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

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

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

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

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

  • タグが許可されているリソースを作成または変更する API リクエストを作成する場合に、特定の一連のタグが使用されている (または、使用されていない) ことを要求するには、aws:TagKeys: [tag-key, ...] を使用します。

注記

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

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

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

  • リソースにタグ "env=prod" を付与できません (この例の "aws:RequestTag/env" : "prod" の行を参照)

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

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

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

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

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