

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

# のエイリアス AWS KMS
<a name="kms-alias"></a>

「エイリアス」は、 AWS KMS keyのわかりやすい名前です。例えば、エイリアスを使用すると、`1234abcd-12ab-34cd-56ef-1234567890ab` の代わりに KMS キーを `test-key` として参照できます。

エイリアスを使用して、 AWS KMS コンソール、[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) オペレーション、および [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) や [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) などの[暗号化オペレーション](kms-cryptography.md#cryptographic-operations)で KMS キーを識別できます。エイリアスを使用すると、[AWS マネージドキー](concepts.md#aws-managed-key) の認識が容易になります。これらの KMS キーのエイリアスは、常に `aws/<service-name>` の形式になります。たとえば、Amazon DynamoDB AWS マネージドキー の のエイリアスは です`aws/dynamodb`。プロジェクトやカテゴリの名前をエイリアスの前に付けるなど、プロジェクトに対して同様のエイリアス標準を設定できます。

ポリシーを編集したり、権限を管理したりすることなく、エイリアスに基づいて KMS キーへのアクセスを許可および拒否することもできます。この機能は、[属性ベースのアクセスコントロール](abac.md) (ABAC) AWS KMS のサポートの一部です。詳細については、「[エイリアスを使用して KMS キーへのアクセスを制御する](alias-authorization.md)」を参照してください。

エイリアスの機能の強みは、エイリアスに関連付けられている KMS キーをいつでも変更できることです。エイリアスを使用すると、コードの記述と保守が容易になります。例えば、エイリアスを使用して特定の KMS キーを参照し、KMS キーを変更するとします。この場合は、単にエイリアスを別の KMS キーに関連付けます。コードを変更する必要はありません。

エイリアスを使用すると、別の AWS リージョンで同じコードを再利用することも容易になります。複数のリージョンで同じ名前のエイリアスを作成し、各エイリアスをそのリージョンの KMS キーに関連付けます。コードが各リージョンで実行されると、エイリアスは関連付けられた KMS キーをそのリージョンで参照します。例については、[アプリケーションでエイリアスを使用する方法について説明します。](alias-using.md)を参照してください。

KMS キーのエイリアスは、 AWS KMS コンソール、[CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) API、または [AWS::KMS::Alias CloudFormation テンプレート](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html)を使用して作成できます。

 AWS KMS API は、各アカウントとリージョンのエイリアスを完全に制御します。API には、エイリアスの作成 ([CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html))、エイリアス名とエイリアス ARN の表示 ([ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html))、エイリアスに関連付けられている KMS キーの変更 ([UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html))、エイリアスの削除 ([DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html)) のオペレーションが含まれます。

## エイリアスの仕組み
<a name="alias-about"></a>

 AWS KMSにおけるエイリアスの仕組みについて説明します。

**エイリアスは独立した AWS リソースです**  
エイリアスは、KMS キーのプロパティではありません。エイリアスに対して実行するアクションは、エイリアスに関連付けられた KMS キーには影響しません。KMS キーのエイリアスを作成してエイリアスを更新し、別の KMS キーに関連付けることができます。関連付けられた KMS キーに影響を与えずに、エイリアスを削除することもできます。ただし、KMS キーを削除すると、その KMS キーに関連付けられているすべてのエイリアスが削除されます。  
IAM ポリシーでリソースとしてエイリアスを指定した場合、ポリシーは、関連付けられた KMS キーではなく、エイリアスを参照します。

**各エイリアスには 2 つの形式があります。**  
エイリアスを作成するときは、エイリアス名を指定します。 AWS KMS はエイリアス ARN を作成します。  
+ [エイリアス ARN](concepts.md#key-id-alias-ARN) は、エイリアスを一意に識別する Amazon リソースネーム（ARN）です。

  ```
  # Alias ARN
  arn:aws:kms:us-west-2:111122223333:alias/<alias-name>
  ```
+ [エイリアス名](concepts.md#key-id-alias-name)は、アカウントとリージョンで一意です。 AWS KMS API では、エイリアス名には常に というプレフィックスが付けられます`alias/`。このプレフィックスは AWS KMS コンソールでは省略されます。

  ```
  # Alias name
  alias/<alias-name>
  ```

**エイリアスはシークレットではありません**  
エイリアスは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。エイリアス名には、機密情報や重要情報を含めないでください。

**各エイリアスは、一度に 1 つの KMS キーに関連付けられる**  
エイリアスとその KMS キーは、同じアカウントとリージョンに存在する必要があります。  
エイリアスは、同じ AWS アカウント およびリージョン内の任意の[カスタマーマネージドキー](concepts.md#customer-mgn-key)に関連付けることができます。ただし、エイリアスを [AWS マネージドキー](concepts.md#aws-managed-key) に関連付ける許可はありません。  
例えば、この [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) 出力では、`test-key` エイリアスが正確に 1 つのターゲット KMS キーに関連付けられていることが示されています。これは、`TargetKeyId` プロパティによって表されます。  

```
{
     "AliasName": "alias/test-key",
     "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/test-key",
     "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
     "CreationDate": 1593622000.191,
     "LastUpdatedDate": 1593622000.191
}
```

**複数のエイリアスを同じ KMS キーに関連付けることができる**  
例えば、`test-key` と `project-key` のエイリアスを同じ KMS キーに関連付けることができます。  

```
{
     "AliasName": "alias/test-key",
     "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/test-key",
     "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
     "CreationDate": 1593622000.191,
     "LastUpdatedDate": 1593622000.191
},
{
     "AliasName": "alias/project-key",
     "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/project-key",
     "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
     "CreationDate": 1516435200.399,
     "LastUpdatedDate": 1516435200.399
}
```

**エイリアスは、アカウントとリージョン内で一意である必要があります**  
例えば、各アカウントとリージョンに `test-key` エイリアスを 1 つだけ持つことができます。エイリアスでは大文字と小文字が区別されますが、大文字と小文字だけが異なるエイリアスは非常にエラーが発生しやすくなります。エイリアス名は変更できません。ただし、エイリアスを削除して、目的の名前で新しいエイリアスを作成することはできます。

**異なるリージョンに同じ名前のエイリアスを作成することができます**  
例えば、米国東部 (バージニア北部) に `finance-key` エイリアスを持つことができ、ヨーロッパ (フランクフルト) に `finance-key` エイリアスを持つことができます。各エイリアスは、そのリージョンの KMS キーに関連付けられます。コードが `alias/finance-key` のようなエイリアス名を参照している場合は、複数のリージョンで実行できます。各リージョンでは、異なる KMS キーが使用されます。詳細については、「[アプリケーションでエイリアスを使用する方法について説明します。](alias-using.md)」を参照してください。

**エイリアスに関連付けられている KMS キーを変更できる**  
[UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html) オペレーションを使用して、エイリアスを別の KMS キーに関連付けることができます。例えば、`finance-key` エイリアスが `1234abcd-12ab-34cd-56ef-1234567890ab` KMS キーに関連付けられている場合、`0987dcba-09fe-87dc-65ba-ab0987654321` KMS キーに関連付けられるようにエイリアスを更新できます。  
ただし、現在の KMS キーと新しい KMS キーが同じタイプ (両方とも対称または非対称、もしくは両方とも HMAC) であり、同じ[キー使用法](create-keys.md#key-usage) (ENCRYPT\$1DECRYPT、SIGN\$1VERIFY、GENERATE\$1VERIFY\$1MAC のいずれか) である必要があります。この制限により、エイリアスを使用するコードのエラーが防止されます。エイリアスを別のタイプのキーに関連付ける必要があり、リスクを軽減した場合は、エイリアスを削除して再作成できます。

**一部の KMS キーにはエイリアスがない**  
 AWS KMS コンソールで KMS キーを作成するときは、新しいエイリアスを指定する必要があります。ただし、[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用して KMS キーを作成する場合、エイリアスは必要ありません。また、[UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html) オペレーションを使用してエイリアスに関連付けられている KMS キーを変更し、[DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html) オペレーションを使用してエイリアスを削除することもできます。そのため、KMS キーには、複数のエイリアスを持つものもあれば、エイリアスを持たないものもあります。

**AWS がアカウントにエイリアスを作成する**  
AWS は、 のアカウントにエイリアスを作成します[AWS マネージドキー](concepts.md#aws-managed-key)。これらのエイリアスには `alias/aws/<service-name>`, 、のような形式の名前 `alias/aws/s3`があります。  
一部の AWS エイリアスには KMS キーがありません。これらの事前定義されたエイリアスは、通常、サービスの使用を開始する AWS マネージドキー ときに に関連付けられます。

**エイリアスを使用して KMS キーを識別する**  
[エイリアス名](concepts.md#key-id-alias-name)または[エイリアス ARN](concepts.md#key-id-alias-ARN) を使用して、[暗号化オペレーション](kms-cryptography.md#cryptographic-operations)、[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)、[GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html) で KMS キーを識別できます。([KMS キーが別の AWS アカウントにある場合は](key-policy-modifying-external-accounts.md)、その[キー ARN](concepts.md#key-id-key-ARN) またはエイリアス ARN を使用する必要があります)。エイリアスは、他の AWS KMS オペレーションでは、KMS キーの有効な識別子ではありません 各 AWS KMS API オペレーションの有効な[キー識別子](concepts.md#key-id)の詳細については、 *AWS Key Management Service API リファレンス*の`KeyId`パラメータの説明を参照してください。  
エイリアス名、またはエイリアス ARN を使用して、[IAM ポリシーの KMS キーを識別する](cmks-in-iam-policies.md)ことはできません。エイリアスに基づいて KMS キーへのアクセスを制御するには、[kms:RequestAlias](conditions-kms.md#conditions-kms-request-alias) または [kms:ResourceAliases](conditions-kms.md#conditions-kms-resource-aliases) 条件キーを使用します。詳細については、「[の ABAC AWS KMS](abac.md)」を参照してください。

# エイリアスへのアクセスの制御
<a name="alias-access"></a>

エイリアスを作成または変更すると、エイリアスとそのエイリアスに関連付けられた KMS キーが影響を受けます。このため、エイリアスを管理するプリンシパルには、エイリアスおよび影響を受けるすべての KMS キーに対してエイリアスオペレーションを呼び出す許可が必要です。これらの許可は、[キーポリシー](key-policies.md)、[IAM ポリシー](iam-policies.md)、[権限](grants.md)を使用することで付与できます。

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

すべての AWS KMS オペレーションへのアクセスの制御については、「」を参照してください[アクセス許可に関するリファレンス](kms-api-permissions-reference.md)。

エイリアスを作成および管理するための権限は、次のように機能します。

## kms:CreateAlias
<a name="alias-access-create"></a>

エイリアスを作成するには、プリンシパルに、エイリアスおよび関連付けられた KMS キーの両方に対する次の許可が必要です。
+ `kms:CreateAlias` エイリアスの場合。エイリアスの作成を許可されたプリンシパルにアタッチされた IAM ポリシーでこのアクセス許可を提供します。

  次のポリシーステートメントの例では、`Resource` エレメントの特定のエイリアスを指定します。ただし、複数のエイリアス ARN を一覧表示したり、「test\$1」などのエイリアスパターンを指定したりできます。`Resource` 値を `"*"` に指定すると、プリンシパルがアカウントとリージョンで任意のエイリアスを作成できるようになります。エイリアスを作成する権限は、アカウントおよびリージョン内のすべてのリソースに対する `kms:Create*` 権限に含めることもできます。

  ```
  {
    "Sid": "IAMPolicyForAnAlias",
    "Effect": "Allow",
    "Action": [
      "kms:CreateAlias",
      "kms:UpdateAlias",
      "kms:DeleteAlias"
    ],
    "Resource": "arn:aws:kms:us-west-2:111122223333:alias/test-key"
  }
  ```
+ KMS キーの `kms:CreateAlias` このアクセス許可は、キーポリシーまたはキーポリシーから委任された IAM ポリシーで指定する必要があります。

  ```
  {
    "Sid": "Key policy for 1234abcd-12ab-34cd-56ef-1234567890ab",
    "Effect": "Allow",
    "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"},
    "Action": [
      "kms:CreateAlias",
      "kms:DescribeKey"
    ],
    "Resource": "*"
  }
  ```

条件キーを使用して、エイリアスと関連付けることができる KMS キーを制限できます。例えば、[kms:KeySpec](conditions-kms.md#conditions-kms-key-spec) 条件キーを使用して、プリンシパルが非対称 KMS キーに対してのみエイリアスを作成できるようにします。KMS キーリソースに対する `kms:CreateAlias` 許可の制限に使用できる条件キーの詳細なリストについては、[AWS KMS アクセス許可](kms-api-permissions-reference.md) を参照してください。

## kms:ListAliases
<a name="alias-access-view"></a>

アカウントとリージョンのエイリアスを一覧表示するには、プリンシパルに IAM ポリシーの `kms:ListAliases` アクセス権限が必要です。このポリシーは特定の KMS キーまたはエイリアスリソースに関連付けられていないため、ポリシー内のリソース要素の値が [`"*"` である必要があります](iam-policies-best-practices.md#require-resource-star)。

例えば、次の IAM ポリシーステートメントでは、アカウントとリージョン内のすべての KMS キーとエイリアスを一覧表示する許可をプリンシパルに付与します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:ListKeys",
      "kms:ListAliases"
    ],
    "Resource": "*"
  }
}
```

------

## kms:UpdateAlias
<a name="alias-access-update"></a>

エイリアスに関連付けられている KMS キーを変更するには、プリンシパルにエイリアス用、現在の KMS キー用、新規の KMS キー用の 3 つの許可要素が必要です。

例えば、`test-key` エイリアスをキー ID 1234abcd-12ab-34cd-56ef-1234567890ab の KMS キーから、キー ID 0987dcba-09fe-87dc-65ba-ab0987654321 の KMS キーに変更するとします。その場合は、このセクションの例に似たポリシーステートメントを含めます。
+ `kms:UpdateAlias` エイリアスの場合。このアクセス権限は、プリンシパルにアタッチされている IAM ポリシーで提供します。次の IAM ポリシーは、特定のエイリアスを指定します。ただし、複数のエイリアス ARN を一覧表示したり、`"test*"` などのエイリアスパターンを指定したりできます。`"*"` の `Resource` 値を指定することで、プリンシパルがアカウントとリージョンで任意のエイリアスを更新できるようにもなります。

  ```
  {
    "Sid": "IAMPolicyForAnAlias",
    "Effect": "Allow",
    "Action": [
      "kms:UpdateAlias",
      "kms:ListAliases",
      "kms:ListKeys"
    ],
    "Resource": "arn:aws:kms:us-west-2:111122223333:alias/test-key"
  }
  ```
+ 現在エイリアスに関連付けられている KMS キーの `kms:UpdateAlias`。このアクセス許可は、キーポリシーまたはキーポリシーから委任された IAM ポリシーで指定する必要があります。

  ```
  {
    "Sid": "Key policy for 1234abcd-12ab-34cd-56ef-1234567890ab",
    "Effect": "Allow",
    "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"},
    "Action": [
      "kms:UpdateAlias",
      "kms:DescribeKey"
    ],
    "Resource": "*"
  }
  ```
+ `kms:UpdateAlias`オペレーションでエイリアスに関連付けられている KMS キーの 。このアクセス許可は、キーポリシーまたはキーポリシーから委任された IAM ポリシーで指定する必要があります。

  ```
  {
    "Sid": "Key policy for 0987dcba-09fe-87dc-65ba-ab0987654321",
    "Effect": "Allow",
    "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"},
    "Action": [
      "kms:UpdateAlias", 
      "kms:DescribeKey"
    ],
    "Resource": "*"
  }
  ```

条件キーを使用して、`UpdateAlias` オペレーションの KMS キーの一方または両方を制限できます。例えば、[kms:ResourceAliases](conditions-kms.md#conditions-kms-resource-aliases) 条件キーを使用して、ターゲット KMS キーに特定のエイリアスが既に存在する場合にのみ、プリンシパルがエイリアスを更新できるようにします。KMS キーリソースに対する `kms:UpdateAlias` 許可の制限に使用できる条件キーの詳細なリストについては、[AWS KMS アクセス許可](kms-api-permissions-reference.md) を参照してください。

## kms:DeleteAlias
<a name="alias-access-delete"></a>

エイリアスを削除するには、プリンシパルにエイリアスおよび関連付けられた KMS キーに対する許可が必要です。

プリンシパルにリソースを削除する権限を与えるときは、いつものように注意する必要があります。ただし、エイリアスを削除しても関連付けられた KMS キーには影響しません。エイリアスに依存するアプリケーションでエラーが発生する可能性がありますが、エイリアスを誤って削除した場合は、エイリアスを再作成することができます。
+ `kms:DeleteAlias` エイリアスの場合。エイリアスの削除を許可されているプリンシパルにアタッチされた IAM ポリシーでこのアクセス許可を提供します。

  次のポリシーステートメントの例は、 `Resource` エレメントのエイリアスを指定します。ただし、複数のエイリアス ARN を一覧表示したり、`"test*"` などのエイリアスパターンを指定したりできます。`"*"` の `Resource` 値を指定して、プリンシパルにアカウントとリージョンで任意のエイリアスを削除させることもできます。

  ```
  {
    "Sid": "IAMPolicyForAnAlias",
    "Effect": "Allow",
    "Action": [
      "kms:CreateAlias",
      "kms:UpdateAlias",
      "kms:DeleteAlias"
    ],
    "Resource": "arn:aws:kms:us-west-2:111122223333:alias/test-key"
  }
  ```
+ 関連付けられた KMS キーの `kms:DeleteAlias`。このアクセス許可は、キーポリシーまたはキーポリシーから委任された IAM ポリシーで指定する必要があります。

  ```
  {
    "Sid": "Key policy for 1234abcd-12ab-34cd-56ef-1234567890ab",
    "Effect": "Allow",
    "Principal": {
      "AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"
    },
    "Action": [
      "kms:CreateAlias",
      "kms:UpdateAlias",
      "kms:DeleteAlias",
      "kms:DescribeKey"
    ],
    "Resource": "*"
  }
  ```

## エイリアスのアクセス許可を制限する
<a name="alias-access-limiting"></a>

リソースが KMS キーの場合、条件キーを使用してエイリアスのアクセス許可を制限できます。例えば、次の IAM ポリシーでは、特定のアカウントとリージョンの KMS キーに対するエイリアスオペレーションを許可します。ただし、[kms:KeyOrigin ](conditions-kms.md#conditions-kms-key-origin)条件キーを使用して、キーマテリアルを含む KMS キーへのアクセス許可をさらに制限します AWS KMS。

KMS キーリソースに対するエイリアスのアクセス許可の制限に使用できる条件キーの詳細なリストについては、[AWS KMS アクセス許可](kms-api-permissions-reference.md) を参照してください。

```
{
  "Sid": "IAMPolicyKeyPermissions",
  "Effect": "Allow",
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Action": [
    "kms:CreateAlias",
    "kms:UpdateAlias",
    "kms:DeleteAlias"
  ],
  "Condition": {
    "StringEquals": {
      "kms:KeyOrigin": "AWS_KMS"
    }
  }  
}
```

リソースがエイリアスのポリシーステートメントでは、条件キーを使用できません。プリンシパルが管理できるエイリアスを制限するには、エイリアスへのアクセスを制御する IAM ポリシーステートメントの `Resource` 要素の値を使用します。たとえば、次のポリシーステートメントでは、エイリアスが で始まらない限り、プリンシパルは AWS アカウント および リージョンでエイリアスを作成、更新、または削除できます`Restricted`。

```
{
  "Sid": "IAMPolicyForAnAliasAllow",
  "Effect": "Allow",
  "Action": [
    "kms:CreateAlias",
    "kms:UpdateAlias",
    "kms:DeleteAlias"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:alias/*"
},
{
  "Sid": "IAMPolicyForAnAliasDeny",
  "Effect": "Deny",
  "Action": [
    "kms:CreateAlias",
    "kms:UpdateAlias",
    "kms:DeleteAlias"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:alias/Restricted*"
}
```

# エイリアスを作成する
<a name="alias-create"></a>

エイリアスは、 AWS KMS コンソールまたは AWS KMS API オペレーションを使用して作成できます。

エイリアスは 1 ～ 256 文字の文字列である必要があります。エイリアス名に使用できるのは、英数字、スラッシュ (/)、アンダースコア (\$1)、およびダッシュ (-) のみです。[カスタマーマネージドキー](concepts.md#customer-mgn-key)のエイリアス名を `alias/aws/` で始めることはできません。`alias/aws/` プレフィックスは [AWS マネージドキー](concepts.md#aws-managed-key) のために予約されます。

新規の KMS キーまたは既存の KMS キーのエイリアスを作成できます。エイリアスを追加すると、特定の KMS キーをプロジェクトまたはアプリケーションで使用できます。

 AWS CloudFormation テンプレートを使用して、KMS キーのエイリアスを作成することもできます。詳細については、「*AWS CloudFormation ユーザーガイド*」の「[AWS::KMS::Alias](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html)」を参照してください。

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

 AWS KMS コンソールで [KMS キーを作成する](create-keys.md)ときは、新しい KMS キーのエイリアスを作成する必要があります。既存の KMS キーのエイリアスを作成するには、KMS キーの詳細ページにある [**Aliases**] (エイリアス) タブをクリックします。

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

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

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

1. テーブルで、KMS キーのキー ID またはエイリアスを選択します。次に、KMS キーの詳細ページで、[**Aliases**] (エイリアス) タブをクリックします。

   KMS キーに複数のエイリアスがある場合は、テーブルの [**Aliases**] (エイリアス) 列に、1 つのエイリアスと **(\$1*n* 個以上)** などのエイリアスの概要が表示されます。エイリアスの概要を選択すると、KMS キーの詳細ページの [**Aliases**] (エイリアス) タブを直接表示します。

1. [**Aliases**] (エイリアス) タブで、[**Create alias**] (エイリアスの作成) を選択します。エイリアス名を入力し、[**Create alias**] (エイリアスの作成) を選択します。
**重要**  
このフィールドには、機密情報や重要情報を含めないでください。このフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。
**注記**  
`alias/` プレフィックスを追加しないでください。コンソールが自動的に追加します。`alias/ExampleAlias` を入力すると、実際のエイリアス名は `alias/alias/ExampleAlias` になります。

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

エイリアスを作成するには、 [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) オペレーションを使用します。コンソールで KMS キーを作成するプロセスとは異なり、[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションでは、新規 KMS キーのエイリアスは作成されません。

**重要**  
このフィールドには、機密情報や重要情報を含めないでください。このフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

`CreateAlias` オペレーションを使用して、エイリアスを持たない新規 KMS キーのエイリアスを作成できます。`CreateAlias` オペレーションを使用して、既存の KMS キーにエイリアスを追加したり、誤って削除されたエイリアスを再作成したりできます。

 AWS KMS API オペレーションでは、エイリアス名は で始まり、`alias/`その後に などの名前を付ける必要があります`alias/ExampleAlias`。エイリアスはアカウントと リージョンで一意であることが必要です。既に使用されているエイリアス名を検索するには、 [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) オペレーションを使用します。エイリアス名では、大文字と小文字が区別されます。

`TargetKeyId` は、同じ AWS リージョン内の任意の[カスタマーマネージドキー](concepts.md#customer-mgn-key)です。KMS キーを識別するには、その[キー ID](concepts.md#key-id-key-id) または[キー ARN](concepts.md#key-id-key-ARN) を使用します。別のエイリアスを使用することはできません。

次の例では、`example-key` エイリアスを作成し、指定した KMS キーに関連付けます。これらの例では、 AWS Command Line Interface () を使用しますAWS CLI。複数のプログラミング言語の例については、「[AWS SDK または CLI `CreateAlias`で を使用する](example_kms_CreateAlias_section.md)」を参照してください。

```
$ aws kms create-alias \
    --alias-name alias/example-key \
    --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```

`CreateAlias` は出力を返しません。新しいエイリアスを確認するには、 `ListAliases` オペレーションを使用します。詳細については、「[AWS KMS API の使用](alias-view.md#alias-view-api)」を参照してください。

# KMS キーのエイリアス名とエイリアス ARN を見つける
<a name="alias-view"></a>

エイリアスを使用すると、 AWS KMS コンソールで KMS キーを簡単に認識できます。KMS キーのエイリアスは、 AWS KMS コンソールまたは [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) オペレーションを使用して表示できます。KMS キーのプロパティを返す [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) オペレーションには、エイリアスは含まれません。

次の手順は、 AWS KMS コンソールと AWS KMS API を使用して KMS キーに関連付けられたエイリアスを表示および識別する方法を示しています。 AWS KMS API の例では [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) を使用していますが、サポートされている任意のプログラミング言語を使用できます。

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

 AWS KMS コンソールには、KMS キーに関連付けられたエイリアスが表示されます。

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

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

1. ユーザーが作成および管理するアカウント内のキーを表示するには、ナビゲーションペインで **[Customer managed keys]** (カスタマーマネージドキー) を選択します。 AWS が作成および管理しているアカウントのキーを表示するには、ナビゲーションペインで**AWS マネージドキー**を選択します。

1. **エイリアス**列には、各 KMS キーのエイリアスが表示されます。KMS キーにエイリアスがない場合は、**エイリアス**列にダッシュ (**-**) が表示されます。

   KMS キーに複数のエイリアスがある場合は、**エイリアス**列に、**(\$1*n* 個以上)**などのエイリアスの概要も表示されます 。例えば、次の KMS キーには 2 つのエイリアスがあり、そのうちの 1 つは `key-test` です。

   KMS キーのすべてのエイリアスのエイリアス名とエイリアス ARN を検索するには、[**Aliases**] (エイリアス) タブを使用します。
   + [**Aliases**] (エイリアス) タブに直接移動するには、[**Aliases**] (エイリアス) 列で、エイリアスの概要 (**\$1*n*個以上**) を選択します。エイリアスの概要は、KMS キーに複数のエイリアスがある場合にのみ表示されます。
   + または、KMS キーのエイリアスまたはキー ID を選択し (KMS キーの詳細ページが開きます)、[**Aliases**] (エイリアス) タブを選択します。これらのタブは、[**General configuration**] (一般設定) セクションにあります。  
![\[カスタマーマネージドキー interface showing a list with one key and options to create or filter keys.\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/images/find-alias-name-1-sm.png)

1. [**Aliases**] (エイリアス) タブには、KMS キーのすべてのエイリアスのエイリアス名とエイリアス ARN が表示されます。このタブで、KMS キーのエイリアスを作成または削除することもできます。  
![\[Aliases tab showing two key aliases with their names and ARNs listed in a table format.\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/images/alias-tab-1.png)

**AWS マネージドキー**  
この例の**AWS マネージドキー**ページに示すように AWS マネージドキー、エイリアスを使用して を認識できます。 AWS マネージドキー のエイリアスでは、形式は常に `aws/<service-name>` です。たとえば、Amazon DynamoDB AWS マネージドキー の のエイリアスは です`aws/dynamodb`。

![\[AWS KMS コンソールの [AWS マネージドキー] ページのエイリアス\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/images/alias-console-aws-managed-sm.png)


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

[ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) オペレーションは、アカウントおよびリージョン内のエイリアスのエイリアス名とエイリアス ARN を返します。出力には、カスタマーマネージドキーの AWS マネージドキー および のエイリアスが含まれます。 AWS マネージドキー のエイリアスは、 `aws/<service-name>`の形式になります (例: `aws/dynamodb`)。

レスポンスには、`TargetKeyId` フィールドがないエイリアスが含まれている場合もあります。これらは、 AWS によって作成されたが、まだ KMS キーに関連付けられていない事前定義されたエイリアスです。

```
$ aws kms list-aliases
{
    "Aliases": [
        {
            "AliasName": "alias/access-key",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/access-key",
            "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
            "CreationDate": 1516435200.399,
            "LastUpdatedDate": 1516435200.399
        },        
        {
            "AliasName": "alias/ECC-P521-Sign",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ECC-P521-Sign",
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1693622000.704,
            "LastUpdatedDate": 1693622000.704
        },
        {
            "AliasName": "alias/ImportedKey",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ImportedKey",
            "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d",
            "CreationDate": 1493622000.704,
            "LastUpdatedDate": 1521097200.235
        },
        {
            "AliasName": "alias/finance-project",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/finance-project",
            "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
            "CreationDate": 1604958290.014,
            "LastUpdatedDate": 1604958290.014
        },
        {
            "AliasName": "alias/aws/dynamodb",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb",
            "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef",
            "CreationDate": 1521097200.454,
            "LastUpdatedDate": 1521097200.454
        },
        {
            "AliasName": "alias/aws/ebs",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/ebs",
            "TargetKeyId": "abcd1234-09fe-ef90-09fe-ab0987654321",
            "CreationDate": 1466518990.200,
            "LastUpdatedDate": 1466518990.200
        }
    ]
}
```

特定の KMS キーに関連付けられているすべてのエイリアスを取得するには、`ListAliases` オペレーションのオプションの `KeyId` パラメータを使用します。`KeyId` パラメータは、KMS キーの[キー ID](concepts.md#key-id-key-id) または[キー ARN](concepts.md#key-id-key-ARN) を受け取ります。

この例では、`0987dcba-09fe-87dc-65ba-ab0987654321` KMS キーに関連付けられているすべてのエイリアスを取得します。

```
$ aws kms list-aliases --key-id 0987dcba-09fe-87dc-65ba-ab0987654321
{
    "Aliases": [
        {
            "AliasName": "alias/access-key",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/access-key",
            "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
            "CreationDate": "2018-01-20T15:23:10.194000-07:00",
            "LastUpdatedDate": "2018-01-20T15:23:10.194000-07:00"
        },
        {
            "AliasName": "alias/finance-project",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/finance-project",
            "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
            "CreationDate": 1604958290.014,
            "LastUpdatedDate": 1604958290.014
        }
    ]
}
```

`KeyId` パラメータはワイルドカード文字を使用しませんが、プログラミング言語の機能を使用して応答をフィルタリングできます。

たとえば、次の AWS CLI コマンドは のエイリアスのみを取得します AWS マネージドキー。

```
$ aws kms list-aliases --query 'Aliases[?starts_with(AliasName, `alias/aws/`)]'
```

次のコマンドは、 `access-key` エイリアスのみを取得します。エイリアス名では、大文字と小文字が区別されます。

```
$ aws kms list-aliases --query 'Aliases[?AliasName==`alias/access-key`]'
[
    {
        "AliasName": "alias/access-key",
        "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/access-key",
        "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
        "CreationDate": "2018-01-20T15:23:10.194000-07:00",
        "LastUpdatedDate": "2018-01-20T15:23:10.194000-07:00"
    }
]
```

# エイリアスを更新する
<a name="alias-update"></a>

エイリアスは独立したリソースであるため、エイリアスに関連付けられている KMS キーを変更することができます。例えば、`test-key` エイリアスがある KMS キーに関連付けられている場合、[UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html) オペレーションを使用して、エイリアスを別の KMS キーに関連付けることができます。これは、キーマテリアルを変更せずに [KMS キーを手動でローテーションする](rotate-keys.md)方法の 1 つです。KMS キーを更新し、新しいリソースに特定の KMS キーを使用していたアプリケーションで、別の KMS キーを使用することもできます。

 AWS KMS コンソールでエイリアスを更新することはできません。また、 `UpdateAlias` （または他のオペレーション）を使用してエイリアス名を変更することはできません。エイリアス名を変更するには、現在のエイリアスを削除してから KMS キーの新しいエイリアスを作成します。

エイリアスを更新するときは、現在の KMS キーと新しい KMS キーが同じタイプ (両方とも対称または非対称、もしくは HMAC) である必要があります。これらのキーの用途も同じである必要もあります (`ENCRYPT_DECRYPT`、`SIGN_VERIFY`、または GENERATE\$1VERIFY\$1MAC)。この制限により、エイリアスを使用するコードの暗号化エラーが防止されます。

次の例では、最初に [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) オペレーションを使用して、`test-key` エイリアスが現在、KMS キー `1234abcd-12ab-34cd-56ef-1234567890ab` に関連付けられていることを示します 。

```
$ aws kms list-aliases --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
{
    "Aliases": [
        {
            "AliasName": "alias/test-key",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/test-key",
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1593622000.191,
            "LastUpdatedDate": 1593622000.191
        }
    ]
}
```

次に、`UpdateAlias` オペレーションを使用して、`test-key` エイリアスに関連付けられている KMS キーを、KMS キー `0987dcba-09fe-87dc-65ba-ab0987654321` に変更します 現在関連付けられている KMS キーを指定する必要はありません。新しい (「ターゲット」) KMS キーのみを指定します。エイリアス名では、大文字と小文字が区別されます。

```
$ aws kms update-alias --alias-name 'alias/test-key' --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321
```

エイリアスが現在、ターゲット KMS キーに関連付けられていることを確認するには、再度、`ListAliases` オペレーションを使用します。この AWS CLI コマンドは、 `test-key` `--query`パラメータを使用してエイリアスのみを取得します。`TargetKeyId` および `LastUpdatedDate` フィールドが更新されます。

```
$ aws kms list-aliases --query 'Aliases[?AliasName==`alias/test-key`]'
[
    {
        "AliasName": "alias/test-key",
        "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/test-key",
        "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
        "CreationDate": 1593622000.191,
        "LastUpdatedDate": 1604958290.154
    }
]
```

# エイリアスを削除する
<a name="alias-delete"></a>

エイリアスは、 AWS KMS コンソールで、または [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html) オペレーションを使用して削除できます。エイリアスを削除する前に、そのエイリアスが使用されていないことを確認してください。エイリアスを削除しても関連付けられている KMS キーには影響しませんが、そのエイリアスを使用するアプリケーションに問題が発生する可能性があります。エイリアスを誤って削除した場合は、同じ名前の新しいエイリアスを作成し、同じまたは別の KMS キーに関連付けることができます。

KMS キーを削除すると、その KMS キーに関連付けられているすべてのエイリアスが削除されます。

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

 AWS 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 マネージドキー または のエイリアスを管理することはできません AWS 所有のキー。

1. テーブルで、KMS キーのキー ID またはエイリアスを選択します。次に、KMS キーの詳細ページで、[**Aliases**] (エイリアス) タブをクリックします。

   KMS キーに複数のエイリアスがある場合は、テーブルの [**Aliases**] (エイリアス) 列に、1 つのエイリアスと **(\$1*n* 個以上)** などのエイリアスの概要が表示されます。エイリアスの概要を選択すると、KMS キーの詳細ページの [**Aliases**] (エイリアス) タブを直接表示します。

1. [**Aliases**] (エイリアス) タブで、削除するエイリアスの横にあるチェックボックスをオンにします。その後、**[削除]** をクリックします。

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

エイリアスを削除するには、 [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html) オペレーションを使用します。このオペレーションでは、エイリアスは一度に 1 つずつ削除されます。エイリアス名では、大文字と小文字が区別されます。また、エイリアス名の先頭には必ず `alias/` プレフィックスが付いています。

例えば、次のコマンドは、 `test-key` エイリアスを削除します。このコマンドは出力を返しません。

```
$ aws kms delete-alias --alias-name alias/test-key
```

エイリアスが削除されていることを確認するには、 [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) オペレーションを使用します。次のコマンドは、 の `test-key` `--query`パラメータ AWS CLI を使用してエイリアスのみを取得します。応答の空の括弧は、 `ListAliases` 応答に `test-key` エイリアスが含まれていないことを示します。括弧を削除するには、 `--output text` パラメータと値を使用します。

```
$ aws kms list-aliases --query 'Aliases[?AliasName==`alias/test-key`]'
[]
```

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

KMS キーに関連付けられたエイリアスに基づいて、KMS キーへのアクセスを制御できます。これを行うには、[kms:RequestAlias](conditions-kms.md#conditions-kms-request-alias) および [kms:ResourceAliases](conditions-kms.md#conditions-kms-resource-aliases) 条件キーを使用します。この機能は、[属性ベースのアクセスコントロール](abac.md) (ABAC) AWS KMS のサポートの一部です。

`kms:RequestAlias` 条件キーは、リクエスト内のエイリアスに基づいて、KMS キーへのアクセスを許可または拒否します。`kms:ResourceAliases` 条件キーは、KMS キーに関連付けられたエイリアスに基づいて、KMS キーへのアクセスを許可または拒否します。

これらの機能では、ポリシーステートメントの `resource` 要素のエイリアスを使用して KMS キーを識別することはできません。エイリアスが `resource` 要素の値の場合、ポリシーは関連付けられている KMS キーではなく、エイリアスリソースに適用されます。

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

エイリアスを使用して KMS キーへのアクセスを制御する際は、次の点を考慮してください。
+ エイリアスを使用して、[最小特権アクセス](iam-policies-best-practices.md)のベストプラクティスを強化します。IAM プリンシパルでは、使用または管理する必要がある KMS キーのみに対して、必要なアクセス許可のみを付与します。例えば、エイリアスを使用してプロジェクトに使用される KMS キーを識別します。次に、プロジェクトエイリアスを持つ KMS キーのみを使用する許可をプロジェクトチームに付与します。
+ プリンシパルにエイリアスを追加、編集、削除できる `kms:CreateAlias`、`kms:UpdateAlias`、`kms:DeleteAlias` 許可を付与する際は注意してください。エイリアスを使用して KMS キーへのアクセスを制御する際、タグを変更することで、使用許可のない KMS キーに対する使用許可をプリンシパルに付与してしまう可能性があります。他のプリンシパルがジョブを実行するために必要な KMS キーへのアクセスを拒否することもできます。
+ エイリアスを管理し、必要に応じてアクセス許可を調整するアクセス許可を現在持ってい AWS アカウント る のプリンシパルを確認します。キーポリシーを変更したり、権限を作成したりする許可のないキー管理者も、エイリアスを管理する許可があれば、KMS キーへのアクセスを制御できます。

  例えば、コンソールの[キー管理者のデフォルトキーポリシー](key-policy-default.md#key-policy-default-allow-administrators)には、`kms:CreateAlias`、`kms:DeleteAlias`、`kms:UpdateAlias` アクセス許可があります。IAM ポリシーでは、 AWS アカウントのすべての KMS キーに対するエイリアスのアクセス許可を付与する可能性があります。例えば、[AWSKeyManagementServicePowerUser](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSKeyManagementServicePowerUser) マネージドポリシーでは、プリンシパルはすべての KMS キーのエイリアスを作成、削除、一覧表示できますが、更新はできません。
+ エイリアスに依存するポリシーを設定する前に、 の KMS キーのエイリアスを確認してください AWS アカウント。含めるエイリアスにのみポリシーが適用されることを確認します。[CloudTrail ログ](alias-ct.md)および [CloudWatch アラーム](monitoring-cloudwatch.md)を使用して、KMS キーへのアクセスに影響する可能性のあるエイリアス変更をアラートさせます。[ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) レスポンスには、各エイリアスの作成日と最終更新日が含まれます。
+ エイリアスポリシー条件はパターンマッチングを使用します。エイリアスの特定のインスタンスには関連付けられません。エイリアスベースの条件キーを使用するポリシーは、パターンに一致するすべての新規および既存のエイリアスに影響します。ポリシー条件に一致するエイリアスを削除して再作成すると、古いエイリアスの場合と同様に、新しいエイリアスに条件が適用されます。

`kms:RequestAlias` 条件キーは、オペレーションリクエストで明示的に指定されたエイリアスに依存します。`kms:ResourceAliases` 条件キーは、リクエストに表示されない場合でも、KMS キーに関連付けられているエイリアスに依存します。

## kms:RequestAlias
<a name="alias-auth-request-alias"></a>

リクエスト内の KMS キーを識別するエイリアスに基づいて、KMS キーへのアクセスを許可または拒否します。[キーポリシー](key-policies.md)または IAM ポリシーで、[kms:RequestAlias](conditions-kms.md#conditions-kms-request-alias) 条件キーを使用できます。これは、エイリアスを使用してリクエスト内の KMS キーを識別するオペレーション、つまり [暗号化オペレーション](kms-cryptography.md#cryptographic-operations)、[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)、[GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html) に適用されます。[CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) または [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html) のようなエイリアスオペレーションには無効です。

**重要**  
呼び出し元はキー [ID、キー](concepts.md#key-id-key-id) [ARN](concepts.md#key-id-key-ARN)、または別のエイリアスを使用してリクエスト内の KMS キーを識別できるため、 `kms:RequestAlias`条件の`Deny`ポリシーステートメントはお勧めしません。KMS キーに関連付けられたエイリアスに基づいてアクセスを拒否するには、代わりに [kms:ResourceAliases](conditions-kms.md#conditions-kms-resource-aliases) 条件キーを使用します。

条件キーで、[エイリアス名](concepts.md#key-id-alias-name)またはエイリアス名パターンを指定します。[エイリアス ARN](concepts.md#key-id-alias-ARN) を指定することはできません。

例えば、次のポリシーステートメントでは、プリンシパルが KMS キーに対して、指定されたオペレーションを使用できるようにします。アクセス許可は、KMS キーを識別する `alpha` を含むエイリアスをリクエストが使用する場合にのみ有効です。

```
{
  "Sid": "Key policy using a request alias condition",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/alpha-developer"
  },
  "Action": [
    "kms:Decrypt",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:RequestAlias": "alias/*alpha*"
    }
  }
}
```

次の認可済みプリンシパルからのサンプルリクエストは条件を満たします。ただし、これらの値が同じ KMS キーを識別したとしても、[キー ID](concepts.md#key-id-key-id)、[キー ARN](concepts.md#key-id-key-ARN)、別のエイリアスが条件を満たさない可能性があります。

```
$ aws kms describe-key --key-id "arn:aws:kms:us-west-2:111122223333:alias/project-alpha"
```

## kms:ResourceAliases
<a name="alias-auth-resource-aliases"></a>

KMS キーに関連付けられたエイリアスに基づいて、エイリアスがリクエストで使用されていない場合でも、KMS キーへのアクセスを許可または拒否します。[kms:ResourceAliases](conditions-kms.md#conditions-kms-resource-aliases) 条件キーを使用すると、`alias/test*` のようなエイリアスまたはエイリアスパターンを指定できるため、この条件キーを IAM ポリシーで使用して、同じリージョン内の複数の KMS キーへのアクセスを制御できます。これは、KMS キーを使用するすべての AWS KMS オペレーションで有効です。

たとえば、次の IAM ポリシーでは、プリンシパルが 2 つの KMS キーで指定されたオペレーションを呼び出すことができます AWS アカウント。ただし、アクセス許可は `restricted` で始まるエイリアスに関連付けられた KMS キーにのみ適用されます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AliasBasedIAMPolicy",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Resource": [
        "arn:aws:kms:*:111122223333:key/*",
        "arn:aws:kms:*:444455556666:key/*"
      ],
      "Condition": {
        "ForAnyValue:StringLike": {
          "kms:ResourceAliases": "alias/restricted*"
        }
      }
    }
  ]
}
```

------

`kms:ResourceAliases` 条件はリクエストではなく、リソースの条件です。したがって、エイリアスを指定しないリクエストは、引き続き条件を満たすことができます。

次のリクエスト例は一致するエイリアスを指定し、条件を満たしています。

```
$ aws kms enable-key-rotation --key-id "alias/restricted-project"
```

ただし、次のリクエスト例では、指定された KMS キーに `restricted` で始まるエイリアスがあれば、そのエイリアスがリクエストで使用されなくても、条件を満たします。

```
$ aws kms enable-key-rotation --key-id "1234abcd-12ab-34cd-56ef-1234567890ab"
```

# アプリケーションでエイリアスを使用する方法について説明します。
<a name="alias-using"></a>

エイリアスを使用して、アプリケーションコードで KMS キーを表示できます。`KeyId` パラメータ AWS KMS [の暗号化オペレーション](kms-cryptography.md#cryptographic-operations)、[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)、および [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html) は、エイリアス名またはエイリアス ARN を受け入れます。

例えば、次の `GenerateDataKey` コマンドでは、エイリアス名 (`alias/finance`) を使用して KMS キーを識別します。エイリアス名は、 `KeyId` パラメータの値です。

```
$ aws kms generate-data-key --key-id alias/finance --key-spec AES_256
```

KMS キーが異なる にある場合は AWS アカウント、これらのオペレーションでキー ARN またはエイリアス ARN を使用する必要があります。エイリアス ARN を使用する際、KMS キーのエイリアスは KMS キーを所有するアカウントで定義され、リージョンごとに異なる場合があることに注意してください。エイリアス ARN を検索する方法については、[KMS キーのエイリアス名とエイリアス ARN を見つける](alias-view.md) を参照してください。

例えば、次の `GenerateDataKey` コマンドでは、発信者のアカウントに含まれていない KMS キーを使用します。`ExampleAlias` エイリアスは、指定したアカウントおよびリージョンの KMS キーに関連付けられます。

```
$ aws kms generate-data-key --key-id arn:aws:kms:us-west-2:444455556666:alias/ExampleAlias --key-spec AES_256
```

エイリアスの最も強力な使用法の 1 つは、アプリケーションを複数の AWS リージョンで実行する場合です。例えば、署名と検証に RSA [非対称 KMS キー](symmetric-asymmetric.md)を使用するグローバルなアプリケーションがあるとします。
+ 米国西部 (オレゴン) ( s-west-2) では、`arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` を使用します。
+ ヨーロッパ (フランクフルト) (eu-central-1) では `arn:aws:kms:eu-central-1:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321` を、
+ アジアパシフィック (シンガポール) (ap-southeast-1) では、`arn:aws:kms:ap-southeast-1:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d` を使用します。

各リージョンで異なるバージョンのアプリケーションを作成するか、ディクショナリまたはスイッチステートメントを使用して、各リージョンに適切な KMS キーを選択できます。ただし、各リージョンで同じエイリアス名を持つエイリアスを作成する方がはるかに簡単です。エイリアス名では、大文字と小文字が区別されます。

```
aws --region us-west-2 kms create-alias \
    --alias-name alias/new-app \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

aws --region eu-central-1 kms create-alias \
    --alias-name alias/new-app \
    --key-id arn:aws:kms:eu-central-1:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321

aws --region ap-southeast-1 kms create-alias \
    --alias-name alias/new-app \
    --key-id arn:aws:kms:ap-southeast-1:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d
```

次に、コード内でエイリアスを使用します。コードが各リージョンで実行されると、エイリアスは、そのリージョンの関連付けられた KMS キーを参照します。例えば、このコードは、エイリアス名を使用して [Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html) オペレーションを呼び出します。

```
aws kms sign --key-id alias/new-app \
    --message $message \
    --message-type RAW \
    --signing-algorithm RSASSA_PSS_SHA_384
```

ただし、エイリアスが削除または更新され、別の KMS キーに関連付けられるリスクがあります。この場合、エイリアス名を使用した署名の検証に失敗し、エイリアスの再作成または更新が必要になる場合があります。

このリスクを軽減するには、アプリケーションで使用するエイリアスを管理する権限をプリンシパルに与えることに注意する必要があります。詳細については、「[エイリアスへのアクセスの制御](alias-access.md)」を参照してください。

複数の AWS リージョン([AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/) など) のデータを暗号化するアプリケーションには、他にも複数のソリューションがあります。

# AWS CloudTrail ログでエイリアスを検索する
<a name="alias-ct"></a>

エイリアスを使用して、 AWS KMS API オペレーション AWS KMS key で を表すことができます。これを行うと、KMS キーのエイリアスとキー ARN がイベントの AWS CloudTrail ログエントリに記録されます。エイリアスが `requestParameters` フィールドに表示されます。キー ARN が `resources` フィールドに表示されます。これは、 AWS サービスがアカウント AWS マネージドキー で を使用している場合でも当てはまります。

例えば、次の [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) リクエストでは、`project-key` エイリアスを使用して KMS キーを表します。

```
$ aws kms generate-data-key --key-id alias/project-key --key-spec AES_256
```

このリクエストが CloudTrail ログに記録されると、ログエントリには実際に使用された KMS キーのエイリアスとキー ARN の両方が含まれます。

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "ABCDE",
        "arn": "arn:aws:iam::111122223333:role/ProjectDev",
        "accountId": "111122223333",
        "accessKeyId": "FFHIJ",
        "userName": "example-dev"
    },
    "eventTime": "2020-06-29T23:36:41Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKey",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "205.205.123.000",
    "userAgent": "aws-cli/1.18.89 Python/3.6.10 Linux/4.9.217-0.1.ac.205.84.332.metal1.x86_64 botocore/1.17.12",
    "requestParameters": {
        "keyId": "alias/project-key",
        "keySpec": "AES_256"
    },
    "responseElements": null,
    "requestID": "d93f57f5-d4c5-4bab-8139-5a1f7824a363",
    "eventID": "d63001e2-dbc6-4aae-90cb-e5370aca7125",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "111122223333"
}
```

CloudTrail ログのログ記録 AWS KMS オペレーションの詳細については、「」を参照してください[を使用した AWS KMS API コールのログ記録 AWS CloudTrail](logging-using-cloudtrail.md)。