구성을 선택하는 방법CMK - AWS Key Management Service

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

구성을 선택하는 방법CMK

생성하는 CMK 유형은 주로 CMK 사용 계획, 보안 요구 사항 및 권한 부여 요구 사항에 따라 다릅니다. 을 생성할 때 CMK의 키 사양 및 키 사용을 포함한 CMK의 암호화 구성은 CMK을 생성할 때 설정되며 변경할 수 없다는 점에 유의하십시오. 대칭 및 비대칭 CMK 생성에 대한 도움말은 키 생성 단원을 참조하십시오.

AWS KMS는 두 가지 CMK 키 유형을 지원합니다. 대칭비대칭. 각 키 유형은 특정 키 사용키 사양 옵션과 관련되어 있습니다.

사용 사례에 따라 필요한 CMK 유형을 결정하려면 다음 지침을 사용하십시오.

암호화 및 암호 해독

데이터 암호화 및 암호 해독이 필요한 대부분의 사용 사례에서는 대칭 CMK를 사용합니다. AWS KMS에서 사용하는 대칭 암호화 알고리즘은 빠르고 효율적이며 데이터의 기밀성과 신뢰성을 보장합니다. 또한 암호화 컨텍스트로 정의된 추가 인증 데이터(AAD)를 사용하는 인증된 암호화를 지원합니다. 이 유형의 CMK의 경우 암호화된 데이터의 발신자와 수신자 모두 AWS를 호출할 수 있는 유효한 AWS KMS 자격 증명이 있어야 합니다.

사용 사례에서 AWS를 호출할 수 없는 사용자가 AWS KMS 외부에서 암호화해야 하는 경우 비대칭 CMKs이 적합합니다. 이러한 사용자가 데이터를 암호화할 수 있도록 비대칭 CMK의 퍼블릭 키를 배포할 수 있습니다. 또한 해당 데이터를 해독해야 하는 애플리케이션은 CMK 내 비대칭 AWS KMS의 프라이빗 키를 사용할 수 있습니다.

메시지 서명 및 서명 확인

메시지에 서명하고 서명을 확인하려면 비대칭 CMK를 사용해야 합니다. RSA 키 페어 또는 타원 곡선(ECC) 키 페어를 나타내는 CMK키 사양과 함께 를 사용할 수 있습니다. 선택하는 키 사양은 사용하려는 서명 알고리즘에 따라 결정됩니다. 서명을 확인하는 사용자가 AWS 사용자가 아니고 확인 작업을 호출할 수 없는 경우가 있습니다. 이러한 경우에는 해당 사용자가 로컬 애플리케이션에서 지원할 수 있는 서명 알고리즘과 관련된 키 사양을 선택합니다.

퍼블릭 키 암호화 수행

퍼블릭 키 암호화를 수행하려면 비대칭 CMKRSA 키 사양과 함께 사용해야 합니다. 타원 곡선(ECC) 키 사양은 퍼블릭 키 암호화에 사용할 수 없습니다. 에서 RSA AWS KMS의 퍼블릭 키로 데이터를 암호화하려면 CMKEncrypt 작업을 사용합니다. 또한 퍼블릭 키를 다운로드하여 AWS KMS 외부의 데이터를 암호화해야 하는 당사자와 공유할 수 있습니다.

비대칭 CMK의 퍼블릭 키를 다운로드하면 AWS KMS 외부에서 사용할 수 있습니다. 그러나 더 이상 AWS KMS에서 CMK를 보호하는 보안 제어가 적용되지 않습니다. 예를 들어 KMS 키 정책 또는 권한 부여를 사용하여 퍼블릭 키의 사용을 제어할 수 없습니다. 또한 키가 AWS KMS에서 지원하는 RSA 암호화 알고리즘을 사용하여 암호화 및 암호 해독에만 사용되는지 여부를 제어할 수 없습니다. 자세한 내용은 퍼블릭 키 다운로드 시 특별 고려 사항을 참조하십시오.

AWS KMS 외부에서 퍼블릭 키로 암호화된 데이터를 해독하려면 Decrypt 작업을 호출합니다. 데이터가 Decrypt키 사용CMK이 의 퍼블릭 키로 암호화된 경우 SIGN_VERIFY 작업이 실패합니다. KMS가 RSA CMKs에 대해 지원하지 않는 알고리즘을 사용하여 암호화된 경우에도 실패합니다.

이러한 오류를 방지하려면 AWS KMS 외부에서 퍼블릭 키를 사용하는 모든 사용자가 키 구성을 저장해야 합니다. AWS KMS 콘솔 및 GetPublicKey 응답은 퍼블릭 키를 공유할 때 포함해야 하는 정보를 제공합니다.

통합 AWS 서비스와 함께 사용

와 통합된 AWS 서비스CMK와 함께 사용할 를 생성하려면 해당 서비스 설명서를 참조하십시오.AWS KMS 사용자를 대신하여 데이터를 암호화하는 모든 AWS 서비스에는 대칭 CMK가 필요합니다.

이러한 고려 사항 이외에도 키 사양이 다른 CMKs는 요금 및 요청 할당량가 다릅니다. AWS KMS 요금에 대한 자세한 내용은 AWS 키 관리 서비스 요금을 참조하십시오. 요청 할당량에 대한 자세한 내용은 요청 할당량 단원을 참조하십시오.

키 사용 선택

키 사용에 따라 CMK가 암호화 및 암호 해독 또는 서명 및 확인에 사용되는지 여부가 결정됩니다.CMK 둘 다 선택할 수는 없습니다. 두 가지 이상의 작업 유형에 CMK를 사용하면 두 작업의 제품이 공격에 더 취약해집니다.

다음 표와 같이 대칭 CMKs는 암호화 및 암호 해독에만 사용할 수 있습니다. 타원 곡선(ECC) CMKs은 서명 및 확인에만 사용할 수 있습니다. 키 사용 결정은 실제로 RSA CMKs에 대해서만 이루어집니다.

유형에 유효한 키 사용CMK
CMK 유형 암호화 및 암호 해독 서명 및 확인
대칭 CMKs
RSA 키 페어가 있는 비대칭 CMKs
ECC 키 페어가 있는 비대칭 CMKs

콘솔에서 먼저 키 유형(대칭 또는 비대칭)을 선택한 다음 비대칭 AWS KMS의 경우 키 사용을 선택합니다.CMKs 대칭 키 유형을 선택하면 대칭 CMKs는 암호화 및 암호 해독만 지원하므로 키 사용 옵션이 표시되지 않습니다. 선택한 키 사용에 따라 표시되는 키 사양이 결정됩니다.

AWS KMS 콘솔에서 키 사용을 선택하려면

  • 타원 곡선(ECC) 키 구성 요소가 있는 CMKs의 경우 서명 및 확인을 선택합니다.

  • RSA 키 구성 요소가 있는 CMKs의 경우 암호화 및 암호 해독 또는 서명 및 확인을 선택합니다.

계정의 보안 주체가 CMKs에 사용할 수 있는 키 사용을 결정하려면 kms:CustomerMasterKeyUsage 조건 키를 사용합니다.

키 사양 선택

비대칭 CMK를 생성할 때 키 사양을 선택합니다. 모든 ()의 속성인 고객 마스터 키키 사양CMK은 CMK의 암호화 구성을 나타냅니다. 키 사양은 CMK를 생성할 때 선택하며 이후에는 변경할 수 없습니다. 잘못된 키 사양을 선택한 경우 를 삭제CMK하고 새 사양을 생성합니다.

참고

AWS KMS API 작업에서 CMK에 대한 키 사양은 CustomerMasterKeySpec으로 알려져 있습니다. 따라서 이 사양은 데이터 키(KeySpec) 및 데이터 키 페어(KeyPairSpec)에 대한 키 사양 및 가져오기를 위해 키 재료를 래핑할 때 사용되는 키 사양(WrappingKeySpec)과 구분됩니다. 키 사양 유형별로 값이 서로 다릅니다.

키 사양에 따라 CMK가 대칭 또는 비대칭인지 여부, CMK의 키 구성 요소 유형, AWS KMS가 CMK에 대해 지원하는 암호화 알고리즘 또는 서명 알고리즘이 결정됩니다. 선택하는 키 사양은 일반적으로 사용 사례 및 규정 요구 사항에 따라 결정됩니다.

계정의 보안 주체가 CMKs에 사용할 수 있는 키 사양을 결정하려면 kms:CustomerMasterKeySpec 조건 키를 사용합니다.

AWS KMS는 CMKs에 대해 다음과 같은 키 사양을 지원합니다.

  • 대칭 CMKs(기본값, 암호화 및 암호 해독)

    • SYMMETRIC_DEFAULT

  • RSA 키 사양(암호화 및 암호 해독 또는 서명 및 확인)

    • RSA_2048

    • RSA_3072

    • RSA_4096

  • 타원 곡선 키 사양

    • 비대칭 NIST 권장 타원 곡선 키 페어(서명 및 확인)

      • ECC_NIST_P256(secp256r1)

      • ECC_NIST_P384(secp384r1)

      • ECC_NIST_P521(secp521r1)

    • 기타 비대칭 타원 곡선 키 페어(서명 및 확인)

      • ECC_SECG_P256K1(secp256k1), 일반적으로 암호 화폐에 사용됨.

항목

다음 주제에서는 키 사양에 대한 기술 정보를 제공합니다.

SYMMETRIC_DEFAULT 키 사양

기본 키 사양인 SYMMETRIC_DEFAULT는 대칭 CMKs의 키 사양입니다. AWS KMS 콘솔에서 대칭 키 유형을 선택하면 SYMMETRIC_DEFAULT 키 사양이 선택됩니다. CreateKey 작업에서 값을 지정하지 않으면 SYMMETRIC_DEFAULT가 선택됩니다.CustomerMasterKeySpec 다른 키 사양을 사용할 이유가 없다면 SYMMETRIC_DEFAULT가 좋은 선택입니다.

대칭 CMKs에 대한 암호화 알고리즘을 SYMMETRIC_DEFAULT라고도 합니다. 현재 이 알고리즘은 보안 암호화를 위한 업계 표준인 256비트 키를 사용하는 Galois Counter Mode(GCM)의 Advanced Encryption Standard(AES)를 기반으로 하는 대칭 알고리즘을 나타냅니다. 이 알고리즘이 생성하는 암호화 텍스트는 암호화 컨텍스트와 같은 추가 인증 데이터(AAD)를 지원하며 GCM은 암호화 텍스트에 대한 추가 무결성 검사를 제공합니다. 기술 세부 정보는 AWS Key Management Service 암호화 세부 정보 백서 단원을 참조하십시오.

AES-256-GCM으로 암호화된 데이터는 미래에도 보호됩니다. 암호 전문가는 이 알고리즘을 양자 저항으로 간주합니다. 256비트 AES-GCM 키로 생성된 암호화 텍스트에 대한 이론적인 미래의 대규모 양자 컴퓨팅 공격은 키의 효과적 보안을 128비트로 감소시킵니다. 하지만 이 보안 수준으로도 충분히 AWS KMS 암호화 텍스트에 대한 무차별 암호 대입 공격을 불가능하게 만들 수 있습니다.

의 대칭 CMK를 사용하여 데이터를 암호화, 암호 해독 및 다시 암호화하고 데이터 키 및 데이터 키 페어를 생성할 수 있습니다. AWS KMS와 통합된 AWS 서비스는 대칭 AWS KMS를 사용하여 유휴 데이터를 암호화합니다.CMKs 대칭 자체 키 구성 요소를 가져오고CMK사용자 지정 키 스토어CMKs에서 대칭 를 생성할 수 있습니다. 대칭 및 비대칭 CMKs에서 수행할 수 있는 작업을 비교하는 표는 대칭 및 비대칭 CMKs 비교를 참조하십시오.

RSA 키 사양

RSA 키 사양을 사용하는 경우 AWS KMS는 RSA 키 페어를 사용하여 비대칭 CMK을 생성합니다. 프라이빗 키는 절대로 암호화되지 않은 상태로 AWS KMS를 벗어나지 않습니다. 퍼블릭 키는 AWS KMS 내부에서 사용하거나 퍼블릭 키를 다운로드하여 AWS KMS 외부에서 사용할 수 있습니다.

주의

AWS KMS 외부에서 데이터를 암호화할 때는 암호화 텍스트를 해독할 수 있어야 합니다. 에서 삭제된 CMK의 퍼블릭 키, 서명 및 확인을 위해 구성된 AWS KMS의 퍼블릭 키 또는 CMK에서 지원하지 않는 암호화 알고리즘을 사용하는 경우 데이터를 복구할 수 없습니다.CMK

에서는 RSA 키 페어와 함께 비대칭 AWS KMS를 암호화 및 암호 해독 또는 서명 및 확인에 사용할 수 있지만 둘 다 사용할 수는 없습니다.CMKs 키 사용이라고 하는 이 속성은 키 사양과는 별도로 결정되지만 키 사양을 선택하기 전에 먼저 결정해야 합니다.

AWS KMS에서는 암호화 및 암호 해독 또는 서명 및 확인을 위해 다음과 같은 RSA 키 사양을 지원합니다.

  • RSA_2048

  • RSA_3072

  • RSA_4096

RSA 키 사양은 RSA 키 길이(비트)에 따라 다릅니다. 선택하는 RSA 키 사양은 보안 표준 또는 작업 요구 사항에 따라 결정될 수 있습니다. 일반적으로 작업에 실용적이고 저렴한 키 중에서 가장 큰 키를 사용하십시오. RSA 키 사양이 다른 CMKs는 가격이 다르게 책정되며 요청 할당량도 마찬가지입니다. AWS KMS 요금에 대한 자세한 내용은 AWS 키 관리 서비스 요금을 참조하십시오. 요청 할당량에 대한 자세한 내용은 요청 할당량 단원을 참조하십시오.

암호화 및 암호 해독을 위한 RSA 키 사양

RSA 비대칭 CMK가 암호화 및 암호 해독에 사용되는 경우 퍼블릭 키로 암호화하고 프라이빗 키로 해독합니다. 에서 RSA Encrypt에 대한 AWS KMS 작업을 호출하면 CMK는 RSA 키 페어의 퍼블릭 키와 지정한 암호화 알고리즘을 사용하여 데이터를 암호화합니다.AWS KMS 암호화 텍스트를 해독하려면 Decrypt 작업을 호출하고 동일한 CMK 및 암호화 알고리즘을 지정합니다. 그런 다음 AWS KMS는 RSA 키 페어의 프라이빗 키를 사용하여 데이터를 해독합니다.

또한 퍼블릭 키를 다운로드하여 AWS KMS 외부의 데이터를 암호화하는 데 사용할 수 있습니다. 가 RSA AWS KMS에 대해 지원하는 암호화 알고리즘을 사용해야 합니다.CMKs 암호화 텍스트를 해독하려면 동일한 Decrypt 및 암호화 알고리즘을 사용하여 CMK 함수를 호출합니다.

AWS KMS는 RSA 키 사양을 사용하는 CMKs에 대해 두 가지 암호화 알고리즘을 지원합니다. PKCS #1 v2.2에 정의된 이러한 알고리즘은 내부적으로 사용하는 해시 함수가 다릅니다. AWS KMS에서 RSAES_OAEP 알고리즘은 해싱 용도와 마스크 생성 함수(MGF1)에 항상 동일한 해시 함수를 사용합니다. EncryptDecrypt 작업을 호출할 때 암호화 알고리즘을 지정해야 합니다. 각 요청마다 다른 알고리즘을 선택할 수 있습니다.

RSA 키 사양에 지원되는 암호화 알고리즘
암호화 알고리즘 알고리즘 설명
RSAES_OAEP_SHA_1 PKCS #1 v2.2, Section 7.1. 빈 레이블과 함께 해시 및 MGF1 마스크 생성 기능 모두에 SHA-1을 사용하는 OAEP 패딩 포함 RSA 암호화입니다.
RSAES_OAEP_SHA_256 PKCS #1, Section 7.1. 빈 레이블과 함께 해시 및 MGF1 마스크 생성 기능 모두에 SHA-256을 사용하는 OAEP 패딩 포함 RSA 암호화입니다.

특정 암호화 알고리즘을 사용하도록 CMK를 구성할 수 없습니다. 그러나 kms:EncryptionAlgorithm 정책 조건을 사용하여 보안 주체가 CMK와 함께 사용할 수 있는 암호화 알고리즘을 지정할 수 있습니다.

에 대한 암호화 알고리즘을 가져오려면 CMK 콘솔에서 암호화 구성을 확인CMK하거나 AWS KMSDescribeKey 작업을 사용합니다. 또한 에서는 AWS KMS 콘솔에서 또는 AWS KMS 작업을 사용하여 퍼블릭 키를 다운로드할 때 키 사양 및 암호화 알고리즘을 제공합니다.GetPublicKey

각 요청에서 암호화할 수 있는 일반 텍스트 데이터의 길이를 기준으로 RSA 키 사양을 선택할 수 있습니다. 다음 표에서는 Encrypt 작업을 한 번 호출하여 암호화할 수 있는 일반 텍스트의 최대 크기(바이트)를 보여 줍니다. 값은 키 사양 및 암호화 알고리즘에 따라 다릅니다. 비교를 위해 대칭 CMK를 사용하여 한 번에 최대 4,096바이트까지 암호화할 수 있습니다.

이러한 알고리즘에 대한 최대 일반 텍스트 길이(바이트)를 계산하려면 다음 공식을 사용합니다.key_size_in_bits / 8) - (2 * hash_length_in_bits/8) - 2. 예를 들어 SHA-256을 사용하는 RSA_2048의 경우 바이트 단위의 최대 일반 텍스트 크기는 (2048/8) - (2 * 256/8) - 2 = 190입니다.

암호화 작업의 최대 일반 텍스트 크기(바이트)
암호화 알고리즘
키 사양 RSAES_OAEP_SHA_1 RSAES_OAEP_SHA_256
RSA_2048 214 190
RSA_3072 342 318
RSA_4096 470 446

서명 및 확인을 위한 RSA 키 사양

서명 및 확인에 RSA 비대칭 CMK가 사용되는 경우 프라이빗 키를 사용하여 메시지에 대한 서명을 생성하고 퍼블릭 키를 사용하여 서명을 확인합니다.

비대칭 Sign에 대해 AWS KMS에서 CMK 작업을 호출하면 AWS KMS는 RSA 키 페어의 프라이빗 키, 메시지 및 지정한 서명 알고리즘을 사용하여 서명을 생성합니다. 서명을 확인하려면 확인 작업을 호출합니다. 서명을 지정하고 동일한 CMK, 메시지 및 서명 알고리즘을 지정합니다. 그런 다음 AWS KMS는 RSA 키 페어의 퍼블릭 키를 사용하여 서명을 확인합니다. 퍼블릭 키를 다운로드하여 AWS KMS 외부에서 서명을 확인하는 데 사용할 수도 있습니다.

AWS KMS는 RSA 키 사양을 사용하는 CMKs에 대해 다음과 같은 서명 알고리즘을 지원합니다. 서명확인 작업을 호출할 때 서명 알고리즘을 지정해야 합니다. 각 요청마다 다른 알고리즘을 선택할 수 있습니다.

RSA 키 사양에 지원되는 서명 알고리즘
서명 알고리즘 알고리즘 설명
RSASSA_PKCS1_V1_5_SHA_256 PKCS #1 v2.2, Section 8.2(PKCS #1v1.5 패딩 및 SHA-256을 사용하는 RSA 서명)
RSASSA_PKCS1_V1_5_SHA_384 PKCS #1 v2.2, Section 8.2(PKCS #1v1.5 패딩 및 SHA-384를 사용하는 RSA 서명)
RSASSA_PKCS1_V1_5_SHA_512 PKCS #1 v2.2, Section 8.2(PKCS #1v1.5 패딩 및 SHA-512를 사용하는 RSA 서명)
RSASSA_PSS_SHA_256 PKCS #1 v2.2, Section 8.1(256비트 솔트와 함께 메시지 다이제스트 및 MGF1 마스크 생성 기능 모두에 SHA-256을 사용하는 PSS 패딩 포함 RSA 서명)
RSASSA_PSS_SHA_384 PKCS #1 v2.2, Section 8.1(384비트 솔트와 함께 메시지 다이제스트 및 MGF1 마스크 생성 기능 모두에 SHA-384를 사용하는 PSS 패딩 포함 RSA 서명)
RSASSA_PSS_SHA_512 PKCS #1 v2.2, Section 8.1(512비트 솔트와 함께 메시지 다이제스트 및 MGF1 마스크 생성 기능 모두에 SHA-512를 사용하는 PSS 패딩 포함 RSA 서명)

특정 서명 알고리즘을 사용하도록 CMK를 구성할 수 없습니다. 그러나 kms:SigningAlgorithm 정책 조건을 사용하여 보안 주체가 CMK와 함께 사용할 수 있는 서명 알고리즘을 지정할 수 있습니다.

에 대한 서명 알고리즘을 가져오려면 CMK 콘솔에서 또는 작업을 사용하여 CMK의 AWS KMS암호화 구성을 봅니다. 또한 DescribeKey에서는 콘솔에서 또는 AWS KMSAWS KMS 작업을 사용하여 퍼블릭 키를 다운로드할 때 키 사양 및 서명 알고리즘을 제공합니다.GetPublicKey

타원 곡선 키 사양

타원 곡선(ECC) 키 사양을 사용하는 경우 AWS KMS는 서명 및 확인을 위해 ECC 키 페어가 있는 비대칭 CMK을 생성합니다. 서명을 생성하는 프라이빗 키는 절대로 암호화되지 않은 상태로 AWS KMS를 떠나지 않습니다. 퍼블릭 키는 AWS KMS 내부에서 서명을 확인하는 데 사용하거나 퍼블릭 키를 다운로드하여 AWS KMS 외부에서 사용할 수 있습니다.

AWS KMS는 비대칭 CMKs에 대해 다음과 같은 ECC 키 사양을 지원합니다.

  • 비대칭 NIST 권장 타원 곡선 키 페어(서명 및 확인)

    • ECC_NIST_P256(secp256r1)

    • ECC_NIST_P384(secp384r1)

    • ECC_NIST_P521(secp521r1)

  • 기타 비대칭 타원 곡선 키 페어(서명 및 확인)

    • ECC_SECG_P256K1(secp256k1), 암호 화폐에 공통적으로 사용.

선택하는 ECC 키 사양은 보안 표준 또는 작업 요구 사항에 따라 결정될 수 있습니다. 일반적으로 작업에 실용적이고 저렴한 곡선 중에서 가장 포인트가 많은 곡선을 사용하십시오.

암호 화폐에 사용할 비대칭 CMK를 생성하는 경우 ECC_SECG_P256K1 키 사양을 사용합니다. 이 키 사양은 다른 용도로도 사용할 수 있지만 비트코인 및 기타 암호 화폐에는 필수입니다.

ECC 키 사양이 다른 CMKs는 가격이 다르게 책정되며 다른 요청 할당량가 적용됩니다. AWS KMS 요금에 대한 자세한 내용은 AWS 키 관리 서비스 요금을 참조하십시오. 요청 할당량에 대한 자세한 내용은 요청 할당량 단원을 참조하십시오.

다음 표에는 AWS KMS가 각 ECC 키 사양에 대해 지원하는 서명 알고리즘이 나와 있습니다. 특정 서명 알고리즘을 사용하도록 CMK를 구성할 수 없습니다. 그러나 kms:SigningAlgorithm 정책 조건을 사용하여 보안 주체가 CMK와 함께 사용할 수 있는 서명 알고리즘을 지정할 수 있습니다.

ECC 키 사양에 지원되는 서명 알고리즘
키 사양 서명 알고리즘 알고리즘 설명
ECC_NIST_P256 ECDSA_SHA_256 NIST FIPS 186-4, Section 6.4(메시지 다이제스트를 위해 키 및 SHA-256에 의해 지정된 곡선을 사용하는 ECDSA 서명.)
ECC_NIST_P384 ECDSA_SHA_384 NIST FIPS 186-4, Section 6.4(메시지 다이제스트를 위해 키 및 SHA-384에 의해 지정된 곡선을 사용하는 ECDSA 서명.)
ECC_NIST_P521 ECDSA_SHA_512 NIST FIPS 186-4, Section 6.4(메시지 다이제스트를 위해 키 및 SHA-512에 의해 지정된 곡선을 사용하는 ECDSA 서명.)
ECC_SECG_P256K1 ECDSA_SHA_256 NIST FIPS 186-4, Section 6.4(메시지 다이제스트를 위해 키 및 SHA-256에 의해 지정된 곡선을 사용하는 ECDSA 서명.)