가져온 키 구성 요소가 있는 KMS 키 생성 - AWS Key Management Service

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

가져온 키 구성 요소가 있는 KMS 키 생성

가져온 키 구성 요소를 사용하면 생성한 암호화 키로 AWS 리소스를 보호할 수 있습니다. 가져오는 키 구성 요소는 특정 KMS 키와 연결됩니다. 동일한 키 구성 요소를 동일한 KMS 키로 다시 가져올 수 있지만, 다른 키 구성 요소를 KMS 키로 가져올 수 없으며, 가져온 키 구성 요소에 맞게 설계된 KMS 키를 AWS KMS 키 구성 요소가 있는 KMS 키로 변환할 수 없습니다.

다음 개요에서는 AWS KMS로 키 구성 요소를 가져오는 방법을 설명합니다. 프로세스의 각 단계에 대한 자세한 정보는 해당 주제를 참조하세요.

  1. 키 구성 요소 없이 KMS 키 생성 - 오리진은 EXTERNAL이어야 합니다. 키 오리진 EXTERNAL은 키가 가져온 키 구성 요소를 사용하도록 설계되었으며, AWS KMS가 KMS 키의 키 구성 요소를 생성하지 못하도록 한다는 것을 의미합니다. 이후 단계에 이 KMS 키로 고유한 키 구성 요소를 가져오게 됩니다.

    가져온 키 구성 요소는 관련 AWS KMS 키의 키 사양과 호환되어야 합니다. 호환성에 대한 자세한 내용은 가져온 키 구성 요소에 대한 요구 사항를 참조하세요.

  2. 래핑 퍼블릭 키 및 가져오기 토큰 다운로드 – 1단계를 완료한 후 래핑 퍼블릭 키와 가져오기 토큰을 다운로드합니다. 이러한 항목은 AWS KMS로 가져오는 동안 키 자료를 보호합니다.

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

  3. 키 구성 요소 암호화 – 2단계에서 다운로드한 래핑 퍼블릭 키를 사용하여 고유한 시스템에 생성한 키 구성 요소를 암호화합니다.

  4. 키 구성 요소 가져오기 – 3단계에 생성하여 암호화한 키 구성 요소와 2단계에 다운로드한 가져오기 토큰을 업로드합니다.

    이 단계에서 선택적 만료 시간을 설정할 수 있습니다. 가져온 키 구성 요소가 만료되면 AWS KMS가 해당 키 구성 요소를 삭제하고 KMS 키를 사용할 수 없게 됩니다. KMS 키를 계속 사용하려면 동일한 키 구성 요소를 다시 가져와야 합니다.

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

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

키 구성 요소 가져오기 권한

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

가져온 키 구성 요소가 있는 KMS 키를 만들려면 보안 주체에 다음 권한이 필요합니다.

  • kms:CreateKey(IAM 정책)

    • 가져온 키 구성 요소가 있는 KMS 키로 이 권한을 제한하려면 값이 EXTERNALkms:KeyOrigin 정책 조건을 사용하십시오.

      { "Sid": "CreateKMSKeysWithoutKeyMaterial", "Effect": "Allow", "Resource": "*", "Action": "kms:CreateKey", "Condition": { "StringEquals": { "kms:KeyOrigin": "EXTERNAL" } } }
  • kms:GetParametersForImport (키 정책 또는 IAM 정책)

  • kms:ImportKeyMaterial(키 정책 또는 IAM 정책)

    • 만료되는 키 구성 요소를 허용하거나 금지하고 만료 날짜를 제어하려면 kms:ExpirationModelkms:ValidTo 정책 조건을 사용합니다.

가져온 키 구성 요소를 다시 가져오려면 보안 주체가 kms:GetParametersForImportkms:ImportKeyMaterial 권한을 필요합니다.

가져온 키 구성 요소를 삭제하려면 보안 주체에게 kms:DeleteImportedKeyMaterial 권한이 필요합니다.

예를 들어 가져온 키 구성 요소가 있는 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" ] }

가져온 키 구성 요소에 대한 요구 사항

가져온 키 구성 요소는 관련 KMS 키의 키 사양과 호환되어야 합니다. 비대칭 키 쌍의 경우 해당 쌍의 프라이빗 키만 가져옵니다. AWS KMS가 프라이빗 키에서 퍼블릭 키를 파생합니다.

AWS KMS는 가져온 키 구성 요소가 있는 KMS 키에 대해 다음 키 사양을 지원합니다.

KMS 키 키 유형 키 구성 요소 요구 사항

대칭 암호화 키

SYMMETRIC_DEFAULT

256비트(32바이트)의 이진 데이터

중국 리전의 경우 128비트(16바이트)의 이진 데이터여야 합니다.

HMAC 키

HMAC_224

HMAC_256

HMAC_384

HMAC_512

HMAC 키 구성 요소는 RFC 2104를 준수해야 합니다.

키 길이는 키 사양에 지정된 길이와 일치해야 합니다.

RSA 비대칭 프라이빗 키

RSA_2048

RSA_3072

RSA_4096

가져오는 RSA 비대칭 프라이빗 키는 RFC 3447을 준수하는 키 쌍의 일부여야 합니다.

모듈러스: 2048비트, 3072비트 또는 4096비트

프라임 수: 2(다중 프라임 RSA 키는 지원되지 않음)

비대칭 키 구성 요소는 RFC 5208을 준수하는 퍼블릭 키 암호화 표준(PKCS) #8 형식으로 BER 인코딩 또는 DER 인코딩이어야 합니다.

타원 곡선 비대칭 프라이빗 키

ECC_NIST_P256(secp256r1)

ECC_NIST_P384(secp384r1)

ECC_NIST_P521(secp521r1)

ECC_SECG_P256K1(secp256k1)

가져오는 ECC 비대칭 프라이빗 키는 RFC 5915을 준수하는 키 쌍의 일부여야 합니다.

곡선: NIST P-256, NIST P-384, NIST P-521 또는 Secp256k1

파라미터: 명명된 곡선만(명시적 파라미터가 있는 ECC 키는 거부됨)

퍼블릭 포인트 좌표: 압축, 비압축 또는 투영형일 수 있음

비대칭 키 구성 요소는 RFC 5208을 준수하는 퍼블릭 키 암호화 표준(PKCS) #8 형식으로 BER 인코딩 또는 DER 인코딩이어야 합니다.

SM2 비대칭 프라이빗 키(중국 리전만 해당)

가져오는 SM2 비대칭 프라이빗 키는 GM/T 0003을 준수하는 키 페어의 일부여야 합니다.

곡선: SM2

파라미터: 명명된 곡선만(명시적 파라미터가 있는 SM2 키는 거부됨)

퍼블릭 포인트 좌표: 압축, 비압축 또는 투영형일 수 있음

비대칭 키 구성 요소는 RFC 5208을 준수하는 퍼블릭 키 암호화 표준(PKCS) #8 형식으로 BER 인코딩 또는 DER 인코딩이어야 합니다.