키 가져오기

이 주제에서는 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을 사용하여 키 래핑을 참조하세요.

다음 다이어그램은 자동 키 래핑을 사용하는 키 가져오기 프로세스를 보여줍니다. 다이어그램에 표시된 단계는 이 섹션에 설명되어 있습니다.

이 섹션에 설명된 가져오기 흐름

  1. 키를 가져올 준비를 합니다.

    1. 먼저 가져오기 작업과 가져온 키 자료가 포함될 대상 키링과 키를 만듭니다. 이 시점에서 대상 키에는 키 버전이 포함되어 있지 않습니다.

    2. 다음으로 가져오기 작업을 만듭니다. 가져오기 작업은 가져오는 키 자료의 대상 키링과 키를 정의합니다. 가져오기 작업은 가져오기 요청 중에 키 자료를 보호하는 래핑 키를 만드는 데 사용되는 알고리즘인 가져오기 방식도 정의합니다.

      • 공개 키는 클라이언트에 가져올 키를 래핑하는 데 사용됩니다.
      • 비공개 키는 Google Cloud 내에 저장되며 키가 Google Cloud 프로젝트에 도달하면 래핑을 해제하는 데 사용됩니다.

      이렇게 분리하면 Google에서 가져오기 작업의 범위를 벗어난 키 자료의 래핑을 해제할 수 없습니다.

    3. 키를 Google에 전송하기 전에 암호로 래핑해야 합니다. 대부분의 사용자는 다음 단계에 설명된 대로 gcloud CLI를 사용하여 키를 자동으로 래핑, 전송, 가져올 수 있습니다. 키를 수동으로 래핑하기 위한 규정 또는 규제 요건이 있는 경우 이 시점에서 수행할 수 있습니다. 로컬 시스템에서 키를 수동으로 래핑하려면 다음 안내를 따르세요.

      1. OpenSSL을 구성합니다.
      2. 가져오기 작업당 한 번씩 가져오기 작업과 연결된 래핑 키를 다운로드합니다.
      3. 키당 한 번, 여러 환경 변수를 설정하고 키를 래핑합니다.
  2. 가져오기 작업이 만료될 때까지 최대 3일 동안 이를 사용하여 가져오기 요청을 통해 키를 하나 이상 가져옵니다. 가져오기 요청 중에는 다음을 따릅니다.

    1. 키가 수동으로 래핑되지 않은 경우 Google Cloud CLI는 가져오기 작업의 공개 키를 Google Cloud에서 로컬 시스템으로 다운로드한 다음 클라이언트와 연결된 비공개 키와 함께 공개 키 자료를 사용하여 로컬 키 자료를 래핑합니다.
    2. 래핑된 키 자료는 Google Cloud 프로젝트로 전송됩니다.
    3. 키 자료는 가져오기 작업의 비공개 키를 사용하여 래핑 해제되고 대상 키링에 대상 키의 새 버전으로 삽입됩니다. 이것은 원자 단위 연산입니다.
    4. 대칭 키의 경우 가져온 키를 기본 키 버전으로 설정합니다.

가져오기 요청이 성공적으로 완료되면 가져온 키 버전을 사용하여 Google Cloud의 데이터를 보호할 수 있습니다.

다음 단계