

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

# タグへのアクセスを制御する
<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"}
      }
    }
  ]
}
```

------