

# タグ付けできる API Gateway リソース
<a name="apigateway-tagging-supported-resources"></a>

タグは、[Amazon API Gateway V2 API の次の HTTP API または WebSocket API](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/)リソースで設定できます。
+ `Api`
+ `DomainName`
+ `Stage`
+ `VpcLink`

また、タグは [Amazon API Gateway V1 API](https://docs.aws.amazon.com/apigateway/latest/api/API_Operations.html) の次の REST API リソースに設定することができます。
+ `ApiKey`
+ `ClientCertificate`
+ `DomainName`
+ `DomainNameAccessAssociation`
+ `RestApi`
+ `Stage`
+ `UsagePlan`
+ `VpcLink`

タグを他のリソースに直接設定することはできません。ただし、[Amazon API Gateway V1 API](https://docs.aws.amazon.com/apigateway/latest/api/API_Operations.html) では、子リソースは親リソースに設定されているタグを継承します。例:
+ タグが `RestApi` リソースに設定されている場合、そのタグは、[属性ベースのアクセスコントロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)の `RestApi` の次の子リソースに継承されます:
  + `Authorizer`
  + `Deployment`
  + `Documentation`
  + `GatewayResponse`
  + `Integration`
  + `Method`
  + `Model`
  + `Resource`
  + `ResourcePolicy`
  + `Setting`
  + `Stage`
+ タグが `DomainName` に設定されている場合、そのタグはその下の `BasePathMapping`、`ApiMapping`、および `RoutingRule` のすべてのリソースに継承されます。
+ タグが `UsagePlan` に設定されている場合、そのタグはその下の `UsagePlanKey` リソースに継承されます。

**注記**  
タグの継承は、[属性ベースのアクセスコントロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)にのみ適用されます。例えば、継承されたタグを使用して AWS Cost Explorer でコストを監視することはできません。コスト配分でタグを使用するには、`Stage` リソースなどの子リソースにタグを作成することをお勧めします。  
API Gateway は、リソースの [GetTags](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-tags.html) の呼び出し時に継承されたタグを返しません。

## Amazon API Gateway V1 API でのタグの継承
<a name="apigateway-tagging-inheritance"></a>

以前は、タグをステージにしか設定できませんでした。他のリソースにも設定できるようになったため、`Stage` は 2 つの方法でタグを受け取ることができます。
+ `Stage` でタグが直接設定される。
+ ステージがその親 `RestApi` からタグを継承する。

ステージが両方の方法でタグを受け取った場合は、ステージで直接設定されているタグが優先されます。たとえば、ステージがその親 REST API から以下のタグを継承するとします。

```
{
	'foo': 'bar',
	'x':'y'
}
```

ステージで以下のタグも直接設定されているとします。

```
{
	'foo': 'bar2',
	'hello': 'world'
}
```

最終的に、ステージは以下のタグと値を受け取ることになります。

```
{
	'foo': 'bar2',
	'hello': 'world'
	'x':'y'
}
```

## タグの制限事項と使用規則
<a name="apigateway-tagging-restrictions"></a>

API Gateway リソースでのタグの使用には、以下の制限事項と使用規則が適用されます。
+ 各リソースには、最大 50 個のタグを設定できます。
+ タグキーは、リソースごとにそれぞれ一意である必要があります。また、各タグキーに設定できる値は 1 つのみです。
+ タグキーの最大長は UTF-8 で 128 Unicode 文字です。
+ タグ値の最大長は UTF-8 で 256 Unicode 文字です。
+ キーと値に使用できる文字は、UTF-8 対応の文字、数字、スペースと、文字 (***. : \$1 = @ \$1 / -***) (ハイフン) です。Amazon EC2 リソースでは、任意の文字を使用できます。
+ タグのキーと値は大文字と小文字が区別されます。ベストプラクティスとして、タグを大文字にするための戦略を決定し、その戦略をすべてのリソースタイプにわたって一貫して実装します。たとえば、`Costcenter`、`costcenter`、`CostCenter` のいずれを使用するかを決定し、すべてのタグに同じ規則を使用します。大文字と小文字の扱いについて、同様のタグに整合性のない規則を使用することは避けてください。
+ プレフィックス `aws:` はタグで使用することはできません。AWS 用に予約されています。このプレフィックスが含まれるタグのキーや値を編集したり削除することはできません。このプレフィックスを持つタグは、リソースあたりのタグ数の制限には計算されません。