AWS KMS keys 삭제 - AWS Key Management Service

AWS KMS keys 삭제

AWS KMS key를 삭제하는 것은 파괴적이며 잠재적으로 위험합니다. 이렇게 하면 KMS 키와 연결된 키 구성 요소와 모든 메타데이터가 삭제되고, 이 작업은 되돌릴 수 없습니다. KMS 키가 삭제된 후에는 해당 KMS 키로 암호화된 데이터를 더 이상 해독할 수 없습니다. 즉 데이터를 복구할 수 없게 됩니다. 더 이상 사용할 필요가 없다고 확신하는 경우에만 KMS 키를 삭제해야 합니다. 확실하지 않은 경우에는 삭제하는 대신 KMS 키를 비활성화하는 방법을 고려하십시오. 비활성화한 KMS 키는 나중에 다시 사용해야 할 때 재활성화할 수 있지만 삭제한 KMS 키는 복구할 수 없습니다.

고객 관리형 키 삭제만 예약할 수 있습니다. AWS 관리형 키 또는 AWS 소유 키은 삭제할 수 없습니다.

KMS 키를 삭제하기 전에 해당 KMS 키 하에서 암호화된 암호화 텍스트 용량을 알고 싶을 수 있습니다. AWS KMS는 이 정보뿐 아니라 어떠한 암호 텍스트도 저장하지 않습니다. 이 정보를 얻으려면 과거 KMS 키 용도를 확인해야 합니다. 도움이 필요하면 KMS 키의 과거 용도 파악로 이동하세요.

명시적으로 삭제를 예약하고 필수 대기 기간이 만료되지 않으면 AWS KMS에서 KMS 키가 삭제되지 않습니다.

하지만 다음 중 하나 이상의 이유로 KMS 키를 삭제하기로 선택할 수 있습니다.

  • 더 이상 필요하지 않은 KMS 키의 키 수명 주기를 완료하기 위해

  • 사용하지 않는 KMS 키 유지로 인한 관리 오버헤드와 비용 발생을 방지하기 위해

  • KMS 키 리소스 할당량에 반하는 KMS 키 수를 줄이기 위해

참고

AWS 계정을 닫거나 삭제하면 KMS 키에 액세스할 수 없으며 요금이 더 이상 청구되지 않습니다. 계정을 닫는 것과 별개로 KMS 삭제 일정을 계획할 필요는 없습니다.

AWS KMS는 KMS 키 삭제를 예약할 때와 KMS 키가 실제로 삭제될 때 AWS CloudTrail 로그에 항목을 기록합니다.

다중 리전 기본 키 및 복제본 키 삭제에 대한 자세한 내용은 다중 리전 키 삭제 단원을 참조하세요.

대기 기간에 대해

KMS 키를 삭제하는 것은 안전하지 않으며 위험할 수 있기 때문에 AWS KMS는 대기 기간을 7~30일로 설정해야 합니다. 기본 대기 기간은 30일입니다.

그러나 실제 대기 기간은 예약한 대기 기간보다 최대 24시간 더 길어질 수 있습니다. KMS 키가 삭제될 실제 날짜 및 시간을 가져오려면 DescribeKey 작업을 사용합니다. 또는 AWS KMS 콘솔의 KMS 키 세부 정보 페이지에 있는 일반 구성 섹션에서 예약된 삭제 날짜를 참조하세요. 시간대를 기록하세요.

이 대기 기간 동안 KMS 키 상태 및 키 상태는 삭제 대기 중(Pending deletion)입니다.

대기 기간이 끝나면 AWS KMS는 KMS 키, 해당 별칭 및 모든 관련 AWS KMS 메타데이터를 삭제합니다.

현재 또는 향후에 KMS 키가 필요하지 않도록 하기 위해 대기 기간을 사용합니다. 사람이나 애플리케이션이 대기 기간 중에 KMS 키를 사용하려고 할 때 경고하도록 Amazon CloudWatch 경보를 구성할 수 있습니다. KMS 키를 복구하기 위해 대기 기간이 종료되기 전에 키 삭제를 취소할 수 있습니다. 대기 기간이 종료된 후에는 키 삭제를 취소할 수 없고 AWS KMS가 KMS 키를 삭제합니다.

비대칭 KMS 키 삭제

권한이 부여된 사용자는 대칭 또는 비대칭 KMS 키를 삭제할 수 있습니다. 이러한 KMS 키의 삭제를 예약하는 절차는 두 가지 유형의 키에 대해 동일합니다. 그러나 비대칭 KMS 키의 퍼블릭 키는 다운로드하여 AWS KMS 외부에서 사용할 수 있으므로 이 작업은 특히 암호화에 사용되는 비대칭 KMS 키(키 사용이 ENCRYPT_DECRYPT)의 경우 상당한 추가 위험을 초래합니다.

  • KMS 키 삭제를 예약하면 해당 KMS 키는 키 상태가 삭제 보류 중(Pending deletion)으로 변경되며 암호화 작업에 사용할 수 없습니다. 그러나 삭제 예약은 AWS KMS 외부의 퍼블릭 키에는 영향을 미치지 않습니다. 퍼블릭 키가 있는 사용자는 계속해서 해당 키를 사용하여 메시지를 암호화할 수 있습니다. 키 상태가 변경되었다는 알림은 받지 못합니다. 삭제가 취소되지 않으면 해당 퍼블릭 키로 생성된 암호화 텍스트는 해독할 수 없습니다.

  • 삭제 보류 중인 KMS 키를 사용하려는 시도를 감지하는 경보, 로그 및 기타 전략은 AWS KMS 외부에서의 퍼블릭 키 사용을 감지할 수 없습니다.

  • KMS 키가 삭제되면 해당 KMS 키와 관련된 모든 AWS KMS 작업이 실패합니다. 그러나 퍼블릭 키가 있는 사용자는 계속해서 메시지를 암호화하는 데 사용할 수 있습니다. 이러한 암호화 텍스트는 해독할 수 없습니다.

키 사용이 ENCRYPT_DECRYPT인 비대칭 KMS 키를 삭제해야 하는 경우 CloudTrail Log 항목을 사용하여 퍼블릭 키가 다운로드 및 공유되었는지 확인합니다. 그러한 퍼블릭 키가 있을 경우 해당 키가 AWS KMS 외부에서 사용되지 않는지 확인합니다. 그런 다음 KMS 키를 삭제하는 대신 비활성화하는 것이 좋습니다.

다중 리전 키 삭제

권한이 있는 사용자는 다중 지역 기본 및 복제 키 삭제를 예약할 수 있습니다. 그러나, AWS KMS는 복제본 키가 있는 다중 리전 기본 키를 삭제하지 않습니다. 또한 기본 키가 있는 한 삭제된 다중 리전 복제 키를 다시 만들 수 있습니다. 자세한 내용은 다중 리전 키 삭제 단원을 참조하십시오.

키 삭제 예약 및 취소

다음 절차에서는 AWS Management Console, AWS CLI 및 AWS SDK for Java을 사용하여 AWS KMS에서 키 삭제를 예약하고 단일 리전 AWS KMS keys(KMS 키)의 키 삭제를 취소하는 방법을 설명합니다.

다중 리전 키 삭제 예약에 대한 자세한 내용은 다중 리전 키 삭제 단원을 참조하십시오.

주의

KMS 키를 삭제하는 것은 파괴적이며 잠재적으로 위험합니다. 지금뿐 아니라 앞으로도 KMS 키를 더 이상 사용할 필요가 없다고 확신하는 경우에만 진행해야 합니다. 확실하지 않은 경우에는 삭제하는 대신 KMS 키를 비활성화해야 합니다.

KMS 키를 삭제하려면 삭제할 권한이 있어야 합니다. 키 정책에만 의존해 AWS KMS 권한을 지정하는 경우, KMS 키를 삭제하기 전에 권한을 추가해야 할 수 있습니다. 이러한 권한 추가에 대한 자세한 내용은 키 삭제 예약 및 취소를 위한 권한 추가에서 확인하세요.

AWS KMS는 KMS 키 삭제를 예약할 때와 KMS 키가 실제로 삭제될 때 AWS CloudTrail 로그에 항목을 기록합니다.

키 삭제 예약 및 취소(콘솔)

AWS Management Console에서 여러 KMS 키의 삭제를 한 번에 예약하고 취소할 수 있습니다.

키 삭제를 예약하려면

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

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

  3. 탐색 창에서 고객 관리형 키(Customer managed keys)를 선택합니다.

    AWS 관리형 키 또는 AWS 소유 키의 삭제는 예약할 수 없습니다.

  4. 삭제하려는 KMS 키옆의 확인란을 선택합니다.

  5. 키 작업(Key actions)키 삭제 예약(Schedule key deletion)을 차례로 선택합니다.

  6. 경고와 대기 기간 동안 삭제 취소에 대한 정보를 읽고 고려하세요. 삭제를 취소하려면 페이지 하단에서 취소를 선택합니다.

  7. 대기 기간(일)(Waiting period(in days))에 7~30 범위의 일수를 입력합니다.

  8. 삭제 중인 KMS 키를 검토합니다.

  9. <일수(number of days)>일 이내에 이 키를 삭제하도록 예약함을 확인합니다 옆의 확인란을 선택합니다.

  10. 삭제 예약(Schedule deletion)을 선택합니다.

KMS 키 상태가 삭제 보류 중(Pending deletion)으로 변경됩니다.

키 삭제를 취소하려면

  1. AWS KMS 콘솔(https://console.aws.amazon.com/kms)을 엽니다.

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

  3. 탐색 창에서 고객 관리형 키(Customer managed keys)를 선택합니다.

  4. 복구할 KMS 키 옆의 확인란을 선택합니다.

  5. 키 작업(Key actions)키 삭제 취소(Cancel key deletion)를 차례로 선택합니다.

KMS 키 상태가 삭제 보류 중(Pending deletion)에서 비활성(Disabled)으로 변경됩니다. KMS 키를 사용하려면 KMS 키를 활성화해야 합니다.

키 삭제 예약 및 취소(AWS CLI)

다음 예제와 같이 aws kms schedule-key-deletion 명령을 사용하여 고객 관리형 키의 키 삭제를 예약할 수 있습니다.

AWS 관리형 키 또는 AWS 소유 키의 삭제는 예약할 수 없습니다.

$ aws kms schedule-key-deletion --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --pending-window-in-days 10

성공적으로 사용되면 AWS CLI는 다음 예제의 출력과 비슷한 출력을 반환합니다.

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "DeletionDate": 1598304792.0, "KeyState": "PendingDeletion", "PendingWindowInDays": 10 }

다음 예제와 같이 aws kms cancel-key-deletion 명령을 사용하여 AWS CLI에서 키 삭제를 취소할 수 있습니다.

$ aws kms cancel-key-deletion --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

성공적으로 사용되면 AWS CLI는 다음 예제의 출력과 비슷한 출력을 반환합니다.

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

KMS 키 상태가 삭제 보류 중(Pending deletion)에서 비활성(Disabled)으로 변경됩니다. KMS 키를 사용하려면 KMS 키를 활성화해야 합니다.

키 삭제 예약 및 취소(AWS SDK for Java)

다음 예제는 AWS SDK for Java를 사용하여 고객 관리형 키의 삭제를 예약하는 방법을 보여줍니다. 이 예제에서는 먼저 AWSKMSClientkms로 인스턴스화해야 합니다.

String KeyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; int PendingWindowInDays = 10; ScheduleKeyDeletionRequest scheduleKeyDeletionRequest = new ScheduleKeyDeletionRequest().withKeyId(KeyId).withPendingWindowInDays(PendingWindowInDays); kms.scheduleKeyDeletion(scheduleKeyDeletionRequest);

다음 예제는 AWS SDK for Java를 사용하여 키 삭제를 취소하는 방법을 보여줍니다. 이 예제에서는 먼저 AWSKMSClientkms로 인스턴스화해야 합니다.

String KeyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; CancelKeyDeletionRequest cancelKeyDeletionRequest = new CancelKeyDeletionRequest().withKeyId(KeyId); kms.cancelKeyDeletion(cancelKeyDeletionRequest);

KMS 키 상태가 삭제 보류 중(Pending deletion)에서 비활성(Disabled)으로 변경됩니다. KMS 키를 사용하려면 KMS 키를 활성화해야 합니다.

키 삭제 예약 및 취소를 위한 권한 추가

IAM 정책을 사용해 AWS KMS 권한을 허용하는 경우, AWS 관리자 액세스("Action": "*") 또는 AWS KMS 전체 액세스("Action": "kms:*")가 있는 모든 IAM 사용자와 역할은 이미 KMS 키에 대한 키 삭제를 예약하고 취소하도록 허용되어 있습니다. 키 정책에만 의존해 AWS KMS 권한을 허용하는 경우, IAM 사용자와 역할이 KMS 키를 삭제하도록 허용하는 권한을 추가해야 할 수 있습니다. AWS KMS 콘솔에서 또는 AWS KMS API를 사용하여 이러한 권한을 추가할 수 있습니다.

키 삭제 예약 및 취소를 위한 권한 추가(콘솔)

AWS Management Console을 이용해 키 삭제를 예약하고 취소할 권한을 추가할 수 있습니다.

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

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

  3. 탐색 창에서 고객 관리형 키(Customer managed keys)를 선택합니다.

  4. 권한을 변경하고 싶은 KMS 키의 별칭 또는 키 ID를 선택합니다.

  5. 키 정책(Key policy) 탭을 선택합니다. 키 삭제(Key deletion) 아래에서 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key)을 선택한 다음 변경 사항 저장(Save changes)을 선택합니다.

    참고

    키 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key) 옵션이 표시되지 않는 경우, 보통은 AWS KMS API를 이용해 이 키 정책을 수정했다는 의미입니다. 이 경우 키 정책 문서를 수동으로 업데이트해야 합니다. kms:ScheduleKeyDeletionkms:CancelKeyDeletion 권한을 키 정책의 키 관리자 문("Sid": "Allow access for Key Administrators")에 추가한 다음 변경 사항 저장을 선택합니다.

키 삭제 예약 및 취소를 위한 권한 추가(AWS CLI)

AWS Command Line Interface을 이용해 키 삭제를 예약하고 취소할 권한을 추가할 수 있습니다.

키 삭제를 예약하고 취소할 권한을 추가하려면

  1. aws kms get-key-policy 명령을 이용해 기존 키 정책을 검색한 후 정책 문서를 파일에 저장합니다.

  2. 원하는 텍스트 편집기에서 정책 문서를 열고 키 관리자에게 권한을 부여하는 정책 설명(예를 들어 "Sid": "Allow access for Key Administrators"가 포함된 정책 설명)에 kms:ScheduleKeyDeletionkms:CancelKeyDeletion 권한을 추가합니다. 그런 다음 파일을 저장합니다. 다음 예는 이 두 권한이 포함된 정책 설명을 보여줍니다.

    { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSKeyAdmin"}, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }
  3. aws kms put-key-policy 명령을 사용하여 KMS 키에 키 정책을 적용합니다.