CA 서명 키 구성
Certificate Authority Service (CA 서비스)의 인증 기관 (CA)에는 발급하는 인증서에 서명하는 암호화 키가 필요합니다. 이 서명 키는 공개 키 인프라 (PKI)의 신뢰를 설정합니다.
이 문서에서는 CA 서명 키에 선택할 수 있는 키 관리 전략과 이를 구성하는 방법을 설명합니다. 최소한의 설정으로 간편하게 관리하려면 Google-owned and managed key 를 선택하고, 키의 수명 주기와 속성을 직접 관리하려면 고객 관리 키를 선택하면 됩니다.
Google-owned and managed key사용
Google-owned and managed key를 사용하는 경우 암호화 알고리즘과 키 크기를 선택합니다. CA Service는 Google 관리 프로젝트에서 전용 Cloud Key Management Service 키의 수명 주기를 만들고 관리합니다.
지원되는 서명 키 알고리즘 검토
Cloud KMS는 CA에 적합한 비대칭 서명 작업을 위해 RSA와 ECDSA라는 두 가지 알고리즘 계열을 지원합니다.
RSA
RSA 기반 서명 스킴은 광범위한 호환성을 제공합니다. 기존 시스템을 지원해야 하는 경우 RSA를 사용하세요. Cloud KMS는 RSA_SIGN_PSS 및 RSA_SIGN_PKCS1 변형을 제공합니다. 자세한 내용은 RFC 8017을 참고하세요.
RSA-PSS는 최신 기술로서 보다 안전한 서명 스킴이며 대부분의 새로운 구현에 권장됩니다. RSA_SIGN_PKCS1는 아직 PSS를 지원하지 않는 이전 시스템과의 호환성을 위해 제공됩니다.
ECDSA
타원 곡선 키는 더 작은 키 크기로 RSA와 유사한 보안을 제공합니다. Cloud KMS는 EC_SIGN_P256 및 EC_SIGN_P384를 지원합니다. ECDSA는 최신 시스템에서 성능과 효율성 면에서 선호되는 경우가 많습니다.
혼합 체인
동일한 인증서 체인 내에서 서로 다른 알고리즘 계열을 사용하면 일부 시스템에서 문제가 발생할 수 있습니다. 잠재적인 문제를 완화하려면 RSA와 ECDSA에 별도의 체인을 사용하는 것이 좋습니다.
지원되는 키 크기 검토
동일한 계열 내에서 키 크기가 더 크면 보안 강도를 높일 수 있지만 이러한 키는 저장 및 전송되는 데이터도 증가시킵니다. 또한 경우에 따라서는 차이가 미미할지라도 키 크기가 커서 암호화 및 서명 작업에 시간이 오래 걸릴 수 있습니다.
루트 또는 장기 지속 하위 CA와 연관된 것과 같이 장기적으로 지속되는 키의 경우에는 다른 키보다 보안 강도가 높은 키 크기를 사용할 수 있습니다. 예를 들어 루트 CA에는 4, 096비트 RSA 키를 사용하고 수명이 짧은 종속 CA에는 2, 048비트 RSA 키를 사용할 수 있습니다.
CA 키의 서명 알고리즘 선택
CA 키의 서명 알고리즘을 선택할 때 다음 단계를 고려하세요.
알고리즘 계열을 선택합니다.
기존 루트 CA까지 연결되는 종속 CA를 만들 경우 루트와 동일한 계열을 사용합니다.
새 루트 CA를 만들 때 ECDSA를 지원하지 않는 기존 시스템을 사용해야 할 경우에는 RSA 서명 알고리즘 중 하나를 사용합니다.
그렇지 않고 이러한 조건이 적용되지 않는다면 타원 곡선 서명 알고리즘 중 하나를 사용하는 것이 좋습니다.
RSA만 해당: 서명 알고리즘을 선택합니다.
PSS를 지원하지 않는 기존 라이브러리 또는 프레임워크를 사용해야 할 경우에는
RSA_SIGN_PKCS1알고리즘 중 하나를 사용합니다.그렇지 않으면
RSA_SIGN_PSS알고리즘 중 하나를 사용합니다.키 크기를 선택합니다.
몇 년 이상의 수명이 예상되는 새로운 루트 CA 또는 종속 CA의 경우 해당 알고리즘 계열에서 사용 가능한 가장 큰 키 크기를 사용하는 것이 좋습니다.
- RSA에서 지원되는 가장 큰 키 크기는 4,096비트입니다.
- ECDSA에서 지원되는 가장 큰 키 크기는 384비트입니다.
수명이 짧은 종속 CA의 경우 RSA의 경우 2, 048비트, ECDSA의 경우 256비트와 같이 더 작은 키 크기를 사용할 수 있습니다.
고객 관리 키 사용
자체 Cloud KMS 프로젝트에서 관리되는 신규 또는 기존 비대칭 서명 키를 사용하도록 CA를 구성할 수 있습니다. 이 옵션을 사용하면 키의 수명 주기, 권한, 속성을 직접 제어할 수 있습니다. Cloud KMS는 키의 알고리즘과 크기를 정의합니다. CA를 구성하고 만들 때 알고리즘 매개변수가 아닌 기존 키 버전을 선택합니다.
서명 키와 암호화 키 구분
Cloud Key Management Service 키를 CA 서명 키로 사용하는 것은 하나 이상의 Cloud KMS 키를 저장 데이터 암호화에 사용하는 것과 다릅니다. 이 두 키 유형의 주요 차이점은 Cloud KMS에서 구성된 CryptoKeyPurpose입니다.
- CA 서명 키:
ASYMMETRIC_SIGN의CryptoKeyPurpose가 있는 키가 필요합니다. 이러한 키는 인증서 발급을 위한 디지털 서명 작업을 실행합니다. - 저장 데이터 암호화 키:
ENCRYPT_DECRYPT의CryptoKeyPurpose이 있는 키가 필요합니다. 이러한 키는 데이터를 암호화하고 복호화합니다. 저장 데이터 암호화 키를 고객 관리 암호화 키 (CMEK)라고도 합니다.
서명과 저장 데이터 암호화에 단일 Cloud KMS 키를 사용할 수 없습니다. 이러한 목적은 상호 배타적이며 키 생성 시 설정합니다.
CA 서비스는 ENCRYPT_DECRYPT 용도의 키를 사용하여 별도로 구성하는 CA 풀과 같은 리소스의 저장 데이터 암호화도 지원합니다. 자세한 내용은 CA 풀 만들기를 참고하세요.
시작하기 전에
다음 요구사항을 충족해야 합니다.
- 키는 Cloud KMS 프로젝트에 있어야 합니다. 키 만들기를 참고하세요.
키의 용도는
ASYMMETRIC_SIGN이어야 합니다.키의 알고리즘은 지원되는 비대칭 서명 알고리즘이어야 합니다.
키는 CA 풀과 동일한 위치에 있어야 합니다. 예를 들어 CA 풀이
us-central1에 있는 경우 Cloud KMS 키도us-central1에 있어야 합니다. Cloud KMS 위치에 대한 자세한 내용은 Cloud KMS 위치를 참고하세요.사용할 키 버전이 사용 설정되어 있어야 합니다.
필요한 역할
서비스 계정에 서명 작업에 고객 관리 키를 사용하는 데 필요한 권한이 있는지 확인하려면 관리자에게 Cloud Key Management Service 키에 대한 Cloud Key Management Service CryptoKey 서명자/확인자 (roles/cloudkms.signerVerifier) IAM 역할을 서비스 계정에 부여해 달라고 요청합니다.
관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 서비스 계정에 필요한 권한을 부여할 수도 있습니다.
키 버전 리소스 ID 가져오기
CA를 만들 때 특정 Cloud KMS CryptoKeyVersion의 전체 리소스 ID를 제공해야 합니다. CA 생성 프로세스에서 사용할 수 있도록 이 문자열을 복사합니다.
필수 리소스 ID 형식은 다음과 같습니다.
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KMS_KEY/cryptoKeyVersions/VERSION
다음을 바꿉니다.
- KMS_PROJECT_ID: KMS 키가 포함된 프로젝트의 ID입니다.
- LOCATION: KMS 키의 위치입니다. CA 풀과 동일한 위치여야 합니다.
- KEY_RING: KMS 키링의 이름입니다.
- KMS_KEY: KMS 키의 이름입니다.
- VERSION: KMS 키 버전입니다.
자세한 내용은 Cloud KMS 리소스 ID 가져오기를 참고하세요. 인증 기관을 만들 때 이 ID를 사용합니다.
다음 단계
- 루트 CA를 만드는 방법을 알아보세요.
- 하위 CA 만들기 방법을 알아보세요.
- Cloud KMS: 키 용도 및 알고리즘에 대해 알아보기
- Cloud KMS: 디지털 서명에 대해 알아보기
- 스토리지 버킷 구성 방법을 알아봅니다.