

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

# のタグ AWS KMS
<a name="tagging-keys"></a>

*タグ*は、 AWS リソースに割り当てる (または割り当て AWS ることができる) オプションのメタデータラベルです。各タグは、 *タグキー*と*タグ値*で構成され、どちらも大文字と小文字が区別される文字列です。タグ値には、空の (null) 文字列を指定できます。リソースの各タグには異なるタグキーが必要ですが、同じタグを複数の AWS リソースに追加できます。各リソースには、最大 50 個のユーザーが作成したタグを含めることができます。

タグキーまたはタグ値には、機密情報や重要情報を含めないでください。タグには AWS のサービス、請求を含む多くのユーザーがアクセスできます。

では AWS KMS、KMS キーの作成時にカスタマーマネージドキーにタグを追加し、[削除が保留中](key-state.md)でない限り、既存の KMS キーにタグを付けるかタグを解除できます。エイリアス、カスタムキーストア AWS マネージドキーAWS 所有のキー、または KMS キーを他の でタグ付けすることはできません AWS アカウント。タグはオプションですが、非常に便利です。

例えば、Alpha プロジェクトに使用するすべての KMS キーと Amazon S3 バケットに `"Project"="Alpha"` タグを追加できます。

```
TagKey   = "Project"
TagValue = "Alpha"
```

形式や構文などのタグに関する一般的な情報については、 の[AWS 「リソースのタグ付け](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)」を参照してください*Amazon Web Services 全般のリファレンス*。

タグは、以下のことに役立ちます。
+  AWS リソースを特定して整理します。多くの AWS サービスはタグ付けをサポートしているため、異なるサービスのリソースに同じタグを割り当てて、リソースが関連していることを示すことができます。たとえば、KMS キーと Amazon Elastic Block Store (Amazon EBS) ボリュームまたは AWS Secrets Manager シークレットに同じタグを割り当てることができます。タグを使用して、オートメーションのために KMS キーを識別することもできます。
+  AWS コストを追跡します。 AWS リソースにタグを追加すると、 は使用量とコストをタグ別に集計したコスト配分レポート AWS を生成します。この機能を使用して、プロジェクト、アプリケーション、またはコストセンターの AWS KMS コストを追跡できます。

  タグを使用したコスト配分の詳細については、「*AWS Billing ユーザーガイド*」の「[コスト配分タグの使用](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)」を参照してください。タグキーとタグ値に適用されるルールの詳細については、「*AWS Billing ユーザーガイド*」の「[ユーザー定義タグの制限](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)」を参照してください。
+  AWS リソースへのアクセスを制御します。タグに基づいて KMS キーへのアクセスを許可および拒否することは、[属性ベースのアクセスコントロール](abac.md) (ABAC) AWS KMS のサポートの一部です。タグ AWS KMS keys に基づいて へのアクセスを制御する方法については、「」を参照してください[タグを使用して KMS キーへのアクセスを制御する](tag-authorization.md)。タグを使用して AWS リソースへのアクセスを制御する方法の詳細については、*IAM ユーザーガイド*の[「リソースタグを使用した AWS リソースへのアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)」を参照してください。

AWS KMS [TagResource](ct-tagresource.md)、[UntagResource](ct-untagresource.md)、または [ListResourceTags](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListResourceTags.html) オペレーションを使用すると、 は AWS CloudTrail ログにエントリを書き込みます。

**Topics**
+ [タグへのアクセスを制御する](tag-permissions.md)
+ [KMS キーにタグを追加する](add-tags.md)
+ [KMS キーに関連付けられたタグを編集する](edit-tags.md)
+ [KMS キーに関連付けられたタグを削除する](remove-tags.md)
+ [KMS キーに関連付けられたタグを表示する](view-tags.md)
+ [タグを使用して KMS キーへのアクセスを制御する](tag-authorization.md)

# タグへのアクセスを制御する
<a name="tag-permissions"></a>

 AWS KMS コンソールまたは API を使用してタグを追加、表示、削除するには、プリンシパルにタグ付けのアクセス許可が必要です。これらのアクセス許可は[キーポリシー](key-policies.md)で付与できます。または、IAM ポリシー ([VPC エンドポイントポリシー](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html#edit-vpc-endpoint-policy)を含む) で付与することもできますが、[キーポリシーが許可する場合に限られます](key-policy-default.md#allow-iam-policies)。[AWSKeyManagementServicePowerUser](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSKeyManagementServicePowerUser) マネージドポリシーは、プリンシパルがアカウントからアクセスできるすべての KMS キーで、タグ付け、タグ解除、タグの一覧表示を行うことを許可します。

タグ AWS のグローバル条件キーを使用して、これらのアクセス許可を制限することもできます。 AWS KMSではこれらの条件により、[TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) および [UntagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_UntagResource.html) のようなタグ付けオペレーションへのアクセスを制御できます。

**注記**  
タグとエイリアスを管理する許可をプリンシパルに付与する場合は注意が必要です。タグまたはエイリアスを変更すると、カスタマーマネージドキーに対するアクセス許可が許可または拒否される可能性があります。詳細については、「[の ABAC AWS KMS](abac.md)」および「[タグを使用して KMS キーへのアクセスを制御する](tag-authorization.md)」を参照してください。

サンプルポリシーおよび詳細については、*IAM ユーザーガイド*の[タグキーに基づいたアクセス制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-tag-keys)を参照してください。

タグを作成および管理するためのアクセス許可は、次のように機能します。

**kms:TagResource**  
プリンシパルにタグの追加または編集を許可します。KMS キーの作成中にタグを追加するには、プリンシパルが特定の KMS キーに制限されない IAM ポリシーでアクセス許可を持っている必要があります。

**kms:ListResourceTags**  
プリンシパルが KMS キーのタグを表示できるようにします。

**kms:UntagResource**  
プリンシパルが KMS キーからタグを削除できるようにします。

## ポリシーのタグ付け許可
<a name="tag-permission-examples"></a>

キーポリシーまたは IAM ポリシーでタグ付け許可を付与できます。例えば、次のキーポリシーの例では、選択したユーザーに KMS キーに対するタグ付け許可が付与されます。これにより、サンプルの管理者ロールまたはデベロッパーロールを引き受けることができるすべてのユーザーにタグを表示する許可が付与されます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "example-key-policy",
  "Statement": [
    { 
      "Sid": "EnableIAMUserPermissions",
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::111122223333:root"},
      "Action": "kms:*",
      "Resource": "*"
    },
    {
      "Sid": "AllowAllTaggingPermissions",
      "Effect": "Allow",
      "Principal": {"AWS": [
        "arn:aws:iam::111122223333:user/LeadAdmin",
        "arn:aws:iam::111122223333:user/SupportLead"
      ]},
      "Action": [
          "kms:TagResource",
          "kms:ListResourceTags",
          "kms:UntagResource"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AllowRolesViewTags",
      "Effect": "Allow",
      "Principal": {"AWS": [
        "arn:aws:iam::111122223333:role/Administrator",
        "arn:aws:iam::111122223333:role/Developer"
      ]},
      "Action": "kms:ListResourceTags",
      "Resource": "*"
    }
  ]
}
```

------

プリンシパルに複数の KMS キーに対するタグ付け許可を付与するには、IAM ポリシーを使用します。このポリシーを有効にするには、各 KMS キーのキーポリシーで、アカウントが IAM ポリシーを使用して KMS キーへのアクセスを制御することを許可する必要があります。

例えば、次の IAM ポリシーではプリンシパルが KMS キーを作成することを許可します。指定したアカウントのすべての KMS キーでタグを作成および管理することもできます。この組み合わせにより、プリンシパルは [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションの[タグ](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-Tags)パラメータを使用して、KMS キー作成時に KMS キーにタグを追加できます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMPolicyCreateKeys",
      "Effect": "Allow",
      "Action": "kms:CreateKey",
      "Resource": "*"
    },
    {
      "Sid": "IAMPolicyTags",
      "Effect": "Allow",
      "Action": [
        "kms:TagResource",
        "kms:UntagResource",
        "kms:ListResourceTags"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*"
    }    
  ]
}
```

------

## タグ付け許可を制限する
<a name="tag-permissions-conditions"></a>

[ポリシー条件](policy-conditions.md)を使用して、タグ付け許可を制限できます。次のポリシー条件を `kms:TagResource` および `kms:UntagResource` 許可に適用できます。例えば、`aws:RequestTag/tag-key` 条件を使用して、プリンシパルが特定のタグのみを追加できるようにするか、プリンシパルが特定のタグキーを持つタグを追加しないように許可できます。または、`kms:KeyOrigin` 条件を使用して、プリンシパルが[インポートされたキーマテリアルを持つ](importing-keys.md) KMS キーにタグ付けまたはタグ解除を行わないようにすることができます。
+ [aws:RequestTag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag)
+ [aws:ResourceTag/*tag-key*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag) (IAM ポリシーのみ)
+ [aws:TagKeys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tag-keys)
+ [kms:CallerAccount](conditions-kms.md#conditions-kms-caller-account)
+ [kms:KeySpec](conditions-kms.md#conditions-kms-key-spec)
+ [kms:KeyUsage](conditions-kms.md#conditions-kms-key-usage)
+ [kms:KeyOrigin](conditions-kms.md#conditions-kms-key-origin)
+ [kms:ViaService](conditions-kms.md#conditions-kms-via-service)

ベストプラクティスとして、タグを使用して KMS キーへのアクセスを制御する場合は、`aws:RequestTag/tag-key` または `aws:TagKeys` 条件キーを使用して、許可するタグ (またはタグキー) を決定します。

例えば、次の IAM ポリシーは前述のものと似ています。ただしこのポリシーでは、プリンシパルはタグ (`TagResource`) の作成とタグ `UntagResource` の削除を、`Project` タグキーを持つタグに対してのみ実行できます。

`TagResource` および `UntagResource` リクエストは複数のタグを含む可能性があるため、`ForAllValues` または `ForAnyValue` 集合演算子を[aws:TagKeys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys) 条件で指定する必要があります。`ForAnyValue` 演算子では、リクエスト内のタグキー 1 つ以上が、ポリシーのタグキーの 1 つと一致する必要があります。`ForAllValues` 演算子では、リクエスト内のタグキーすべてが、ポリシーのタグキーの 1 つと一致する必要があります。`ForAllValues` 演算子はリクエストにタグがない場合も `true` を返しますが、TagResource と UntagResource は、タグが指定されていない場合、失敗します。集合演算子の詳細については、「*IAM ユーザーガイド*」の「[複数のキーと値の使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions)」を参照してください。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMPolicyCreateKey",
      "Effect": "Allow",
      "Action": "kms:CreateKey",
      "Resource": "*"
    },
    {
      "Sid": "IAMPolicyViewAllTags",
      "Effect": "Allow",
      "Action": "kms:ListResourceTags",
      "Resource": "arn:aws:kms:*:111122223333:key/*"
    },
    {
      "Sid": "IAMPolicyManageTags",
      "Effect": "Allow",
      "Action": [
        "kms:TagResource",
        "kms:UntagResource"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*",
      "Condition": {
          "ForAllValues:StringEquals": {"aws:TagKeys": "Project"}
      }
    }
  ]
}
```

------

# KMS キーにタグを追加する
<a name="add-tags"></a>

タグは、 AWS リソースを識別して整理するのに役立ちます。[KMS キーを作成](create-keys.md)する際にカスタマーマネージドキーにタグを追加したり、あるいは既存の KMS キーにタグを追加することができます。タグを付けることはできません AWS マネージドキー。

次の手順は、 コンソールと AWS KMS API を使用して AWS KMS カスタマーマネージドキーにタグを追加する方法を示しています。 AWS KMS API の例では [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) を使用していますが、サポートされている任意のプログラミング言語を使用できます。

**Topics**
+ [KMS キーの作成中にタグを追加する](#tag-on-create)
+ [既存の KMS キーにタグを追加する](#tag-exisiting)

## KMS キーの作成中にタグを追加する
<a name="tag-on-create"></a>

 AWS KMS コンソールまたは [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用してキーを作成するときに、KMS キーにタグを追加できます。KMS キーの作成中にタグを追加するには、KMS キーの作成に必要なアクセス許可に加えて、IAM ポリシー内での `kms:TagResource` アクセス許可が必要になります。少なくとも、アクセス許可はアカウントとリージョン内のすべての KMS キーを対象にする必要があります。詳細については、「[タグへのアクセスを制御する](tag-permissions.md)」を参照してください。

### AWS KMS コンソールの使用
<a name="tag-on-create-console"></a>

コンソールでの KMS キー作成中にタグを追加するには、KMS キーにタグ付けして作成するのに必要なアクセス許可に加えて、コンソール内で KMS キーを表示するのに必要なアクセス許可も必要になります。少なくとも、アクセス許可はアカウントとリージョン内のすべての KMS キーを対象にする必要があります。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。( AWS マネージドキーのタグを管理することはできません)

1. キータイプを選択し、[**Next**] (次へ) を選択します。

1. エイリアスおよび説明 (オプション) を入力します。

1. タグキーおよびタグ値 (オプション) を入力します。タグを追加するには、[**Add tag**] (タグの追加) を選択します。タグを削除するには、[**Remove**] (削除) を選択します。新しい KMS キーのタグ付けが完了したら、[**Next**] (次へ) を選択します。

1. KMS キーの作成を完了します。

### AWS KMS API の使用
<a name="tagging-keys-create-key"></a>

[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用してキーを作成する際にタグを指定するには、オペレーションの `Tags` パラメータを使用します。

`Tags` パラメータ値の `CreateKey` は、大文字と小文字を区別するタグキーとタグ値のペアのコレクションです。KMS キーのそれぞれのタグは、異なるタグ名を持つ必要があります。タグ値は、NULL または空の文字列にすることができます。

たとえば、次の AWS CLI コマンドは、 `Project:Alpha` タグを使用して対称暗号化 KMS キーを作成します。複数のキーと値のペアを指定する場合は、スペースを使用して各ペアを区切ります。

```
$ aws kms create-key --tags TagKey=Project,TagValue=Alpha
```

このコマンドが成功すると、新しい KMS キーに関する情報を含む `KeyMetadata` オブジェクトが返されます。ただし、`KeyMetadata` にはタグは含まれません。タグを取得するには、[ListResourceTags](view-tags.md#tagging-keys-list-resource-tags) オペレーションを使用します。

## 既存の KMS キーにタグを追加する
<a name="tag-exisiting"></a>

 AWS KMS コンソールで、または [TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) オペレーションを使用して、既存のカスタマーマネージド KMS キーにタグを追加できます。タグを追加するには、KMS キーに対するタグ付けアクセス許可が必要です。この許可は、KMS キーのキーポリシーから取得できます。または、キーポリシーで許可されている場合、KMS キーを含む IAM ポリシーから取得できます。

### AWS KMS コンソールの使用
<a name="tag-existing-console"></a>

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。( AWS マネージドキーのタグを管理することはできません)

1. テーブルフィルターを使用して、特定のタグを持つ KMS キーのみを表示できます。詳細については、「[AWS KMS コンソールを使用してタグを表示する](view-tags.md#view-tag-console)」を参照してください。

1. KMS キーのエイリアスの横にあるチェックボックスをオンにします。

1. [**Key actions**]、[**Add or edit tags**] の順に選択します。

1. KMS キーの詳細ページで、[**Tags**] (タグ) タブを選択します。
   + 最初のタグを作成するには、[**Create tag**] (タグの作成) を選択し、タグキー (必須)とタグ値 (オプション) を入力して、[**Save**] (保存) を選択します。

     タグ値を空白のままにすると、実際のタグ値は NULL または空の文字列になります。
   + タグを追加するには、[**Edit**] (編集)、[**Add tag**] (タグの追加) の順に選択し、タグキーとタグ値を入力して、[**Save**] (保存) を選択します。

1. 変更を保存するには、**変更の保存**を選択します。

### AWS KMS API の使用
<a name="tagging-keys-tag-resource"></a>

[TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) オペレーションは KMS キーに 1 つ以上のタグを追加します。このオペレーションを使用して、別の AWS アカウント内でタグを追加することはできません。TagResource オペレーションを使用して既存のタグを編集することもできます。詳細については、「[KMS キーに関連付けられたタグを編集する](edit-tags.md)」を参照してください。

タグを追加するには、新しいタグキーとタグ値を指定します。KMS キーのそれぞれのタグは、異なるタグキーを持つ必要があります。タグ値は、NULL または空の文字列にすることができます。

例えば、次のコマンドでは、サンプルの KMS キーに **Purpose** タグおよび **Department** タグを追加します。

```
$ aws kms tag-resource \
         --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
         --tags TagKey=Purpose,TagValue=Pretest TagKey=Department,TagValue=Finance
```

このコマンドが成功した場合、出力を返しません。タグを KMS キーで表示するには、[ListResourceTags](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListResourceTags.html) オペレーションを使用します。

# KMS キーに関連付けられたタグを編集する
<a name="edit-tags"></a>

タグは、 AWS リソースを識別して整理するのに役立ちます。カスタマーマネージド KMS キーに関連付けられたタグは、 AWS KMS コンソールで編集するか、[TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) オペレーションを使用して編集できます。のタグを編集することはできません AWS マネージドキー。

以下の手順は、KMS キーに関連付けられたタグを編集する方法を示します。この AWS KMS API 例では [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) を使用していますが、サポートされている任意のプログラミング言語を使用できます。

## AWS KMS コンソールの使用
<a name="edit-tag-console"></a>

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。( のタグは編集できません AWS マネージドキー)

1. テーブルフィルターを使用して、特定のタグを持つ KMS キーのみを表示できます。詳細については、「[AWS KMS コンソールを使用してタグを表示する](view-tags.md#view-tag-console)」を参照してください。

1. KMS キーのエイリアスの横にあるチェックボックスをオンにします。

1. [**Key actions**]、[**Add or edit tags**] の順に選択します。

1. KMS キーの詳細ページで、[**Tags**] (タグ) タブを選択します。
   + タグの名前または値を変更するには、[**Edit (編集)**] を選択して変更を加えた後、[**Save (保存)**] を選択します。

1. 変更を保存するには、**変更の保存**を選択します。

## AWS KMS API の使用
<a name="tag-existing-api"></a>

[TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) オペレーションは、カスタマーマネージドキーに 1 つ以上のタグを追加します。ただし、**TagResource** を使用して既存のタグのタグ値を変更することもできます。このオペレーションを使用して、別の AWS アカウントのタグを追加または編集することはできません。

タグを編集するには、既存のタグキーと新しいタグ値を指定します。KMS キーのそれぞれのタグは、異なるタグキーを持つ必要があります。タグ値は、NULL または空の文字列にすることができます。

例えば、このコマンドは `Purpose` タグの値 `Pretest` をからに変更します `Test`。

```
$ aws kms tag-resource \
         --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
         --tags TagKey=Purpose,TagValue=Test
```

# KMS キーに関連付けられたタグを削除する
<a name="remove-tags"></a>

タグは、 AWS リソースを識別して整理するのに役立ちます。カスタマーマネージド KMS キーに関連付けられたタグは、 AWS KMS コンソールで、または [UntagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_UntagResource.html) オペレーションを使用して削除できます。のタグを編集または削除することはできません AWS マネージドキー。

以下の手順は、KMS キーからタグを削除する方法を示します。この AWS KMS API 例では [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) を使用していますが、サポートされている任意のプログラミング言語を使用できます。

## AWS KMS コンソールの使用
<a name="delete-tag-console"></a>

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。( AWS マネージドキーのタグを管理することはできません)

1. テーブルフィルターを使用して、特定のタグを持つ KMS キーのみを表示できます。詳細については、「[AWS KMS コンソールを使用してタグを表示する](view-tags.md#view-tag-console)」を参照してください。

1. KMS キーのエイリアスの横にあるチェックボックスをオンにします。

1. [**Key actions**]、[**Add or edit tags**] の順に選択します。

1. KMS キーの詳細ページで、[**Tags**] (タグ) タブを選択します。
   + タグを削除するには、[**Edit (編集)**] を選択します。そのタグの行で、[**Remove (削除)**] を選択してから [**Save (保存)**] を選択します。

1. 変更を保存するには、**変更の保存**を選択します。

## AWS KMS API の使用
<a name="tagging-keys-untag-resource"></a>

[UntagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_UntagResource.html) オペレーションでは、KMS キーからタグを削除します。削除するタグを識別するには、タグキーを指定します。このオペレーションを使用して、別の AWS アカウントの KMS キーからタグを削除することはできません。

成功すると、 `UntagResource` オペレーションは出力を返しません。また、指定したタグキーが KMS キーで見つからない場合、例外をスローしたり、レスポンスを返したりすることもありません。オペレーションが正常に機能したことを確認するには、 [ListResourceTags](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListResourceTags.html) オペレーションを使用します。

例えば、このコマンドでは、指定した KMS キーから **Purpose** タグとその値を削除します。

```
$ aws kms untag-resource --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --tag-keys Purpose
```

# KMS キーに関連付けられたタグを表示する
<a name="view-tags"></a>

タグは、 AWS リソースを識別して整理するのに役立ちます。カスタマーマネージド KMS キーに関連付けられたタグは、 AWS KMS コンソールで、または [ListResourceTags](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListResourceTags.html) オペレーションを使用して表示できます。

次の手順は、特定の KMS キーに関連付けられたタグを検索する方法を示します。 AWS KMS API の例では [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) を使用していますが、サポートされている任意のプログラミング言語を使用できます。

## AWS KMS コンソールの使用
<a name="view-tag-console"></a>

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。( AWS マネージドキーのタグを管理することはできません)

1. テーブルフィルターを使用して、特定のタグを持つ KMS キーのみを表示できます。

   特定のタグを持つ KMS キーのみを表示するには、フィルターボックス、タグキーの順に選択し、実際のタグ値の中から選択します。タグ値のすべてまたは一部を入力することもできます。

   結果のテーブルには、選択したタグを持つすべての KMS キーが表示されます。ただし、タグは表示されません。タグを表示するには、KMS キーのキー ID またはエイリアスを選択し、その詳細ページで **[Tags]** (タグ) タブを選択します。これらのタブは、**一般設定**セクションにあります。

   このフィルターには、タグキーとタグ値の両方が必要です。タグキーのみを入力しても、その値のみを入力しても KMS キーは検索されません。タグキー、値のすべてまたは一部でタグをフィルタリングするには、[ListResourceTags](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListResourceTags.html) オペレーションを使用してタグ付けされた KMS キーを取得し、プログラミング言語のフィルタリング機能を使用します。

1. KMS キーのエイリアスの横にあるチェックボックスをオンにします。

1. [**Key actions**]、[**Add or edit tags**] の順に選択します。

1. KMS キーの詳細ページで、[**Tags**] (タグ) タブを選択します。

## AWS KMS API の使用
<a name="tagging-keys-list-resource-tags"></a>

[ListResourceTags](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListResourceTags.html) オペレーションでは、KMS キーのタグを取得します。`KeyId` パラメータは必須です。このオペレーションを使用して、別の AWS アカウントの KMS キーのタグを表示することはできません。

例えば、次のコマンドでは、サンプルの KMS キーのタグを取得します。

```
$ aws kms list-resource-tags --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
       
  "Truncated": false,
  "Tags": [
      {
        "TagKey": "Project",
        "TagValue": "Alpha"
     },
     {
       "TagKey": "Purpose",
       "TagValue": "Test"
     },
     {
       "TagKey": "Department",
       "TagValue": "Finance"
     }
  ]
}
```

# タグを使用して KMS キーへのアクセスを制御する
<a name="tag-authorization"></a>

KMS キーのタグ AWS KMS keys に基づいて へのアクセスを制御できます。例えば、プリンシパルが特定のタグを持つ KMS キーのみを有効または無効にすることを許可する IAM ポリシーを書き込むことができます。または、IAM ポリシーを使用して、KMS キーに特定のタグがない限り、プリンシパルが暗号化オペレーションで KMS キーを使用しないようにすることもできます。

この機能は、[属性ベースのアクセスコントロール](abac.md) (ABAC) AWS KMS のサポートの一部です。タグを使用してリソースへのアクセス AWS を制御する方法については、*IAM ユーザーガイド*の[「ABAC とは AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)」および[「リソースタグを使用した AWS リソースへのアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)」を参照してください。ABAC に関連するアクセス問題の解決方法については、[の ABAC のトラブルシューティング AWS KMS](troubleshooting-tags-aliases.md) を参照してください。

**注記**  
タグとエイリアスの変更が KMS キーの認可に影響を及ぼすまでに最長 5 分かかることがあります。最近の変更は、認可に影響を与える前に API オペレーションで表示される場合があります。

AWS KMS は [aws:ResourceTag/*tag-key*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag) [グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)をサポートしています。これにより、KMS キーのタグに基づいて KMS キーへのアクセスを制御できます。複数の KMS キーに同じタグを付けることができるため、この機能を使用すると、KMS キーの選択したセットにアクセス許可を適用できます。それらのタグを変更することで、セット内の KMS キーを簡単に変更することもできます。

では AWS KMS、`aws:ResourceTag/tag-key`条件キーは IAM ポリシーでのみサポートされています。これは、1 つの KMS キーだけに適用されるキーポリシー、または特定の KMS キーを使用しないオペレーション ([ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) または [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) オペレーションなど) ではサポートされません。

タグを使用してアクセスを制御すると、シンプルでスケーラブルかつ柔軟な方法でアクセス許可を管理できます。ただし、適切に設計および管理されていない場合、KMS キーへのアクセスを誤って許可または拒否する可能性があります。タグを使用してアクセスを制御する場合は、次の方法を検討します。
+ タグを使用して、[最小特権アクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)のベストプラクティスを強化します。IAM プリンシパルで、使用または管理する必要がある KMS キーのみに対して、必要なアクセス許可のみを付与します。例えば、タグを使用して、プロジェクトに使用する KMS キーにラベルを付けます。次に、プロジェクトタグで KMS キーのみを使用する許可をプロジェクトチームに付与します。
+ プリンシパルにタグを追加、編集、削除できる `kms:TagResource` および `kms:UntagResource` 許可を付与する際は注意してください。タグを使用して KMS キーへのアクセスを制御する場合、タグを変更すると、使用許可のない KMS キーに対する使用許可をプリンシパルに付与してしまう可能性があります。他のプリンシパルがジョブを実行するために必要な KMS キーへのアクセスを拒否することもできます。キーポリシーを変更したり、権限を作成したりする許可を持たないキー管理者も、タグを管理する許可があれば、KMS キーへのアクセスを制御できます。

  可能な限り、ポリシー条件 (`aws:RequestTag/tag-key` または `aws:TagKeys` ～[プリンシパルのタグ付け許可の制限](tag-permissions.md#tag-permissions-conditions)など) を、特定の KMS キーの特定のタグまたはタグパターンに適用します。
+ 現在タグ付けおよびタグ付け解除 AWS アカウント のアクセス許可を持っている のプリンシパルを確認し、必要に応じて調整します。例えば、コンソールの[キー管理者のデフォルトキーポリシー](key-policy-default.md#key-policy-default-allow-administrators)は、KMS キーの `kms:TagResource` および `kms:UntagResource` アクセス許可を含んでいます。IAM ポリシーでは、すべての KMS キーに対してタグ付けおよびタグ解除を許可する場合があります。例えば、[AWSKeyManagementServicePowerUser](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSKeyManagementServicePowerUser) マネージドポリシーは、プリンシパルがすべての KMS キーで、タグ付け、タグ解除、タグの一覧表示を行うことを許可します。
+ タグに依存するポリシーを設定する前に、 の KMS キーのタグを確認してください AWS アカウント。含めるタグにのみポリシーが適用されることを確認します。[CloudTrail ログ](logging-using-cloudtrail.md)および [CloudWatch アラーム](monitoring-overview.md)を使用して、KMS キーへのアクセスに影響する可能性のある変更をタグ付けするようにアラートします。
+ タグベースのポリシー条件では、パターンマッチングを使用します。タグの特定のインスタンスには関連付けられません。タグベースの条件キーを使用するポリシーは、パターンに一致するすべての新規および既存のタグに影響します。ポリシー条件に一致するタグを削除して再作成すると、古いタグの場合と同様に、新しいタグに条件が適用されます。

例えば、次の IAM ポリシーの例を考えてみます。アカウントがアジアパシフィック (シンガポール) リージョンで `"Project"="Alpha"` タグを持つ KMS キーのみで、[GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html) および [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) オペレーションを呼び出すことを、プリンシパルに許可します。このポリシーは、サンプルの Alpha プロジェクトでロールにアタッチできます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMPolicyWithResourceTag",
      "Effect": "Allow",
      "Action": [
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:ap-southeast-1:111122223333:key/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Project": "Alpha"
        }
      }
    }
  ]
}
```

------

次の IAM ポリシーの例では、プリンシパルが、特定の暗号化オペレーションのために、アカウントで任意の KMS キーを使用することを許可します。ただし、プリンシパルが `"Type"="Reserved"` タグのある、または `"Type"` タグのない KMS キーにこれらの暗号化オペレーションを使用することを禁止します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMAllowCryptographicOperations",
      "Effect": "Allow",
      "Action": [
        "kms:Encrypt",
        "kms:GenerateDataKey*",
        "kms:Decrypt",
        "kms:ReEncrypt*"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*"
    },
    {
      "Sid": "IAMDenyOnTag",
      "Effect": "Deny",
      "Action": [
        "kms:Encrypt",
        "kms:GenerateDataKey*",
        "kms:Decrypt",
        "kms:ReEncrypt*"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Type": "Reserved"
        }
      }
    },
    {
      "Sid": "IAMDenyNoTag",
      "Effect": "Deny",
      "Action": [
        "kms:Encrypt",
        "kms:GenerateDataKey*",
        "kms:Decrypt",
        "kms:ReEncrypt*"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*",
      "Condition": {
        "Null": {
          "aws:ResourceTag/Type": "true"
        }
      }
    }
  ]
}
```

------