

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 의 별칭 AWS KMS
<a name="kms-alias"></a>

*별칭*은 AWS KMS key의 알아보기 쉬운 다른 이름입니다. 예를 들어 별칭을 사용하면 KMS 키를 `1234abcd-12ab-34cd-56ef-1234567890ab` 대신 `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) 섹션을 참조하세요.

 AWS KMS 콘솔에서 [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) API를 사용하거나 AWS::KMS::Alias [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 키가 아니라 별칭을 참조합니다.

**각 별칭에는 두 가지 형식이 있습니다.**  
별칭을 생성할 때 alias name을 지정합니다.는 별칭 ARN을 AWS KMS 생성합니다.  
+ [별칭 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 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다. 별칭 이름에 기밀 또는 민감한 정보를 포함시키지 마십시오.

**각 별칭은 한 번에 하나의 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` 별칭이 `TargetKeyId` 속성으로 표시되는 정확히 하나의 대상 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
}
```

**동일한 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` 별칭만 가질 수 있습니다. 별칭은 대소문자를 구분하지만 대소문자만 다른 별칭은 오류가 발생하기 쉽습니다. 별칭 이름은 변경할 수 없습니다. 그러나 별칭을 삭제하고 원하는 이름으로 새 별칭을 생성할 수 있습니다.

**다른 리전에서 같은 이름으로 별칭을 만들 수 있습니다.**  
예를 들어, 미국 동부(버지니아 북부)에 `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>

계정 및 리전의 별칭을 나열하려면 보안 주체에게 `kms:ListAliases` IAM 정책에서 권한이 있어야 합니다. 이 정책은 특정 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 키에 대한 권한 요소가 필요합니다.

예를 들어 `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 키에 대한 `kms:UpdateAlias`. 이 권한은 키 정책 또는 키 정책에서 위임된 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\$1256자의 문자열이어야 합니다. 여기에는 영숫자, 슬래시(/), 밑줄(\$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 키에 대한 세부 정보 페이지에서 **별칭** 탭을 사용합니다.

1. 에 로그인 AWS Management Console 하고 [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 키 세부 정보 페이지에서**별칭** 탭을 선택합니다.

   KMS 키에 별칭이 여러 개 있는 경우 테이블의 **별칭** 열에는 하나의 별칭과 별칭 요약(예: **(*n*개 이상)**)이 표시됩니다. 별칭 요약을 선택하면 KMS 키 세부 정보 페이지의 **별칭** 탭으로 바로 이동합니다.

1. **별칭** 탭에서 **별칭 생성**을 선택합니다. 별칭 이름을 입력하고 **별칭 생성**을 선택합니다.
**중요**  
이 필드에 기밀 또는 민감한 정보를 포함하지 마십시오. 이 필드는 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 키를 식별하려면, 이 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 키를 쉽게 인식할 수 있습니다. AWS KMS 콘솔에서 또는 [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) 작업을 사용하여 KMS 키의 별칭을 볼 수 있습니다. 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. 해당 계정에서 직접 생성하고 관리하는 키를 보려면 탐색 창에서 **고객 관리형 키**를 선택합니다. 가 AWS 자동으로 생성하고 관리하는 계정의 키를 보려면 탐색 창에서 **AWS 관리형 키를** 선택합니다.

1. **별칭** 열에는 각 KMS 키의 별칭이 표시됩니다. KMS 키에 별칭이 없는 경우 **별칭** 열에 대시(**-**) 가 나타납니다.

   KMS 키에 별칭이 여러 개 있는 경우 **별칭** 열에는 별칭 요약(예: **(*n*개 이상)**)도 있습니다. 예를 들어 다음 KMS 키에는 두 개의 별칭이 있으며 그 중 하나는 `key-test`입니다.

   KMS 키에 대한 모든 별칭의 별칭 이름과 별칭 ARN을 찾으려면 **별칭(Aliases)** 탭을 사용합니다.
   + **별칭(Aliases)** 탭으로 직접 이동하려면 **별칭(Aliases)** 열에서 별칭 요약(***n*개 이상**)을 선택합니다. 별칭 요약은 KMS 키에 둘 이상의 별칭이 있는 경우에만 나타납니다.
   + 또는 KMS 키의 별칭 또는 키 ID를 선택(KMS 키의 세부 정보 페이지가 열림)한 다음**별칭(Aliases)** 탭을 선택합니다. **일반 구성** 섹션 아래에 탭이 표시됩니다.  
![\[고객 관리형 키 interface showing a list with one key and options to create or filter keys.\]](http://docs.aws.amazon.com/ko_kr/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/ko_kr/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/ko_kr/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)하는 여러 방법 중 하나입니다. 새 리소스에 대해 하나의 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 명령은 `--query` 파라미터를 사용하여 `test-key`별칭만 가져옵니다. `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 Management Console 하고 [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 키 세부 정보 페이지에서**별칭** 탭을 선택합니다.

   KMS 키에 별칭이 여러 개 있는 경우 테이블의 **별칭** 열에는 하나의 별칭과 별칭 요약(예: **(*n*개 이상)**)이 표시됩니다. 별칭 요약을 선택하면 KMS 키 세부 정보 페이지의 **별칭** 탭으로 바로 이동합니다.

1. **별칭** 탭에서 삭제할 별칭 옆의 확인란을 선택합니다. 그런 다음 **삭제(Delete)**를 선택합니다.

## AWS KMS API 사용
<a name="alias-delete-api"></a>

별칭을 삭제하려면 [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html) 작업을 사용합니다. 이 작업은 한 번에 하나의 별칭을 삭제합니다. 별칭 이름은 대/소문자를 구분하며 앞에 `alias/`접두사가 앞에 와야 합니다.

예를 들어, 다음 명령은 `test-key` 별칭을 삭제합니다. 이 명령은 출력을 반환하지 않습니다.

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

별칭이 삭제되었는지 확인하려면 [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) 작업을 사용합니다. 다음 명령은의 `--query` 파라미터를 사용하여 `test-key`별칭만 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 키에 대해 지정된 작업을 사용할 수 있도록 허용합니다. 권한은 요청에서 `alpha`가 포함된 별칭을 사용하여 KMS 키를 식별하는 경우에만 유효합니다.

```
{
  "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*"
    }
  }
}
```

권한이 부여된 보안 주체의 다음 예제 요청은 조건을 충족합니다. 그러나, [키 ID](concepts.md#key-id-key-id), [키 ARN](concepts.md#key-id-key-ARN) 또는 다른 별칭을 사용한 요청은 이러한 값이 동일한 KMS 키를 식별하더라도 조건을 충족하지 않습니다.

```
$ 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 정책은 보안 주체가 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
```

별칭의 가장 강력한 용도 중 하나는 여러 AWS 리전에서 실행되는 애플리케이션에서 사용하는 것입니다. 예를 들어 서명 및 확인을 위해 RSA [비대칭 KMS 키](symmetric-asymmetric.md)를 사용하는 글로벌 애플리케이션이 있을 수 있습니다.
+ 미국 서부(오레곤)(us-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`를 사용하려고 합니다.

각 리전에서 다른 버전의 애플리케이션을 만들거나 사전 또는 switch 문을 사용하여 각 리전에 적합한 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 Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/)를 비롯해 애플리케이션에서 여러 AWS 리전의 데이터를 암호화하는 몇 가지 다른 솔루션이 있습니다.

# 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).