이 주제에서는 Cloud Key Management Service로 키를 새 키 버전으로 가져오는 방법에 대한 개념 정보를 다룹니다. 단계별 안내는 키 버전 가져오기를 참조하세요.
소개
온프레미스 또는 외부 키 관리 시스템에서 만든 기존 암호화 키를 사용 중일 수 있습니다. 애플리케이션을 Google Cloud로 마이그레이션하거나 암호화 지원을 기존 Google Cloud 애플리케이션에 추가하는 경우 관련성이 높은 키를 Cloud KMS로 가져올 수 있습니다.
- Cloud KMS에서 Cloud HSM 키 또는 소프트웨어 키로 가져올 수 있습니다.
- 키 자료는 전송 중 보호를 위해 래핑됩니다. Google Cloud CLI를 사용하여 키를 자동으로 래핑하거나 키를 수동으로 래핑할 수 있습니다.
- Google Cloud는 가져오기 작업 범위 내에서만 래핑 키에 액세스할 수 있습니다. Cloud HSM 키의 경우 래핑 키가 Cloud HSM 외부에 위치하지 않습니다.
이 주제에서는 키 가져오기 제한사항 및 요구사항에 대해 자세히 설명하고 키 가져오기의 작동 방식에 대한 개요를 제공합니다.
제한사항 및 요구사항
이 섹션을 검토하여 키를 Cloud KMS 또는 Cloud HSM 키로 가져올 수 있는지 확인하세요.
지원되는 키 형식
암호화를 위한 대칭 키는 16바이트(원시 대칭 암호화만 해당) 또는 32바이트 바이너리 데이터여야 하며 인코딩된 상태여서는 안 됩니다. 키가 16진수로 인코딩되거나 base64로 인코딩된 경우 가져오기 전에 키를 디코딩해야 합니다.
서명용 대칭 키(MAC 키)는 사용 중인 암호화 해시 함수의 출력 길이와 같아야 하고(예를 들어 HMAC-SHA256 키의 길이는 32바이트여야 함) 인코딩되며 인코딩되면 안 됩니다. 키가 16진수로 인코딩되거나 base64로 인코딩된 경우 가져오기 전에 키를 디코딩해야 합니다.
암호화 또는 서명을 위한 비대칭 키는 PKCS #8 형식이어야 하며 DER 인코딩되어야 합니다. PCKS #8 형식은 RFC 5208에 정의되어 있습니다. DER 인코딩은 International Telecommunications Union X.680에 정의되어 있습니다. 비대칭 키는 Cloud KMS에서 지원하는 길이와 알고리즘 조합 중 하나를 사용해야 합니다.
키의 길이와 같은 키의 일부 측면은 키가 생성된 후에는 변경할 수 없습니다. 이러한 경우 키를 Cloud KMS로 가져올 수 없습니다.
가져올 키를 확인하고 형식을 다시 지정하려면 가져올 키 형식 지정을 참조하세요.
지원되는 보호 수준
키의 보호 수준을 SOFTWARE
또는 HSM
으로 설정하여 키를 Cloud KMS 키 또는 Cloud HSM 키로 가져올 수 있습니다. Cloud HSM 키에 추가 비용이 발생합니다. Cloud External Key Manager 키로 가져올 수 없습니다(보호 레벨이 EXTERNAL
인 키).
지원되는 래핑 키 크기
가져오기 작업을 만들 때 가져오기 작업의 가져오기 방식을 구성하여 Google로 전송되는 키를 보호하는 데 사용되는 래핑 키의 크기를 제어할 수 있습니다. 래핑 키의 기본 크기는 3072입니다. 특정 요구사항이 있는 경우 가져오기 작업이 4096 비트 키를 사용하도록 구성할 수 있습니다.
키 래핑 또는 가져오기 작업 구성에 사용되는 알고리즘에 대해 자세히 알아보세요.
키 가져오기 작동 방식
이 섹션에서는 키를 가져올 때 발생하는 상황을 보여줍니다. 자동 래핑을 사용하거나 키를 수동으로 래핑하는 경우 과정의 일부가 다릅니다. 자동 래핑을 사용하는 것이 좋습니다. 자세한 안내는 키 버전 가져오기를 참조하세요. 가져오기 전에 키를 수동으로 래핑하는 자세한 방법은 Linux에서 OpenSSL을 사용하여 키 래핑을 참조하세요.
다음 다이어그램은 자동 키 래핑을 사용하는 키 가져오기 프로세스를 보여줍니다. 다이어그램에 표시된 단계는 이 섹션에 설명되어 있습니다.
키를 가져올 준비를 합니다.
먼저 가져오기 작업과 가져온 키 자료가 포함될 대상 키링과 키를 만듭니다. 이 시점에서 대상 키에는 키 버전이 포함되어 있지 않습니다.
다음으로 가져오기 작업을 만듭니다. 가져오기 작업은 가져오는 키 자료의 대상 키링과 키를 정의합니다. 가져오기 작업은 가져오기 요청 중에 키 자료를 보호하는 래핑 키를 만드는 데 사용되는 알고리즘인 가져오기 방식도 정의합니다.
- 공개 키는 클라이언트에 가져올 키를 래핑하는 데 사용됩니다.
- 비공개 키는 Google Cloud 내에 저장되며 키가 Google Cloud 프로젝트에 도달하면 래핑을 해제하는 데 사용됩니다.
이렇게 분리하면 Google에서 가져오기 작업의 범위를 벗어난 키 자료의 래핑을 해제할 수 없습니다.
키를 Google에 전송하기 전에 암호로 래핑해야 합니다. 대부분의 사용자는 다음 단계에 설명된 대로 gcloud CLI를 사용하여 키를 자동으로 래핑, 전송, 가져올 수 있습니다. 키를 수동으로 래핑하기 위한 규정 또는 규제 요건이 있는 경우 이 시점에서 수행할 수 있습니다. 로컬 시스템에서 키를 수동으로 래핑하려면 다음 안내를 따르세요.
- OpenSSL을 구성합니다.
- 가져오기 작업당 한 번씩 가져오기 작업과 연결된 래핑 키를 다운로드합니다.
- 키당 한 번, 여러 환경 변수를 설정하고 키를 래핑합니다.
가져오기 작업이 만료될 때까지 최대 3일 동안 이를 사용하여 가져오기 요청을 통해 키를 하나 이상 가져옵니다. 가져오기 요청 중에는 다음을 따릅니다.
- 키가 수동으로 래핑되지 않은 경우 Google Cloud CLI는 가져오기 작업의 공개 키를 Google Cloud에서 로컬 시스템으로 다운로드한 다음 클라이언트와 연결된 비공개 키와 함께 공개 키 자료를 사용하여 로컬 키 자료를 래핑합니다.
- 래핑된 키 자료는 Google Cloud 프로젝트로 전송됩니다.
- 키 자료는 가져오기 작업의 비공개 키를 사용하여 래핑 해제되고 대상 키링에 대상 키의 새 버전으로 삽입됩니다. 이것은 원자 단위 연산입니다.
- 대칭 키의 경우 가져온 키를 기본 키 버전으로 설정합니다.
가져오기 요청이 성공적으로 완료되면 가져온 키 버전을 사용하여 Google Cloud의 데이터를 보호할 수 있습니다.