

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

# 가져온 키 구성 요소가 있는 KMS 키 생성
<a name="importing-keys-conceptual"></a>

가져온 키 구성 요소를 사용하면 생성한 암호화 키로 AWS 리소스를 보호할 수 있습니다. 다음 개요에서는 AWS KMS로 키 구성 요소를 가져오는 방법을 설명합니다. 프로세스의 각 단계에 대한 자세한 정보는 해당 주제를 참조하세요.

1. [키 구성 요소 없이 KMS 키 생성](importing-keys-create-cmk.md) - 오리진은 `EXTERNAL`이어야 합니다. 의 키 오리진은 키가 가져온 키 구성 요소를 위해 설계되었음을 `EXTERNAL` 나타내며 AWS KMS 가 KMS 키에 대한 키 구성 요소를 생성하지 못하도록 합니다. 이후 단계에 이 KMS 키로 고유한 키 구성 요소를 가져오게 됩니다.

   가져오는 키 구성 요소는 연결된 키의 AWS KMS 키 사양과 호환되어야 합니다. 호환성에 대한 자세한 내용은 [가져온 키 구성 요소에 대한 요구 사항](#importing-keys-material-requirements) 페이지를 참조하세요.

1. [래핑 퍼블릭 키 및 가져오기 토큰 다운로드](importing-keys-get-public-key-and-token.md) – 1단계를 완료한 후 래핑 퍼블릭 키와 가져오기 토큰을 다운로드합니다. 이러한 항목은 키 구성 요소를 가져오는 동안 키 구성 요소를 보호합니다 AWS KMS.

   이 단계에서는 RSA 래핑 키의 유형(‘키 사양’)과 AWS KMS로 전송되는 데이터를 암호화하는 데 사용할 래핑 알고리즘을 선택합니다. 동일한 키 구성 요소를 가져오거나 다시 가져올 때마다 다른 래핑 키 사양과 래핑 키 알고리즘을 선택할 수 있습니다.

1. [키 구성 요소 암호화](importing-keys-encrypt-key-material.md) – 2단계에서 다운로드한 래핑 퍼블릭 키를 사용하여 고유한 시스템에 생성한 키 구성 요소를 암호화합니다.

1. [키 구성 요소 가져오기](importing-keys-import-key-material.md) – 3단계에 생성하여 암호화한 키 구성 요소와 2단계에 다운로드한 가져오기 토큰을 업로드합니다.

   이 단계에서 [선택적 만료 시간을 설정](importing-keys-import-key-material.md#importing-keys-expiration)할 수 있습니다. 가져온 키 구성 요소가 만료되면 AWS KMS 삭제되고 KMS 키를 사용할 수 없게 됩니다. KMS 키를 계속 사용하려면 **동일한** 키 구성 요소를 다시 가져와야 합니다.

   가져오기 작업이 성공적으로 완료되면 KMS 키의 키 상태가 `PendingImport`에서 `Enabled`로 변경됩니다. 이제 암호화 작업에 KMS 키를 사용할 수 있습니다.

AWS KMS 는 [KMS 키를 생성하고](ct-createkey.md), [래핑 퍼블릭 키 및 가져오기 토큰을 다운로드](ct-getparametersforimport.md)하고, [키 구성 요소를 가져올](ct-importkeymaterial.md) 때 AWS CloudTrail 로그에 항목을 기록합니다. AWS KMS 또한는 가져온 키 구성 요소를 삭제하거나가 AWS KMS [만료된 키 구성 요소를 삭제할](ct-deleteexpiredkeymaterial.md) 때 항목을 기록합니다.

## 키 구성 요소 가져오기 권한
<a name="importing-keys-permissions"></a>

가져온 키 구성 요소가 있는 KMS 키를 만들고 관리하려면 사용자에게 이 프로세스의 작업에 대한 권한이 필요합니다. KMS 키를 만들 때 키 정책에서 `kms:GetParametersForImport`, `kms:ImportKeyMaterial` 및 `kms:DeleteImportedKeyMaterial` 권한을 제공할 수 있습니다. AWS KMS 콘솔에서 이러한 권한은 **외부** 키 구성 요소 오리진으로 키를 생성할 때 키 관리자에 대해 자동으로 추가됩니다.

가져온 키 구성 요소가 있는 KMS 키를 만들려면 보안 주체에 다음 권한이 필요합니다.
+ [kms:CreateKey](customer-managed-policies.md#iam-policy-example-create-key)(IAM 정책)
  + 가져온 키 구성 요소가 있는 KMS 키로 이 권한을 제한하려면 값이 `EXTERNAL`인 [kms:KeyOrigin](conditions-kms.md#conditions-kms-key-origin) 정책 조건을 사용하십시오.

    ```
    {
      "Sid": "CreateKMSKeysWithoutKeyMaterial",
      "Effect": "Allow",
      "Resource": "*",
      "Action": "kms:CreateKey",
      "Condition": {
        "StringEquals": {
          "kms:KeyOrigin": "EXTERNAL"
        }
      }
    }
    ```
+ [kms:GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) (키 정책 또는 IAM 정책)
  + 이 권한을 특정 래핑 알고리즘 및 래핑 키 사양을 사용하는 요청으로 제한하려면 [kms:WrappingAlgorithm](conditions-kms.md#conditions-kms-wrapping-algorithm) 및 [kms:WrappingKeySpec](conditions-kms.md#conditions-kms-wrapping-key-spec) 정책 조건을 사용합니다.
+ [kms:ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)(키 정책 또는 IAM 정책)
  + 만료되는 키 구성 요소를 허용하거나 금지하고 만료 날짜를 제어하려면 [kms:ExpirationModel](conditions-kms.md#conditions-kms-expiration-model) 및 [kms:ValidTo](conditions-kms.md#conditions-kms-valid-to) 정책 조건을 사용합니다.

가져온 키 구성 요소를 다시 가져오려면 보안 주체가 [kms:GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) 및 [kms:ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) 권한을 필요합니다.

가져온 키 구성 요소를 삭제하려면 보안 주체에게 [kms:DeleteImportedKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteImportedKeyMaterial.html) 권한이 필요합니다.

예를 들어 가져온 키 구성 요소가 있는 KMS 키의 모든 측면을 관리할 수 있는 예제 `KMSAdminRole` 권한을 부여하려면 KMS 키의 키 정책에 다음과 같은 키 정책 설명을 포함합니다.

```
{
  "Sid": "Manage KMS keys with imported key material",
  "Effect": "Allow",
  "Resource": "*",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/KMSAdminRole"
  },
  "Action": [
    "kms:GetParametersForImport",
    "kms:ImportKeyMaterial",
    "kms:DeleteImportedKeyMaterial"
  ]  
}
```

## 가져온 키 구성 요소에 대한 요구 사항
<a name="importing-keys-material-requirements"></a>

가져온 키 구성 요소는 관련 KMS 키의 [키 사양](create-keys.md#key-spec)과 호환되어야 합니다. 비대칭 키 페어의 경우 페어의 프라이빗 키만 가져옵니다.는 프라이빗 키에서 퍼블릭 키를 AWS KMS 파생합니다.

AWS KMS 는 가져온 키 구성 요소가 있는 KMS 키에 대해 다음과 같은 키 사양을 지원합니다.
+ **대칭 암호화 키**
  + **키 사양:**
    + SYMMETRIC\_DEFAULT.
  + **요구 사항:**
    + 256비트(32바이트)의 이진 데이터.
    + 중국 리전의 경우 128비트(16바이트)의 이진 데이터여야 합니다.
+ **HMAC 키**
  + **키 사양:**
    + HMAC\_224
    + HMAC\_256
    + HMAC\_384
    + HMAC\_512
  + **요구 사항:**
    + HMAC 키 구성 요소는 [RFC 2104](https://datatracker.ietf.org/doc/html/rfc2104)를 준수해야 합니다.
    + 키 길이는 키 사양에 지정된 길이 이상이어야 합니다. 최대 키 길이는 1024비트입니다.
    + 키 구성 요소가 1024비트를 초과하는 경우, 키 구성 요소를 해시해 해시 출력값을 가져올 수 있습니다. 해싱 알고리즘은 생성하려는 HMAC KMS 키의 키 사양과 일치해야 합니다.
  + **예:**
    + 2048비트 키 구성 요소를 HMAC\_256 키에 가져오려면 먼저 2048비트 키 구성 요소의 SHA-256 해시를 컴퓨팅한 뒤 해당 256비트 해시 출력값을 KMS 키로 가져오세요.
  + **유효한 키 길이:**
    + HMAC\_224: 224\~1024비트
    + HMAC\_256: 256\~1024비트
    + HMAC\_384: 384\~1024비트
    + HMAC\_512: 512\~1024비트
+ **RSA 비대칭 프라이빗 키**
  + **키 사양:**
    + RSA\_2048
    + RSA\_3072
    + RSA\_4096
  + **요구 사항:**
    + 가져오는 RSA 비대칭 프라이빗 키는 [RFC 3447](https://datatracker.ietf.org/doc/html/rfc3447/)을 준수하는 키 쌍의 일부여야 합니다.
    + **모듈러스**: 2048비트, 3072비트 또는 4096비트
    + **프라임 수**: 2(다중 프라임 RSA 키는 지원되지 않음)
    + 비대칭 키 구성 요소는 [RFC 5208](https://datatracker.ietf.org/doc/html/rfc5208)을 준수하는 퍼블릭 키 암호화 표준(PKCS) \#8 형식으로 BER 인코딩 또는 DER 인코딩이어야 합니다.
+ **타원 곡선 비대칭 프라이빗 키**
  + **키 사양:**
    + ECC\_NIST\_P256(secp256r1)
    + ECC\_NIST\_P384(secp384r1)
    + ECC\_NIST\_P521(secp521r1)
    + ECC\_SECG\_P256K1(secp256k1)
    + ECC\_NIST\_EDWARDS25519(ed25519)
  + **요구 사항:**
    + 가져오는 ECC 비대칭 프라이빗 키는 [RFC 5915](https://datatracker.ietf.org/doc/html/rfc5915/)을 준수하는 키 쌍의 일부여야 합니다.
    + **곡선:** NIST P-256, NIST P-384, NIST P-521, Secp256k1, NIST Ed25519.
    + **파라미터:** 명명된 곡선만(명시적 파라미터가 있는 ECC 키는 거부됨).
    + **퍼블릭 포인트 좌표:** 압축, 비압축 또는 투영형일 수 있음.
    + 비대칭 키 구성 요소는 [RFC 5208](https://datatracker.ietf.org/doc/html/rfc5208)을 준수하는 퍼블릭 키 암호화 표준(PKCS) \#8 형식으로 BER 인코딩 또는 DER 인코딩이어야 합니다.
+ **ML-DSA 키**
  + **키 사양:**
    + ML\_DSA\_44
    + ML\_DSA\_65
    + ML\_DSA\_87
**중요**  
ML-DSA 키 가져오기는 지원되지 않습니다.
+ **SM2 비대칭 프라이빗 키**(중국 리전만 해당)
  + **요구 사항:**
    + 가져오는 SM2 비대칭 프라이빗 키는 GM/T 0003을 준수하는 키 페어의 일부여야 합니다.
    + **곡선:** SM2.
    + **파라미터:** 명명된 곡선만(명시적 파라미터가 있는 SM2 키는 거부됨).
    + **퍼블릭 포인트 좌표:** 압축, 비압축 또는 투영형일 수 있음.
    + 비대칭 키 구성 요소는 [RFC 5208](https://datatracker.ietf.org/doc/html/rfc5208)을 준수하는 퍼블릭 키 암호화 표준(PKCS) \#8 형식으로 BER 인코딩 또는 DER 인코딩이어야 합니다.