

Doc AWS SDK 예제 GitHub 리포지토리에서 더 많은 SDK 예제를 사용할 수 있습니다. [AWS](https://github.com/awsdocs/aws-doc-sdk-examples) 

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

# AWS KMS 를 사용한 예제 AWS CLI
<a name="cli_2_kms_code_examples"></a>

다음 코드 예제에서는를와 AWS Command Line Interface 함께 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다 AWS KMS.

*작업*은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.

**Topics**
+ [작업](#actions)

## 작업
<a name="actions"></a>

### `cancel-key-deletion`
<a name="kms_CancelKeyDeletion_cli_2_topic"></a>

다음 코드 예시에서는 `cancel-key-deletion`의 사용 방법을 보여줍니다.

**AWS CLI**  
**고객 관리형 KMS 키의 예약된 삭제 취소**  
다음 `cancel-key-deletion` 예시에서는 고객 관리형 KMS 키의 예약된 삭제를 취소합니다.  

```
aws kms cancel-key-deletion \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
출력:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
```
`cancel-key-deletion` 명령이 성공하면 예약된 삭제가 취소됩니다. 하지만 KMS 키의 키 상태는 `Disabled`이므로 암호화 작업에서 KMS 키를 사용할 수 없습니다. 기능을 복원하는 방법 `enable-key` 명령 을 사용합니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Scheduling and canceling key deletion](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-keys-scheduling-key-deletion) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [CancelKeyDeletion](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/cancel-key-deletion.html) 섹션을 참조하세요.

### `connect-custom-key-store`
<a name="kms_ConnectCustomKeyStore_cli_2_topic"></a>

다음 코드 예시에서는 `connect-custom-key-store`의 사용 방법을 보여줍니다.

**AWS CLI**  
**사용자 지정 키 저장소 연결**  
다음 `connect-custom-key-store` 예시에서는 지정된 사용자 지정 키 저장소를 다시 연결합니다. 이와 같은 명령을 사용하여 사용자 지정 키 저장소를 처음 연결하거나 연결이 해제된 키 저장소를 다시 연결할 수 있습니다.  
이 명령을 사용하여 AWS CloudHSM 키 스토어 또는 외부 키 스토어를 연결할 수 있습니다.  

```
aws kms connect-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0
```
이 명령은 출력을 반환하지 않습니다. 명령이 적용되었는지 확인하려면 `describe-custom-key-stores` 명령을 사용합니다.  
 AWS CloudHSM 키 스토어 연결에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [AWS CloudHSM 키 스토어 연결 및 연결](https://docs.aws.amazon.com/kms/latest/developerguide/disconnect-keystore.html) 해제를 참조하세요.  
외부 키 저장소를 연결하는 방법에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Connecting and disconnecting an external key store](https://docs.aws.amazon.com/kms/latest/developerguide/xks-connect-disconnect.html) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ConnectCustomKeyStore](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/connect-custom-key-store.html) 섹션을 참조하세요.

### `create-alias`
<a name="kms_CreateAlias_cli_2_topic"></a>

다음 코드 예시에서는 `create-alias`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키의 별칭 생성**  
다음 `create-alias` 명령은 키 ID `1234abcd-12ab-34cd-56ef-1234567890ab`로 식별되는 KMS 키에 대해 `example-alias`라는 별칭을 만듭니다.  
별칭 이름은 `alias/`로 시작해야 합니다. 로 시작하는 별칭 이름은에서 사용하도록 예약되어 `alias/aws`있으므로 사용하지 마십시오 AWS.  

```
aws kms create-alias \
    --alias-name alias/example-alias \
    --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
이 명령은 출력을 반환하지 않습니다. 새 별칭을 보려면 `list-aliases` 명령을 사용합니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [별칭 사용](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html)을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [CreateAlias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-alias.html)를 참조하세요.

### `create-custom-key-store`
<a name="kms_CreateCustomKeyStore_cli_2_topic"></a>

다음 코드 예시는 `create-custom-key-store`의 사용 방법을 보여 줍니다.

**AWS CLI**  
**예제 1: AWS CloudHSM 키 스토어 생성**  
다음 `create-custom-key-store` 예제에서는 필수 파라미터를 사용하여 AWS CloudHSM 클러스터에서 지원하는 AWS CloudHSM 키 스토어를 생성합니다. `custom-key-store-type``parameter with the default value: ``AWS_CLOUDHSM`도 사용할 수 있습니다.  
 AWS CLI에서 `trust-anchor-certificate` 명령에 대한 파일 입력을 지정하려면 `file://` 접두사가 필요합니다.  

```
aws kms create-custom-key-store \
    --custom-key-store-name ExampleCloudHSMKeyStore \
    --cloud-hsm-cluster-id cluster-1a23b4cdefg \
    --key-store-password kmsPswd \
    --trust-anchor-certificate file://customerCA.crt
```
출력:  

```
{
    "CustomKeyStoreId": cks-1234567890abcdef0
}
```
자세한 내용은 [Key Management Service 개발자 안내서의 Creating an AWS CloudHSM key store](https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html)를 참조하세요. *AWS *   
**예시 2: 퍼블릭 엔드포인트 연결이 있는 외부 키 저장소 생성**  
다음 `create-custom-key-store` 예제에서는 인터넷을 통해 AWS KMS와 통신하는 외부 키 스토어(XKS)를 생성합니다.  
이 예시에서 `XksProxyUriPath`는 `example-prefix`라는 선택적 접두사를 사용합니다.  
참고: AWS CLI 버전 1.0을 사용하는 경우 XksProxyUriEndpoint 파라미터와 같은 HTTP 또는 HTTPS 값으로 파라미터를 지정하기 전에 다음 명령을 실행합니다.  

```
aws configure set cli_follow_urlparam false
```
그렇지 않으면 AWS CLI 버전 1.0이 파라미터 값을 해당 URI 주소에 있는 콘텐츠로 바꿉니다.  

```
aws kms create-custom-key-store \
    --custom-key-store-name ExamplePublicEndpointXKS \
    --custom-key-store-type EXTERNAL_KEY_STORE \
    --xks-proxy-connectivity PUBLIC_ENDPOINT \
    --xks-proxy-uri-endpoint "https://myproxy.xks.example.com" \
    --xks-proxy-uri-path "/example-prefix/kms/xks/v1" \
    --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="
```
출력:  

```
{
    "CustomKeyStoreId": cks-2234567890abcdef0
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Creating an external key store](https://docs.aws.amazon.com/kms/latest/developerguide/create-keystorecreate-xks-keystore.html) 섹션을 참조하세요.  
**예시 3: VPC 엔드포인트 서비스 연결이 있는 외부 키 저장소 생성**  
다음 `create-custom-key-store` 예제에서는 Amazon VPC 엔드포인트 서비스를 사용하여 AWS KMS와 통신하는 외부 키 스토어(XKS)를 생성합니다.  
참고: AWS CLI 버전 1.0을 사용하는 경우 XksProxyUriEndpoint 파라미터와 같은 HTTP 또는 HTTPS 값으로 파라미터를 지정하기 전에 다음 명령을 실행합니다.  

```
aws configure set cli_follow_urlparam false
```
그렇지 않으면 AWS CLI 버전 1.0이 파라미터 값을 해당 URI 주소에 있는 콘텐츠로 바꿉니다.  

```
aws kms create-custom-key-store \
    --custom-key-store-name ExampleVPCEndpointXKS \
    --custom-key-store-type EXTERNAL_KEY_STORE \
    --xks-proxy-connectivity VPC_ENDPOINT_SERVICE \
    --xks-proxy-uri-endpoint "https://myproxy-private.xks.example.com" \
    --xks-proxy-uri-path "/kms/xks/v1" \
    --xks-proxy-vpc-endpoint-service-name "com.amazonaws.vpce.us-east-1.vpce-svc-example1" \
    --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="
```
출력:  

```
{
    "CustomKeyStoreId": cks-3234567890abcdef0
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Creating an external key store](https://docs.aws.amazon.com/kms/latest/developerguide/create-keystorecreate-xks-keystore.html) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [CreateCustomKeyStore](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-custom-key-store.html) 섹션을 참조하세요.

### `create-grant`
<a name="kms_CreateGrant_cli_2_topic"></a>

다음 코드 예시에서는 `create-grant`의 사용 방법을 보여줍니다.

**AWS CLI**  
**권한 부여 생성**  
다음 `create-grant` 예시에서는 `exampleUser` 사용자가 `1234abcd-12ab-34cd-56ef-1234567890ab` 예시 KMS 키에서 `decrypt` 명령을 사용할 수 있는 권한을 생성합니다. 사용 중지하는 위탁자는 `adminRole` 역할입니다. 이 권한 부여는 `decrypt` 요청의 암호화 컨텍스트에 `"Department": "IT"` 키-값 페어가 포함된 경우에만 이 권한을 허용하도록 `EncryptionContextSubset` 권한 부여 제약 조건을 사용합니다.  

```
aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::123456789012:user/exampleUser \
    --operations Decrypt \
    --constraints EncryptionContextSubset={Department=IT} \
    --retiring-principal arn:aws:iam::123456789012:role/adminRole
```
출력:  

```
{
    "GrantId": "1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2",
    "GrantToken": "<grant token here>"
}
```
권한 부여에 대한 자세한 정보를 보려면 `list-grants` 명령을 사용합니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*[의 AWS KMS의 권한 부여](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [CreateGrant](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-grant.html)를 참조하세요.

### `create-key`
<a name="kms_CreateKey_cli_2_topic"></a>

다음 코드 예시는 `create-key`의 사용 방법을 보여 줍니다.

**AWS CLI**  
**예제 1: KMS에서 고객 관리형 AWS KMS 키 생성**  
다음 `create-key` 예시에서는 대칭 암호화 KMS 키를 생성합니다.  
대칭 암호화 키인 기본 KMS 키를 생성하기 위해 파라미터를 지정할 필요가 없습니다. 이러한 파라미터의 기본값은 대칭 암호화 키를 생성합니다.  
이 명령은 키 정책을 지정하지 않으므로 KMS 키는 프로그래밍 방식으로 만든 KMS 키에 대한 [기본 키 정책](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default)을 가져옵니다. 키 정책을 보려면 `get-key-policy` 명령을 사용합니다. 키 정책을 변경하려면 `put-key-policy` 명령을 사용합니다.  

```
aws kms create-key
```
`create-key` 명령은 새 KMS 키의 키 ID 및 ARN을 포함한 키 메타데이터를 반환합니다. 이러한 값을 사용하여 다른 KMS 작업에서 AWS KMS 키를 식별할 수 있습니다. 출력에 태그가 포함되지 않습니다. KMS 키에 지정된 태그를 보려면 `list-resource-tags command`를 사용합니다.  
출력:  

```
{
    "KeyMetadata": {
        "AWSAccountId": "111122223333",
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "CreationDate": "2017-07-05T14:04:55-07:00",
        "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "Description": "",
        "Enabled": true,
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "MultiRegion": false,
        "Origin": "AWS_KMS"
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    }
}
```
참고: `create-key` 명령으로는 별칭을 지정할 수 없습니다. 새 KMS 키의 별칭을 만들려면 `create-alias` 명령을 사용합니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [키 생성](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)을 참조하세요.  
**예시 2: 암호화 및 복호화를 위한 비대칭 RSA KMS 키 생성**  
다음 `create-key` 예시에서는 암호화 및 복호화를 위한 비대칭 RSA 키 페어가 포함된 KMS 키를 생성합니다. 키가 생성된 후에는 키 사양 및 키 사용량을 변경할 수 없습니다.  

```
aws kms create-key \
   --key-spec RSA_4096 \
   --key-usage ENCRYPT_DECRYPT
```
출력:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "CreationDate": "2021-04-05T14:04:55-07:00",
        "CustomerMasterKeySpec": "RSA_4096",
        "Description": "",
        "Enabled": true,
        "EncryptionAlgorithms": [
            "RSAES_OAEP_SHA_1",
            "RSAES_OAEP_SHA_256"
        ],
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "RSA_4096",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "MultiRegion": false,
        "Origin": "AWS_KMS"
    }
}
```
자세한 내용은 [Key Management Service 개발자 안내서의 AWS KMS의 비대칭](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 키를 참조하세요. *AWS *   
**예시 3: 서명 및 확인을 위한 비대칭 타원 곡선 KMS 키 생성**  
서명 및 확인을 위해 비대칭 타원 곡선(ECC) 키 페어가 포함된 비대칭 KMS 키를 생성합니다. ECC KMS 키에 사용할 수 있는 유일한 값이 `SIGN_VERIFY`이더라도 `--key-usage` 파라미터는 필수입니다. 키가 생성된 후에는 키 사양 및 키 사용량을 변경할 수 없습니다.  

```
aws kms create-key \
    --key-spec ECC_NIST_P521 \
    --key-usage SIGN_VERIFY
```
출력:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "CreationDate": "2019-12-02T07:48:55-07:00",
        "CustomerMasterKeySpec": "ECC_NIST_P521",
        "Description": "",
        "Enabled": true,
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "ECC_NIST_P521",
        "KeyState": "Enabled",
        "KeyUsage": "SIGN_VERIFY",
        "MultiRegion": false,
        "Origin": "AWS_KMS",
        "SigningAlgorithms": [
            "ECDSA_SHA_512"
        ]
    }
}
```
자세한 내용은 [Key Management Service 개발자 안내서의 AWS KMS의 비대칭](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 키를 참조하세요. *AWS *   
**예제 4: 서명 및 확인을 위한 비대칭 ML-DSA KMS 키 만들기**  
이 예제에서는 서명 및 확인을 위한 모듈 격자 디지털 서명 알고리즘(ML-DSA) 키를 만듭니다. ML-DSA 키에 사용할 수 있는 유일한 값이 `SIGN_VERIFY`라도 key-usage 파라미터는 필수입니다.  

```
aws kms create-key \
    --key-spec ML_DSA_65 \
    --key-usage SIGN_VERIFY
```
출력:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "CreationDate": "2019-12-02T07:48:55-07:00",
        "Description": "",
        "Enabled": true,
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "ML_DSA_65",
        "KeyState": "Enabled",
        "KeyUsage": "SIGN_VERIFY",
        "MultiRegion": false,
        "Origin": "AWS_KMS",
        "SigningAlgorithms": [
            "ML_DSA_SHAKE_256"
        ]
    }
}
```
자세한 내용은 [Key Management Service 개발자 안내서의 AWS KMS의 비대칭](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 키를 참조하세요. *AWS *   
**예제 5: HMAC KMS 키 만들기**  
다음 `create-key` 예시에서는 384비트 HMAC KMS 키를 생성합니다. HMAC KMS 키에 사용할 수 있는 유일한 값이더라도 `--key-usage` 파라미터의 `GENERATE_VERIFY_MAC` 값은 필수입니다.  

```
aws kms create-key \
    --key-spec HMAC_384 \
    --key-usage GENERATE_VERIFY_MAC
```
출력:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "CreationDate": "2022-04-05T14:04:55-07:00",
        "CustomerMasterKeySpec": "HMAC_384",
        "Description": "",
        "Enabled": true,
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "HMAC_384",
        "KeyState": "Enabled",
        "KeyUsage": "GENERATE_VERIFY_MAC",
        "MacAlgorithms": [
            "HMAC_SHA_384"
        ],
        "MultiRegion": false,
        "Origin": "AWS_KMS"
    }
}
```
자세한 내용은 [Key Management Service 개발자 안내서의 AWS KMS의 HMAC](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) 키를 참조하세요. *AWS *   
**예제 6: 다중 리전 프라이머리 KMS 키 만들기**  
다음 `create-key` 예시에서는 다중 리전 프라이머리 대칭 암호화 키를 생성합니다. 모든 파라미터의 기본값이 대칭 암호화 키를 생성하므로 이 KMS 키에는 `--multi-region` 파라미터만 필요합니다. AWS CLI에서 부울 파라미터가 true임을 나타내려면 파라미터 이름만 지정하면 됩니다.  

```
aws kms create-key \
    --multi-region
```
출력:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab",
        "AWSAccountId": "111122223333",
        "CreationDate": "2021-09-02T016:15:21-09:00",
        "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "Description": "",
        "Enabled": true,
        "EncryptionAlgorithms": [
          "SYMMETRIC_DEFAULT"
        ],
        "KeyId": "mrk-1234abcd12ab34cd56ef12345678990ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "MultiRegion": true,
        "MultiRegionConfiguration": {
            "MultiRegionKeyType": "PRIMARY",
            "PrimaryKey": {
                "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab",
                "Region": "us-west-2"
            },
            "ReplicaKeys": []
        },
        "Origin": "AWS_KMS"
    }
}
```
자세한 내용은 [Key Management Service 개발자 안내서의 AWS KMS의 비대칭](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 키를 참조하세요. *AWS *   
**예제 7: 가져온 키 자료에 대한 KMS 키 만들기**  
다음 `create-key` 예시에서는 키 구성 요소 없이 KMS 키를 생성합니다. 작업이 완료되면 자체 키 구성 요소를 KMS 키로 가져올 수 있습니다. 이 KMS 키를 생성하려면 `--origin` 파라미터를 `EXTERNAL`로 설정하세요.  

```
aws kms create-key \
    --origin EXTERNAL
```
출력:  

```
{
     "KeyMetadata": {
         "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
         "AWSAccountId": "111122223333",
         "CreationDate": "2019-12-02T07:48:55-07:00",
         "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
         "Description": "",
         "Enabled": false,
         "EncryptionAlgorithms": [
             "SYMMETRIC_DEFAULT"
         ],
         "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
         "KeyManager": "CUSTOMER",
         "KeySpec": "SYMMETRIC_DEFAULT",
         "KeyState": "PendingImport",
         "KeyUsage": "ENCRYPT_DECRYPT",
         "MultiRegion": false,
         "Origin": "EXTERNAL"
     }
 }
```
자세한 내용은 [Key Management Service 개발자 안내서의 AWS KMS 키에서 키 구성 요소 가져오기](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)를 참조하세요. *AWS *   
**예제 6: AWS CloudHSM 키 스토어에서 KMS 키 생성**  
다음 `create-key` 예제에서는 지정된 AWS CloudHSM 키 스토어에 KMS 키를 생성합니다. 작업은 KMS 키와 해당 메타데이터를 AWS KMS에 생성하고 사용자 지정 키 스토어와 연결된 AWS CloudHSM 클러스터에 키 구성 요소를 생성합니다. `--custom-key-store-id` 및 `--origin` 파라미터가 필요합니다.  

```
aws kms create-key \
    --origin AWS_CLOUDHSM \
    --custom-key-store-id cks-1234567890abcdef0
```
출력:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "CloudHsmClusterId": "cluster-1a23b4cdefg",
        "CreationDate": "2019-12-02T07:48:55-07:00",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "CustomKeyStoreId": "cks-1234567890abcdef0",
        "Description": "",
        "Enabled": true,
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "MultiRegion": false,
        "Origin": "AWS_CLOUDHSM"
    }
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [AWS CloudHSM 키 저장소](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html)를 참조하세요.  
**예제 8: 외부 키 저장소에 KMS 키 만들기**  
다음 `create-key` 예시에서는 지정된 외부 키 저장소에 KMS 키를 생성합니다. 이 명령에는 `--custom-key-store-id`, `--origin`, `--xks-key-id` 파라미터가 필요합니다.  
`--xks-key-id` 파라미터는 외부 키 관리자에 있는 기존 대칭 암호화 키의 ID를 지정합니다. 이 키는 KMS 키의 외부 키 구성 요소 역할을 합니다. `--origin` 파라미터의 값은 `EXTERNAL_KEY_STORE`여야 합니다. `custom-key-store-id` 파라미터는 외부 키 저장소 프록시에 연결된 외부 키 저장소를 식별해야 합니다.  

```
aws kms create-key \
    --origin EXTERNAL_KEY_STORE \
    --custom-key-store-id cks-9876543210fedcba9 \
    --xks-key-id bb8562717f809024
```
출력:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "CreationDate": "2022-12-02T07:48:55-07:00",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "CustomKeyStoreId": "cks-9876543210fedcba9",
        "Description": "",
        "Enabled": true,
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "MultiRegion": false,
        "Origin": "EXTERNAL_KEY_STORE",
        "XksKeyConfiguration": {
            "Id": "bb8562717f809024"
        }
    }
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [외부 키 저장소](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [CreateKey](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-key.html)를 참조하세요.

### `decrypt`
<a name="kms_Decrypt_cli_2_topic"></a>

다음 코드 예시에서는 `decrypt`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예시 1: 대칭 KMS 키를 사용하여 암호화된 메시지 복호화(Linux 및 macOS)**  
다음 `decrypt` 명령 예제에서는 AWS CLI를 사용하여 데이터를 해독하는 권장 방법을 보여줍니다. 이 버전은 대칭 KMS 키로 데이터를 복호화하는 방법을 보여줍니다.  
파일에 사이퍼텍스트를 입력합니다. `--ciphertext-blob` 파라미터 값에는 바이너리 파일에서 데이터를 읽도록 CLI에 지시하는 `fileb://` 접두사를 사용합니다. 파일이 현재 디렉터리에 없는 경우 파일의 전체 경로를 입력합니다. 파일에서 AWS CLI 파라미터 값을 읽는 방법에 대한 자세한 내용은 *AWS 명령줄 인터페이스 사용 설명서*의 <https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html> 파일에서 AWS CLI 파라미터 로드 및 *AWS 명령줄 도구 블로그*의 로컬 파일 파라미터<https://aws.amazon.com/blogs/developer/best-practices-for-local-file-parameters/> 모범 사례를 참조하세요.암호 텍스트를 해독하려면 KMS 키를 지정하세요. 대칭 KMS 키로 복호화할 때는 `--key-id` 파라미터가 필요하지 않습니다. AWS KMS는 암호 텍스트의 메타데이터에서 데이터를 암호화하는 데 사용된 KMS 키의 키 ID를 가져올 수 있습니다. 그러나 사용 중인 KMS 키를 지정하는 것이 항상 좋습니다. 이렇게 하면 의도한 KMS 키를 사용할 수 있으며 신뢰하지 않는 KMS 키를 사용하여 사이퍼텍스트를 실수로 복호화하는 것을 방지할 수 있습니다. 일반 텍스트 출력을 텍스트 값으로 요청하세요. `--query` 파라미터는 CLI에 출력에서 `Plaintext` 필드 값만 가져오도록 지시합니다. `--output` 파라미터는 출력을 텍스트로 반환합니다. 일반 텍스트를 Base64로 디코딩하여 파일에 저장합니다. 다음 예시에서는 `Plaintext` 파라미터 값을 Base64 유틸리티에 파이프(\$1)로 구분하며 유틸리티가 이를 디코딩합니다. 그런 다음 디코딩된 출력을 `ExamplePlaintext` 파일로 리디렉션(>)합니다.  
이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.  

```
aws kms decrypt \
    --ciphertext-blob fileb://ExampleEncryptedFile \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --output text \
    --query Plaintext | base64 \
    --decode > ExamplePlaintextFile
```
이 명령은 출력을 생성하지 않습니다. `decrypt` 명령의 출력은 base64로 디코딩되어 파일에 저장됩니다.  
자세한 내용은 *AWS Key Management Service API 참조*의 [암호화 해제](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)를 참조하세요.  
**예시 2: 대칭 KMS 키를 사용하여 암호화된 메시지 복호화(Windows 명령 프롬프트)**  
다음 예시는 `certutil` 유틸리티를 사용하여 일반 텍스트 데이터를 base64로 디코딩한다는 점을 제외하면 이전 예시와 동일합니다. 이 프로시저에는 다음 예시와 같이 두 개의 명령이 필요합니다.  
이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.  

```
aws kms decrypt ^
    --ciphertext-blob fileb://ExampleEncryptedFile ^
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab ^
    --output text ^
    --query Plaintext > ExamplePlaintextFile.base64
```
`certutil` 명령을 실행합니다.  

```
certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile
```
출력:  

```
Input Length = 18
Output Length = 12
CertUtil: -decode command completed successfully.
```
자세한 내용은 *AWS Key Management Service API 참조*의 [암호화 해제](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)를 참조하세요.  
**예시 3: 비대칭 KMS 키를 사용하여 암호화된 메시지 복호화(Linux 및 macOS)**  
다음 `decrypt` 명령 예시에서는 RSA 비대칭 KMS 키로 암호화된 데이터를 복호화하는 방법을 보여줍니다.  
비대칭 KMS 키를 사용하는 경우 일반 텍스트를 암호화하는 데 사용되는 알고리즘을 지정하는 `encryption-algorithm` 파라미터가 필요합니다.  
이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.  

```
aws kms decrypt \
    --ciphertext-blob fileb://ExampleEncryptedFile \
    --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \
    --encryption-algorithm RSAES_OAEP_SHA_256 \
    --output text \
    --query Plaintext | base64 \
    --decode > ExamplePlaintextFile
```
이 명령은 출력을 생성하지 않습니다. `decrypt` 명령의 출력은 base64로 디코딩되어 파일에 저장됩니다.  
자세한 내용은 [Key Management Service 개발자 안내서의 AWS KMS의 비대칭](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 키를 참조하세요. *AWS *   
+  API 세부 정보는 *AWS CLI 명령 참조*의 [Decrypt](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/decrypt.html)를 참조하세요.

### `delete-alias`
<a name="kms_DeleteAlias_cli_2_topic"></a>

다음 코드 예시는 `delete-alias`의 사용 방법을 보여 줍니다.

**AWS CLI**  
** AWS KMS 별칭을 삭제하려면**  
다음 `delete-alias` 예시에서는 `alias/example-alias` 별칭을 삭제합니다. 별칭 이름은 alias/로 시작해야 합니다.  

```
aws kms delete-alias \
    --alias-name alias/example-alias
```
이 명령은 출력을 생성하지 않습니다. 별칭을 찾으려면 `list-aliases` 명령을 사용합니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [별칭 삭제](https://docs.aws.amazon.com/kms/latest/developerguide/alias-manage.html#alias-delete)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DeleteAlias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/delete-alias.html)를 참조하세요.

### `delete-custom-key-store`
<a name="kms_DeleteCustomKeyStore_cli_2_topic"></a>

다음 코드 예시에서는 `delete-custom-key-store`의 사용 방법을 보여줍니다.

**AWS CLI**  
**사용자 지정 키 저장소 삭제**  
다음 `delete-custom-key-store` 예시에서는 지정된 사용자 지정 키 저장소를 삭제합니다.  
 AWS CloudHSM 키 스토어를 삭제해도 연결된 CloudHSM 클러스터에는 영향을 미치지 않습니다. 외부 키 저장소를 삭제해도 연결된 외부 키 저장소 프록시, 외부 키 관리자 또는 외부 키에는 영향을 주지 않습니다.  
**참고:** 사용자 지정 키 저장소를 삭제하려면 먼저 사용자 지정 키 저장소의 모든 KMS 키 삭제를 예약한 다음 해당 KMS 키가 삭제될 때까지 기다려야 합니다. 그런 다음 사용자 지정 키 저장소의 연결을 해제해야 합니다. 사용자 지정 키 스토어에서 KMS 키를 찾는 방법에 대한 도움말은 *AWS Key Management Service 개발자 안내서*의 [Delete an AWS CloudHSM key store(API)](https://docs.aws.amazon.com/kms/latest/developerguide/delete-keystore.html#delete-keystore-api)를 참조하세요.  

```
delete-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0
```
이 명령은 출력을 반환하지 않습니다. 사용자 지정 키 저장소가 삭제되는지 확인하려면 `describe-custom-key-stores` 명령을 사용합니다.  
 AWS CloudHSM 키 스토어 삭제에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [AWS CloudHSM 키 스토어 삭제](https://docs.aws.amazon.com/kms/latest/developerguide/delete-keystore.html)를 참조하세요.  
외부 키 저장소를 삭제하는 방법에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Deleting an external key store](https://docs.aws.amazon.com/kms/latest/developerguide/delete-xks.html) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DeleteCustomKeyStore](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/delete-custom-key-store.html) 섹션을 참조하세요.

### `delete-imported-key-material`
<a name="kms_DeleteImportedKeyMaterial_cli_2_topic"></a>

다음 코드 예시에서는 `delete-imported-key-material`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키에서 가져온 키 구성 요소를 삭제하는 방법**  
다음 `delete-imported-key-material` 예시에서는 KMS 키로 가져온 키 구성 요소를 삭제합니다.  

```
aws kms delete-imported-key-material \
   --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
출력:  

```
{
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6"
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의[Deleting imported key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-delete-key-material.html)을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DeleteImportedKeyMaterial](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/delete-imported-key-material.html) 섹션을 참조하세요.

### `derive-shared-secret`
<a name="kms_DeriveSharedSecret_cli_2_topic"></a>

다음 코드 예시에서는 `derive-shared-secret`의 사용 방법을 보여줍니다.

**AWS CLI**  
**공유 보안 암호 파생**  
다음 `derive-shared-secret` 예시에서는 키 계약 알고리즘을 사용하여 공유 보안 암호를 도출합니다.  
DeriveSharedSecret을 직접적으로 호출하려면 `KEY_AGREEMENT`의 `KeyUsage` 값을 가진 비대칭 NIST 권장 타원 곡선(ECC) 또는 SM2(중국 리전만 해당) KMS 키 페어를 사용해야 합니다.  

```
aws kms derive-shared-secret \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --key-agreement-algorithm ECDH \
    --public-key "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag"
```
출력:  

```
{
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "SharedSecret": "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG",
    "KeyAgreementAlgorithm": "ECDH",
    "KeyOrigin": "AWS_KMS"
}
```
자세한 내용은 *AWS Key Management Service API 참조*의 [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DeriveSharedSecret](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/derive-shared-secret.html) 섹션을 참조하세요.

### `describe-custom-key-stores`
<a name="kms_DescribeCustomKeyStores_cli_2_topic"></a>

다음 코드 예시는 `describe-custom-key-stores`의 사용 방법을 보여 줍니다.

**AWS CLI**  
**예제 1: AWS CloudHSM 키 스토어에 대한 세부 정보 가져오기**  
다음 `describe-custom-key-store` 예제에서는 지정된 AWS CloudHSM 키 스토어에 대한 세부 정보를 표시합니다. 명령은 모든 유형의 사용자 지정 키 저장소에서 동일하지만 출력은 키 저장소 유형에 따라 다르고 외부 키 저장소의 경우 연결 옵션에 따라서도 다릅니다.  
기본적으로 이 명령은 계정 및 리전 내 모든 사용자 지정 키 저장소의 정보를 표시합니다. 특정 사용자 지정 키 스토어에 대한 정보를 표시하려면 `custom-key-store-name` 또는 `custom-key-store-id` 파라미터를 사용합니다.  

```
aws kms describe-custom-key-stores \
    --custom-key-store-name ExampleCloudHSMKeyStore
```
이 명령의 출력에는 연결 상태()를 포함하여 AWS CloudHSM 키 스토어에 대한 유용한 세부 정보가 포함됩니다`ConnectionState`. 연결 상태가 `FAILED`인 경우 출력에는 문제를 설명하는 `ConnectionErrorCode` 필드가 포함됩니다.  
출력:  

```
{
    "CustomKeyStores": [
        {
            "CloudHsmClusterId": "cluster-1a23b4cdefg",
            "ConnectionState": "CONNECTED",
            "CreationDate": "2022-04-05T14:04:55-07:00",
            "CustomKeyStoreId": "cks-1234567890abcdef0",
            "CustomKeyStoreName": "ExampleExternalKeyStore",
            "TrustAnchorCertificate": "<certificate appears here>"
        }
    ]
}
```
자세한 내용은 [Key Management Service 개발자 안내서의 Viewing an AWS CloudHSM key store](https://docs.aws.amazon.com/kms/latest/developerguide/view-keystore.html)를 참조하세요. *AWS *   
**예시 2: 퍼블릭 엔드포인트 연결이 있는 외부 키 저장소의 세부 정보 가져오기**  
다음 `describe-custom-key-store` 예시에서는 지정된 외부 키 저장소의 세부 정보를 표시합니다. 명령은 모든 유형의 사용자 지정 키 저장소에서 동일하지만 출력은 키 저장소 유형에 따라 다르고 외부 키 저장소의 경우 연결 옵션에 따라서도 다릅니다.  
기본적으로 이 명령은 계정 및 리전 내 모든 사용자 지정 키 저장소의 정보를 표시합니다. 특정 사용자 지정 키 스토어에 대한 정보를 표시하려면 `custom-key-store-name` 또는 `custom-key-store-id` 파라미터를 사용합니다.  

```
aws kms describe-custom-key-stores \
    --custom-key-store-id cks-9876543210fedcba9
```
이 명령의 출력에는 연결 상태(`ConnectionState`)를 포함하여 외부 키 저장소에 대한 유용한 세부 정보가 포함됩니다. 연결 상태가 `FAILED`인 경우 출력에는 문제를 설명하는 `ConnectionErrorCode` 필드가 포함됩니다.  
출력:  

```
{
    "CustomKeyStores": [
        {
            "CustomKeyStoreId": "cks-9876543210fedcba9",
            "CustomKeyStoreName": "ExampleXKS",
            "ConnectionState": "CONNECTED",
            "CreationDate": "2022-12-02T07:48:55-07:00",
            "CustomKeyStoreType": "EXTERNAL_KEY_STORE",
            "XksProxyConfiguration": {
                "AccessKeyId": "ABCDE12345670EXAMPLE",
                "Connectivity": "PUBLIC_ENDPOINT",
                "UriEndpoint": "https://myproxy.xks.example.com",
                "UriPath": "/example-prefix/kms/xks/v1"
            }
        }
    ]
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Viewing an external key store](https://docs.aws.amazon.com/kms/latest/developerguide/view-xks-keystore.html) 섹션을 참조하세요.  
**예시 3: VPC 엔드포인트 서비스 연결이 있는 외부 키 저장소의 세부 정보 가져오기**  
다음 `describe-custom-key-store` 예시에서는 지정된 외부 키 저장소의 세부 정보를 표시합니다. 명령은 모든 유형의 사용자 지정 키 저장소에서 동일하지만 출력은 키 저장소 유형에 따라 다르고 외부 키 저장소의 경우 연결 옵션에 따라서도 다릅니다.  
기본적으로 이 명령은 계정 및 리전 내 모든 사용자 지정 키 저장소의 정보를 표시합니다. 특정 사용자 지정 키 스토어에 대한 정보를 표시하려면 `custom-key-store-name` 또는 `custom-key-store-id` 파라미터를 사용합니다.  

```
aws kms describe-custom-key-stores \
    --custom-key-store-id cks-2234567890abcdef0
```
이 명령의 출력에는 연결 상태(`ConnectionState`)를 포함하여 외부 키 저장소에 대한 유용한 세부 정보가 포함됩니다. 연결 상태가 `FAILED`인 경우 출력에는 문제를 설명하는 `ConnectionErrorCode` 필드가 포함됩니다.  
출력:  

```
{
    "CustomKeyStores": [
        {
            "CustomKeyStoreId": "cks-3234567890abcdef0",
            "CustomKeyStoreName": "ExampleVPCExternalKeyStore",
            "ConnectionState": "CONNECTED",
            "CreationDate": "2022-12-22T07:48:55-07:00",
            "CustomKeyStoreType": "EXTERNAL_KEY_STORE",
            "XksProxyConfiguration": {
                "AccessKeyId": "ABCDE12345670EXAMPLE",
                "Connectivity": "VPC_ENDPOINT_SERVICE",
                "UriEndpoint": "https://myproxy-private.xks.example.com",
                "UriPath": "/kms/xks/v1",
                "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example1"
            }
        }
    ]
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Viewing an external key store](https://docs.aws.amazon.com/kms/latest/developerguide/view-xks-keystore.html) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DescribeCustomKeyStores](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/describe-custom-key-stores.html) 섹션을 참조하세요.

### `describe-key`
<a name="kms_DescribeKey_cli_2_topic"></a>

다음 코드 예시에서는 `describe-key`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예시 1: KMS 키의 세부 정보 찾기**  
다음 `describe-key` 예제에서는 예제 계정 및 리전에서 Amazon S3의 AWS 관리형 키에 대한 자세한 정보를 가져옵니다. 이 명령을 사용하여 AWS 관리형 키 및 고객 관리형 키에 대한 세부 정보를 찾을 수 있습니다.  
KMS 키를 지정하려면 `key-id` 파라미터를 사용합니다. 이 예시에서는 별칭 이름 값을 사용하지만 이 명령에는 키 ID, 키 ARN, 별칭 이름 또는 별칭 ARN을 사용할 수 있습니다.  

```
aws kms describe-key \
    --key-id alias/aws/s3
```
출력:  

```
{
    "KeyMetadata": {
        "AWSAccountId": "846764612917",
        "KeyId": "b8a9477d-836c-491f-857e-07937918959b",
        "Arn": "arn:aws:kms:us-west-2:846764612917:key/b8a9477d-836c-491f-857e-07937918959b",
        "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
        "CreationDate": 2017-06-30T21:44:32.140000+00:00,
        "Enabled": true,
        "Description": "Default KMS key that protects my S3 objects when no other key is defined",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "Origin": "AWS_KMS",
        "KeyManager": "AWS",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    }
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [키 보기](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html)를 참조하세요.  
**예시 2: RSA 비대칭 KMS 키의 세부 정보 가져오기**  
다음 `describe-key` 예시에서는 서명 및 확인에 사용되는 비대칭 RSA KMS 키의 세부 정보를 가져옵니다.  

```
aws kms describe-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
출력:  

```
{
    "KeyMetadata": {
        "AWSAccountId": "111122223333",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "CreationDate": "2019-12-02T19:47:14.861000+00:00",
        "CustomerMasterKeySpec": "RSA_2048",
        "Enabled": false,
        "Description": "",
        "KeyState": "Disabled",
        "Origin": "AWS_KMS",
        "MultiRegion": false,
        "KeyManager": "CUSTOMER",
        "KeySpec": "RSA_2048",
        "KeyUsage": "SIGN_VERIFY",
        "SigningAlgorithms": [
            "RSASSA_PKCS1_V1_5_SHA_256",
            "RSASSA_PKCS1_V1_5_SHA_384",
            "RSASSA_PKCS1_V1_5_SHA_512",
            "RSASSA_PSS_SHA_256",
            "RSASSA_PSS_SHA_384",
            "RSASSA_PSS_SHA_512"
        ]
    }
}
```
**예시 3: 다중 리전 복제본 키의 세부 정보 가져오기**  
다음 `describe-key` 예시에서는 다중 리전 복제본 키의 메타데이터를 가져옵니다. 이 다중 리전 키는 대칭 암호화 키입니다. 모든 다중 리전 키에 대한 `describe-key` 명령 출력은 프라이머리 키와 모든 해당 복제본의 정보를 반환합니다.  

```
aws kms describe-key \
    --key-id arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab
```
출력:  

```
{
    "KeyMetadata": {
        "MultiRegion": true,
        "AWSAccountId": "111122223333",
        "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
        "CreationDate": "2021-06-28T21:09:16.114000+00:00",
        "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
        "Description": "",
        "Enabled": true,
        "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "Origin": "AWS_KMS",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
        "MultiRegionConfiguration": {
            "MultiRegionKeyType": "PRIMARY",
            "PrimaryKey": {
                "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                "Region": "us-west-2"
            },
            "ReplicaKeys": [
                {
                    "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                    "Region": "eu-west-1"
                },
                {
                    "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                    "Region": "ap-northeast-1"
                },
                {
                    "Arn": "arn:aws:kms:sa-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                    "Region": "sa-east-1"
                }
            ]
        }
    }
}
```
**예시 4: HMAC KMS 키의 세부 정보 가져오기**  
다음 `describe-key` 예시에서는 HMAC KMS 키의 세부 정보를 가져옵니다.  

```
aws kms describe-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
출력:  

```
{
    "KeyMetadata": {
        "AWSAccountId": "123456789012",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Arn": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "CreationDate": "2022-04-03T22:23:10.194000+00:00",
        "Enabled": true,
        "Description": "Test key",
        "KeyUsage": "GENERATE_VERIFY_MAC",
        "KeyState": "Enabled",
        "Origin": "AWS_KMS",
        "KeyManager": "CUSTOMER",
        "CustomerMasterKeySpec": "HMAC_256",
        "MacAlgorithms": [
            "HMAC_SHA_256"
        ],
        "MultiRegion": false
    }
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DescribeKey](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/describe-key.html)를 참조하세요.

### `disable-key-rotation`
<a name="kms_DisableKeyRotation_cli_2_topic"></a>

다음 코드 예시에서는 `disable-key-rotation`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키의 자동 교체를 비활성화하는 방법**  
다음 `disable-key-rotation` 예시에서는 고객 관리형 KMS 키의 자동 교체를 비활성화합니다. 자동 교체를 다시 활성화하려면 `enable-key-rotation` 명령을 사용합니다.  

```
aws kms disable-key-rotation \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
```
이 명령은 출력을 생성하지 않습니다. KMS 키에 자동 교체가 비활성화되어 있는지 확인하려면 `get-key-rotation-status` 명령을 사용합니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Rotating keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DisableKeyRotation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/disable-key-rotation.html) 섹션을 참조하세요.

### `disable-key`
<a name="kms_DisableKey_cli_2_topic"></a>

다음 코드 예시에서는 `disable-key`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키를 일시적으로 비활성화**  
다음 `disable-key` 명령은 고객 관리형 KMS 키를 비활성화합니다. KMS 키를 다시 활성화하려면 `enable-key` 명령을 사용합니다.  

```
aws kms disable-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
이 명령은 출력을 생성하지 않습니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [키 활성화 및 비활성화](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DisableKey](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/disable-key.html)를 참조하세요.

### `disconnect-custom-key-store`
<a name="kms_DisconnectCustomKeyStore_cli_2_topic"></a>

다음 코드 예시에서는 `disconnect-custom-key-store`의 사용 방법을 보여줍니다.

**AWS CLI**  
**사용자 지정 키 저장소 연결 해제**  
다음 `disconnect-custom-key-store` 예시에서는 AWS CloudHSM 클러스터에서 사용자 지정 키 스토어의 연결을 해제합니다. 문제를 해결하거나 설정을 업데이트하거나 키 저장소의 KMS 키가 암호화 작업에 사용되지 않도록 키 저장소의 연결을 해제할 수 있습니다.  
이 명령은 AWS CloudHSM 키 스토어 및 외부 키 스토어를 포함한 모든 사용자 지정 키 스토어에서 동일합니다.  
이 명령을 실행하기 앞서 예시에 나온 사용자 지정 키 저장소 ID를 유효한 ID로 대체합니다.  

```
$ aws kms disconnect-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0
```
이 명령은 출력을 생성하지 않습니다. 명령이 유효한지 확인하고 `describe-custom-key-stores` 명령을 사용합니다.  
 AWS CloudHSM 키 스토어 연결 해제에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [AWS CloudHSM 키 스토어 연결 및 연결](https://docs.aws.amazon.com/kms/latest/developerguide/disconnect-keystore.html) 해제를 참조하세요.  
외부 키 저장소 연결 해제에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [외부 키 저장소 연결 및 연결](https://docs.aws.amazon.com/kms/latest/developerguide/xks-connect-disconnect.html) 해제를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DisconnectCustomKeyStore](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/disconnect-custom-key-store.html) 섹션을 참조하세요.

### `enable-key-rotation`
<a name="kms_EnableKeyRotation_cli_2_topic"></a>

다음 코드 예시에서는 `enable-key-rotation`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키의 자동 교체 활성화**  
다음 `enable-key-rotation` 예시에서는 고객 관리형 KMS 키의 자동 교체를 180일의 교체 기간으로 활성화합니다. KMS 키는 이 명령이 완료된 날짜로부터 1년(약 365일) 후, 그 이후에는 매년 교체됩니다.  
`--key-id` 파라미터는 KMS 키를 식별합니다. 이 예시에서는 키 ARN 값을 사용하지만 KMS 키의 키 ID 또는 ARN을 사용할 수 있습니다. `--rotation-period-in-days` 파라미터는 각 교체 날짜 사이의 일 수를 지정합니다. 90\$12560의 값을 지정하세요. 값을 지정하지 않을 경우 기본값은 365일입니다.  

```
aws kms enable-key-rotation \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \
    --rotation-period-in-days 180
```
이 명령은 출력을 생성하지 않습니다. KMS 키가 활성화되었는지 확인하려면 `get-key-rotation-status` 명령을 사용합니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Rotating keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [EnableKeyRotation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/enable-key-rotation.html) 섹션을 참조하세요.

### `enable-key`
<a name="kms_EnableKey_cli_2_topic"></a>

다음 코드 예시에서는 `enable-key`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키 활성화**  
다음 `enable-key` 예시에서는 고객 관리형 키를 활성화합니다. `disable-key` 명령을 사용하여 일시적으로 비활성화한 KMS 키를 활성화하려면 이와 같은 명령을 사용할 수 있습니다. 또한 삭제 일정이 잡혀 있다가 삭제가 취소되어 사용 중지된 KMS 키를 활성화하는 데도 사용할 수 있습니다.  
KMS 키를 지정하려면 `key-id` 파라미터를 사용합니다. 이 예시에서는 키 ID 값을 사용하지만 이 명령에는 키 ID 또는 키 ARN 값을 사용할 수 있습니다.  
이 명령을 실행하기 전에 예시에 나온 키 ID를 유효한 키 핸들로 바꾸세요.  

```
aws kms enable-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
이 명령은 출력을 생성하지 않습니다. KMS 키가 활성화되었는지 확인하려면 `describe-key` 명령을 사용합니다. `describe-key` 출력의 `KeyState` 및 `Enabled` 필드 값을 확인하세요.  
자세한 내용은 **AWS Key Management Service 개발자 안내서의 [키 활성화 및 비활성화](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [EnableKey](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/enable-key.html)를 참조하세요.

### `encrypt`
<a name="kms_Encrypt_cli_2_topic"></a>

다음 코드 예시에서는 `encrypt`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예시 1: Linux 또는 macOS에서 파일 콘텐츠 암호화**  
다음 `encrypt` 명령은 AWS CLI를 사용하여 데이터를 암호화하는 권장 방법을 보여줍니다.  

```
aws kms encrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --plaintext fileb://ExamplePlaintextFile \
    --output text \
    --query CiphertextBlob | base64 \
    --decode > ExampleEncryptedFile
```
이 명령은 여러 가지 작업을 수행합니다.  
`--plaintext` 파라미터를 사용하여 암호화할 데이터를 표시합니다. 이 파라미터 값은 base64로 인코딩되어야 합니다. `plaintext` 파라미터 값은 base64로 인코딩되거나 AWS CLI에 파일에서 이진 데이터를 읽도록 지시하는 `fileb://` 접두사를 사용해야 합니다. 파일이 현재 디렉터리에 없는 경우 파일의 전체 경로를 입력합니다. 예: `fileb:///var/tmp/ExamplePlaintextFile` 또는 `fileb://C:\Temp\ExamplePlaintextFile`. 파일에서 AWS CLI 파라미터 값을 읽는 방법에 대한 자세한 내용은 *AWS 명령줄 인터페이스 사용 설명서*의 [파일에서 파라미터 로드](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-file) 및 명령줄 AWS 도구 블로그의 [로컬 파일 파라미터 모범 사례를](https://blogs.aws.amazon.com/cli/post/TxLWWN1O25V1HE/Best-Practices-for-Local-File-Parameters) 참조하세요. `--output` 및 `--query` 파라미터를 사용하여 명령의 출력을 제어합니다. 이러한 파라미터는 명령의 출력에서 *사이퍼텍스*트라는 암호화된 데이터를 추출합니다. 출력 제어에 대한 자세한 내용은 *AWS 명령줄 인터페이스 사용 설명서*의 [명령 출력 제어를 참조하세요](https://docs.aws.amazon.com/cli/latest/userguide/controlling-output.html). `base64` 유틸리티를 사용하여 추출된 출력을 이진 데이터로 디코딩합니다. 성공적인 `encrypt` 명령으로 반환되는 사이퍼텍스트는 base64로 인코딩된 텍스트입니다. AWS CLI를 사용하여 복호화하려면 먼저이 텍스트를 복호화해야 합니다. 이진 사이퍼텍스트를 파일에 저장합니다. 명령의 마지막 부분(`> ExampleEncryptedFile`)은 이진 사이퍼텍스트를 파일에 저장하여 복호화를 더 쉽게 만듭니다. AWS CLI를 사용하여 데이터를 복호화하는 예제 명령은 복호화 예제를 참조하세요.  
**예제 2: AWS CLI를 사용하여 Windows에서 데이터 암호화**  
이 예시는 `base64` 대신 `certutil` 도구를 사용한다는 점을 제외하면 이전 예와 동일합니다. 이 절차에는 다음 예시와 같이 두 개의 명령이 필요합니다.  

```
aws kms encrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --plaintext fileb://ExamplePlaintextFile \
    --output text \
    --query CiphertextBlob > C:\Temp\ExampleEncryptedFile.base64

certutil -decode C:\Temp\ExampleEncryptedFile.base64 C:\Temp\ExampleEncryptedFile
```
**예 3: 비대칭 KMS 키를 사용한 암호화**  
다음 `encrypt` 명령은 비대칭 KMS 키를 사용하여 일반 텍스트를 암호화하는 방법을 보여줍니다. `--encryption-algorithm` 파라미터가 필요합니다. 모든 `encrypt` CLI 명령과 마찬가지로 `plaintext` 파라미터는 base64로 인코딩되거나 AWS CLI에 파일에서 이진 데이터를 읽도록 지시하는 `fileb://` 접두사를 사용해야 합니다.  

```
aws kms encrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --encryption-algorithm RSAES_OAEP_SHA_256 \
    --plaintext fileb://ExamplePlaintextFile \
    --output text \
    --query CiphertextBlob | base64 \
    --decode > ExampleEncryptedFile
```
이 명령은 출력을 생성하지 않습니다.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [Encrypt](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/encrypt.html)를 참조하세요.

### `generate-data-key-pair-without-plaintext`
<a name="kms_GenerateDataKeyPairWithoutPlaintext_cli_2_topic"></a>

다음 코드 예시에서는 `generate-data-key-pair-without-plaintext`의 사용 방법을 보여줍니다.

**AWS CLI**  
**ECC NIST P384 비대칭 데이터 키 페어를 생성하는 방법**  
다음 `generate-data-key-pair-without-plaintext` 예제에서는 외부에서 사용할 ECC NIST P384 키 페어를 요청합니다 AWS.  
명령은 지정된 KMS 키로 암호화된 프라이빗 키의 복사본과 일반 텍스트 퍼블릭 키를 반환합니다. 일반 텍스트 프라이빗 키는 반환하지 않습니다. 암호화된 프라이빗 키를 암호화된 데이터와 함께 안전하게 저장하고 AWS KMS를 호출하여 프라이빗 키를 사용해야 할 때 복호화할 수 있습니다.  
ECC NIST P384 비대칭 데이터 키 페어를 요청하려면 값이 `ECC_NIST_P384`인 `key-pair-spec` 파라미터를 사용합니다.  
지정하는 KMS 키는 대칭 암호화 KMS 키, 즉 `KeySpec` 값이 `SYMMETRIC_DEFAULT`인 KMS 키여야 합니다.  
참고: 이 예시의 출력에 있는 값은 잘려서 표시됩니다.  

```
aws kms generate-data-key-pair-without-plaintext \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --key-pair-spec ECC_NIST_P384
```
출력:  

```
{
    "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...",
    "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...",
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
    "KeyPairSpec": "ECC_NIST_P384"
}
```
`PublicKey` 및 `PrivateKeyCiphertextBlob`은 base64 인코딩 형식으로 반환됩니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Data key pairs](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-key-pairs) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GenerateDataKeyPairWithoutPlaintext](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-data-key-pair-without-plaintext.html) 섹션을 참조하세요.

### `generate-data-key-pair`
<a name="kms_GenerateDataKeyPair_cli_2_topic"></a>

다음 코드 예시에서는 `generate-data-key-pair`의 사용 방법을 보여줍니다.

**AWS CLI**  
**2048비트 RSA 비대칭 데이터 키 페어를 생성하는 방법**  
다음 `generate-data-key-pair` 예제에서는 외부에서 사용할 2048비트 RSA 비대칭 데이터 키 페어를 요청합니다 AWS. 명령은 즉시 사용 및 삭제할 수 있는 일반 텍스트 프라이빗 키와 지정된 KMS 키로 암호화된 프라이빗 키의 복사본을 반환합니다. 암호화된 프라이빗 키를 암호화된 데이터와 함께 안전하게 저장할 수 있습니다.  
2048비트 RSA 비대칭 데이터 키 페어를 요청하려면 값이 `RSA_2048`인 `key-pair-spec` 파라미터를 사용합니다.  
지정하는 KMS 키는 대칭 암호화 KMS 키, 즉 `KeySpec` 값이 `SYMMETRIC_DEFAULT`인 KMS 키여야 합니다.  
참고: 이 예시의 출력에 있는 값은 잘려서 표시됩니다.  

```
aws kms generate-data-key-pair \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --key-pair-spec RSA_2048
```
출력:  

```
{
    "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...",
    "PrivateKeyPlaintext": "MIIG/QIBADANBgkqhkiG9w0BAQEFAASCBucwggbjAgEAAoIBgQDcDd4YzI+u9Kfv4t2UkTWhShBXkekS4cBVt07I0P42ZgMf+YvU5IgS4ut...",
    "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...",
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6"
    "KeyPairSpec": "RSA_2048"
}
```
`PublicKey`, `PrivateKeyPlaintext` 및 `PrivateKeyCiphertextBlob`는 base64 인코딩 형식으로 반환됩니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Data key pairs](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-key-pairs) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GenerateDataKeyPair](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-data-key-pair.html) 섹션을 참조하세요.

### `generate-data-key-without-plaintext`
<a name="kms_GenerateDataKeyWithoutPlaintext_cli_2_topic"></a>

다음 코드 예시에서는 `generate-data-key-without-plaintext`의 사용 방법을 보여줍니다.

**AWS CLI**  
**일반 텍스트 키 없이 256비트 대칭 데이터 키 생성**  
다음 `generate-data-key-without-plaintext` 예시에서는 AWS외부에서 사용할 256비트 대칭 데이터 키의 암호화된 사본을 요청합니다. 사용할 준비가 되면 AWS KMS를 호출하여 데이터 키를 해독할 수 있습니다.  
256비트 데이터 키를 요청하려면 값이 `AES_256`인 `key-spec` 파라미터를 사용합니다. 128비트 데이터 키를 요청하려면 값이 `AES_128`인 `key-spec` 파라미터를 사용합니다. 다른 모든 데이터 키 길이에는 `number-of-bytes` 파라미터를 사용합니다.  
지정하는 KMS 키는 대칭 암호화 KMS 키, 즉 키 사양 값이 SYMMETRIC\$1DEFAULT인 KMS 키여야 합니다.  

```
aws kms generate-data-key-without-plaintext \
    --key-id "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" \
    --key-spec AES_256
```
출력:  

```
{
    "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogL",
    "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6"
}
```
`CiphertextBlob`(암호화된 데이터 키)은 base64로 인코딩된 형식으로 반환됩니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [데이터 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GenerateDataKeyWithoutPlaintext](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-data-key-without-plaintext.html)를 참조하세요.

### `generate-data-key`
<a name="kms_GenerateDataKey_cli_2_topic"></a>

다음 코드 예시에서는 `generate-data-key`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예시 1: 256비트 대칭 데이터 키 생성**  
다음 `generate-data-key` 예제에서는 외부에서 사용할 256비트 대칭 데이터 키를 요청합니다 AWS. 명령은 즉시 사용 및 삭제할 수 있는 일반 텍스트 데이터 키와 지정된 KMS 키로 암호화된 해당 데이터 키의 사본을 반환합니다. 암호화된 데이터 키를 암호화된 데이터와 함께 안전하게 저장할 수 있습니다.  
256비트 데이터 키를 요청하려면 값이 `AES_256`인 `key-spec` 파라미터를 사용합니다. 128비트 데이터 키를 요청하려면 값이 `AES_128`인 `key-spec` 파라미터를 사용합니다. 다른 모든 데이터 키 길이에는 `number-of-bytes` 파라미터를 사용합니다.  
지정하는 KMS 키는 대칭 암호화 KMS 키, 즉 키 사양 값이 SYMMETRIC\$1DEFAULT인 KMS 키여야 합니다.  

```
aws kms generate-data-key \
    --key-id alias/ExampleAlias \
    --key-spec AES_256
```
출력:  

```
{
    "Plaintext": "VdzKNHGzUAzJeRBVY+uUmofUGGiDzyB3+i9fVkh3piw=",
    "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
    "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogLqPWZconQhwHAIBEIA7d9AC7GeJJM34njQvg4Wf1d5sw0NIo1MrBqZa+YdhV8MrkBQPeac0ReRVNDt9qleAt+SHgIRF8P0H+7U="
}
```
`Plaintext`(일반 텍스트 데이터 키) 및 `CiphertextBlob`(암호화된 데이터 키)은 base64로 인코딩된 형식으로 반환됩니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [데이터 키](https://docs.aws.amazon.com/kms/latest/developerguide/data-keys.html)를 참조하세요. **예시 2: 512비트 대칭 데이터 키 생성**  
다음 `generate-data-key` 예시에서는 암호화 및 복호화를 위한 512비트 대칭 데이터 키를 요청합니다. 명령은 즉시 사용 및 삭제할 수 있는 일반 텍스트 데이터 키와 지정된 KMS 키로 암호화된 해당 데이터 키의 사본을 반환합니다. 암호화된 데이터 키를 암호화된 데이터와 함께 안전하게 저장할 수 있습니다.  
128비트 또는 256비트가 아닌 키 길이를 요청하려면 `number-of-bytes` 파라미터를 사용합니다. 512비트 데이터 키를 요청하기 위해 다음 예시에서는 값이 64(바이트)인 `number-of-bytes` 파라미터를 사용합니다.  
지정하는 KMS 키는 대칭 암호화 KMS 키, 즉 키 사양 값이 SYMMETRIC\$1DEFAULT인 KMS 키여야 합니다.  
참고: 이 예시의 출력에 있는 값은 잘려서 표시됩니다.  

```
aws kms generate-data-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --number-of-bytes 64
```
출력:  

```
{
    "CiphertextBlob": "AQIBAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAEnX/QQNmMwDfg2korNMEc8AAACaDCCAmQGCSqGSIb3DQEHBqCCAlUwggJRAgEAMIICSgYJKoZ...",
    "Plaintext": "ty8Lr0Bk6OF07M2BWt6qbFdNB+G00ZLtf5MSEb4al3R2UKWGOp06njAwy2n72VRm2m7z/Pm9Wpbvttz6a4lSo9hgPvKhZ5y6RTm4OovEXiVfBveyX3DQxDzRSwbKDPk/...",
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6"
}
```
`Plaintext`(일반 텍스트 데이터 키) 및 `CiphertextBlob`(암호화된 데이터 키)은 base64로 인코딩된 형식으로 반환됩니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [데이터 키](https://docs.aws.amazon.com/kms/latest/developerguide/data-keys.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GenerateDataKey](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-data-key.html)를 참조하세요.

### `generate-mac`
<a name="kms_GenerateMac_cli_2_topic"></a>

다음 코드 예시는 `generate-mac`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예제 1: 메시지에 대한 HMAC 생성**  
다음 `generate-mac` 명령은 메시지에 대한 HMAC, HMAC KMS 키 및 MAC 알고리즘을 생성합니다. 알고리즘은 지정된 HMAC KMS 키에서 지원되어야 합니다.  
 AWS CLI v2에서 `message` 파라미터 값은 Base64-encoded되어야 합니다. 또는 메시지를 파일에 저장하고 AWS CLI에 파일에서 이진 데이터를 읽도록 지시하는 `fileb://` 접두사를 사용할 수 있습니다.  
이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다. 키 ID는 키 사용량이 `GENERATE_VERIFY_MAC`인 HMAC KMS 키를 나타내야 합니다.  

```
msg=(echo 'Hello World' | base64)

aws kms generate-mac \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://Message \
    --mac-algorithm HMAC_SHA_384
```
출력:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "Mac": "<HMAC_TAG>",
    "MacAlgorithm": "HMAC_SHA_384"
}
```
 AWS KMS에서 HMAC KMS 키를 사용하는 방법에 대한 자세한 내용은 Key *AWS Management Service 개발자 안내서*의 [AWS KMS에서 HMAC](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) 키를 참조하세요.  
**예제 2: HMAC를 파일에 저장(Linux 및 macOS)**  
다음 `generate-mac` 예제에서는 로컬 파일에 저장된 짧은 메시지에 대한 HMAC를 생성합니다. 또한 명령은 응답에서 `Mac` 속성을 가져오고 Base64로 디코딩하여 ExampleMac 파일에 저장합니다. MAC를 확인하는 `verify-mac` 명령에서 MAC 파일을 사용할 수 있습니다.  
`generate-mac` 명령에는 Base64로 인코딩된 메시지와 HMAC KMS 키가 지원하는 MAC 알고리즘이 필요합니다. KMS 키가 지원하는 MAC 알고리즘을 가져오려면 `describe-key` 명령을 사용합니다.  
이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다. 키 ID는 GENERATE\$1VERIFY\$1MAC라는 키가 사용된 비대칭 KMS 키를 나타내야 합니다.  

```
echo 'hello world' | base64 > EncodedMessage

aws kms generate-mac \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://EncodedMessage \
    --mac-algorithm HMAC_SHA_384 \
    --output text \
    --query Mac | base64 --decode > ExampleMac
```
이 명령은 출력을 생성하지 않습니다. 이 예시에서는 출력의 `Mac` 속성을 추출하여 파일에 저장합니다.  
 AWS KMS에서 HMAC KMS 키를 사용하는 방법에 대한 자세한 내용은 Key *AWS Management Service 개발자 안내서*의 [AWS KMS에서 HMAC](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) 키를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GenerateMac](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-mac.html)을 참조하세요.

### `generate-random`
<a name="kms_GenerateRandom_cli_2_topic"></a>

다음 코드 예시는 `generate-random`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예시 1: 256비트 무작위 바이트 문자열 생성(Linux 또는 macOS)**  
다음 `generate-random` 예시에서는 256비트(32바이트), base64로 인코딩된 무작위 바이트 문자열을 생성합니다. 이 예시에서는 바이트 문자열을 디코딩하여 무작위 파일에 저장합니다.  
이 명령을 실행할 때는 `number-of-bytes` 파라미터를 사용하여 무작위 값의 길이를 바이트 단위로 지정해야 합니다.  
이 명령을 실행할 때는 KMS 키를 지정하지 않습니다. 무작위 바이트 문자열은 어떤 KMS 키와도 관련이 없습니다.  
기본적으로 AWS KMS는 난수를 생성합니다. 그러나 [사용자 지정 키 스토어](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)를 지정하면 사용자 지정 키 스토어와 연결된 AWS CloudHSM 클러스터에 임의 바이트 문자열이 생성됩니다.  
이 예시에서는 다음 파라미터와 값을 사용합니다.  
값이 인 필수 `--number-of-bytes` 파라미터를 사용하여 32바이트(256비트)`32`를 요청합니다. string.It는 값이 인 `--output` 파라미터를 사용하여 AWS CLI`text`에 출력을 텍스트로 반환하도록 지시합니다. 대신 JSON.It는를 사용하여 `Plaintext` 명령의 출력을 response.It 파이프( \$1 )에서 `base64` 유틸리티로 추출`--query parameter`합니다.이 파이프는 리디렉션 연산자( > )를 output.It 사용하여 디코딩된 바이트 문자열을 `ExampleRandom` file.It은 리디렉션 연산자( > )를 사용하여 바이너리 사이퍼텍스트를 파일에 저장합니다.  

```
aws kms generate-random \
    --number-of-bytes 32 \
    --output text \
    --query Plaintext | base64 --decode > ExampleRandom
```
이 명령은 출력을 생성하지 않습니다.  
자세한 내용은 *AWS Key Management Service API 참조*의 [GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)을 참조하세요.  
**예시 2: 256비트 무작위 수 생성(Windows 명령 프롬프트)**  
다음 예시에서는 `generate-random` 명령을 사용하여 256비트(32바이트), base64로 인코딩된 무작위 바이트 문자열을 생성합니다. 이 예시에서는 바이트 문자열을 디코딩하여 무작위 파일에 저장합니다. 이 예시는 Windows의 `certutil` 유틸리티를 사용하여 무작위 바이트 문자열을 base64로 디코딩한 다음 파일에 저장한다는 점을 제외하면 이전 예와 동일합니다.  
먼저 base64로 인코딩된 무작위 바이트 문자열을 생성하여 임시 파일 `ExampleRandom.base64`에 저장합니다.  

```
aws kms generate-random \
    --number-of-bytes 32 \
    --output text \
    --query Plaintext > ExampleRandom.base64
```
`generate-random` 명령의 출력이 파일에 저장되기 때문에 이 예시에서는 출력이 생성되지 않습니다.  
이제 `certutil -decode` 명령을 사용하여 `ExampleRandom.base64` 파일에서 base64로 인코딩된 바이트 문자열을 디코딩합니다. 그런 다음 디코딩된 바이트 문자열을 `ExampleRandom` 파일에 저장합니다.  

```
certutil -decode ExampleRandom.base64 ExampleRandom
```
출력:  

```
Input Length = 18
Output Length = 12
CertUtil: -decode command completed successfully.
```
자세한 내용은 *AWS Key Management Service API 참조*의 [GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GenerateRandom](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-random.html)을 참조하세요.

### `get-key-policy`
<a name="kms_GetKeyPolicy_cli_2_topic"></a>

다음 코드 예시에서는 `get-key-policy`의 사용 방법을 보여줍니다.

**AWS CLI**  
**한 KMS 키에서 다른 KMS 키로 키 정책 복사**  
다음 `get-key-policy` 예시에서는 한 KMS 키에서 키 정책을 가져와 텍스트 파일에 저장합니다. 그런 다음 텍스트 파일을 정책 입력으로 사용하여 다른 KMS 키의 정책을 대체합니다.  
`put-key-policy`의 `--policy` 파라미터에는 문자열이 필요하므로 출력을 JSON 대신 텍스트 문자열로 반환하려면 `--output text` 옵션을 사용해야 합니다.  

```
aws kms get-key-policy \
    --policy-name default \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --query Policy \
    --output text > policy.txt

aws kms put-key-policy \
    --policy-name default \
    --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \
    --policy file://policy.txt
```
이 명령은 출력을 생성하지 않습니다.  
자세한 내용은 *AWS KMS API 참조*의 [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GetKeyPolicy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/get-key-policy.html)를 참조하세요.

### `get-key-rotation-status`
<a name="kms_GetKeyRotationStatus_cli_2_topic"></a>

다음 코드 예시에서는 `get-key-rotation-status`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키의 교체 상태를 검색하는 방법**  
다음 `get-key-rotation-status` 예시에서는 자동 교체 활성화 여부, 교체 기간 및 다음 예정된 교체 날짜를 포함하여 지정된 KMS 키의 교체 상태 정보를 반환합니다. 고객 관리형 KMS 키 및 AWS 관리형 KMS 키에서이 명령을 사용할 수 있습니다. 그러나 모든 AWS 관리형 KMS 키는 매년 자동으로 교체됩니다.  

```
aws kms get-key-rotation-status \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
출력:  

```
{
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyRotationEnabled": true,
    "NextRotationDate": "2024-02-14T18:14:33.587000+00:00",
    "RotationPeriodInDays": 365
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Rotating keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GetKeyRotationStatus](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/get-key-rotation-status.html) 섹션을 참조하세요.

### `get-parameters-for-import`
<a name="kms_GetParametersForImport_cli_2_topic"></a>

다음 코드 예시에서는 `get-parameters-for-import`의 사용 방법을 보여줍니다.

**AWS CLI**  
**키 구성 요소를 KMS 키로 가져오는 데 필요한 항목을 가져오는 방법**  
다음 `get-parameters-for-import` 예시에서는 KMS 키로 키 구성 요소를 가져오는 데 필요한 퍼블릭 키와 가져오기 토큰을 가져옵니다. `import-key-material` 명령을 사용할 때는 동일한 `get-parameters-for-import` 명령으로 반환된 퍼블릭 키로 암호화된 가져오기 토큰과 키 구성 요소를 사용해야 합니다. 또한 이 명령에서 지정하는 래핑 알고리즘은 퍼블릭 키로 키 구성 요소를 암호화하는 데 사용하는 알고리즘이어야 합니다.  
KMS 키를 지정하려면 `key-id` 파라미터를 사용합니다. 이 예시에서는 키 ID 값을 사용하지만 이 명령에는 키 ID 또는 키 ARN을 사용할 수 있습니다.  

```
aws kms get-parameters-for-import \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --wrapping-algorithm RSAES_OAEP_SHA_256 \
    --wrapping-key-spec RSA_2048
```
출력:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "PublicKey": "<public key base64 encoded data>",
    "ImportToken": "<import token base64 encoded data>",
    "ParametersValidTo": 1593893322.32
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Download the public key and import token](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-get-public-key-and-token.html) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GetParametersForImport](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/get-parameters-for-import.html) 섹션을 참조하세요.

### `get-public-key`
<a name="kms_GetPublicKey_cli_2_topic"></a>

다음 코드 예시에서는 `get-public-key`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예시 1: 비대칭 KMS 키의 퍼블릭 키를 다운로드**  
다음 `get-public-key` 예시에서는 비대칭 KMS 키의 퍼블릭 키를 다운로드합니다.  
퍼블릭 키를 반환하는 것 외에도 출력에는 키 사용 및 지원되는 암호화 알고리즘을 포함하여 AWS KMS 외부에서 퍼블릭 키를 안전하게 사용하는 데 필요한 정보가 포함됩니다.  

```
aws kms get-public-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
출력:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "PublicKey": "jANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAl5epvg1/QtJhxSi2g9SDEVg8QV/...",
    "CustomerMasterKeySpec": "RSA_4096",
    "KeyUsage": "ENCRYPT_DECRYPT",
    "EncryptionAlgorithms": [
        "RSAES_OAEP_SHA_1",
        "RSAES_OAEP_SHA_256"
    ]
}
```
 AWS KMS에서 비대칭 KMS 키를 사용하는 방법에 대한 자세한 내용은 Key *AWS Management Service 개발자 안내서*의 [AWS KMS의 비대칭](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 키를 참조하세요. **예시 2: 퍼블릭 키를 DER 형식으로 변환(Linux 및 macOS)**  
다음 `get-public-key` 예시에서는 비대칭 KMS 키의 퍼블릭 키를 다운로드하여 DER 파일에 저장합니다.  
 AWS CLI에서 `get-public-key` 명령을 사용하면 Base64-encoded X.509 퍼블릭 키를 반환합니다. 이 예시에서는 `PublicKey` 속성 값을 텍스트로 가져옵니다. `PublicKey`를 Base64로 디코딩하고 `public_key.der` 파일에 저장합니다. `output` 파라미터는 출력을 JSON 대신 텍스트로 반환합니다. `--query` 파라미터는 AWS KMS 외부에서 퍼블릭 키를 안전하게 사용하는 데 필요한 `PublicKey` 속성이 아닌 속성만 가져옵니다.  
이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.  

```
aws kms get-public-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --output text \
    --query PublicKey | base64 --decode > public_key.der
```
이 명령은 출력을 생성하지 않습니다.  
 AWS KMS에서 비대칭 KMS 키를 사용하는 방법에 대한 자세한 내용은 Key *AWS Management Service 개발자 안내서*[의 AWS KMS의 비대칭](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 키를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GetPublicKey](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/get-public-key.html) 섹션을 참조하세요.

### `import-key-material`
<a name="kms_ImportKeyMaterial_cli_2_topic"></a>

다음 코드 예시에서는 `import-key-material`의 사용 방법을 보여줍니다.

**AWS CLI**  
**키 구성 요소 정보를 KMS 키로 가져오기**  
다음 `import-key-material` 예시에서는 키 구성 요소 없이 생성된 KMS 키에 키 구성 요소를 업로드합니다. KMS 키의 키 상태가 `PendingImport`여야 합니다.  
이 명령은 `get-parameters-for-import` 명령이 반환한 퍼블릭 키로 암호화된 키 구성 요소를 사용합니다. 또한 동일한 `get-parameters-for-import` 명령의 가져오기 토큰을 사용합니다.  
`expiration-model` 파라미터는 키 구성 요소가 `valid-to` 파라미터에 지정된 날짜 및 시간에 자동으로 만료됨을 나타냅니다. 키 구성 요소가 만료되면 AWS KMS는 키 구성 요소를 삭제`Pending import`하고 KMS 키의 키 상태가 로 변경되며 KMS 키를 사용할 수 없게 됩니다. 키를 복원하려면 같은 키 구성 요소를 다시 가져와야 합니다. 다른 키 구성 요소를 사용하려면 새 KMS 키를 생성해야 합니다.  
이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID 또는 키 ARN으로 바꿉니다.  

```
aws kms import-key-material \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --encrypted-key-material fileb://EncryptedKeyMaterial.bin \
    --import-token fileb://ImportToken.bin \
    --expiration-model KEY_MATERIAL_EXPIRES \
    --valid-to 2021-09-21T19:00:00Z
```
출력:  

```
{
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6"
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [키 구성 요소 가져오기](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ImportKeyMaterial](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/import-key-material.html) 섹션을 참조하세요.

### `list-aliases`
<a name="kms_ListAliases_cli_2_topic"></a>

다음 코드 예시는 `list-aliases`의 사용 방법을 보여 줍니다.

**AWS CLI**  
**예제 1: AWS 계정 및 리전의 모든 별칭 나열**  
다음 예제에서는 `list-aliases` 명령을 사용하여 AWS 계정의 기본 리전에 있는 모든 별칭을 나열합니다. 출력에는 AWS 관리형 KMS 키 및 고객 관리형 KMS 키와 연결된 별칭이 포함됩니다.  

```
aws kms list-aliases
```
출력:  

```
{
    "Aliases": [
        {
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/testKey",
            "AliasName": "alias/testKey",
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
        },
        {
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/FinanceDept",
            "AliasName": "alias/FinanceDept",
            "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321"
        },
        {
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb",
            "AliasName": "alias/aws/dynamodb",
            "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d"
        },
        {
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/ebs",
            "AliasName": "alias/aws/ebs",
            "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef"
        },
        ...
    ]
}
```
**예시 2: 특정 KMS 키의 모든 별칭 나열**  
다음 예시에서는 `list-aliases` 명령과 해당 `key-id` 파라미터를 사용하여 특정 KMS 키와 연결된 별칭을 모두 나열합니다.  
각 별칭은 단 하나의 KMS 키와 연결되지만 KMS 키는 여러 개의 별칭을 가질 수 있습니다. KMS 콘솔에는 각 AWS KMS 키에 대해 별칭이 하나만 나열되므로이 명령은 매우 유용합니다. KMS 키의 모든 별칭을 찾으려면 `list-aliases` 명령을 사용해야 합니다.  
이 예시에서는 `--key-id` 파라미터에 KMS 키의 키 ID를 사용하지만 이 명령에는 키 ID, 키 ARN, 별칭 이름 또는 별칭 ARN을 사용할 수 있습니다.  

```
aws kms list-aliases --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
출력:  

```
{
    "Aliases": [
        {
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/oregon-test-key",
            "AliasName": "alias/oregon-test-key"
        },
        {
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/project121-test",
            "AliasName": "alias/project121-test"
        }
    ]
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [별칭으로 작업](https://docs.aws.amazon.com/kms/latest/developerguide/programming-aliases.html)을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ListAliases](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-aliases.html)를 참조하세요.

### `list-grants`
<a name="kms_ListGrants_cli_2_topic"></a>

다음 코드 예시는 `list-grants`의 사용 방법을 보여 줍니다.

**AWS CLI**  
** AWS KMS 키에 대한 권한 부여를 보려면**  
다음 `list-grants` 예시에서는 계정의 Amazon DynamoDB에 대해 지정된 AWS 관리형 KMS 키에 대한 모든 권한을 표시합니다. 이 권한 부여를 사용하면 DynamoDB가 사용자 대신 KMS 키를 사용하여 DynamoDB 테이블을 디스크에 쓰기 전에 암호화할 수 있습니다. 이와 같은 명령을 사용하여 AWS 계정 및 리전의 AWS 관리형 KMS 키 및 고객 관리형 KMS 키에 대한 권한 부여를 볼 수 있습니다.  
이 명령은 키 ID가 있는 `key-id` 파라미터를 사용하여 KMS 키를 식별합니다. 키 ID 또는 키 ARN을 사용하여 KMS 키를 식별할 수 있습니다. AWS 관리형 KMS 키의 키 ID 또는 키 ARN을 가져오려면 `list-keys` 또는 `list-aliases` 명령을 사용합니다.  

```
aws kms list-grants \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
출력은 권한 부여가 Amazon DynamoDB에 KMS 키를 암호화 작업에 사용할 권한을 부여하고 KMS 키(`DescribeKey`)에 대한 세부 정보를 보고 권한 부여를 사용 중지(`RetireGrant`)할 수 있는 권한을 부여함을 보여줍니다. `EncryptionContextSubset` 제약 조건은 이러한 권한을 지정된 암호화 컨텍스트 페어를 포함하는 요청으로 제한합니다. 따라서 권한 부여의 권한은 지정된 계정 및 DynamoDB 테이블에만 유효합니다.  

```
{
    "Grants": [
        {
            "Constraints": {
                "EncryptionContextSubset": {
                    "aws:dynamodb:subscriberId": "123456789012",
                    "aws:dynamodb:tableName": "Services"
                }
            },
            "IssuingAccount": "arn:aws:iam::123456789012:root",
            "Name": "8276b9a6-6cf0-46f1-b2f0-7993a7f8c89a",
            "Operations": [
                "Decrypt",
                "Encrypt",
                "GenerateDataKey",
                "ReEncryptFrom",
                "ReEncryptTo",
                "RetireGrant",
                "DescribeKey"
            ],
            "GrantId": "1667b97d27cf748cf05b487217dd4179526c949d14fb3903858e25193253fe59",
            "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "RetiringPrincipal": "dynamodb.us-west-2.amazonaws.com",
            "GranteePrincipal": "dynamodb.us-west-2.amazonaws.com",
            "CreationDate": "2021-05-13T18:32:45.144000+00:00"
        }
    ]
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*[의 AWS KMS의 권한 부여](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ListGrants](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-grants.html)를 참조하세요.

### `list-key-policies`
<a name="kms_ListKeyPolicies_cli_2_topic"></a>

다음 코드 예시에서는 `list-key-policies`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키의 키 정책 이름 가져오기**  
다음 `list-key-policies` 예시에서는 예시 계정 및 리전의 고객 관리형 키에 대한 키 정책 이름을 가져옵니다. 이 명령을 사용하여 AWS 관리형 키 및 고객 관리형 키에 대한 키 정책의 이름을 찾을 수 있습니다.  
유효한 키 정책 이름은 `default`뿐이므로 이 명령은 유용하지 않습니다.  
KMS 키를 지정하려면 `key-id` 파라미터를 사용합니다. 이 예시에서는 키 ID 값을 사용하지만 이 명령에는 키 ID 또는 키 ARN을 사용할 수 있습니다.  

```
aws kms list-key-policies \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
출력:  

```
{
    "PolicyNames": [
    "default"
    ]
}
```
 AWS KMS 키 정책에 대한 자세한 내용은 Key *AWS Management Service 개발자 안내서*의 [AWS KMS에서 키 정책 사용을](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ListKeyPolicies](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-key-policies.html)를 참조하세요.

### `list-key-rotations`
<a name="kms_ListKeyRotations_cli_2_topic"></a>

다음 코드 예시에서는 `list-key-rotations`의 사용 방법을 보여줍니다.

**AWS CLI**  
**완료된 모든 키 재료 교체에 대한 정보를 검색하는 방법**  
다음 `list-key-rotations` 예시에서는 지정된 KMS 키에 대해 완료된 모든 키 구성 요소 교체에 대한 정보를 나열합니다.  

```
aws kms list-key-rotations \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
출력:  

```
{
    "Rotations": [
        {
            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "RotationDate": "2024-03-02T10:11:36.564000+00:00",
            "RotationType": "AUTOMATIC"
        },
        {
            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "RotationDate": "2024-04-05T15:14:47.757000+00:00",
            "RotationType": "ON_DEMAND"
        }
    ],
    "Truncated": false
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Rotating keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ListKeyRotations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-key-rotations.html) 섹션을 참조하세요.

### `list-keys`
<a name="kms_ListKeys_cli_2_topic"></a>

다음 코드 예시에서는 `list-keys`의 사용 방법을 보여줍니다.

**AWS CLI**  
**계정 및 리전의 KMS 키 가져오기**  
다음 `list-keys` 예시에서는 계정과 리전의 KMS 키를 가져옵니다. 이 명령은 AWS 관리형 키와 고객 관리형 키를 모두 반환합니다.  

```
aws kms list-keys
```
출력:  

```
{
    "Keys": [
        {
            "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
        },
        {
            "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
            "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321"
        },
        {
            "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d",
            "KeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d"
        }
    ]
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [키 보기](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ListKeys](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-keys.html)를 참조하세요.

### `list-resource-tags`
<a name="kms_ListResourceTags_cli_2_topic"></a>

다음 코드 예시에서는 `list-resource-tags`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키에서 태그를 가져오는 방법**  
다음 `list-resource-tags` 예시에서는 KMS 키의 태그를 가져옵니다. KMS 키의 태그를 추가 또는 교체하려면 `tag-resource` 명령을 사용합니다. 출력에 따르면 이 KMS 키에는 두 개의 리소스 태그가 있으며 각 태그에는 키와 값이 있습니다.  
KMS 키를 지정하려면 `key-id` 파라미터를 사용합니다. 이 예시에서는 키 ID 값을 사용하지만 이 명령에는 키 ID 또는 키 ARN을 사용할 수 있습니다.  

```
aws kms list-resource-tags \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
출력:  

```
{
    "Tags": [
    {
        "TagKey": "Dept",
        "TagValue": "IT"
    },
    {
        "TagKey": "Purpose",
        "TagValue": "Test"
    }
    ],
    "Truncated": false
}
```
 AWS KMS에서 태그를 사용하는 방법에 대한 자세한 내용은 Key *AWS Management Service 개발자 안내서의 키* [태그 지정](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html)을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ListResourceTags](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-resource-tags.html) 섹션을 참조하세요.

### `list-retirable-grants`
<a name="kms_ListRetirableGrants_cli_2_topic"></a>

다음 코드 예시에서는 `list-retirable-grants`의 사용 방법을 보여줍니다.

**AWS CLI**  
**위탁자가 사용 중지할 수 있는 권한 부여를 보는 방법**  
다음 `list-retirable-grants` 예제에서는 `ExampleAdmin` 사용자가 AWS 계정 및 리전의 KMS 키에서 사용 중지할 수 있는 모든 권한을 표시합니다. 이와 같은 명령을 사용하여 계정 보안 주체가 AWS 계정 및 리전의 KMS 키에서 사용 중지할 수 있는 권한 부여를 볼 수 있습니다.  
필수 `retiring-principal` 파라미터의 값은 계정, 사용자 또는 역할의 Amazon 리소스 이름(ARN)이어야 합니다.  
서비스가 사용 중지 위탁자일 수 있더라도 이 명령에서 `retiring-principal`의 값에 대한 서비스를 지정할 수 없습니다. 특정 서비스가 사용 중지 위탁자인 권한을 찾으려면 `list-grants` 명령을 사용합니다.  
출력에 따르면 `ExampleAdmin` 사용자에게는 계정 및 리전의 서로 다른 두 KMS 키에 대한 권한 부여를 사용 중지할 수 있는 권한이 있습니다. 사용 중지 위탁자 외에도 계정에는 계정의 모든 권한 부여를 사용 중지할 수 있는 권한이 있습니다.  

```
aws kms list-retirable-grants \
    --retiring-principal arn:aws:iam::111122223333:user/ExampleAdmin
```
출력:  

```
{
    "Grants": [
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "GrantId": "156b69c63cb154aa21f59929ff19760717be8d9d82b99df53e18b94a15a5e88e",
            "Name": "",
            "CreationDate": 2021-01-14T20:17:36.419000+00:00,
            "GranteePrincipal": "arn:aws:iam::111122223333:user/ExampleUser",
            "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "Operations": [
                "Encrypt"
            ],
            "Constraints": {
                "EncryptionContextSubset": {
                    "Department": "IT"
                }
            }
        },
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
            "GrantId": "8c94d1f12f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2",
            "Name": "",
            "CreationDate": "2021-02-02T19:49:49.638000+00:00",
            "GranteePrincipal": "arn:aws:iam::111122223333:role/ExampleRole",
            "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "Operations": [
                "Decrypt"
            ],
            "Constraints": {
                "EncryptionContextSubset": {
                    "Department": "IT"
                }
            }
        }
    ],
    "Truncated": false
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*[의 AWS KMS의 권한 부여](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ListRetirableGrants](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-retirable-grants.html) 섹션을 참조하세요.

### `put-key-policy`
<a name="kms_PutKeyPolicy_cli_2_topic"></a>

다음 코드 예시에서는 `put-key-policy`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키의 키 정책 변경**  
다음 `put-key-policy` 예시에서는 고객 관리형 키의 키 정책을 변경합니다.  
시작하려면 키 정책을 생성하고 로컬 JSON 파일로 저장합니다. 이 예시에서 파일은 `key_policy.json`입니다. 키 정책을 `policy` 파라미터의 문자열 값으로 지정할 수도 있습니다.  
이 키 정책의 첫 번째 문은 AWS 계정에 IAM 정책을 사용하여 KMS 키에 대한 액세스를 제어할 수 있는 권한을 부여합니다. 두 번째 문은 `test-user` 사용자에게 KMS 키에서 `describe-key` 및 `list-keys` 명령을 실행할 권한을 부여합니다.  
`key_policy.json`의 콘텐츠:  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id" : "key-default-1",
    "Statement" : [
        {
            "Sid" : "Enable IAM User Permissions",
            "Effect" : "Allow",
            "Principal" : {
                "AWS" : "arn:aws:iam::111122223333:root"
            },
            "Action" : "kms:*",
            "Resource" : "*"
        },
        {
            "Sid" : "Allow Use of Key",
            "Effect" : "Allow",
            "Principal" : {
                "AWS" : "arn:aws:iam::111122223333:user/test-user"
            },
            "Action" : [
                "kms:DescribeKey",
                "kms:ListKeys"
            ],
            "Resource" : "*"
        }
    ]
}
```
KMS 키를 식별하기 위해 이 예시에서는 키 ID를 사용하지만 키 ARN을 사용할 수도 있습니다. 키 정책을 지정하기 위해 이 명령은 `policy` 파라미터를 사용합니다. 정책이 파일에 있음을 나타내기 위해 필수 `file://` 접두사를 사용합니다. 이 접두사는 지원되는 모든 운영 체제에서 파일을 식별하는 데 필요합니다. 마지막으로, 이 명령은 값이 `default`인 `policy-name` 파라미터를 사용합니다. 정책 이름을 지정하지 않을 경우 기본값은 `default`입니다. 유일한 유효 값은 `default`입니다.  

```
aws kms put-key-policy \
    --policy-name default \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --policy file://key_policy.json
```
이 명령은 출력을 생성하지 않습니다. 명령이 적용되었는지 확인하려면 `get-key-policy` 명령을 사용합니다. 다음 예시 명령은 동일한 KMS 키에 대한 키 정책을 가져옵니다. 값이 `text`인 `output` 파라미터는 읽기 쉬운 텍스트 형식을 반환합니다.  

```
aws kms get-key-policy \
    --policy-name default \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --output text
```
출력:  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id" : "key-default-1",
    "Statement" : [
        {
            "Sid" : "Enable IAM User Permissions",
            "Effect" : "Allow",
            "Principal" : {
                "AWS" : "arn:aws:iam::111122223333:root"
            },
            "Action" : "kms:*",
            "Resource" : "*"
            },
            {
            "Sid" : "Allow Use of Key",
            "Effect" : "Allow",
            "Principal" : {
                "AWS" : "arn:aws:iam::111122223333:user/test-user"
            },
            "Action" : [ "kms:Describe", "kms:List" ],
            "Resource" : "*"
        }
    ]
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [키 정책 변경](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [PutKeyPolicy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/put-key-policy.html)를 참조하세요.

### `re-encrypt`
<a name="kms_ReEncrypt_cli_2_topic"></a>

다음 코드 예시에서는 `re-encrypt`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예시 1: 다른 대칭 KMS 키를 사용하여 암호화된 메시지 다시 암호화(Linux 및 macOS)**  
다음 `re-encrypt` 명령 예제에서는 AWS CLI를 사용하여 데이터를 다시 암호화하는 권장 방법을 보여줍니다.  
파일에 사이퍼텍스트를 입력합니다. `--ciphertext-blob` 파라미터 값에는 바이너리 파일에서 데이터를 읽도록 CLI에 지시하는 `fileb://` 접두사를 사용합니다. 파일이 현재 디렉터리에 없는 경우 파일의 전체 경로를 입력합니다. 파일에서 AWS CLI 파라미터 값을 읽는 방법에 대한 자세한 내용은 *AWS 명령줄 인터페이스 사용 설명서*의 [파일에서 AWS CLI 파라미터 로드](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html) 및 *AWS 명령줄 도구 블로그*의 [로컬 파일 파라미터 모범 사례를](https://aws.amazon.com/blogs/developer/best-practices-for-local-file-parameters/) 참조하세요. 사이퍼텍스트를 복호화하는 소스 KMS 키를 지정합니다. 대칭 암호화 KMS 키로 복호화할 때는 `--source-key-id` 파라미터가 필요하지 않습니다. AWS KMS는 사이퍼텍스트 블롭의 메타데이터에서 데이터를 암호화하는 데 사용된 KMS 키를 가져올 수 있습니다. 그러나 사용 중인 KMS 키를 지정하는 것이 항상 좋습니다. 이렇게 하면 의도한 KMS 키를 사용할 수 있으며 신뢰하지 않는 KMS 키를 사용하여 사이퍼텍스트를 실수로 복호화하는 것을 방지할 수 있습니다. 데이터를 다시 암호화하는 대상 KMS 키를 지정하세요. `--destination-key-id` 파라미터는 항상 필요합니다. 이 예시에서는 키 ARN을 사용하지만 모든 유효한 키 식별자를 사용할 수 있습니다. 일반 텍스트 출력을 텍스트 값으로 요청하세요. `--query` 파라미터는 출력에서 `Plaintext` 필드 값만 가져오도록 CLI에 지시합니다. `--output` 파라미터는 출력을 텍스트로 반환합니다. 일반 텍스트를 Base64로 디코딩하여 파일에 저장합니다. 다음 예시에서는 `Plaintext` 파라미터 값을 Base64 유틸리티에 파이프(\$1)로 구분하며 유틸리티가 이를 디코딩합니다. 그런 다음 디코딩된 출력을 `ExamplePlaintext` 파일로 리디렉션(>)합니다.  
이 명령을 실행하기 전에 예제 키 IDs AWS 계정의 유효한 키 식별자로 바꿉니다.  

```
aws kms re-encrypt \
    --ciphertext-blob fileb://ExampleEncryptedFile \
    --source-key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --destination-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \
    --query CiphertextBlob \
    --output text | base64 --decode > ExampleReEncryptedFile
```
이 명령은 출력을 생성하지 않습니다. `re-encrypt` 명령의 출력은 base64로 디코딩되어 파일에 저장됩니다.  
자세한 내용은 *AWS Key Management Service API 참조*의 [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)를 참조하세요.  
**예시 2: 다른 대칭 KMS 키를 사용하여 암호화된 메시지 다시 암호화(Windows 명령 프롬프트)**  
다음 `re-encrypt` 명령 예시는 `certutil` 유틸리티를 사용하여 일반 텍스트 데이터를 base64로 디코딩한다는 점을 제외하면 이전 예시와 동일합니다. 이 프로시저에는 다음 예시와 같이 두 개의 명령이 필요합니다.  
이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.  

```
aws kms re-encrypt ^
    --ciphertext-blob fileb://ExampleEncryptedFile ^
    --source-key-id 1234abcd-12ab-34cd-56ef-1234567890ab ^
    --destination-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 ^
    --query CiphertextBlob ^
    --output text > ExampleReEncryptedFile.base64
```
그런 다음 `certutil` 유틸리티를 사용합니다.  

```
certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile
```
출력:  

```
Input Length = 18
Output Length = 12
CertUtil: -decode command completed successfully.
```
자세한 내용은 *AWS Key Management Service API 참조*의 [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ReEncrypt](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/re-encrypt.html)를 참조하세요.

### `retire-grant`
<a name="kms_RetireGrant_cli_2_topic"></a>

다음 코드 예시에서는 `retire-grant`의 사용 방법을 보여줍니다.

**AWS CLI**  
**고객 마스터 키에 대한 권한 부여 사용 중지**  
다음 `retire-grant` 예시에서는 KMS 키에서 권한 부여를 삭제합니다.  
다음 예시 명령은 `grant-id` 및 `key-id` 파라미터를 지정합니다. `key-id` 파라미터 값은 KMS 키의 키 ARN이어야 합니다.  

```
aws kms retire-grant \
    --grant-id 1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3 \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
```
이 명령은 출력을 생성하지 않습니다. 권한 부여가 사용 중지되었는지 확인하려면 `list-grants` 명령을 사용합니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [권한 부여 사용 중지 및 취소](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [RetireGrant](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/retire-grant.html)를 참조하세요.

### `revoke-grant`
<a name="kms_RevokeGrant_cli_2_topic"></a>

다음 코드 예시에서는 `revoke-grant`의 사용 방법을 보여줍니다.

**AWS CLI**  
**고객 마스터 키에 대한 권한 부여 사용 중지**  
다음 `revoke-grant` 예시에서는 KMS 키에서 권한 부여를 삭제합니다. 다음 예시 명령은 `grant-id` 및 `key-id` 파라미터를 지정합니다. `key-id` 파라미터 값은 KMS 키의 키 ID 또는 키 ARN일 수 있습니다.  

```
aws kms revoke-grant \
    --grant-id 1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3 \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
이 명령은 출력을 생성하지 않습니다. 권한 부여가 취소되었는지 확인하려면 `list-grants` 명령을 사용합니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [권한 부여 사용 중지 및 취소](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [RevokeGrant](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/revoke-grant.html)를 참조하세요.

### `rotate-key-on-demand`
<a name="kms_RotateKeyOnDemand_cli_2_topic"></a>

다음 코드 예시에서는 `rotate-key-on-demand`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키의 온디맨드 교체를 수행하는 방법**  
다음 `rotate-key-on-demand` 예시에서는 지정된 KMS 키의 키 구성 요소를 즉시 교체하기 시작합니다.  

```
aws kms rotate-key-on-demand \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
출력:  

```
{
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [How to perform on-demand key rotation](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-on-demand) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [RotateKeyOnDemand](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/rotate-key-on-demand.html) 섹션을 참조하세요.

### `schedule-key-deletion`
<a name="kms_ScheduleKeyDeletion_cli_2_topic"></a>

다음 코드 예시에서는 `schedule-key-deletion`의 사용 방법을 보여줍니다.

**AWS CLI**  
**고객 관리형 KMS 키 삭제 예약**  
다음 `schedule-key-deletion` 예시에서는 지정된 고객 관리형 KMS 키가 15일 후에 삭제되도록 예약합니다.  
`--key-id` 파라미터는 KMS 키를 식별합니다. 이 예시에서는 키 ARN 값을 사용하지만 KMS 키의 키 ID 또는 ARN을 사용할 수 있습니다. `--pending-window-in-days` 파라미터는 7\$130일의 대기 기간을 지정합니다. 기본 대기 기간은 30일입니다. 이 예제에서는 값을 15로 지정합니다.이 값은 명령이 완료된 후 15일이 지나면에 KMS 키를 영구적으로 삭제 AWS 하도록 지시합니다.  

```
aws kms schedule-key-deletion \
    --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \
    --pending-window-in-days 15
```
응답에는 키 ARN, 키 상태, 대기 기간(`PendingWindowInDays`), 삭제 날짜(Unix 시간)이 포함됩니다. 삭제 날짜를 현지 시간으로 보려면 AWS KMS 콘솔을 사용합니다. `PendingDeletion` 키 상태의 KMS 키는 암호화 작업에 사용될 수 없습니다.  

```
{
    "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "DeletionDate": "2022-06-18T23:43:51.272000+00:00",
    "KeyState": "PendingDeletion",
    "PendingWindowInDays": 15
}
```
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [키 삭제](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ScheduleKeyDeletion](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/schedule-key-deletion.html)을 참조하세요.

### `sign`
<a name="kms_Sign_cli_2_topic"></a>

다음 코드 예시에서는 `sign`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예시 1: 메시지에 대한 디지털 서명을 생성하는 방법**  
다음 `sign` 예시에서는 짧은 메시지에 대한 암호화 서명을 생성합니다. 명령 출력에는 `verify` 명령을 사용하여 확인할 수 있는 base-64로 인코딩된 `Signature` 필드가 포함됩니다.  
서명할 메시지와 비대칭 KMS 키가 지원하는 서명 알고리즘을 지정해야 합니다. KMS 키의 서명 알고리즘을 가져오려면 `describe-key` 명령을 사용합니다.  
 AWS CLI v2에서 `message` 파라미터 값은 Base64-encoded되어야 합니다. 또는 메시지를 파일에 저장하고 AWS CLI에 파일에서 이진 데이터를 읽도록 지시하는 `fileb://` 접두사를 사용할 수 있습니다.  
이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다. 키 ID는 SIGN\$1VERIFY라는 키가 사용된 비대칭 KMS 키를 나타내야 합니다.  

```
msg=(echo 'Hello World' | base64)

aws kms sign \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://UnsignedMessage \
    --message-type RAW \
    --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256
```
출력:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "Signature": "ABCDEFhpyVYyTxbafE74ccSvEJLJr3zuoV1Hfymz4qv+/fxmxNLA7SE1SiF8lHw80fKZZ3bJ...",
    "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256"
}
```
 AWS KMS에서 비대칭 KMS 키를 사용하는 방법에 대한 자세한 내용은 Key *AWS Management Service 개발자 안내서*의 [AWS KMS의 비대칭](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 키를 참조하세요.  
**예시 2: 디지털 서명을 파일에 저장(Linux 및 macOS)**  
다음 `sign` 예시에서는 로컬 파일에 저장된 짧은 메시지에 대한 암호화 서명을 생성합니다. 또한 명령은 응답에서 `Signature` 속성을 가져오고 Base64로 디코딩하여 ExampleSignature 파일에 저장합니다. 서명을 확인하는 `verify` 명령에서 서명 파일을 사용할 수 있습니다.  
`sign` 명령에는 Base64로 인코딩된 메시지와 비대칭 KMS 키가 지원하는 서명 알고리즘이 필요합니다. KMS 키가 지원하는 서명 알고리즘을 가져오려면 `describe-key` 명령을 사용합니다.  
이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다. 키 ID는 SIGN\$1VERIFY라는 키가 사용된 비대칭 KMS 키를 나타내야 합니다.  

```
echo 'hello world' | base64 > EncodedMessage

aws kms sign \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://EncodedMessage \
    --message-type RAW \
    --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \
    --output text \
    --query Signature | base64 --decode > ExampleSignature
```
이 명령은 출력을 생성하지 않습니다. 이 예시에서는 출력의 `Signature` 속성을 추출하여 파일에 저장합니다.  
 AWS KMS에서 비대칭 KMS 키를 사용하는 방법에 대한 자세한 내용은 Key *AWS Management Service 개발자 안내서*의 [AWS KMS의 비대칭](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 키를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [Sign](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/sign.html) 섹션을 참조하세요.

### `tag-resource`
<a name="kms_TagResource_cli_2_topic"></a>

다음 코드 예시에서는 `tag-resource`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키에 태그를 추가하는 방법**  
다음 `tag-resource` 예시에서는 고객 관리형 KMS 키에 `"Purpose":"Test"` 및 `"Dept":"IT"` 태그를 추가합니다. 이와 같은 태그를 사용하여 KMS 키에 레이블을 지정하고 권한 및 감사를 위한 KMS 키 범주를 생성할 수 있습니다.  
KMS 키를 지정하려면 `key-id` 파라미터를 사용합니다. 이 예시에서는 키 ID 값을 사용하지만 이 명령에는 키 ID 또는 키 ARN을 사용할 수 있습니다.  

```
aws kms tag-resource \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --tags TagKey='Purpose',TagValue='Test' TagKey='Dept',TagValue='IT'
```
이 명령은 출력을 생성하지 않습니다. AWS KMS KMS 키의 태그를 보려면 `list-resource-tags` 명령을 사용합니다.  
 AWS KMS에서 태그를 사용하는 방법에 대한 자세한 내용은 Key *AWS Management Service 개발자 안내서의 키* [태그 지정](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html)을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [TagResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/tag-resource.html)를 참조하세요.

### `untag-resource`
<a name="kms_UntagResource_cli_2_topic"></a>

다음 코드 예시에서는 `untag-resource`의 사용 방법을 보여줍니다.

**AWS CLI**  
**KMS 키에서 태그 삭제**  
다음 `untag-resource` 예시에서는 고객 관리형 KMS 키에서 `"Purpose"` 키가 있는 태그를 삭제합니다.  
KMS 키를 지정하려면 `key-id` 파라미터를 사용합니다. 이 예시에서는 키 ID 값을 사용하지만 이 명령에는 키 ID 또는 키 ARN을 사용할 수 있습니다. 이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.  

```
aws kms untag-resource \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --tag-key 'Purpose'
```
이 명령은 출력을 생성하지 않습니다. AWS KMS KMS 키의 태그를 보려면 `list-resource-tags` 명령을 사용합니다.  
 AWS KMS에서 태그를 사용하는 방법에 대한 자세한 내용은 Key *AWS Management Service 개발자 안내서의 키* [태그 지정](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html)을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [UntagResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/untag-resource.html)를 참조하세요.

### `update-alias`
<a name="kms_UpdateAlias_cli_2_topic"></a>

다음 코드 예시에서는 `update-alias`의 사용 방법을 보여줍니다.

**AWS CLI**  
**별칭을 다른 KMS 키에 연결**  
다음 `update-alias` 예시에서는 별칭 `alias/test-key`를 다른 KMS 키와 연결합니다.  
`--alias-name` 파라미터는 별칭을 지정합니다. 별칭 이름 값은 `alias/`로 시작해야 합니다. `--target-key-id` 파라미터는 별칭과 연결할 KMS 키를 지정합니다. 별칭에 대한 현재 KMS 키를 지정할 필요는 없습니다.  

```
aws kms update-alias \
    --alias-name alias/test-key \
    --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
이 명령은 출력을 생성하지 않습니다. 별칭을 찾으려면 `list-aliases` 명령을 사용합니다.  
자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [별칭 업데이트](https://docs.aws.amazon.com/kms/latest/developerguide/alias-manage.html#alias-update)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [UpdateAlias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/update-alias.html)를 참조하세요.

### `update-custom-key-store`
<a name="kms_UpdateCustomKeyStore_cli_2_topic"></a>

다음 코드 예시에서는 `update-custom-key-store`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예시 1: 사용자 지정 키 저장소의 표시 이름 편집**  
다음 `update-custom-key-store` 예시에서는 사용자 지정 키 저장소의 이름을 변경합니다. 이 예제는 AWS CloudHSM 키 스토어 또는 외부 키 스토어에서 작동합니다.  
`custom-key-store-id`를 사용하여 키 저장소를 식별합니다. `new-custom-key-store-name` 파라미터를 사용하여 새로운 기억하기 쉬운 이름을 지정합니다.  
 AWS CloudHSM 키 스토어의 표시 이름을 업데이트하려면 먼저 `disconnect-custom-key-store` 명령을 사용하여 키 스토어의 연결을 해제해야 합니다. 외부 키 저장소가 연결되거나 연결 해제된 상태에서 해당 저장소의 기억하기 쉬운 이름을 업데이트할 수 있습니다. 사용자 지정 키 스토어의 연결 상태를 찾으려면 `describe-custom-key-store` 명령을 사용합니다.  

```
aws kms update-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0 \
    --new-custom-key-store-name ExampleKeyStore
```
이 명령은 출력을 반환하지 않습니다. 명령이 작동하는지 확인하려면 `describe-custom-key-stores` 명령을 사용합니다.  
 AWS CloudHSM 키 스토어 업데이트에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Editing AWS CloudHSM 키 스토어 설정을](https://docs.aws.amazon.com/kms/latest/developerguide/update-keystore.html) 참조하세요.  
외부 키 저장소를 업데이트하는 방법에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [외부 키 저장소 속성 편집](https://docs.aws.amazon.com/kms/latest/developerguide/update-xks-keystore.html)을 참조하세요.  
**예제 2: AWS CloudHSM 키 스토어의 kmsuser 암호 편집**  
다음 `update-custom-key-store` 예시에서는 지정된 키 저장소와 연결된 CloudHSM 클러스터에서 `kmsuser`의 `kmsuser` 암호 값을 현재 암호로 업데이트합니다. 이 명령은 클러스터의 `kmsuser` 암호를 변경하지 않습니다. AWS KMS에 현재 암호를 알려주기만 하면 됩니다. KMS에 현재 `kmsuser` 암호가 없는 경우 AWS CloudHSM 키 스토어에 연결할 수 없습니다.  
**참고:** AWS CloudHSM 키 스토어를 업데이트하기 전에 연결을 해제해야 합니다. `disconnect-custom-key-store` 명령을 사용합니다. 명령이 완료되면 AWS CloudHSM 키 스토어를 다시 연결할 수 있습니다. `connect-custom-key-store` 명령을 사용합니다.  

```
aws kms update-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0 \
    --key-store-password ExamplePassword
```
이 명령은 출력을 반환하지 않습니다. 변경이 적용되었는지 확인하려면 `describe-custom-key-stores` 명령을 사용합니다.  
 AWS CloudHSM 키 스토어 업데이트에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Editing AWS CloudHSM 키 스토어 설정을](https://docs.aws.amazon.com/kms/latest/developerguide/update-keystore.html) 참조하세요.  
**예제 3: AWS CloudHSM 키 스토어의 AWS CloudHSM 클러스터 편집**  
다음 예시에서는 AWS CloudHSM 키 스토어와 연결된 AWS CloudHSM 클러스터를 동일한 클러스터의 다른 백업과 같은 관련 클러스터로 변경합니다.  
**참고:** AWS CloudHSM 키 스토어를 업데이트하기 전에 연결을 해제해야 합니다. `disconnect-custom-key-store` 명령을 사용합니다. 명령이 완료되면 AWS CloudHSM 키 스토어를 다시 연결할 수 있습니다. `connect-custom-key-store` 명령을 사용합니다.  

```
aws kms update-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0 \
    --cloud-hsm-cluster-id cluster-1a23b4cdefg
```
이 명령은 출력을 반환하지 않습니다. 변경이 적용되었는지 확인하려면 `describe-custom-key-stores` 명령을 사용합니다.  
 AWS CloudHSM 키 스토어 업데이트에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [Editing AWS CloudHSM 키 스토어 설정을](https://docs.aws.amazon.com/kms/latest/developerguide/update-keystore.html) 참조하세요.  
**예시 4: 외부 키 저장소의 프록시 인증 자격 증명 편집**  
다음 예시에서는 외부 키 저장소의 프록시 인증 자격 증명을 업데이트합니다. 값 중 하나만 변경하더라도 `raw-secret-access-key` 및 `access-key-id`를 모두 지정해야 합니다. 이 특성을 사용하여 잘못된 자격 증명을 수정하거나 외부 키 저장소 프록시가 자격 증명을 교체할 때 해당 자격 증명을 변경할 수 있습니다.  
외부 키 스토어에서 AWS KMS에 대한 프록시 인증 자격 증명을 설정합니다. 그런 다음이 명령을 사용하여 AWS KMS에 자격 증명을 제공합니다. AWS KMS는이 자격 증명을 사용하여 외부 키 스토어 프록시에 대한 요청에 서명합니다.  
외부 키 저장소가 연결되거나 연결 해제된 상태에서 프록시 인증 자격 증명을 업데이트할 수 있습니다. 사용자 지정 키 스토어의 연결 상태를 찾으려면 `describe-custom-key-store` 명령을 사용합니다.  

```
aws kms update-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0 \
    --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="
```
이 명령은 출력을 반환하지 않습니다. 변경이 적용되었는지 확인하려면 `describe-custom-key-stores` 명령을 사용합니다.  
외부 키 저장소를 업데이트하는 방법에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [외부 키 저장소 속성 편집](https://docs.aws.amazon.com/kms/latest/developerguide/update-xks-keystore.html)을 참조하세요.  
**예시 5: 외부 키 저장소의 프록시 연결 편집**  
다음 예시에서는 외부 키 저장소 프록시 연결 옵션을 퍼블릭 엔드포인트 연결에서 VPC 엔드포인트 서비스 연결로 변경합니다. `xks-proxy-connectivity` 값을 변경하는 것 외에도 VPC 엔드포인트 서비스에 연결된 프라이빗 DNS 이름을 반영하도록 `xks-proxy-uri-endpoint` 값을 변경해야 합니다. 또한 `xks-proxy-vpc-endpoint-service-name` 값을 추가해야 합니다.  
**참고:** 외부 저장소의 프록시 연결을 업데이트하기 전에 연결을 해제해야 합니다. `disconnect-custom-key-store` 명령을 사용합니다. 명령이 완료되면 `connect-custom-key-store` 명령을 사용하여 외부 키 저장소를 다시 연결할 수 있습니다.  

```
aws kms update-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0 \
    --xks-proxy-connectivity VPC_ENDPOINT_SERVICE \
    --xks-proxy-uri-endpoint "https://myproxy-private.xks.example.com" \
    --xks-proxy-vpc-endpoint-service-name "com.amazonaws.vpce.us-east-1.vpce-svc-example"
```
이 명령은 출력을 반환하지 않습니다. 변경이 적용되었는지 확인하려면 `describe-custom-key-stores` 명령을 사용합니다.  
외부 키 저장소를 업데이트하는 방법에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [외부 키 저장소 속성 편집](https://docs.aws.amazon.com/kms/latest/developerguide/update-xks-keystore.html)을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [UpdateCustomKeyStore](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/update-custom-key-store.html) 섹션을 참조하세요.

### `update-key-description`
<a name="kms_UpdateKeyDescription_cli_2_topic"></a>

다음 코드 예시에서는 `update-key-description`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예시 1: 고객 관리형 KMS 키에 설명을 추가하거나 변경**  
다음 `update-key-description` 예시에서는 고객 관리형 KMS 키에 설명을 추가합니다. 동일한 명령을 사용하여 기존 설명을 변경할 수 있습니다.  
`--key-id` 파라미터는 명령에서 KMS 키를 식별합니다. 이 예시에서는 키 ARN 값을 사용하지만 KMS 키의 키 ID 또는 ARN을 사용할 수 있습니다. `--description` 파라미터는 새로운 설명을 지정합니다. 이 파라미터의 값은 있는 경우 KMS 키의 현재 설명을 대체합니다.  

```
aws kms update-key-description \
    --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \
    --description "IT Department test key"
```
이 명령은 출력을 생성하지 않습니다. KMS 키에 대한 설명을 보려면 `describe-key` 명령을 사용합니다.  
자세한 내용은 *AWS Key Management Service API 참조*의 [UpdateKeyDescription](https://docs.aws.amazon.com/cli/latest/reference/kms/update-key-description.html) 섹션을 참조하세요.  
**예시 2: 고객 관리형 KMS 키의 설명 삭제**  
다음 `update-key-description` 예시에서는 고객 관리형 KMS 키의 설명을 삭제합니다.  
`--key-id` 파라미터는 명령에서 KMS 키를 식별합니다. 이 예시에서는 키 ID 값을 사용하지만 KMS 키의 키 ID 또는 키 ARN을 사용할 수 있습니다. 빈 문자열 값('')이 있는 `--description` 파라미터는 기존 설명을 삭제합니다.  

```
aws kms update-key-description \
    --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \
    --description ''
```
이 명령은 출력을 생성하지 않습니다. KMS 키에 대한 설명을 보려면 describe-key 명령을 사용합니다.  
자세한 내용은 *AWS Key Management Service API 참조*의 [UpdateKeyDescription](https://docs.aws.amazon.com/cli/latest/reference/kms/update-key-description.html) 섹션을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [UpdateKeyDescription](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/update-key-description.html) 섹션을 참조하세요.

### `verify-mac`
<a name="kms_VerifyMac_cli_2_topic"></a>

다음 코드 예시는 `verify-mac`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예제 1: HMAC 확인**  
다음 `verify-mac` 명령은 특정 메시지에 대한 HMAC, HMAC KMS 키 및 MAC 알고리즘을 확인합니다. 응답의 MacValid 값에서 'true' 값은 HMAC가 유효함을 나타냅니다.  
 AWS CLI v2에서 `message` 파라미터 값은 Base64-encoded되어야 합니다. 또는 메시지를 파일에 저장하고 AWS CLI에 파일에서 이진 데이터를 읽도록 지시하는 `fileb://` 접두사를 사용할 수 있습니다.  
지정하는 MAC는 base64로 인코딩할 수 없습니다. `generate-mac` 명령이 반환하는 MAC를 디코딩하는 데 도움이 필요하면 `generate-mac` 명령 예제를 참조하세요.  
이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다. 키 ID는 키 사용량이 `GENERATE_VERIFY_MAC`인 HMAC KMS 키를 나타내야 합니다.  

```
msg=(echo 'Hello World' | base64)

aws kms verify-mac \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://Message \
    --mac-algorithm HMAC_SHA_384 \
    --mac fileb://ExampleMac
```
출력:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "MacValid": true,
    "MacAlgorithm": "HMAC_SHA_384"
}
```
 AWS KMS에서 HMAC KMS 키를 사용하는 방법에 대한 자세한 내용은 Key *AWS Management Service 개발자 안내서*의 [AWS KMS에서 HMAC](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) 키를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [VerifyMac](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/verify-mac.html)을 참조하세요.

### `verify`
<a name="kms_Verify_cli_2_topic"></a>

다음 코드 예시는 `verify`의 사용 방법을 보여줍니다.

**AWS CLI**  
**디지털 서명을 확인하는 방법**  
다음 `verify` 명령은 Base64로 인코딩된 짧은 메시지에 대한 암호화 서명을 확인합니다. 키 ID, 메시지, 메시지 유형 및 서명 알고리즘은 메시지 서명에 사용된 것과 동일해야 합니다.  
 AWS CLI v2에서 `message` 파라미터 값은 Base64-encoded되어야 합니다. 또는 메시지를 파일에 저장하고 AWS CLI에 파일에서 이진 데이터를 읽도록 지시하는 `fileb://` 접두사를 사용할 수 있습니다.  
지정하는 서명은 base64로 인코딩할 수 없습니다. `sign` 명령이 반환하는 서명을 디코딩하는 데 도움이 필요하면 `sign` 명령 예시를 참조하세요.  
명령의 출력에는 서명이 확인되었음을 나타내는 부울 `SignatureValid` 필드가 포함됩니다. 서명 검증에 실패하면 `verify` 명령도 실패합니다.  
이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.  

```
aws kms verify \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://EncodedMessage \
    --message-type RAW \
    --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \
    --signature fileb://ExampleSignature
```
출력:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "SignatureValid": true,
    "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256"
}
```
 AWS KMS에서 비대칭 KMS 키를 사용하는 방법에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [비대칭 키 사용을](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [Verify](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/verify.html) 섹션을 참조하세요.