

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

# Amazon Personalize リソースのタグ付け
<a name="tagging-resources"></a>

*タグ*は、特定のタイプの Amazon Personalize AWS リソースを含むリソースをオプションで定義して関連付けるラベルです。リソースには、最大 50 個のタグを含めることができます。

タグを使用することで、目的、環境、その他の条件など、さまざまな方法でリソースを分類および管理できます。例えば、タグを使用して、収益をさまざまな部門に分配したり、さまざまなリソースの開発環境を特定したりできます。

 Amazon Personalize リソースをタグで取得するには、Resource Groups タグ付け API の GetResources オペレーションのフィルターを使用できます。詳細については、「**リソースグループタグ付け API」API リファレンスガイドの「GetResources」を参照してください。

以下のタイプの Amazon Personalize リソースにタグを追加できます。
+  バッチ推論ジョブ 
+  バッチセグメントジョブ 
+ キャンペーン
+ データセット
+ データセットグループ
+ データセットのインポートとエクスポートのジョブ
+ イベントトラッカー
+ フィルター
+ レコメンダー
+ ソリューション
+ ソリューションバージョン

**Topics**
+ [ガイドラインと要件](personalize-managing-tags.md)
+ [Amazon Personalize リソースへのタグ追加](tags-add.md)
+ [Amazon Personalize リソースからタグを削除する](tags-remove.md)
+ [IAMポリシーでタグを使用する](tags-iam.md)

# ガイドラインと要件
<a name="personalize-managing-tags"></a>

タグはそれぞれ、1 つの必須タグキーとオプションの 1 つのタグ値で設定されており、どちらもお客様側が定義します。タグキーは、より具体的なタグ値のカテゴリのように動作する、一般的なラベルです。タグ値は、タグキーの記述子として機能します。

例えば、Amazon Personalize のデータセットグループに 2 つのバージョンがある場合 (1 つは内部テスト用、もう 1 つは本番用)、両方のプロジェクトに `Environment` タグキーを割り当てます。`Environment` タグキーの値は、場合によって、プロジェクトの 1 つのバージョンでは `Test` に、他のバージョンでは `Production` になる場合があります。

タグには以下の制限があります。
+ リソースあたりのタグの最大数 - 50 件
+ キーの最大長 - UTF-8 の 128 Unicode 文字
+ 値の最大長 - UTF-8 の 256 Unicode 文字
+ タグキーと値には、次のような文字、A-Z、a-z、0-9、space、 \$1 . : / = \$1 @ – (ハイフン) を含むことができます。これは、タグをサポートするすべての AWS サービスで使用できる標準の文字セットです。一部のサービスでは追加の記号がサポートされています。
+ タグのキーと値は大文字と小文字が区別されます。
+ タグキーは、関連付けられたリソースごとにそれぞれ一意である必要があります。また、1 つのみのタグの値を持ちます。
+ タグキーとタグ値は、 で始まるタグを適用することはできません`aws:`。 AWS また`aws:`、これらのタグは変更できません。タグの上限にはカウントされません。
+ タグのみに基づいて、リソースを更新または削除することはできません。使用する操作に応じて、Amazon リソースネーム (ARN) またはリソース ID も指定する必要があります。

## 追加情報
<a name="tagging-additional-resources-information"></a>

タグ付けの詳細については、次のリソースを参照してください。
+ *AWS 全般のリファレンス*の[AWS タグ付けの原則](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) 
+ [AWS タグ付け戦略](https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf) (ダウンロード可能な PDF)
+ *AWS IAM ユーザーガイド*の[AWS 「アクセスコントロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)」
+ *AWS Organizations ユーザーガイド*の[AWS 「タグ付けポリシー](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)」

# Amazon Personalize リソースへのタグ追加
<a name="tags-add"></a>

Amazon Personalize コンソール、 AWS Command Line Interface (AWS CLI)、または AWS SDKs を使用して、Amazon Personalize リソースからタグキーと値を追加、表示、更新、削除できます。次の例では、Amazon Personalize データセットグループにタグを追加する方法を示しています。同じ方法で、他の Amazon Personalize リソースにタグを追加できます。

**Topics**
+ [タグの追加 (コンソール)](#add-tag-console)
+ [タグの追加 (AWS CLI)](#add-tag-cli)
+ [タグの追加 (AWS SDKs)](#add-tag-sdk)

## タグの追加 (コンソール)
<a name="add-tag-console"></a>



Amazon Personalize コンソールでリソースを作成するときに、Amazon Personalize コンソールでオプションのタグを追加できます。次の例では、データセットグループにタグを追加します。

**新しいデータセットグループにタグを追加するには**

1. [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home) で Amazon Personalize コンソールを開き、アカウントにサインインします。

1. [**データセットグループの作成]** を選択します。

1. **[名前]** に名前を入力します。

1. **[ドメイン]** では、ドメインを選択します。

1. **[タグ]** セクションで **[新しいタグを追加する]** を選択します。

1. **[Key]** (キー) と **[Value]** (値) で、適切な値を入力します。

   例えば、それぞれ **Environment** および **Test** などです。

1. タグをさらに追加するには、**[Add new tag]** (新しいタグを追加) を選択します。

   1 つのリソースに最大 50 個のタグを追加できます。

1. **[Next]** (次へ) を選択し、リソースの作成を続行します。

既存のリソースにタグを追加するのも同様です。リソースを選択し、「**タグ**」フィールドを使用してタグを追加します。

## タグの追加 (AWS CLI)
<a name="add-tag-cli"></a>

 AWS Command Line Interface (AWS CLI) を使用して、リソースの作成時にタグを追加したり、既存のリソースにタグを追加したりできます。

**Topics**
+ [リソース作成時のタグの追加](#create-resource-with-tags-cli)
+ [既存のリソースにタグを追加する](#add-tag-existing-resource-cli)

### リソース作成時のタグの追加
<a name="create-resource-with-tags-cli"></a>

新しいリソースを作成し、 を使用してタグを追加するには AWS CLI、リソースに適切な`create`コマンドを使用し、 `tags`パラメータと値を含めます。例えば、次のコマンドは、ECOMMERCE ドメインに対して `myDatasetGroup` という名前の新しいドメインデータセットグループを作成し、次のタグを追加します。`Environment` タグキーには `Test` タグ値、`Owner` タグキーには `xyzCorp` 値を追加します。

```
aws personalize create-dataset-group \
--name myDatasetGroup \
--domain ECOMMERCE \
--tags tagKey=Environment,tagValue=Test tagKey=Owner,tagValue=xyzCorp
```

Amazon Personalize リソースの作成に使用できるコマンドの詳細については、[「Amazon Personalize AWS CLI コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/personalize/)」を参照してください。

### 既存のリソースにタグを追加する
<a name="add-tag-existing-resource-cli"></a>

既存のリソースにタグを追加するには、`tag-resource` コマンドを使用します。リソースの ARN を指定し、`tags` パラメータにタグキーと値を指定します。

```
aws personalize tag-resource \
--resource-arn resource ARN \
--tags tagKey=key,tagValue=value
```

## タグの追加 (AWS SDKs)
<a name="add-tag-sdk"></a>

 AWS SDKs を使用して、リソースの作成時にタグを追加したり、既存のリソースにタグを追加したりできます。

**Topics**
+ [リソース作成時のタグの追加](#create-resource-with-tags-sdk)
+ [既存のリソースにタグを追加する](#add-tag-existing-resource-sdk)

### リソース作成時のタグの追加
<a name="create-resource-with-tags-sdk"></a>

新しいリソースを作成し、 AWS SDKs を使用してタグを追加するには、適切な`create`方法を使用します。`tags` パラメータを使用して、各タグのキーと値のペアを指定します。例えば、次のコードは、ECOMMERCE ドメインに対して `myDatasetGroup` という名前の新しいドメインデータセットグループを作成し、次のタグを追加します。`Environment` タグキーには `Test` タグ値、`Owner` タグキーには `xyzCorp` 値を追加します。

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize = boto3.client('personalize')

response = personalize.create_dataset_group(
  name = 'myDatasetGroup',
  domain = 'ECOMMERCE',
  tags = [
    {
      'tagKey': 'Environment',
      'tagValue': 'Test'
    },
    {
      'tagKey': 'Owner',
      'tagValue': 'xyzCorp'    
    }
  ]    
)
dsg_arn = response['datasetGroupArn']

description = personalize.describe_dataset_group(datasetGroupArn = dsg_arn)['datasetGroup']

print('Name: ' + description['name'])
print('ARN: ' + description['datasetGroupArn'])
print('Status: ' + description['status'])
```

------
#### [ SDK for Java 2.x ]

```
public static String createDomainDatasetGroup(PersonalizeClient personalizeClient, 
                                              String datasetGroupName,
                                              String domain) {
    
    try {
         
        ArrayList <Tag> tags = new ArrayList<>();

        Tag tag1 = Tag.builder()
                .tagKey("Environment")
                .tagValue("Test")
                .build();
        tags.add(tag1);
        Tag tag2 = Tag.builder()
                .tagKey("Owner")
                .tagValue("xyzCorp")
                .build();
        tags.add(tag2);
    
        CreateDatasetGroupRequest createDatasetGroupRequest = CreateDatasetGroupRequest.builder()
                .name(datasetGroupName)
                .domain(domain)
                .tags(tags)
                .build();
        return personalizeClient.createDatasetGroup(createDatasetGroupRequest).datasetGroupArn();
    } catch (PersonalizeException e) {
        System.out.println(e.awsErrorDetails().errorMessage());
    }
    return "";
}
```

------

### 既存のリソースにタグを追加する
<a name="add-tag-existing-resource-sdk"></a>

次のコードは、既存の Amazon Personalize リソースにタグを追加する方法を示しています。タグを追加するリソースの Amazon リソースネーム (ARN) を指定し、タグごとにキーと値のペアを指定します。

------
#### [ SDK for Python (Boto3) ]

```
import boto3
personalize = boto3.client('personalize')

add_tags_response = personalize.tag_resource(
  resourceArn = "resourceArn",
  tags = [
    {
      'tagKey': 'Environment',
      'tagValue': 'Test'
    },
    {
      'tagKey': 'Owner',
      'tagValue': 'xyzCorp'    
    }
  ]    
)
```

------
#### [ SDK for Java 2.x ]

```
public static void tagResource(PersonalizeClient personalizeClient, 
                                              String resourceArn,
                                              String domain) {
    
    try {
         
         ArrayList <Tag> tagList = new ArrayList<>();

          Tag tag1 = Tag.builder()
                  .tagKey("Environment")
                  .tagValue("Test")
                  .build();
          tags.add(tag1);
          Tag tag2 = Tag.builder()
                  .tagKey("Owner")
                  .tagValue("xyzCorp")
                  .build();
          tags.add(tag2);
    
        TagResourceRequest tagResourceRequest = TagResourceRequest.builder()
                .resourceArn(resourceArn)
                .tags(tagList)
                .build();
                
        personalizeClient.tagResource(tagResourceRequest);
        System.out.println("Tags have been added to "+ resourceArn);
        
    } catch (PersonalizeException e) {
        System.out.println(e.awsErrorDetails().errorMessage());
    }
    return "";
}
```

------

# Amazon Personalize リソースからタグを削除する
<a name="tags-remove"></a>

Amazon Personalize コンソールを使用して Amazon Personalize リソースからタグを削除するか、 AWS Command Line Interface (AWS CLI) または AWS SDKs を使用して [UntagResource](API_UntagResource.md) API オペレーションを削除できます。次の例では、Amazon Personalize データセットグループからタグを削除する方法を示しています。同じ方法で、他の Amazon Personalize リソースからタグを削除できます。

**Topics**
+ [タグの削除 (コンソール)](#remove-tag-console)
+ [タグの削除 (AWS CLI)](#remove-tag-cli)
+ [タグの削除 (AWS SDKs)](#remove-tag-sdks)

## タグの削除 (コンソール)
<a name="remove-tag-console"></a>

Amazon Personalize のリソースにタグを追加した後、Amazon Personalize コンソールを使用してタグを削除できます。次の例では、データセットグループからタグを削除します。

**データセットグループからタグを削除するには**

1. [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home) で Amazon Personalize コンソールを開き、アカウントにサインインします。

1. データセットグループを選択します。

1. ページ下部で **[タグ]** タブを選択し、**[タグの管理]** を選択します。

1. 削除する各タグで **[削除]** を選択します。

1. **[保存]** を選択してタグを削除します。

## タグの削除 (AWS CLI)
<a name="remove-tag-cli"></a>

を使用して既存のリソースからタグを削除するには AWS CLI、次の`untag-resource`コマンドを使用します。`resource-arn` を使用する場合、リソースの Amazon リソースネーム (ARN) を指定します。`tag-keys` で、削除するタグのキーを指定します。

```
aws personalize untag-resource \
--resource-arn resource ARN \
--tag-keys key1 key2
```

## タグの削除 (AWS SDKs)
<a name="remove-tag-sdks"></a>

 AWS SDKs を使用して既存の Amazon Personalize リソースからタグを削除するには、 [UntagResource](API_UntagResource.md) API オペレーションを使用します。次のコードは、SDK for Python (Boto3) を使用して、データセットグループから複数のタグを削除する方法を示しています。`resourceArn` を使用する場合、リソースの Amazon リソースネーム (ARN) を指定します。`tagKeys` で、削除するタグのキーを指定します。

```
import boto3
        
personalize = boto3.client('personalize')

response = personalize.untag_resource(
    resourceArn="Resource ARN",
    tagKeys=["tag1Key", "tag2Key"]
)
```

# IAMポリシーでタグを使用する
<a name="tags-iam"></a>

タグの実装を開始した後、タグベースのリソースレベルのアクセス許可を AWS Identity and Access Management (IAM) ポリシーと API オペレーションに適用できます。これには、リソースの作成時にリソースへのタグの追加をサポートするオペレーションが含まれます。この方法でタグを使用することで、 AWS アカウント内のどのグループとユーザーがリソースを作成およびタグ付けするアクセス許可を持ち、どのグループとユーザーがより一般的にタグを作成、更新、削除するアクセス許可を持っているかをきめ細かく制御できます。

例えば、リソースの `Owner` タグの値がユーザー名となっているすべての Amazon Personalize rリソースに対して、ユーザーにフルアクセスを許可するポリシーを作成できます。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "ModifyResourceIfOwner",
         "Effect": "Allow",
         "Action": "personalize:*",
         "Resource": "*",
         "Condition": {
            "StringEqualsIgnoreCase": {
               "aws:ResourceTag/Owner": "${aws:username}"
            }
         }
      }
   ]
}
```

------

次の例は、データセットの作成と削除を許可するポリシーを作成する方法を示しています。これらのオペレーションは、ユーザー名が `johndoe` の場合にのみ許可されます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "personalize:CreateDataset",
                "personalize:DeleteDataset"
            ],
            "Resource": "arn:aws:personalize:*:*:dataset/*",
            "Condition": {
                "StringEquals": {"aws:username" : "johndoe"}
            }
        },
        {
            "Effect": "Allow",
            "Action": "personalize:DescribeDataset",
            "Resource": "*"
        }
    ]
}
```

------

タグをベースにしてリソースレベルでアクセス許可を定義した場合、そのアクセス許可は即座に反映されます。つまり、リソースが作成されるとすぐにリソースの安全性が増し、新しいリソースにタグの使用をすぐに強制できるようになります。リソースレベルのアクセス許可を使用して、新しいリソースと既存のリソースに、どのタグキーと値を関連付けるかを制御することもできます。詳細については、*AWS IAM ユーザーガイド*の「[タグを使用したアクセス制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)」を参照してください。