AWS KMS keys 교체 - AWS Key Management Service

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

AWS KMS keys 교체

고객 관리형 키에 대한 새로운 암호화 자료를 만들려면 새 KMS 키를 만든 다음, 새 KMS 키를 사용하도록 애플리케이션 또는 별칭을 변경하면 됩니다. 또는 기존 KMS 키에 대한 자동 키 교체를 활성화할 수 있습니다.

KMS 키에 대한 자동 키 교체를 활성화하면 AWS KMS는 매년 KMS 키에 대한 새 암호화 구성 요소를 생성합니다. AWS KMS에서 암호화 구성 요소의 모든 이전 버전이 영구적으로 저장되므로 해당 KMS 키를 사용하여 암호화된 데이터를 해독할 수 있습니다. AWS KMS에서는 KMS 키를 삭제할 때까지 교체된 키 구성 요소가 삭제되지 않습니다. Amazon CloudWatch 및 AWS CloudTrail에서 KMS 키의 키 구성 요소 순환을 추적할 수 있습니다.

교체된 KMS 키를 사용하여 데이터를 암호화하는 경우 AWS KMS는 현재 키 구성 요소를 사용합니다. 교체된 KMS 키를 사용하여 암호화 텍스트를 해독하면 AWS KMS는 해당 데이터를 암호화하는 데 사용한 키 구성 요소의 버전을 사용합니다. 특정 버전의 키 구성 요소는 요청할 수 없습니다. AWS KMS는 적절한 키 구성 요소로 투명하게 해독하므로 코드 변경 없이 애플리케이션과 AWS 서비스에서 교체된 KMS 키를 안전하게 사용할 수 있습니다.

그러나 자동 키 순환은 KMS 키가 보호하는 데이터에는 영향을 주지 않습니다. KMS 키에서 생성한 데이터 키를 교체하거나 KMS 키에서 보호하는 데이터를 다시 암호화하지 않으며, 손상된 데이터 키의 영향을 완화하지 않습니다.

AWS KMS는 AWS KMS에서 생성된키 구성 요소가 있는 대칭 암호화 KMS 키에 대해서만 자동 키 교체를 지원합니다. 고객 관리형 KMS 키의 경우 자동 교체는 선택 사항입니다. AWS KMS는 항상 AWS 관리형 KMS 키의 주요 구성 요소를 매년 교체합니다. AWS 소유 KMS 키의 교체 방식은 다양합니다.

참고

AWS 관리형 키에 대한 교체 간격이 2022년 5월에 변경되었습니다. 자세한 내용은 AWS 관리형 키 섹션을 참조하세요.

키를 교체하면 암호화 작업에 사용되는 암호화 비밀인 키 구성 요소만 변경됩니다. KMS 키는 키 구성 요소가 변경되는지 여부 또는 횟수에 관계없이 동일한 논리적 리소스입니다. 다음 이미지와 같이, KMS 키의 속성은 변경되지 않습니다.

자동 키 교체에는 다음과 같은 이점이 있습니다.

  • 키를 교체할 때 키 ID, 키 ARN, 리전, 정책 및 권한을 포함한 KMS 키의 속성은 변경되지 않습니다.

  • KMS 키 ID 또는 키 ARN을 참조하는 애플리케이션이나 별칭을 변경할 필요가 없습니다.

  • 키 구성 요소를 교체해도 AWS 서비스에서의 KMS 키 사용에 영향을 미치지 않습니다.

  • 키 교체를 활성화한 후 AWS KMS는 매년 자동으로 KMS 키를 교체합니다. 업데이트를 기억하거나 예약할 필요가 없습니다.

새 KMS 키를 생성하여 원본 KMS 키 대신 사용하기로 결정할 수 있습니다. 이렇게 하면 기존 KMS 키에서 키 구성 요소를 교체하는 것과 동일한 효과가 있으므로, 이 방법은 일반적으로 키를 수동으로 교체하는 것으로 간주됩니다. 수동 교체는 키 교체 일정을 제어하려는 경우에 좋은 선택입니다. 또한 비대칭 KMS 키, HMAC KMS 키, 사용자 지정 키 스토어의 KMS 키, 가져온 키 구성 요소가 있는 KMS 키를 포함하여 자동 키 교체가 적합하지 않은 KMS 키를 교체하는 방법을 제공합니다.

키 교체 및 요금

AWS KMS는 KMS 키를 위해 유지되는 키 구성 요소의 각 버전에 대해 월간 요금을 부과합니다. 자세한 내용은 AWS Key Management Service 요금을 참조하세요.

참고

AWS Cost Explorer Service을 사용하여 키 스토리지 요금 내역을 확인할 수 있습니다. 예를 들어 사용 유형에 대한 $REGION-KMS-Keys를 지정하고 API 작업별로 데이터를 그룹화하여 현재 KMS 키와 교체된 KMS 키로 청구되는 키의 총 요금을 확인할 수 있도록 보기를 필터링할 수 있습니다.

이전 날짜에 대한 레거시 Unknown API 작업 인스턴스가 계속 표시될 수 있습니다.

키 교체 및 할당량

각 KMS 키는 키 리소스 할당량을 계산할 때 교체된 키 구성 요소 버전의 수에 관계없이 하나의 키로 계산됩니다.

키 구성 요소 및 교체에 대한 자세한 내용은 AWS Key Management Service 암호화 세부 정보를 참조하세요.

KMS 키를 교체하는 이유는 무엇인가요?

암호화 모범 사례는 AWS KMS가 생성하는 데이터 키와 같은 데이터를 직접 암호화하는 키의 광범위한 재사용을 권장하지 않습니다. 256비트 데이터 키가 수백만 개의 메시지를 암호화하면 데이터가 소진되어 미묘한 패턴을 가진 사이퍼텍스트를 생성하기 시작할 수 있습니다. 영리한 액터는 이를 악용하여 키의 비트를 찾아낼 수 있습니다. 이러한 키 소진을 방지하려면 데이터 키를 한 번 또는 몇 번만 사용하는 것이 가장 좋습니다. 이렇게 하면 키 구성 요소가 효과적으로 교됩니다.

하지만 KMS 키는 키 암호화 키라고도 알려진 래핑 키로 가장 자주 사용됩니다. 래핑 키는 데이터를 암호화하는 대신 데이터를 암호화하는 데이터 키를 암호화합니다. 따라서 데이터 키보다 사용 빈도가 훨씬 적고 키가 고갈될 위험이 있을 정도로 재사용되는 경우가 거의 없습니다.

이렇게 소진 위험은 매우 낮지만 비즈니스 또는 계약 규칙이나 정부 규정으로 인해 KMS 키를 교체해야 할 수도 있습니다. KMS 키를 교체해야 할 때는 지원되는 경우 자동 키 교체를 사용하고, 자동 키 교체가 지원되지 않는 경우에는 수동 키 교체를 사용하는 것이 좋습니다.

자동 키 교체의 작동 방식

AWS KMS의 키 교체는 투명하고 사용하기 쉽게 설계되었습니다. AWS KMS는 고객 관리형 키에 대해서만 자동 키 교체(선택 사항)를 지원합니다.

키 구성 요소 관리

AWS KMS는 키 교체가 비활성화된 경우에도 KMS 키의 모든 키 구성 요소를 보존합니다. AWS KMS는 사용자가 KMS 키를 삭제하는 경우에만 키 구성 요소를 삭제합니다.

키 구성 요소 사용

교체된 KMS 키를 사용하여 데이터를 암호화하는 경우 AWS KMS는 현재 키 구성 요소를 사용합니다. 교체된 KMS 키를 사용하여 암호화 텍스트를 해독하면 AWS KMS는 해당 데이터를 암호화하는 데 사용한 키 구성 요소와 같은 버전을 사용합니다. 특정 버전의 키 구성 요소는 요청할 수 없습니다.

교체 날짜

AWS KMS는 교체가 활성화된 후 1년(약 365일) 후 키 구성 요소를 교체하고, 그 이후로는 매년(약 365일) 교체합니다.

고객 관리형 키

고객 관리 키에서는 자동 키 교체가 선택 사항이며 언제든지 활성화 및 비활성화할 수 있으므로 교체 날짜는 가장 최근에 교체가 활성화된 날짜에 따라 달라집니다. 이 날짜는 키 수명 기간 동안 여러 번 변경될 수 있습니다.

예를 들어, 2022년 1월 1일에 고객 관리형 키를 생성하고 2022년 3월 15일에 자동 키 교체를 활성화하면 AWS KMS는 2023년 3월 15일, 2024년 3월 15일, 그리고 그 이후로는 365일마다 키 구성 요소를 교체합니다.

다음은 몇 가지 특수 사례입니다.

  • 키 교체 비활성화 - 언제든지 자동 키 교체를 비활성화하면 KMS 키는 교체가 비활성화되었을 때 사용하던 키 구성 요소 버전을 계속 사용합니다. 자동 키 교체를 다시 활성화하면 AWS KMS는 새로운 교체 활성화 날짜로부터 1년 후, 그리고 그 이후로는 매년(약 365일) 키 구성 요소를 교체합니다.

  • KMS 키 비활성화 - KMS 키가 비활성인 동안에는 AWS KMS에서 KMS 키를 교체하지 않습니다. 하지만 키 교체 상태는 변경되지 않으며 KMS 키가 비활성인 동안에는 해당 상태를 변경할 수 없습니다. KMS 키가 다시 활성화되면 키 구성 요소가 1년을 초과한 경우 AWS KMS는 KMS 키를 즉시 교체하고 이후 매년 교체합니다. 키 구성 요소가 1년 미만인 경우 AWS KMS는 원래의 키 교체 일정을 다시 시작합니다.

  • KMS키 삭제 보류 중 - KMS 키가 삭제 보류 중인 동안에는 AWS KMS에서 KMS 키를 교체하지 않습니다. 키 교체 상태는 false로 설정되며 삭제가 보류 중인 동안에는 해당 상태를 변경할 수 없습니다. 삭제가 취소되면 이전의 키 교체 상태가 복원됩니다. 키 구성 요소가 1년을 초과한 경우 AWS KMS는 KMS 키를 즉시 교체하며 그 이후에는 매년(마지막 교체로부터 약 365일) 교체합니다. 키 구성 요소가 1년 미만인 경우 AWS KMS는 원래의 키 교체 일정을 다시 시작합니다.

AWS 관리형 키

AWS KMS는 매년(약 365일) AWS 관리형 키를 자동으로 교체합니다. AWS 관리형 키에 대한 키의 교체를 사용 또는 사용 중지할 수 없습니다.

AWS 관리형 키의 키 구성 요소는 생성일로부터 1년 후에 처음으로 교체되며, 그 이후에는 매년(마지막 교체로부터 약 365일) 교체됩니다.

참고

2022년 5월, AWS KMS는 AWS 관리형 키에 대한 교체 일정을 3년(약 1,095일)에서 매년(약 365일)으로 변경했습니다.

새 AWS 관리형 키는 생성된 후 1년이 지나면 자동으로 교체되고, 그 후에도 대략 매년 자동으로 교체됩니다.

기존 AWS 관리형 키는 가장 최근 교체 후 1년이 지나면 자동으로 교체되고, 그 후에도 매년 자동으로 교체됩니다.

AWS 소유 키

AWS 소유 키에 대한 키의 교체를 사용 또는 사용 중지할 수 없습니다. AWS 소유 키의 키 교체 전략은 키를 생성 및 관리하는 AWS 서비스에 의해 결정됩니다. 자세한 내용은 서비스에 대한 사용 설명서 또는 개발자 안내서의 저장 시 암호화 주제를 참조하세요.

지원되는 KMS 키 유형

자동 키 교체는 AWS KMS에서 생성된(오리진 = AWS_KMS) 키 구성 요소가 있는 대칭 암호화 KMS 키에 대해서만 지원됩니다.

다음 유형의 KMS 키에서는 자동 키 교체가 지원되지 않지만 이러한 KMS 키를 수동으로 교체할 수 있습니다.

다중 리전 키

다중 리전 키의 자동 키 교체를 활성화 및 비활성화할 수 있습니다. 기본 키에만 속성을 설정합니다. AWS KMS가 키를 동기화할 때 기본 키에서 해당 복제본 키로 속성 설정을 복사합니다. 기본 키의 키 구성 요소가 교체되면 AWS KMS는 해당 키 구성 요소를 모든 복제 키에 자동으로 복사합니다. 자세한 내용은 다중 리전 키 교체 섹션을 참조하세요.

AWS 서비스

AWS 서비스에서 서버 측 암호화에 사용하는 고객 관리형 키에서 자동 키 교체를 활성화할 수 있습니다. 연간 교체는 투명하며 AWS 서비스와 호환됩니다.

키 교체 모니터링

AWS 관리형 키또는 고객 관리 키의 키 구성 요소를 AWS KMS 자동으로 교체하면 EventBridge Amazon에 KMS CMK Rotation 이벤트를 기록하고 AWS CloudTrail 로그에 RotateKey 이벤트를 기록합니다. 이러한 레코드를 사용하여 KMS 키가 교체되었는지 확인할 수 있습니다.

최종 일관성

자동 키 교체는 다른 AWS KMS 관리 작업과 동일한 최종 일관성 효과가 적용됩니다. AWS KMS 전체에서 새 키 자료를 사용할 수 있게 되기까지 약간의 지연이 있을 수 있습니다. 그러나 키 구성 요소를 교체해도 암호화 작업이 중단되거나 지연되지는 않습니다. 현재 키 구성 요소는 AWS KMS 전체에서 새 키 구성 요소를 사용할 수 있을 때까지 암호화 작업에 사용됩니다. 다중 리전 키에 대한 키 구성 요소가 자동으로 교체되면 AWS KMS는 관련 다중 리전 키가 있는 모든 리전에서 새 키 구성 요소를 사용할 수 있을 때까지 현재 키 구성 요소를 사용합니다.

자동 키 교체를 활성화하고 비활성화하는 방법

AWS KMS 콘솔 및 AWS KMS API를 사용하여 자동 키 교체를 활성화 및 비활성화할 수 있으며 키 교체 상태를 볼 수 있습니다.

자동 키 교체를 활성화하면 AWS KMS는 활성화 날짜에서 1년 후에 KMS 키의 키 구성 요소를 교체하고 이후 매년 교체합니다.

키 교체 활성화 및 비활성화(콘솔)

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/kms에서 AWS Key Management Service(AWS KMS) 콘솔을 엽니다.

  2. AWS 리전을 변경하려면 페이지의 오른쪽 상단 모서리에 있는 리전 선택기를 사용합니다.

  3. 탐색 창에서 고객 관리형 키를 선택합니다. (AWS 관리형 키의 교체를 활성화하거나 비활성화할 수 없습니다. 매년 자동으로 교체됩니다.)

  4. KMS 키의 별칭 또는 키 ID를 선택합니다.

  5. 키 교체(Key rotation) 탭을 선택합니다.

    키 교체(Key rotation) 탭은 다중 리전 대칭 암호화 KMS 키를 포함하여 AWS KMS가 생성한 키 구성 요소가 있는 대칭 암호화 KMS 키의 세부 정보 페이지에만 나타납니다(오리진(Origin)AWS_KMS).

    비대칭 KMS 키, HMAC KMS 키, 가져온 키 구성 요소가 있는 KMS 키 또는 사용자 지정 키 스토어의 KMS 키는 자동으로 교체할 수 없습니다. 그러나 이들을 수동으로 교체할 수 있습니다.

  6. 매년 이 KMS 키를 자동 교체(Automatically rotate this KMS key every year) 확인란을 선택하거나 선택 취소합니다.

    참고

    KMS 키가 비활성이거나 삭제 보류 중인 경우 매년 이 KMS 키를 자동 교체(Automatically rotate this KMS key every year) 확인란이 선택 취소되며 이 설정을 변경할 수 없습니다. KMS 키를 활성화하거나 삭제를 취소하면 키 교체 상태가 복원됩니다. 자세한 내용은 자동 키 교체의 작동 방식AWS KMS 키의 키 상태 섹션을 참조하세요.

  7. 저장을 선택합니다.

키 교체 활성화 및 비활성화(AWS KMS API)

AWS Key Management Service(AWS KMS) API를 사용하여 자동 키 교체를 활성화 및 비활성화하고 고객 관리형 키의 현재 교체 상태를 볼 수 있습니다. 이들 예제에서는 AWS Command Line Interface(AWS CLI)를 사용하지만, 지원되는 모든 프로그래밍 언어를 사용할 수 있습니다.

EnableKeyRotation작업을 통해 지정된 KMS 키의 자동 키 교체가 활성화됩니다. DisableKeyRotation작업을 수행하면 해당 키가 비활성화됩니다. 이러한 작업에서 KMS 키를 식별하려면 해당 키 ID 또는 키 ARN을 사용합니다. 기본적으로 고객 관리형 KMS 키에 대한 키 교체는 비활성화됩니다.

다음 예에서는 지정된 대칭 암호화 KMS 키에서 키 순환을 활성화하고 GetKeyRotationStatus작업을 사용하여 결과를 확인합니다. 그런 다음 키 교체를 비활성화하고 다시 GetKeyRotationStatus를 사용하여 변경 사항을 확인합니다.

$ aws kms enable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab $ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyRotationEnabled": true } $ aws kms disable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab $ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyRotationEnabled": false }

수동으로 키 교체

자동 키 교체를 활성화하지 않고 새 KMS 키를 생성하여 현재 KMS 키 대신 사용하려고 할 수 있습니다. 새 KMS 키에 현재 KMS 키와 다른 암호화 구성 요소가 있는 경우 새 KMS 키를 사용하면 기존 KMS 키에서 키 구성 요소를 변경하는 것과 동일한 효과가 있습니다. 한 KMS 키를 다른 KMS 키로 교체하는 프로세스를 수동 키 교체라고 합니다.

교체 빈도를 제어할 수 있도록 수동으로 키를 교체하려고 할 수 있습니다. 비대칭 KMS 키, HMAC KMS 키, 사용자 지정 키 저장소의 KMS 키, 가져온 키 구성 요소가 있는 KMS 키와 같이 자동 키 교체에 적합하지 않은 KMS 키에도 좋은 솔루션입니다.

참고

새 KMS 키 사용을 시작할 때는 AWS KMS에서 원본 KMS 키를 사용하여 암호화한 데이터를 해독할 수 있도록 원본 KMS 키를 활성화된 상태로 유지해야 합니다.

KMS 키를 수동으로 교체하는 경우 애플리케이션에서 KMS 키 ID 또는 키 ARN에 대한 참조도 업데이트해야 합니다. 친숙한 이름을 KMS 키와 연결하는 별칭을 사용하면 이 프로세스를 더 쉽게 수행할 수 있습니다. 별칭을 사용하여 애플리케이션에서 KMS 키를 참조합니다. 그런 다음 애플리케이션에서 사용하는 KMS 키를 변경하려면 애플리케이션 코드를 편집하는 대신 별칭의 대상 KMS 키를 변경합니다. 자세한 내용은 애플리케이션에서 별칭 사용 단원을 참조하세요.

참고

수동으로 교체한 KMS 키의 최신 버전을 가리키는 별칭은 DescribeKey, 암호화,, 및 서명 작업에 적합한 솔루션입니다. GenerateDataKeyGenerateDataKeyPairGenerateMac 또는 과 같이 KMS 키를 관리하는 작업에서는 별칭을 사용할 수 없습니다. DisableKeyScheduleKeyDeletion

수동으로 교체된 대칭 암호화 KMS 키에서 암호 해독 작업을 호출하는 경우 명령에서 KeyId 매개 변수를 생략합니다. AWS KMS은(는) 암호문을 암호화한 KMS 키를 자동으로 사용합니다.

KeyId 파라미터는 비대칭 KMS 키를 사용하여 Decrypt 호출하거나 Verify를 사용하거나 HMAC KMS 키를 VerifyMac사용하여 호출할 때 필요합니다. 키를 수동으로 교체하는 경우와 같이 KeyId 파라미터 값이 암호화 작업을 수행한 KMS 키를 더 이상 가리키지 않는 별칭인 경우 이러한 요청이 실패합니다. 이 오류를 방지하려면 각 작업에 대해 올바른 KMS 키를 추적하고 지정해야 합니다.

별칭의 대상 KMS 키를 변경하려면 API에서의 작업을 사용하십시오. UpdateAliasAWS KMS 예를 들어, 이 명령은 새 KMS 키를 가리키도록 alias/TestKey 별칭을 업데이트합니다. 작업이 출력을 반환하지 않기 때문에 이 예제에서는 ListAliases작업을 사용하여 이제 별칭이 다른 KMS 키와 연결되고 필드가 업데이트되었음을 보여줍니다. LastUpdatedDate ListAliases 명령은 의 query파라미터를 사용하여 AWS CLI 별칭만 가져옵니다. alias/TestKey

$ aws kms list-aliases --query 'Aliases[?AliasName==`alias/TestKey`]' { "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestKey", "AliasName": "alias/TestKey", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1521097200.123, "LastUpdatedDate": 1521097200.123 }, ] } $ aws kms update-alias --alias-name alias/TestKey --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 $ aws kms list-aliases --query 'Aliases[?AliasName==`alias/TestKey`]' { "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestKey", "AliasName": "alias/TestKey", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1521097200.123, "LastUpdatedDate": 1604958290.722 }, ] }