

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

# IAM ポリシーでのタグの使用
<a name="tagging-iot-iam"></a>

 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 ポリシーの条件コンテキストキーと値は、タグ付けできるリソースの識別子が必須パラメータである AWS IoT アクションにのみ適用されます。例えば、[DescribeEndpoint](https://docs.aws.amazon.com//iot/latest/apireference/API_DescribeEndpoint) を使用しても、このリクエストではタグ付け可能なリソース (モノのグループ、モノのタイプ、トピックルール、ジョブ、またはセキュリティプロファイル) が参照されていないため、条件コンテキストのキーと値に基づいて許可または拒否されることはありません。タグ付け可能な AWS IoT リソースとそれらがサポートする条件キーの詳細については、[「アクション、リソース、および条件キー AWS IoT](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html)」を参照してください。

タグの使用の詳細については、[*AWS Identity and Access Management User Guide*](ユーザーガイド)の[[Controlling Access Using Tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)](タグを使用したアクセスの制御)を参照してください。そのガイドの[[IAM JSON Policy Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)](IAM JSON ポリシーリファレンス)セクションには、IAM での JSON ポリシーの要素、変数、および評価ロジックの詳細な構文、説明、および例が記載されています。

次のポリシー例では、`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"]
            }
```

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