

# AWS IoT Wireless リソースのタグ付け
<a name="tagging-iotwireless"></a>

デバイス、ゲートウェイ、送信先およびプロファイルの管理と整理を支援するために、オプションで、タグの形式でこれらの各リソースに独自のメタデータを割り当てることができます。このセクションでは、タグとその作成方法について説明します。AWS IoT Wireless には請求グループがなく、AWS IoT Core と同じ請求グループを使用します。詳しくは、*AWS IoT Core ドキュメント*の「[請求グループ](https://docs.aws.amazon.com/iot/latest/developerguide/tagging-iot-billing-groups.html)」を参照してください。

## タグの基本
<a name="tagging-iotwireless-basics"></a>

同じタイプの 複数の AWS IoT Wireless リソースがある場合、タグを使って目的、所有者、環境など、さまざまな方法でリソースを分類することができます。これにより、リソースに割り当てたタグに基づいてリソースをすばやく特定できます。

タグはそれぞれ、1 つのキーとオプションの値で設定され、どちらもユーザーが定義します。例えば、デバイスのファームウェアが更新されている LoRaWAN デバイスのグループに一連のタグを定義できます。リソースをさらに管理しやすくするために、リソースの種類ごとのニーズを満たす、一貫した一連のタグキーを作成することをお勧めします。

追加または適用したタグに基づいて、リソースを検索およびフィルター処理できます。タグを使用して、IAM ポリシーと請求グループタグを使用してコストを分類および追跡することで、リソースへのアクセスを制御することもできます。

## タグを作成して管理する
<a name="tagging-iotwireless-create"></a>

AWS マネジメントコンソール、AWS IoT Wireless、または AWS CLI でタグエディタを使用してタグを作成および管理することができます。

**コンソールを使用する場合**  
使いやすさのために、のタグエディタは、タグを作成および管理するための AWS マネジメントコンソール の中央の統一された方法を提供します。詳細については、「[ の操作 AWS マネジメントコンソール](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/getting-started.html)」の「[タグエディタの操作](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html)」を参照してください。

**API または CLI の使用**  
API または CLI を使用して、ワイヤレスデバイス、ゲートウェイ、プロファイル、および送信先にタグを関連付けることもできます。その場合は、次のコマンドの `Tags` フィールドを使用します。
+ [AssociateAwsAccountWithPartnerAccount](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_AssociateAwsAccountWithPartnerAccount.html)
+ [CreateDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDestination.html)
+ [CreateDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDeviceProfile.html)
+ [CreateFuotaTask](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateFuotaTask.html)
+ [CreateMulticastGroup](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateMulticastGroup.html)
+ [CreateServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateServiceProfile.html)
+ [CreateWirelessGateway](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessGateway.html)
+ [CreateWirelessGatewayTaskDefinition](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessGatewayTaskDefinition.html)
+ [CreateWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessDevice.html)
+ [API\$1StartBulkAssociateWirelessDeviceWithMulticastGroup](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_API_StartBulkAssociateWirelessDeviceWithMulticastGroup.html)

## リソースのタグを更新するか、またはタグを一覧表示する
<a name="tagging-iotwireless-update"></a>

以下のコマンドを使用して、タグ付けがサポートされている既存のリソースに対してタグを追加、変更、または削除できます。
+ [ TagResource](https://docs.aws.amazon.com/iotwireless/latest/apireference/API_TagResource)
+ [ListTagsForResource](https://docs.aws.amazon.com/iotwireless/latest/apireference/API_ListTagsForResource)
+ [UntagResource](https://docs.aws.amazon.com/iotwireless/latest/apireference/API_UntagResource)

タグのキーと値は編集でき、タグはリソースからいつでも削除できます。タグの値を空の文字列に設定することはできますが、タグの値を null に設定することはできません。特定のリソースについて既存のタグと同じキーを持つタグを追加した場合、古い値は新しい値によってオーバーライドされます。リソースを削除すると、リソースに関連付けられているすべてのタグも削除されます。

## タグの制約と制限
<a name="tagging-iotwireless-restrict"></a>

次のベーシックな制限がタグに適用されます。
+ リソースあたりのタグの最大数は 50 です。
+ キーの最大長: 127 Unicode 文字 (UTF-8)。
+ 値の最大長: 255 Unicode 文字 (UTF-8)。
+ タグのキーと値では、大文字と小文字が区別されます。
+ タグの名前または値に「`aws:`」プレフィックスは使用しないでください。AWS の利用のために予約されています。このプレフィックスが含まれるタグの名前または値は編集または削除できません。このプレフィックスを持つタグは、リソースあたりのタグ数の制限にはカウントされません。
+ 複数のサービス間およびリソース間でタグ付けスキーマを使用する場合、他のサービスでも許可される文字に制限が適用されることがあるため注意ください。使用できる文字は、UTF-8 で表現できる文字、スペース、および数字と、特殊文字 \$1、-、=、.、\$1、:、/、@ です。

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

ユーザーが作成、変更、または使用できるリソースを指定するには、AWS IoT Wireless 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](https://docs.aws.amazon.com/iotwireless/latest/apireference/API_DescribeEndpoint) の使用は条件コンテキストキーおよび値に基づいて許可または拒否されません。

タグの使用の詳細については、[*AWS Identity and Access ManagementUser Guide*](ユーザーガイド)の[[Controlling Access Using Tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)](タグを使用したアクセスの制御)を参照してください。そのガイドの「[IAM JSON ポリシーリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)」セクションには、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:CreateMulticastGroup",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/env": "prod"
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "iot:CreateMulticastGroup",
        "iot:UpdateMulticastGroup",
        "iot:GetMulticastGroup",
        "iot:ListMulticastGroups"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/env": "prod"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "iot:CreateMulticastGroup",
        "iot:UpdateMulticastGroup",
        "iot:GetMulticastGroup",
        "iot:ListMulticastGroups"
      ],
      "Resource": "*"
    }
  ]
}
```

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

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

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