AWS Key Management Service 개념 - AWS Key Management Service

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

AWS Key Management Service 개념

AWS Key Management Service(AWS KMS)의 기본 용어와 개념, 어떤 상호 작용을 통해 데이터를 보호하는지 알아봅니다.

고객 마스터 키 (CMKs)

고객 마스터 키 은 의 주요 리소스입니다. AWS KMS.

고객 마스터 키 (CMK)는 마스터 키. 더 CMK 에는 키 ID, 생성 날짜, 설명 및 키 상태와 같은 메타데이터가 포함됩니다. 더 CMK 에는 데이터를 암호화하고 해독하는 데 사용되는 주요 자료도 포함되어 있습니다.

AWS KMS 대칭 및 비대칭 지원 CMKs. 가 대칭형 CMK 는 암호화 및 암호 해독에 사용되는 256비트 키를 나타냅니다. 안 비대칭 CMK 암호화 및 암호 해독 또는 서명 및 검증에 사용되는 RSA 키 쌍(둘 다는 아님) 또는 서명 및 검증에 사용되는 타원형 곡선(ECC) 키 쌍을 나타냅니다. 대칭 및 비대칭에 대한 자세한 내용은 CMKs, 참조 대칭 및 비대칭 키 사용.

CMKs 은(는) AWS KMS. 대칭형 CMKs 및 비대칭 키의 개인 키 CMKs 절대 떠나지 않음 AWS KMS 암호화되지 않은. 을(를) 관리하려면 CMK, 다음을 사용할 수 있습니다. AWS Management 콘솔 또는 AWS KMS 주성분. 을 사용하려면 CMK 에서 암호화 작업, 다음을 사용해야 합니다. AWS KMS API. 이 전략은 데이터 키와 다릅니다. AWS KMS는 데이터 키를 저장, 관리 또는 추적하지 않습니다. AWS KMS 밖에서 이들을 사용해야 합니다.

기본적으로 AWS KMS 주요 소재를 만들어 CMK. 이 키 구성 요소를 추출, 내보내기, 보기 또는 관리할 수 없습니다. 또한 이 핵심 자료를 삭제할 수 없습니다. 삭제 CMK. 그러나, 여러분은 자신의 핵심 자료 가져오기 을(를) CMK 핵심 자료를 만들어 CMK 에서 AWS CloudHSM 와 연결된 클러스터 AWS KMS 사용자 지정 키 저장소.

생성 및 관리에 대한 자세한 내용은 CMKs, 참조 시작하기. CMKs 사용에 대한 자세한 내용은 AWS Key Management Service API Reference를 참조하십시오.

AWS KMS 은 세 가지 유형의 CMKs: 고객 관리 CMKs, AWS 관리됨 CMKs, 및 AWS 소유 CMKs.

유형 CMK 볼 수 있음 CMK 메타데이터 관리 가능 CMK 내 AWS 계정에서만 사용 자동 회전
고객 관리 CMK : 선택. 365일(1년)마다.
AWS 관리됨 CMK 아니요 필수. 1,095일(3년)마다.
AWS 소유 CMK 아니요 아니요 아니요 다양.

고객이 관리하는 CMKs 최저 AWS 관리됨 CMKs, 사용 KeyManager 필드 키 설명 작동 응답. 고객이 관리하는 CMKs, KeyManager 값은 Customer. 대상 AWS 관리됨 CMKs, KeyManager 값은 AWS.

AWS 통합되는 서비스를 AWS KMS 지원의 차이가 있습니다. CMKs. 일부 AWS 서비스에서는 기본적으로 AWS 소유 CMK 또는 AWS 관리됨 CMK. 기타 AWS 고객이 관리하는 데이터 암호화 서비스를 제공합니다. CMK 을 선택합니다. 기타 AWS 모든 유형의 서비스 지원 CMKs 쉽게 사용할 수 있도록 AWS 소유 CMK, 가시성 AWS 관리됨 CMK또는 관리 대상 고객의 통제 CMK. AWS 서비스에서 제공하는 암호화 옵션에 대한 자세한 내용은 해당 서비스에 대한 사용 설명서 또는 개발자 안내서의 저장 데이터 암호화 주제를 참조하십시오.

고객 관리 CMKs

고객 관리 CMKs 은(는) CMKs 내 AWS 계정을 만들고, 소유하고, 관리하는 데 사용됩니다. 이 모든 것을 완벽하게 제어할 수 있습니다. CMKs, 여기에는 핵심 정책, IAM 정책 및 보조금, 활성화 및 비활성화 그들을 암호화 자료 회전, 태그 추가, 별칭 작성 을(를) 참조합니다. CMK, 및 예약 CMKs 삭제.

고객 관리 CMKs 에 나타납니다. 고객 관리 키 페이지 / AWS Management 콘솔 에 대해 AWS KMS. 관리 대상 고객 파악 CMK, 사용 키 설명 작업. 고객이 관리하는 CMKs, 의 값 KeyManager 의 필드 DescribeKey 응답은 CUSTOMER.

고객이 관리하는 CMKs 암호화 운영 및 AWS CloudTrail 로그. 또한 많은 사람들이 AWS 통합되는 서비스를 AWS KMS 관리 대상 고객을 지정할 수 있습니다. CMK 를 사용하여 사용자를 위해 저장 및 관리하는 데이터를 보호할 수 있습니다.

고객 관리 CMKs 월 수수료 및 무료 등급 초과 사용 수수료가 부과됩니다. 계정의 AWS KMS 할당량에 대해 요금이 계산됩니다. 자세한 내용은 AWS Key Management Service 요금할당량 단원을 참조하십시오.

AWS 관리됨 CMKs

AWS 관리됨 CMKs 은(는) CMKs 귀하를 대신하여 생성, 관리 및 사용되는 귀하의 계정에서 AWS 통합되는 서비스를 AWS KMS. 일부 AWS 서비스 지원만 AWS 관리됨 CMK. 다른 사람들은 AWS CMK 소유 또는 CMKs.

다음을 수행할 수 있습니다. 보기 AWS 관리됨 CMKs 귀하의 계정에서 주요 정책 보기, 및 사용 여부 감사 에서 AWS CloudTrail 로그. 그러나 이 두 가지를 관리할 수는 없습니다. CMKs을 클릭하고, 이를 순환하거나, 주요 정책을 변경합니다. 또한 AWS 관리됨 CMKs 암호화 작업을 직접 수행할 수 있습니다. 암호화 작업을 생성하는 서비스는 사용자를 대신하여 암호화 작업을 사용합니다.

AWS 관리됨 CMKs 에 나타납니다. AWS 관리되는 키 페이지 / AWS Management 콘솔 에 대해 AWS KMS. 또한 가장 중요한 AWS 관리됨 CMKs 포맷을 가진 별칭을 기준으로 aws/service-name, 예: aws/redshift. 최종적인 AWS 관리됨 CMK, 사용 키 설명 작업. 대상 AWS 관리됨 CMKs, 의 값 KeyManager 의 필드 DescribeKey 응답은 AWS.

가입자는 다음에 대한 월 수수료를 납부하지 않습니다. AWS 관리됨 CMKs. 프리 티어를 초과하는 사용에 대해서 요금이 부과될 수 있으며, 일부 AWS 서비스는 이러한 요금을 사용자 대신 부담합니다. 자세한 내용은 저장 시 암호화 항목을 참조하십시오. AWS 관리됨 CMKs 리소스 할당량에 대해 계산하지 않습니다. CMKs 계정 의 각 지역. 그러나 귀하의 계좌에서 본인을 대신하여 사용될 경우, CMKs 요청 할당량에 대해 카운트합니다. 자세한 내용은 AWS Key Management Service 요금할당량 단원을 참조하십시오.

AWS 소유 CMKs

AWS 소유 CMKs 은(는) 다음 컬렉션입니다. CMKs 그건 AWS 서비스가 여러 서비스에서 사용할 수 있도록 소유 및 관리 AWS 계정. 하지만 AWS 소유 CMKs 이(가) 귀하의 AWS 계정, AWS 서비스를 통해 AWS 소유 CMKs 을 참조하십시오.

AWS 소유의 AWS를 생성하거나 관리할 필요가 없습니다. CMKs. 그러나 AWS 소유 CMK를 보거나, 사용하거나, 추적하거나, 감사할 수 없습니다. 다음에 대한 월별 수수료 또는 사용료가 부과되지 않습니다. AWS 소유 CMKs 그리고 AWS KMS 할당량 을 클릭합니다().

AWS에서 소유한 CMK에 대한 키 교체 전략은 CMK를 생성하고 관리하는 AWS 서비스에 의해 결정됩니다. 의 유형에 대한 자세한 내용은 CMKs 그건 AWS 서비스 지원(다음 포함) AWS 소유 CMKs, 참조 저장 시 암호화 항목을 참조하십시오.

데이터 키

데이터 키는 많은 양의 데이터 및 기타 데이터 암호화 키를 포함하여 데이터를 암호화하는 데 사용할 수 있는 암호화 키입니다.

다음을 사용할 수 있습니다. AWS KMS 고객 마스터 키 (CMKs)를 사용하여 데이터 키를 생성, 암호화 및 해독합니다. 그러나 AWS KMS는 데이터 키를 저장, 관리 또는 추적하거나 데이터 키로 암호화 작업을 수행하지 않습니다. 따라서 AWS KMS 밖에서 데이터 키를 사용하고 관리해야 합니다.

데이터 키 생성

데이터 키를 만들려면 데이터 키 생성 작업. AWS KMS 은(는) CMK 데이터 키를 생성하도록 지정한 이 작업은 데이터 키의 일반 텍스트 복제본과 CMK. 다음 그림은 이 작업을 보여 줍니다.


          데이터 키 생성

또한 AWS KMS는 오직 암호화된 데이터 키만 반환하는 GenerateDataKeyWithoutPlaintext 작업을 지원합니다. 데이터 키를 사용해야 할 때는 AWS KMS에 데이터 키를 해독하도록 요청합니다.

데이터 키로 데이터 암호화

AWS KMS는 데이터 키를 사용하여 데이터를 암호화할 수 없습니다. 하지만 OpenSSL 또는 AWS 암호화 SDK 같은 암호화 라이브러리를 사용하여 KMS 밖에서 데이터 키를 사용할 수 있습니다.

일반 텍스트 데이터 키를 사용하여 데이터를 암호화한 다음에는 가능한 빨리 메모리에서 제거하십시오. 데이터 암호화를 해제하는 데 사용할 수 있도록 암호화된 데이터와 함께 암호화된 데이터 키를 안전하게 저장할 수 있습니다.


          사용자 데이터를 외부로 암호화 AWS KMS

데이터 키로 데이터 복호화

데이터를 해독하려면 암호화된 데이터 키를 복호화 작업. AWS KMS 은(는) CMK 를 클릭하여 데이터 키를 해독한 다음 일반 텍스트 데이터 키 를 반환합니다. 일반 텍스트 데이터 키를 사용하여 데이터를 복호화한 다음, 가능한 빨리 메모리에서 일반 텍스트 데이터 키를 제거하십시오.

다음 다이어그램은 Decrypt 작업을 사용하여 암호화된 데이터 키를 암호화 해제하는 방법을 보여줍니다.


          데이터 키 해독

데이터 키 페어

데이터 키 페어는 수학적으로 관련된 퍼블릭 키와 프라이빗 키로 구성된 비대칭 데이터 키입니다. AWS KMS 외부에서 클라이언트 측 암호화 및 암호 해독 또는 서명 및 확인에 사용하도록 설계되었습니다.

OpenSSL과 같은 도구가 생성하는 데이터 키 쌍과 달리 AWS KMS 대칭형으로 각 데이터 키 쌍의 개인 키를 보호합니다. CMK 에서 AWS KMS 을(를) 지정합니다. 그러나 AWS KMS는 데이터 키 페어를 저장, 관리 또는 추적하거나 데이터 키 페어로 암호화 작업을 수행하지 않습니다. 따라서 AWS KMS 외부에서 데이터 키를 사용하고 관리해야 합니다.

AWS KMS가 지원하는 데이터 키 페어의 유형은 다음과 같습니다.

  • RSA 키 쌍: RSA_2048, RSA_3072 및 RSA_4096

  • 타원 곡선 키 페어, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1

일반적으로 선택할 데이터 키 페어의 유형은 사용 사례 또는 규정 요구 사항에 따라 다릅니다. 대부분의 인증서에는 RSA 키가 필요합니다. 타원 곡선 키는 흔히 디지털 서명에 사용됩니다. ECC_SECG_P256K1 키는 암호 화폐에 공통적으로 사용입니다.

데이터 키 페어 생성

데이터 키 페어를 생성하려면 GenerateDataKeyPair 또는 GenerateDataKeyPairWithoutPlaintext 작업을 호출합니다. 대칭 지정 CMK 개인 키 암호화에 을 사용합니다.

GenerateDataKeyPair는 일반 텍스트 퍼블릭 키, 일반 텍스트 프라이빗 키 및 암호화된 프라이빗 키를 반환합니다. 디지털 서명을 생성하는 경우와 같이 일반 텍스트 프라이빗 키가 즉시 필요할 때 이 작업을 사용합니다.

GenerateDataKeyPairWithoutPlaintext는 일반 텍스트 퍼블릭 키 및 암호화된 프라이빗 키를 반환하지만 일반 텍스트 프라이빗 키는 반환하지 않습니다. 퍼블릭 키로 암호화하는 경우와 같이 일반 텍스트 프라이빗 키가 즉시 필요하지 않은 경우 이 작업을 사용합니다. 나중에 데이터를 암호 해독하기 위해 일반 텍스트 프라이빗 키가 필요할 때 Decrypt 작업을 호출 할 수 있습니다.

다음 그림은 GenerateDataKeyPair 작업을 보여 줍니다. GenerateDataKeyWithoutPlaintext 작업은 일반 텍스트 프라이빗 키를 생략합니다.


          데이터 키 페어 생성

데이터 키 페어로 데이터 암호화

데이터 키 페어를 사용하여 암호화하는 경우 해당 페어의 퍼블릭 키를 사용하여 데이터를 암호화하고 동일한 페어의 프라이빗 키를 사용하여 데이터를 해독합니다. 일반적으로 데이터 키 페어는 많은 당사자가 프라이빗 키를 보유한 당사자만 해독할 수 있는 데이터를 암호화해야 할 때 사용됩니다.

퍼블릭 키가 있는 당사자는 다음 다이어그램과 같이 해당 키를 사용하여 데이터를 암호화합니다.


          외부 데이터 키 쌍의 공개 키를 사용하여 사용자 데이터를 암호화합니다. AWS KMS

데이터 키 페어로 데이터 암호 해독

데이터를 암호 해독하려면 데이터 키 페어의 프라이빗 키를 사용합니다. 작업이 성공하려면 퍼블릭 키와 프라이빗 키가 동일한 데이터 키 페어에 속해야 하며 동일한 암호화 알고리즘을 사용해야 합니다.

암호화된 프라이빗 키를 해독하려면 Decrypt 작업에 키를 전달합니다. 일반 텍스트 프라이빗 키를 사용하여 데이터를 암호 해독합니다. 그런 다음 가능한 한 빨리 메모리에서 일반 텍스트 프라이빗 키를 제거하십시오.

다음 다이어그램은 데이터 키 페어의 프라이빗 키를 사용하여 암호화 텍스트를 해독하는 방법을 보여줍니다.


          외부 데이터 키 쌍의 개인 키를 사용하여 데이터를 해독합니다. AWS KMS.

데이터 키 페어를 사용하여 메시지 서명

메시지에 대한 암호화 서명을 생성하려면 데이터 키 페어의 프라이빗 키를 사용합니다. 퍼블릭 키를 가진 사람은 누구나 이 키를 사용하여 메시지가 프라이빗 키로 서명되었는지, 서명 이후 변경되지 않았는지 확인할 수 있습니다.

개인 키가 암호화된 경우 암호화된 개인 키를 복호화 작업. AWS KMS 은(는) CMK 를 클릭하여 데이터 키를 해독한 다음 일반 텍스트 개인 키 를 반환합니다. 일반 텍스트 프라이빗 키를 사용하여 서명을 생성합니다. 그런 다음 가능한 한 빨리 메모리에서 일반 텍스트 프라이빗 키를 제거하십시오.

메시지에 서명하려면 OpenSSL의 dgst 명령과 같은 암호화 해시 함수를 사용하여 메시지 다이제스트를 생성합니다. 그런 다음 일반 텍스트 프라이빗 키를 서명 알고리즘에 전달합니다. 결과는 메시지의 내용을 나타내는 서명입니다.

다음 다이어그램은 데이터 키 페어의 프라이빗 키를 사용하여 메시지에 서명하는 방법을 보여줍니다.


          외부 데이터 키 쌍에서 개인 키를 사용하여 암호화 서명을 생성합니다. AWS KMS.

데이터 키 페어를 사용하여 서명 확인

데이터 키 페어의 퍼블릭 키가 있는 사람은 누구나 이 키를 사용하여 프라이빗 키로 생성한 서명을 확인할 수 있습니다. 확인은 권한이 부여된 사용자가 지정된 프라이빗 키 및 서명 알고리즘을 사용하여 메시지에 서명했으며 서명된 이후 메시지가 변경되지 않았음을 확인합니다.

확인이 성공하려면 서명을 확인하는 당사자가 동일한 유형의 다이제스트를 생성하고 동일한 알고리즘을 사용하며 메시지에 서명하는 데 사용되는 프라이빗 키에 해당하는 퍼블릭 키를 사용해야 합니다.

다음 다이어그램은 데이터 키 페어의 퍼블릭 키를 사용하여 메시지 서명을 확인하는 방법을 보여 줍니다.


          외부 데이터 키 쌍의 공개 키로 암호화 서명을 확인합니다. AWS KMS.

Aliases

별칭 은 CMK 의 표시 이름입니다. 예를 들어 CMK를 테스트 키 대신 1234abcd-12ab-34cd-56ef-1234567890ab.

별칭을 사용하면 AWS Management 콘솔. 또한 별칭을 사용하여 일부 AWS KMS 운영(다음 포함) 암호화 작업. 애플리케이션에서는 하나의 별칭을 사용하여 각 AWS 지역.

내부 AWS KMS별칭은 CMK의 속성이 아니라 독립적인 리소스입니다. 따라서 연결된 CMK에 영향을 주지 않고 별칭을 추가, 변경 및 삭제할 수 있습니다.

자세히 알아보기

  • 별칭에 대한 자세한 내용은 를 참조하십시오. 별칭 사용.

  • 별칭을 포함한 주요 식별자의 형식에 대한 자세한 내용은 을 참조하십시오. 키 식별자(KeyId).

  • CMK와 연결된 별칭을 찾는 데 도움이 필요하면 을 참조하십시오. 별칭 이름 및 별칭 ARN 찾기

  • 여러 프로그래밍 언어로 별칭을 만들고 관리하는 예제는 를 참조하십시오. 별칭으로 작업.

암호화 작업

내부 AWS KMS, 암호화 작업 API 작업으로, CMKs 데이터 보호. 왜냐하면 CMKs 다음 범위 내에 남아 있음 AWS KMS님, 전화해야 합니다. AWS KMS 사용할 수 있는 CMK 암호화 작업.

암호화 작업을 수행하려면 CMKs, 사용 AWS SDK, AWS Command Line Interface (AWS CLI또는 PowerShell용 AWS 도구. AWS KMS 콘솔에서 암호화 작업을 수행할 수 없습니다. 여러 프로그래밍 언어로 암호화 작업을 호출하는 예는 AWS KMS API 프로그래밍 단원을 참조하십시오.

다음 표에는 AWS KMS 암호화 작업이 나와 있습니다. 또한 키 유형과 키 사용 요구 사항 CMKs 작업에 사용됩니다.

연산 CMK 키 유형 CMK 키 사용
암호화 해제 Any(임의)* ENCRYPT_DECRYPT
Encrypt Any(임의)* ENCRYPT_DECRYPT
GenerateDataKey 대칭 * ENCRYPT_DECRYPT
GenerateDataKeyPair 대칭 [1] ENCRYPT_DECRYPT
GenerateDataKeyPairWithoutPlaintext 대칭 [1] ENCRYPT_DECRYPT
GenerateDataKeyWithoutPlaintext 대칭 * ENCRYPT_DECRYPT
GenerateRandom 해당 없음. 이 작업은 CMK. 해당 사항 없음
ReEncrypt Any(임의)* ENCRYPT_DECRYPT
Sign 비대칭 SIGN_VERIFY
확인 비대칭 SIGN_VERIFY

[1] GenerateDataKeyPairGenerateDataKeyPairWithoutPlaintext는 대칭 CMK로 보호되는 비대칭 데이터 키 페어를 생성합니다.

암호화 작업과 관련한 권한에 대한 자세한 내용은 AWS KMS API 권한: 조치 및 리소스 참조를 참조하십시오.

모든 사용자에 대한 AWS KMS 응답성 및 성능을 유지하기 위해 AWS KMS는 초당 호출할 수 있는 암호화 작업 수에 대한 할당량을 설정합니다. 자세한 내용은 암호화 작업에 대한 공유 할당량 단원을 참조하십시오.

키 식별자(KeyId)

키 식별자는 AWS KMS 고객 마스터 키 (CMKs). 이 도구는 여러분이 자신의 CMKs 콘솔의. 여러분은 이를 사용하여 CMKs 사용할 수 있는 AWS KMS API 작업, IAM 정책 및 보조금.

AWS KMS는 몇 가지 키 식별자를 정의합니다. 사용자가 CMK, AWS KMS 는 의 속성인 키 ARN 및 키 ID를 생성합니다. CMK. 별칭을 만들면 정의한 별칭 이름을 기반으로 AWS KMS가 별칭 ARN을 생성합니다. AWS Management 콘솔 및 AWS KMS API에서 키 및 별칭 식별자를 볼 수 있습니다.

에서 AWS KMS 콘솔, 보기 및 필터링 가능 CMKs 를 클릭하고 키 ID 및 별칭 이름 을 기준으로 정렬합니다. 콘솔에서 키 식별자를 찾는 방법에 대한 도움말은 키 ID 및 ARN 찾기 단원을 참조하십시오.

에서 AWS KMS API, 사용자가 CMK 이름 KeyId 또는 변동(예: TargetKeyId 또는 DestinationKeyId. 그러나 이러한 매개 변수의 값은 키 ID로 제한되지 않습니다. 일부는 유효한 키 식별자를 취할 수 있습니다. 각 파라미터의 값에 대한 자세한 내용은 AWS Key Management Service API Reference의 파라미터 설명을 참조하십시오.

참고

AWS KMS API를 사용할 때는 사용하는 키 식별자를 주의해야 합니다. API에 따라 다른 키 식별자가 필요합니다. 일반적으로 작업에 실용적인 가장 완벽한 키 식별자를 사용하십시오.

AWS KMS는 다음 키 식별자를 지원합니다.

키 ARN.

주요 ARN은 CMK. 이 식별자는 CMK. 키 ARN에는 AWS 계정, 리전 및 키 ID가 포함됩니다. 의 주요 ARN을 찾는 데 도움이 필요한 경우 CMK, 참조 키 ID 및 ARN 찾기.

키 ARN의 형식은 다음과 같습니다.

arn:<partition>:kms:<region>:<account-id>:key/<key-id>

다음은 키 ARN의 예입니다.

arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
키 ID.

키 ID는 CMK 계정 및 지역 내에 있습니다. 의 키 ID를 찾는 데 도움이 필요한 경우 CMK, 참조 키 ID 및 ARN 찾기.

다음은 키 ID의 예입니다.

1234abcd-12ab-34cd-56ef-1234567890ab
별칭 ARN.

별칭 ARN은 별칭 AWS KMS의 Amazon 리소스 이름(ARN)입니다. 별칭 및 CMK 를 나타냅니다. 별칭 ARN에는 AWS 계정, 리전 및 별칭 이름이 포함됩니다.

별칭 ARN은 언제든지 특정 CMK. 그러나, CMK ARN은 서로 다른 CMKs 다른 시간. 의 별칭 ARN을 찾는 데 도움이 필요한 경우 CMK, 참조 .

별칭 ARN의 형식은 다음과 같습니다.

arn:<partition>:kms:<region>:<account-id>:alias/<alias-name>

다음은 가상 ExampleAlias의 별칭 ARN입니다.

arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
별칭 이름

별칭 이름은 CMK 계정 및 지역 내에 있습니다. 에서 AWS KMS API, 별칭 이름은 항상 alias. 의 별칭 이름을 찾는 데 도움이 필요한 경우 CMK, 참조 .

별칭 이름의 형식은 다음과 같습니다.

alias/<alias-name>

예: .

alias/ExampleAlias

aws/ 별칭 이름에 대한 접두사는 AWS 관리됨 CMKs. 이 접두사를 가진 별칭은 만들 수 없습니다. 예를 들어, AWS 관리됨 CMK 에 대해 Amazon Simple Storage Service (Amazon S3)는 다음과 같습니다.

alias/aws/s3

키 구성 요소 오리진

주요 재료 원산지 은(는) CMK 속성은 에서 주요 자료의 소스를 식별합니다. CMK. 주요 재료 원산지는 CMK, 을(를) 변경할 수 없습니다. 의 주요 재료 원산지를 찾으려면 CMK, 사용 키 설명 또는 출발지암호화 구성 세부 정보 페이지의 섹션 CMK 에서 AWS KMS 콘솔. 자세한 내용은 키 보기를 참조하십시오.

CMKs 은(는) 다음 주요 재료 원산지 값 중 하나를 가질 수 있습니다.

KMS(기본값)

API 값: AWS_KMS

AWS KMS 주요 자료를 만들고 관리합니다. CMK 를 사용할 수 있습니다. 이 값은 기본값이며 대부분의 경우 권장 값입니다. CMKs.

AWS KMS에서 키 구성 요소로 키를 생성하는 방법에 대한 자세한 내용은 키 생성 단원을 참조하십시오.

외부

API 값: EXTERNAL

더 CMK 은(는) 가져온 주요 자재. 사용자가 CMK 을(를) 가진 External 주요 재료 원산지, CMK 은(는) 키 자재가 없습니다. 나중에 주요 자료를 CMK. 가져온 키 구성 요소를 사용하는 경우 만료되는 키 구성 요소를 교체하는 것을 포함하여 AWS KMS 외부에서 해당 키 구성 요소를 보호하고 관리해야 합니다. 자세한 내용은 가져온 키 구성 요소 정보 단원을 참조하십시오.

을(를) 만드는 데 도움이 필요한 경우 CMK 를 참조하십시오. 참조: 단계 1. 생성 CMK 핵심 재료 없이.

사용자 지정 키 스토어(CloudHSM)

API 값: AWS_CLOUDHSM

AWS KMS 주요 소재를 만들어 CMK 내 사용자 지정 키 저장소.

을(를) 만드는 데 도움이 필요한 경우 CMK 사용자 지정 키 저장소에서 생성 CMKs 사용자 지정 키 스토어에서

키 사양

주요 스펙 은(는) CMK 암호화 구성을 나타내는 속성 CMK. 주요 사양은 CMK 대칭 또는 비대칭이며, CMK, 및 에 사용할 수 있는 암호화 알고리즘 또는 서명 알고리즘 CMK.

일반적으로 고객이 선택한 주요 사양은 CMK 사용 사례 및 규정 요구 사항을 기반으로 합니다. 주요 사양은 생성 CMK, 을(를) 변경할 수 없습니다. 잘못된 키 사양을 선택한 경우, 삭제 CMK을 클릭하고 새 을(를) 만듭니다.

키 사양 목록 및 키 사양 선택에 대한 도움말은 키 사양 선택 단원을 참조하십시오. 의 주요 사양을 찾으려면 CMK, 사용 키 설명 또는 암호화 구성 세부 정보 페이지의 섹션 CMK 에서 AWS KMS 콘솔. 자세한 내용은 키 보기를 참조하십시오.

참고

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

프린서펄이 작성할 때 사용할 수 있는 주요 사양을 제한하기 위해 CMKs, 사용 킬로미터:CustomerMasterKeySpec 조건 키. 또한 kms:CustomerMasterKeySpec 주체가 호출할 수 있도록 하는 조건 키 AWS KMS 운영 CMK 주요 사양 기준 예를 들어, 삭제 일정을 예약할 수 있는 권한을 거부할 수 있습니다. CMK 을(를) 가진 RSA_4096 주요 사양.

키 사용

키 사용 은(는) CMK 속성이 CMK 암호화 및 암호 해독 또는 서명 및 확인에 사용됩니다. 둘 다 선택할 수는 없습니다. 사용 CMK 두 가지 이상의 작업 유형으로 인해 두 작업의 제품이 공격에 더 취약해집니다.

대칭형 키 사용 CMKs 항상 암호화 및 암호 해독입니다. 타원 곡선의 키 사용(ECC) CMKs 항상 서명하고 확인합니다. RSA의 주요 용도만 선택하면 됩니다. CMKs. 키 사용을 선택할 때는 생성 CMK, 을(를) 변경할 수 없습니다. 잘못된 키 사용을 선택한 경우 삭제 CMK을 클릭하고 새 을(를) 만듭니다.

키 사용을 선택하는 방법은 키 사용 선택 단원을 참조하십시오. 의 주요 용도를 찾으려면 CMK, 사용 키 설명 또는 암호화 구성 세부 정보 페이지의 섹션 CMK 에서 AWS KMS 콘솔. 자세한 내용은 키 보기를 참조하십시오.

주체가 생성하도록 허용하려면 CMKs 서명 및 확인 또는 암호화 및 암호 해독에만 사용 킬로미터:CustomerMasterKeyUsage 조건 키. 또한 kms:CustomerMasterKeyUsage 주체가 API 작업을 호출하도록 허용하는 조건 키 CMK 키 사용량을 기준으로 합니다. 예를 들어, CMK 키 사용량이 SIGN_VERIFY 인 경우에만

봉투 암호화

데이터를 암호화하면 데이터가 보호되지만 암호화 키를 보호해야 합니다. 암호화하는 것도 하나의 전략입니다. 봉투 암호화는 데이터 키로 일반 텍스트 데이터를 암호화한 후, 다른 키 아래에서 데이터 키를 암호화하는 방법입니다.

데이터 암호화 키를 다른 암호화 키로 암호화하고 해당 암호화 키를 다른 암호화 키로 암호화할 수도 있습니다. 그러나 궁극적으로는 키와 데이터를 복호화할 수 있도록 하나의 키는 일반 텍스트로 남겨둬야 합니다. 이 최상위 수준의 평문 키 암호화 키는 마스터 키.


        봉투 암호화

AWS KMS 귀하의 개인 정보를 보호하는 데 마스터 키 안전하게 저장 및 관리함으로써 마스터 키 저장 위치 AWS KMS, 알려진 고객 마스터 키 (CMKs), 절대 AWS KMS FIPS 검증 하드웨어 보안 모듈 암호화되지 않은. 사용 방법 AWS KMS CMK님, 전화해야 합니다. AWS KMS.


        키 암호화 키를 여러 개 사용하는 봉투 암호화

봉투 암호화는 여러 가지 장점을 제공합니다.

  • 데이터 키 보호

    데이터 키를 암호화하면 해당 데이터 키의 보안이 암호화에 의해 근본적으로 보호되기 때문에 암호화한 데이터 키의 저장에 대해 고민할 필요가 없습니다. 암호화한 데이터 키를 암호화한 데이터와 함께 안전하게 저장할 수 있습니다.

  • 동일한 데이터를 여러 대의 마스터 키

    암호화 작업, 특히 암호화되는 데이터가 대용량 객체일 경우 긴 시간이 걸릴 수 있습니다. 서로 다른 키로 원시 데이터를 여러 차례 다시 암호화하는 대신, 원시 데이터를 보호하는 데이터 키만 다시 암호화할 수 있습니다.

  • 여러 알고리즘의 강점 결합

    일반적으로 대칭 키 알고리즘이 퍼블릭 키 알고리즘보다 빠르고 더 작은 암호화 텍스트를 생성합니다. 그러나 퍼블릭 키 알고리즘은 고유한 역할 구분을 제공하고 키 관리가 더 쉽습니다. 봉투 암호화는 각 전략의 장점을 하나로 결합하게 해 줍니다.

암호화 컨텍스트

모두 AWS KMS 암호화 작업 대칭형 CMKs 수락 암호화 컨텍스트, 옵션 키 세트–데이터 에 대한 추가 컨텍스트 정보를 포함할 수 있는 값 쌍입니다. AWS KMS 암호화 컨텍스트를 다음과 같이 사용합니다. 추가 인증 데이터 (AAD) 지원 인증된 암호화.

비대칭 CMK를 사용하여 암호화 작업에서 암호화 컨텍스트를 지정할 수 없습니다. AWS KMS에서 사용하는 표준 비대칭 암호화 알고리즘은 암호화 컨텍스트를 지원하지 않습니다.

암호화 요청에 암호화 컨텍스트를 포함하면 데이터를 암호화 해제(또는 암호화 해제한 다음 다시 암호화)하는 데 동일한 암호화 컨텍스트가 필요하도록 암호 텍스트에 암호화 방식으로 바인딩됩니다. 복호화 요청에 제공된 암호화 컨텍스트가 대소문자가 정확히 일치하지 않으면 복호화 요청이 실패합니다. 암호화 컨텍스트에서 키-값 페어의 순서만 다를 수 있습니다.

암호화 컨텍스트는 보안 사항이 아닙니다. AWS CloudTrail 로그에 일반 텍스트로 표시되므로 암호화 작업을 식별하고 분류하는 데 사용할 수 있습니다.

암호화 컨텍스트는 원하는 키와 값으로 구성할 수 있습니다. 하지만 암호화되지 않으므로 암호화 컨텍스트에 민감한 정보가 포함되면 안 됩니다. 암호화 컨텍스트가 암호화 또는 복호화되는 데이터를 설명하는 것이 좋습니다. 예를 들어 파일을 암호화하는 경우, 파일 경로의 일부를 암호화 컨텍스트로 사용할 수 있습니다.

암호화 컨텍스트 쌍의 키와 값은 단순 리터럴 문자열이어야 합니다. 정수나 객체, 또는 완전히 해결되지 않는 어떤 형식도 사용할 수 없습니다. 정수 또는 부동 소수점과 같은 다른 형식을 사용할 경우 AWS KMS는 이를 문자열로 해석합니다.

"encryptionContext": { "department": "10103.0" }

암호화 컨텍스트 키와 값은 밑줄(_), 대시(-), 슬래시(/, \), 콜론(:) 같은 특수 문자를 포함할 수 있습니다.

예를 들어, Amazon Simple Storage Service (Amazon S3)는 키가 aws:s3:arn. 값은 암호화되는 파일의 S3 버킷 경로입니다.

"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::bucket_name/file_name" }

또한 암호화 컨텍스트를 사용하여 고객 마스터 키 (CMKs)을(를) 계정 에서 확인할 수 있습니다. 정책문 에서 암호화 컨텍스트 를 허가 의 제약 조건과 조건으로 사용할 수 있습니다.

암호화 컨텍스트를 이용해 암호화된 데이터의 무결성을 보호하는 방법을 알아보려면 AWS 보안 블로그에서 AWS Key Management Service와 EncryptionContext를 이용해 암호화된 데이터의 무결성을 보호하는 방법 게시물을 참조하십시오.

암호화 컨텍스트 관련 추가 내용.

암호화 컨텍스트는 주로 무결성 및 신뢰성을 확인하는 데 사용됩니다. 그러나 암호화 컨텍스트를 사용하여 대칭형 고객 마스터 키 (CMKs) 핵심 정책 및 IAM 정책.

kms:EncryptionContext:kms:EncryptionContextKeys 조건 키는 요청이 특정 암호화 컨텍스트 키 또는 키–값 페어를 포함하는 경우에만 권한을 허용(또는 거부)합니다.

예를 들어, 다음 주요 정책문은 RoleForExampleApp 역할을 사용하여 CMK 에서 Decrypt 작업. 이 정책 문은 kms:EncryptionContext: 조건 키를 사용하여 요청의 암호화 컨텍스트가 AppName:ExampleApp 암호화 컨텍스트 쌍을 포함하는 경우에만 이 권한을 허용합니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }

이러한 암호화 컨텍스트 키에 대한 자세한 내용은 AWS KMS의 정책 조건 사용 단원을 참조하십시오.

권한 부여를 생성할 때 요청에 특정 암호화 컨텍스트 또는 암호화 컨텍스트 키가 포함되는 경우에만 액세스를 허용하는 권한 부여 제약 조건을 포함시킬 수 있습니다. EncryptionContextEqualsEncryptionContextSubset 권한 부여 제약 조건에 대한 자세한 내용은 제약 편집 단원을 참조하십시오.

대칭에 대한 허용에서 암호화 컨텍스트 제약 조건을 지정하려면 CMK, 사용 Constraints 매개변수 생성승인 작업. 이 예제에서는 AWS Command Line Interface를 사용하지만 원하는 AWS SDK를 사용할 수 있습니다. 이 명령이 생성하는 권한 부여는 Decrypt 작업을 호출할 수 있는 exampleUser 권한입니다. 그러나 이 권한은 Decrypt 요청의 암호화 컨텍스트가 "Department": "IT" 암호화 컨텍스트 쌍을 포함하는 경우에만 유효합니다.

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

결과 권한 부여는 다음과 같습니다. exampleUser에 부여된 권한은 Decrypt 요청이 권한 부여 제약 조건에 지정된 암호화 컨텍스트 쌍을 포함하는 경우에만 유효합니다. 보조금을 찾으려면 CMK, 사용 목록승인 작업.

$ aws kms list-grants --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "Grants": [ { "Name": "", "IssuingAccount": "arn:aws:iam::111122223333:root", "GrantId": "8c94d1f12f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", "Operations": [ "Decrypt" ], "GranteePrincipal": "arn:aws:iam::111122223333:user/exampleUser", "Constraints": { "EncryptionContextSubset": { "Department": "IT" } }, "CreationDate": 1568565290.0, "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole" } ] }

AWS 서비스에서는 종종 사용 권한을 부여하는 암호화 컨텍스트 제약 조건을 사용합니다. CMKs 내 AWS 계정. 예를 들어, Amazon DynamoDB 은(는) 다음과 같은 보조금을 사용하여 AWS 관리됨 CMK 에 대해 DynamoDB 계정 에서 확인할 수 있습니다. 이 권한 부여의 EncryptionContextSubset 권한 부여 제약 조건은 권한 부여에 지정된 권한이 요청의 암호화 컨텍스트가 "subscriberID": "111122223333""tableName": "Services" 쌍을 포함하는 경우에만 유효하게 만듭니다. 이 상여금 제약은 상여금이 DynamoDB 지정된 을(를) 사용하려면 CMK 특정 테이블만 AWS 계정.

이 출력을 가져오려면 목록승인 작동 AWS 관리됨 CMK 에 대해 DynamoDB 계정 에서 확인할 수 있습니다.

$ aws kms list-grants --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 { "Grants": [ { "Operations": [ "Decrypt", "Encrypt", "GenerateDataKey", "ReEncryptFrom", "ReEncryptTo", "RetireGrant", "DescribeKey" ], "IssuingAccount": "arn:aws:iam::111122223333:root", "Constraints": { "EncryptionContextSubset": { "aws:dynamodb:tableName": "Services", "aws:dynamodb:subscriberId": "111122223333" } }, "CreationDate": 1518567315.0, "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "GranteePrincipal": "dynamodb.us-west-2.amazonaws.com", "RetiringPrincipal": "dynamodb.us-west-2.amazonaws.com", "Name": "8276b9a6-6cf0-46f1-b2f0-7993a7f8c89a", "GrantId": "1667b97d27cf748cf05b487217dd4179526c949d14fb3903858e25193253fe59" } ] }

AWS KMS 사용 AWS CloudTrail 암호화 컨텍스트를 로깅하여 CMKs 및 데이터가 액세스되었습니다. 로그 항목에는 CMK 로그 항목의 암호화 컨텍스트에서 참조하는 특정 데이터를 암호화하거나 해독하는 데 사용되었습니다.

중요

암호화 컨텍스트가 로깅되기 때문에 민감한 정보가 포함될 수 없습니다.

Decrypt 또는 ReEncrypt 작업 호출 시 암호화 컨텍스트 사용을 간소화하기 위해 암호화된 데이터와 함께 암호화 컨텍스트를 저장할 수 있습니다. 암호화 또는 해독을 위해 필요할 때 전체 암호화 컨텍스트를 만드는 데 도움이 되는 암호화 컨텍스트만 저장하는 것이 좋습니다.

예를 들어 암호화 컨텍스트가 파일의 정규화된 경로인 경우 해당 경로의 일부만 암호화된 파일 내용과 함께 저장합니다. 그런 다음 전체 암호화 컨텍스트가 필요할 때 저장된 조각으로부터 다시 구성합니다. 파일 이름을 변경하거나 다른 위치로 이동하는 등 파일을 변조하면 암호화 컨텍스트 값이 변경되고 해독 요청이 실패합니다.

키 정책

사용자가 CMK, 누가 이를 사용하고 관리할 수 있는지 결정합니다. CMK. 이러한 권한은 키 정책이라는 문서에 포함됩니다. 키 정책을 사용하여 관리 대상 고객의 권한을 언제든지 추가, 제거 또는 변경할 수 있습니다. CMK. 그러나 AWS 관리됨 CMK. 자세한 정보는 AWS KMS에 대한 인증 및 액세스 제어 단원을 참조하십시오.

Grants

권한 부여는 권한을 제공하기 위한 또 하나의 메커니즘입니다. 이는 키 정책의 대안입니다. 권한 부여는 매우 구체적일 수 있고 생성 및 취소가 간편하므로 임시 권한 또는 보다 세부적인 권한을 제공하는 데 자주 사용됩니다.

권한 부여 토큰

권한 부여를 생성할 때 최종 일관성으로 인해 권한 부여에 지정된 권한이 즉시 적용되지 않을 수 있습니다. 잠재적 지연을 완화해야 하는 경우 토큰 부여 귀하의 개인 정보에 대한 응답으로 생성승인 요청. AWS KMS API 요청을 통한 권한 부여 토큰을 전달하여 권한 부여의 권한이 즉시 적용되도록 할 수 있습니다. 다음 AWS KMS API 작업이 권한 부여 토큰을 수락합니다.

권한 부여 토큰은 비밀이 아닙니다. 권한 부여 토큰에는 권한 부여의 대상 및 그에 따라 사용할 수 있는 사람에 대한 정보가 포함되므로 권한 부여의 권한이 즉시 적용될 수 있습니다.

감사 CMK 사용

AWS CloudTrail을 사용해 키 사용을 감사할 수 있습니다. CloudTrail은 계정의 AWS API 호출 및 관련 이벤트 내역이 포함된 로그 파일을 생성합니다. 이러한 로그 파일은 AWS Management Console, AWS SDK 및 명령줄 도구로 생성한 모든 AWS KMS API 요청을 포함합니다. 또한 로그 파일은 AWS 서비스가 사용자 대신 생성한 AWS KMS에 대한 요청도 포함합니다. 이러한 로그 파일을 사용하여 CMK 사용, 요청된 작업, 요청자의 ID 및 원본 IP 주소. 자세한 내용은 AWS CloudTrail를 사용한 로깅AWS CloudTrail User Guide를 참조하십시오.

키 관리 인프라

암호화 기법에서 일반적인 방법은 AES(Advanced Encryption Standard)와 비밀 키처럼 공개적으로 사용할 수 있고 피어 검토를 거친 알고리즘으로 암호화하고 복호화하는 것입니다. 암호화 기법에서 가장 큰 문제 중 하나는 키를 비밀로 유지하기 매우 어렵다는 점입니다. 일반적으로 키 관리 인프라스트럭처(KMI)의 작업입니다. AWS KMS 는 귀하를 위해 KMI를 운영합니다. AWS KMS 은(는) 귀하의 마스터 키, 호출됨 고객 마스터 키. 방법에 대한 자세한 내용은 AWS KMS 작동 중, AWS Key Management Service 암호화 세부 정보 백서.