

# DynamoDB でのリソースへのタグとラベルの追加
<a name="Tagging"></a>

Amazon DynamoDB リソースにラベルを付けるには、*タグ*を使用します。タグを使用すると、リソースを目的、所有者、環境、その他の条件などさまざまな方法で分類することができます。タグは、以下のことに役立ちます。
+ リソースに割り当てたタグに基づいてリソースをすばやく特定します。
+ タグ別に分類された AWS 請求を表示する。
**注記**  
タグが付けられたテーブルに関連するローカルセカンダリインデックス (LSI) およびグローバルセカンダリインデックス (GSI) は、自動的に同じタグでラベルが付けられます。現在のところ、DynamoDB Streams の使用にタグを付けることはできません。

タグ付けは、Amazon EC2、Amazon S3、DynamoDB などの AWS のサービスでサポートされています。効率的なタグ付けを行うと、特定のタグを持つサービス間でレポートを作成でき、コストインサイトを得ることができます。

タグ付けの使用を開始するには、次のことを行います。

1. [DynamoDB でのタグ付けの制限](#TaggingRestrictions) について理解します。

1. [DynamoDB でのタグ付けのリソース](Tagging.Operations.md) を使用してタグを作成します。

1. [DynamoDB タグを使用して、コスト配分レポートを作成する](#CostAllocationReports) を使用して、アクティブなタグごとに AWS のコストを追跡します。

最後に、最適のタグ付け手法に従うことをお勧めします。詳細については、「[AWS tagging strategies ( タグ付け戦略)](https://d0.awsstatic.com/aws-answers/AWS_Tagging_Strategies.pdf)」を参照してください。

## DynamoDB でのタグ付けの制限
<a name="TaggingRestrictions"></a>

 タグはそれぞれ、1 つのキーと 1 つの値で構成されており、どちらもお客様側が定義します。以下の制限が適用されます。
+  各 DynamoDB テーブルは同じキーを含む 1 つのタグのみを持つことができます。既存のタグ (同じキー) を追加しようとすると、既存のタグの値は新しい値に更新されます。
+  タグのキーと値は大文字と小文字が区別されます。
+  キーの最大長は Unicode 文字で 128 文字です。
+ 値の最大長は Unicode 文字で 256 文字です。
+  使用できる文字は、文字、ホワイトスペース、数字、および特殊文字 (`+ - = . _ : /`) です。
+  リソースあたりのタグの最大数は 50 です。
+ テーブル内のすべてのタグにサポートされる最大サイズは 10 KB です。
+ AWS 割り当てタグの名前と値には、`aws:` プレフィックスが自動的に割り当てられます。これをユーザーが割り当てることはできません。AWS 割り当てタグの名前は、タグ制限数の 50 または最大サイズ制限の 10 KB にカウントされません。ユーザー側で割り当てたタグ名は、`user:` というプレフィックスを付けてコスト配分レポートに表示されます。
+  過去にさかのぼってタグを適用することはできません。

# DynamoDB でのタグ付けのリソース
<a name="Tagging.Operations"></a>

Amazon DynamoDB コンソールまたは AWS Command Line Interface (AWS CLI) を使用して、タグを追加、リスト、編集、または削除できます。次に、これらのユーザー定義タグをアクティブ化し、コスト配分の追跡のため、AWS Billing and Cost Management コンソールに表示できます。詳細については、「[DynamoDB タグを使用して、コスト配分レポートを作成する](Tagging.md#CostAllocationReports)」を参照してください。

 一括編集の場合は、AWS マネジメントコンソール のタグエディタを使用することもできます。詳細については、「[タグエディタの使用](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html)」を参照してください。

 代わりに DynamoDB API を使用するには、[Amazon DynamoDB API リファレンス](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/)で以下のオペレーションを参照してください。
+ [TagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TagResource.html)
+ [UntagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UntagResource.html)
+ [ListTagsOfResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListTagsOfResource.html)

**Topics**
+ [タグでフィルターする権限の設定](#Tagging.Operations.permissions)
+ [新しいテーブルまたは既存のテーブルへのタグの追加 (AWS マネジメントコンソール)](#Tagging.Operations.using-console)
+ [新しいテーブルまたは既存のテーブルへのタグの追加 (AWS CLI)](#Tagging.Operations.using-cli)

## タグでフィルターする権限の設定
<a name="Tagging.Operations.permissions"></a>

タグを使用して DynamoDB コンソールでテーブルリストをフィルタリングするには、ユーザーのポリシーに以下のオペレーションへのアクセス権が含まれていることを確認します。
+ `tag:GetTagKeys`
+ `tag:GetTagValues`

これらのオペレーションにアクセスするには、以下の手順に従って、新しい IAM ポリシーをユーザーにアタッチします。

1. 管理者ユーザーで [IAM コンソール](https://console.aws.amazon.com/iam/)に移動します。

1. 左のナビゲーションメニューで [Policies (ポリシー)] を選択します。

1. [Create policy (ポリシーの作成)] を選択します。

1. 以下のポリシーを JSON エディタに貼り付けます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "tag:GetTagKeys",
                   "tag:GetTagValues"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. ウィザードを完了し、ポリシーに名前を割り当てます (例:`TagKeysAndValuesReadAccess`)。

1. 左のナビゲーションメニューで [Users (ユーザー)] を選択します。

1. リストから、DynamoDB コンソールにアクセスする通常のユーザーを選択します。

1. [Add permissions (アクセス許可の追加)] を選択します。

1. [Attach existing policies directly (既存のポリシーを直接アタッチ)] を選択します。

1. リストから、前に作成したポリシーを選択します。

1. ウィザードを終了します。

## 新しいテーブルまたは既存のテーブルへのタグの追加 (AWS マネジメントコンソール)
<a name="Tagging.Operations.using-console"></a>

新しいタグを作成するときや、既存のテーブルのタグを追加、編集、削除するときは、DynamoDB コンソールを使用してタグを新しいテーブルに追加できます。

**作成時にリソースにタグを付けるには (コンソール)**

1. AWS マネジメントコンソール にサインインして DynamoDB コンソール ([https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)) を開きます。

1. ナビゲーションペインで [**テーブル**] を選択して、[**テーブルの作成**] を選択します。

1. [**Create DynamoDB table (DynamoDB テーブルの作成)**] ページで、名前とプライマリキーを指定します。[**タグ**] セクションで、[**新しいタグを追加**] を選択し、使用するタグを入力します。

   タグ構造の詳細については、「[DynamoDB でのタグ付けの制限](Tagging.md#TaggingRestrictions)」を参照してください。

   テーブル作成の詳細については、「[DynamoDB テーブルの基本的なオペレーション](WorkingWithTables.Basics.md)」を参照してください。

**既存のリソースにタグを付けるには (コンソール)**

[https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/) で DynamoDB コンソールを開きます。

1. ナビゲーションペインで [**テーブル**] を選択します。

1. リストでテーブルを選択し、[**追加設定**] タブを選択します。ページの下部にある [**タグ**] セクションで、タグを追加、編集、削除できます。

## 新しいテーブルまたは既存のテーブルへのタグの追加 (AWS CLI)
<a name="Tagging.Operations.using-cli"></a>

次の例は、テーブルとインデックスを作成するとき、および既存のリソースへのタグを付けるときに、AWS CLI を使用してタグを指定する方法を示しています。

**作成時にリソースにタグを付けるには (AWS CLI)**
+ 次の例では、新しい `Movies` テーブルを作成し、値が `Owner` の `blueTeam` タグを追加します。

  ```
  aws dynamodb create-table \
      --table-name Movies \
      --attribute-definitions AttributeName=Title,AttributeType=S \
      --key-schema AttributeName=Title,KeyType=HASH \
      --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \
      --tags Key=Owner,Value=blueTeam
  ```

**既存のリソースにタグを付けるには (AWS CLI)**
+ 次の例では、`Owner` テーブル用に、値が `blueTeam` の `Movies` タグを追加します。

  ```
  aws dynamodb tag-resource \
      --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/Movies \
      --tags Key=Owner,Value=blueTeam
  ```

**テーブルのすべてのタグを一覧表示するには (AWS CLI)**
+ 次の例では、`Movies` テーブルに関連付けられたすべてのタグを一覧表示します。

  ```
  aws dynamodb list-tags-of-resource \
      --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/Movies
  ```

## DynamoDB タグを使用して、コスト配分レポートを作成する
<a name="CostAllocationReports"></a>

AWS はタグを使用して、コスト配分レポートでリソースコストを分類します。AWS には 2 つのタイプのコスト配分タグがあります。
+ AWS で生成されたタグ。AWS はユーザーのためにこのタグを定義、作成、適用します。
+ ユーザー定義のタグ。これらのタグを定義、作成、適用します。

Cost Explorer またはコスト配分レポートで使用するには、事前に両方のタイプのタグを別々にアクティブ化しておく必要があります。

 AWS で生成されたタグをアクティブ化するには: 

1.  AWS マネジメントコンソール にサインインし、[https://console.aws.amazon.com/billing/home\$1/](https://console.aws.amazon.com/billing/home#/.) で請求およびコスト管理コンソールを開きます。

1.  ナビゲーションペインで、**[Cost Allocation Tags]** (コスト配分タグ) を選択します。

1.  [**AWS-Generated Cost Allocation Tags**] で、[**Activate**] を選択します。

 ユーザー定義タグをアクティブにするには: 

1.  AWS マネジメントコンソール にサインインし、[https://console.aws.amazon.com/billing/home\$1/](https://console.aws.amazon.com/billing/home#/.) で請求およびコスト管理コンソールを開きます。

1.  ナビゲーションペインで、**[Cost Allocation Tags]** (コスト配分タグ) を選択します。

1.  **[User-Defined Cost Allocation Tags]** (ユーザー定義のコスト配分タグ) で、**[Activate]** (アクティブ化) を選択します。

 タグを作成してアクティブ化すると、AWS は、アクティブなタグごとにグループ化された使用量とコストを含むコスト配分レポートを生成します。コスト配分レポートには、ご利用の AWS のサービスのコストすべてが請求期間別に出力されます。タグ付きとタグなしのどちらのリソースもこのレポートに出力されるので、リソース別の請求額を明確に分類できます。

**注記**  
 現時点では、DynamoDB から転送されたデータは、コスト配分レポートのタグによって分類されません。

 詳細については、「[Using cost allocation tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)」(コスト配分タグの使用) を参照してください。