AWS Key Management Service(AWS KMS)에서 키 구성 요소 가져오기 - AWS Key Management Service

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

AWS Key Management Service(AWS KMS)에서 키 구성 요소 가져오기

제공하는 키 구성 요소로 고객 마스터 키(CMK)를 생성할 수 있습니다.

는 CMK의 논리적 표현입니다.마스터 키 여기에는 키 식별자 및 기타 메타데이터 외에도 데이터를 암호화하고 해독하는 데 사용되는 키 구성 요소가 포함되어 있습니다. 를 생성하면 기본적으로 CMK는 해당 에 대한 키 구성 요소를 생성합니다.AWS KMSCMK 그러나 키 구성 요소 없이 CMK를 생성한 다음 자체 키 구성 요소를 해당 CMK로 가져올 수 있습니다. 이 기능은 흔히 "자체 키 사용"(BYOK)이라고 합니다.

참고

암호화된 텍스트가 가져온 키 구성 요소로 AWS KMS로 암호화되었더라도 AWS KMS는 AWS KMS 외부의 CMK 암호화 텍스트 암호화 해제를 지원하지 않습니다. AWS KMS는 이 작업에 필요한 암호화 텍스트 형식을 게시하지 않으며, 알림 없이 형식을 변경할 수 있습니다.

가져온 키 구성 요소는 CMKs 키 스토어의 대칭 AWS KMS에 대해서만 지원됩니다. 사용자 지정 키 스토어의 CMKs비대칭 CMKs 또는 에서는 지원되지 않습니다.

가져온 키 구성 요소를 사용하는 경우, AWS KMS에서 사본을 사용하도록 허용하는 동시에 키 구성요소에 대한 책임은 유지해야 합니다. 이렇게 하기로 선택하는 경우는 다음과 같습니다.

  • 요구 사항에 부합하는 엔트로피 소스를 사용하여 키 구성 요소를 생성했음을 입증하기 위해.

  • 서비스에서 자체 인프라의 키 구성 요소를 사용하고 AWS를 사용하여 AWS KMS 내에서 해당 키 구성 요소의 수명 주기를 관리합니다.AWS

  • AWS 내에서 키 구성 요소의 만료 시간을 설정하고 수동으로 삭제하되, 나중에 다시 사용 가능하도록 설정하기 위해. 반면 키 삭제를 예약하려면 7~30일의 대기 기간이 필요하며, 이 기간이 지나면 삭제된 CMK를 복구할 수 없습니다.

  • 키 구성 요소의 전체 수명 주기 동안 내구성 강화와 재해 복구를 목적으로 키 구성 요소의 원본을 소유하고 AWS 외부에 보관하기 위해.

가져온 키 구성 요소가 있는 CMKs와 AWS KMS에서 생성된 키 구성 요소가 있는 구성 요소 간의 중요한 차이에 대한 자세한 내용은 가져온 키 구성 요소 정보 단원을 참조하십시오.

가져오는 키 구성 요소는 256비트 대칭 암호화 키여야 합니다.

가져온 키 구성 요소 정보

AWS KMS로 키 구성 요소를 가져오기로 결정하기 전에, 가져온 키 구성 요소의 다음과 같은 특성을 이해해야 합니다.

키 구성 요소를 생성하는 경우

보안 요구 사항을 충족하는 임의 소스를 사용하여 256비트의 키 구성 요소를 생성해야 합니다.

키 구성 요소를 변경할 수 없습니다.

키 구성 요소를 CMK로 가져오면 CMK가 해당 키 구성 요소와 영구적으로 연결됩니다. 동일한 키 구성 요소를 다시 가져올 수 있지만 다른 키 구성 요소를 해당 로 가져올 수는 없습니다.CMK 또한 가져온 키 구성 요소를 사용하여 에 대해 자동 키 교체를 활성화CMK할 수 없습니다. 그러나 가져온 키 구성 요소로 를 수동으로 교체CMK할 수 있습니다.

다른 CMK로 해독할 수 없음

KMS CMK로 데이터를 암호화하면 암호화 텍스트를 다른 CMK로 해독할 수 없습니다. 이는 동일한 키 구성 요소를 다른 CMK로 가져올 때도 마찬가지입니다.

이동성 또는 escrow 기능 없음

가 생성하는 암호화 텍스트는 이식할 수 없습니다. AWS KMS는 암호화된 키 구성 요소를 사용하여 AWS KMS로 암호화 텍스트를 암호화한 경우에도 AWS KMS 외부의 AWS KMS 암호화 텍스트 해독을 지원하지 않습니다. CMK는 이 작업에 필요한 암호화 텍스트 형식을 게시하지 않으며, 이 형식은 통지 없이 변경될 수 있습니다.AWS KMS

또한 AWS 또는 AWS 암호화 SDK 클라이언트 측 암호화와 같은 Amazon S3 도구를 사용하여 암호화 텍스트를 해독할 수 없습니다.AWS KMS

따라서 키 구성 요소를 가져온 키 구성 요소와 함께 키를 사용하여 키 구성 요소에 조건부로 액세스할 수 있는 권한 있는 타사가 AWS KMS 외부의 특정 암호화 텍스트를 암호화 해제할 수 있는 키 이스케이프 정렬을 지원할 수 없습니다. 키 escrow를 지원하려면 AWS 암호화 SDK를 사용하여 AWS KMS와 독립적인 키로 메시지를 암호화합니다.

가용성과 내구성에 대한 책임은 사용자에게 있습니다.

키 구성 요소의 가용성과 내구성에 대한 모든 책임을 부담해야 합니다. AWS KMS는 가져온 키 구성 요소의 가용성을 높게 유지하도록 설계되었습니다. 그러나 이 서비스는 가져온 키 구성 요소의 내구성을 자동 생성된 키 구성 요소와 동일한 수준으로 유지하지는 않습니다. 이 차이는 다음과 같은 경우에 의미가 있습니다.

  • 가져온 키 구성 요소의 만료 시간을 설정하면 AWS KMS가 만료된 후 키 구성 요소를 삭제합니다. AWS KMS는 CMK 또는 해당 메타데이터를 삭제하지 않습니다. 사용자는 AWS KMS가 생성한 키 구성 요소의 만료 시간을 설정할 수 없습니다.

  • 가져온 키 구성 요소를 수동으로 삭제하면 가 키 구성 요소를 삭제하지만 AWS KMS 또는 그 메타데이터는 삭제하지 않습니다.CMK 반면 키 삭제를 예약하려면 7~30일의 대기 기간이 필요하며, 이 기간이 지나면 AWS KMS가 키 구성 요소와 CMK의 모든 메타데이터를 삭제합니다.

  • 드물지만 서비스에 영향을 미칠 리전 전반에 걸친 장애(완전한 정전 등)가 발생하는 경우, AWS KMS는 가져온 키 구성 요소를 자동으로 복원할 수 없습니다. 그러나 AWS KMS는 CMK 및 해당 메타데이터를 복원할 수 있습니다.

이런 이벤트가 발생한 뒤에 키 구성 요소를 복원하려면 제어 시스템 안에 키 구성 요소의 사본이 있어야 합니다. 그런 다음 CMK로 다시 가져올 수 있습니다.

키 구성 요소를 가져올 수 있는 권한

가져온 키 구성 요소로 CMKs를 생성하고 관리하려면 사용자에게 이 프로세스의 작업에 대한 권한이 필요합니다. CMK를 생성할 때 키 정책에 kms:GetParametersForImport, kms:ImportKeyMaterialkms:DeleteImportedKeyMaterial 권한을 제공할 수 있습니다. 권한은 키 관리자의 기본 권한에 포함되지 않으므로 수동으로 추가해야 합니다.kms:ImportKeyMaterial

가져온 키 구성 요소로 CMKs를 생성하려면 보안 주체는 다음 권한이 필요합니다.

  • kms:CreateKey(IAM 정책)

    • 가져온 키 구성 요소를 사용하여 이 권한을 CMKs로 제한하려면 kms:KeyOrigin 정책 조건을 EXTERNAL 값과 함께 사용합니다.

      { "Version": "2012-10-17", "Statement": { "Sid": "IAM policy to create CMKs with no key material" "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::111122223333:role/KMSAdminRole" }, "Action": "kms:CreateKey", "Condition": { "StringEquals": { "kms:KeyOrigin": "EXTERNAL" } } }
  • kms:GetParametersForImport(키 정책 또는 IAM 정책)

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

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

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

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

키 구성 요소를 가져오는 방법

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

  1. 키 구성 요소 없이 대칭 CMK 생성 – 키 구성 요소 가져오기를 시작하려면 먼저 CMK오리진인 대칭 EXTERNAL을 생성합니다. 이는 키 구성 요소가 AWS KMS 외부에서 생성되었음을 나타내며 AWS KMS가 CMK에 대한 키 구성 요소를 생성하지 못하게 방지합니다. 이후 단계에서는 자체 키 구성 요소를 이 CMK로 가져옵니다.

  2. 퍼블릭 키와 가져오기 토큰 다운로드 – 1단계를 완료한 후 퍼블릭 키와 가져오기 토큰을 다운로드합니다. 이러한 항목은 키 구성 요소를 AWS KMS로 가져오는 과정을 보호합니다.

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

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

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

키 구성 요소를 다시 가져오는 방법

가져온 키 구성 요소로 CMK를 관리하는 경우 키 구성 요소가 만료되었거나 키 구성 요소가 실수로 삭제되거나 분실되어 키 구성 요소를 다시 가져와야 할 수 있습니다.

원래 CMK로 가져왔던 것과 동일한 키 구성 요소를 다시 가져와야 합니다. 다른 키 구성 요소는 CMK로 가져올 수 없습니다. 또한 AWS KMS는 키 구성 요소 없이 생성된 CMK에 대해서는 키 구성 요소를 생성할 수 없습니다.

키 구성 요소를 다시 가져오려면 처음 키 구성 요소를 가져올 때와 동일한 절차를 사용하되, 다음 예외를 적용합니다.

  • 새 CMK를 생성하는 대신 기존 CMK를 사용합니다. 가져오기 절차의 1단계를 건너뛸 수 있습니다.

  • 에 키 구성 요소가 포함되어 있는 경우 키 구성 요소를 다시 가져오려면 CMK기존 키 구성 요소를 삭제해야 합니다.

키 구성 요소를 CMK로 가져올 때마다 에 대한 새 래핑 키와 가져오기 토큰을 다운로드하여 사용CMK해야 합니다. 래핑 절차는 키 구성 요소의 내용에 영향을 주지 않으므로 동일한 키 구성 요소를 다양한 래핑 키(서로 다른 가져오기 토큰)로 가져올 수 있습니다.

가져온 키 구성 요소로 CMKs를 보는 방법

키 구성 요소 없이 CMK을 생성하면 Origin의 CMK 속성 값이 EXTERNAL이 되고 이 값은 변경할 수 없습니다. 가져온 키 구성 요소를 사용하도록 설계된 키는 AWS KMS에서 제공하는 키 구성 요소를 사용하도록 변환할 수 없습니다.

가져온 키 구성 요소가 필요한 CMKs를 AWS KMS 콘솔에서 또는 AWS KMS API를 사용하여 식별할 수 있습니다. 콘솔 또는 APIs를 사용하여 만료 여부와 만료 시기와 같은 키 구성 요소의 속성을 볼 수도 있습니다.

가져온 키 구성 요소로 CMKs를 식별하려면(console)

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

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

  3. 다음 기법 중 하나를 사용하여 Origin의 CMKs 속성을 봅니다.

    • 테이블에 Origin(오리진) 열을 추가하려면 오른쪽 상단 모서리에서 CMKSettings(설정) 아이콘을 선택합니다. Origin(오리진)을 확인한 다음 확인을 선택합니다. Origin(오리진) 열을 사용하면 오리진 속성 값으로 CMKs를 쉽게 식별할 수 있습니다.EXTERNAL

    • 특정 Origin의 CMK 속성 값을 찾으려면 CMK의 키 ID 또는 별칭을 선택합니다. 그런 다음 암호화 구성 탭을 선택합니다. 탭은 일반 구성(General configuration) 섹션 아래에 있습니다.

  4. 키 구성 요소에 대한 세부 정보를 보려면 Key material(키 구성 요소) 탭을 선택합니다. 이 탭은 키 구성 요소를 가져온 CMKs의 세부 정보 페이지에만 나타납니다.

가져온 키 구성 요소로 CMKs를 식별하려면(AWS KMS API)

DescribeKey 작업을 사용합니다. 응답에는 다음 예제와 같이 Origin의 CMK 속성, 만료 모델 및 만료 날짜가 포함됩니다.

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyMetadata": { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Origin": "EXTERNAL", "ExpirationModel": "KEY_MATERIAL_EXPIRES" "ValidTo": 1568894400.0, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": 1568289600.0, "Enabled": false, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "PendingImport", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }