EMD Blog

GCP KMS 본문

Public Cloud/GCP

GCP KMS

EmaDam 2022. 9. 3. 10:44
반응형

GCP의 KMS 사용 시 알아두면 좋을 내용들 정리 해보았음.

계층 구조

먼저 KMS 사용전 GCP KMS 리소스의 계층 구조에 대해 알고 있어야 함. GCP KMS의 계층 구조는 organization > folder > project> keyring > key로 구성 되어 있으며, 어느 수준에서 역할을 부여하느냐에 따라 사용 가능한 key 범위가 달라진다. 예를 들면 organization 계층에서 역할을 부여하면 organization내의 모든 key를 사용 할 수 있는 것이고 keyring 계층에서 역할을 부여하면 keyring 내 key만을 사용 할 수 있는 것이다.

Key

Key는 대칭 암호화, 비대칭 서명, 비대칭 암호화, MAC 서명 용도로 사용 되며 리소스 계층 구조에 따라 하나의 키 링에 포함되어 있다.

  • 대칭 암호화: Key로 암호화/복호화 하기 때문에 항상 전체 Key가 필요하다.
  • 비대칭 암호화/서명: Public Key와 Private Key로 구성. Private Key는 데이터 복호화/서명에 사용. Public Key는 암호화/서명 확인에 사용.

각 용도에 대한 자세한 내용은 아래 문서 참고

Keyring

Keyring은 특정 위치(리전)에 존재하는 Key의 그룹이다. Key를 그룹(Keyring) 단위로 액세스 제어 할 수 있도록 해주는 역할을 한다. Keyring은 위치에서 고유해야 하며 비용이 따로 발생하지 않는다.

Resource ID 검색

Key 관련 Resource ID를 검색하고 싶다면 아래 문서들 참고

Resource 구성

무작정 Key를 만드는 것 보다는 규칙을 정해서 액세스를 관리하는 것이 좋다.

  • 환경 별 구성: prod, dev, staging 등
  • 작업 영역 별 구성: payroll, insurance_claims
  • 데이터 민감도 및 특성 별 구성: unrestricted, restricted, confidential, top-secret

Key Version

Key의 새 Version을 만드는 것을 순환이라고 한다. Key는 Version에 따라 다른 값을 가지고 있기 때문에 순환을 하면 모든 메세지가 동일한 키로 암호화되는 것을 막는 역할을 하고 공격을 받거나 키가 손상되었을 때 모든 메세지가 영향을 받는 것을 방지 할 수 있다. 대칭 키의 경우 주기를 정해 자동으로 순환이 되게 할 수 있으나 비대칭 키의 경우 순환 시 공개키를 배포해야 하기 때문에 자동 순환을 지원하지 않는다.

일부 산업 표준에서는 키를 정기적으로 순환 할 것을 요구하고 있으니 이런 보안 표준을 잘 확인해야 한다.

각 Key Version은 개별적으로 중지 시킬 수 있으며 키 자체를 중지 시키거나 폐기하면 모든 Version의 Key가 똑같이 중지/폐기 된다.

폐기되지 않은 Key Version은 비용이 발생한다.

권한

각 Key Version에 대해 개별 액세스 권한을 설정 할 수 없다. 리소스 계층 구조에 따라서 Key 단위 까지만 액세스 권할을 관리 할 수 있다. Key에 액세스 권한을 설정하면 해당 Key의 모든 Version에 동일한 액세스 권한이 적용된다.

기본 Version

비대칭 키는 Private Key/Public Key 쌍으로 사용 해야하기 때문에 사용 시 버전을 지정해주어야 한다. 하지만 대칭 키는 기본 버전이 존재하기 때문에 별 다른 버전을 명시해주지 않으면 기본 버전을 사용하게 된다.

상태

이름 설명 적용 범위
PENDING_GENERATION - 생성 중인 상태
- 사용/사용 설정/중지/폐기가 불가능
비대칭 키
PENDING_IMPORT - 가져오고 있는 상태
- 사용/사용 설정/중지/폐기가 불가능
가져온 키
ENABLED - Key Version을 사용 할 준비가 된 상태 모든 키
DISABLED - 해당 Key Version은 사용 불가능 한 상태
- ENABLED로 되돌릴 수 있음
모든 키
DESTROY_SCHEDULED - 폐기하도록 예약된 상태
- 2단계 - 소프트 삭제에 해당
- DISABLED로 되돌릴 수 있음
모든 키
DESTROYED - 폐기된 상태
- 비대칭적/대칭적 암호화의 경우 모든 암호문 복구 불가
- 디지털 서명에 사용된 경우 새로운 서명 생성 불가
- 비대칭 키의 경우 공개키 다운로드 불가
- 상태 변경 불가능
- 3단계 - 활성 시스템에서 논리적 삭제에 해당
- Google 내 모든 시스템에서 키 자료를 삭제하려면 삭제 시점부터 45일 소요 (참고: 삭제 타임라인)
 
IMPORT_FAILED - 키 버전을 가져올 수 없는 상태
- 문제 해결 방법
 

Key Version의 상태 변경은 아래 문서 참고

보호 수준

암호화 작업이 수행되는 방식에 따라 보호 수준을 지정해 줄 수 있다.

  • SOFTWARE: 암호화 작업을 소프트웨어에서 수행
  • HSM: 암호화 작업을 하드웨어 보안 모듈(HSM)에서 수행
  • 암호화 작업을 외부 키 관리자(EKM)에 저장된 키를 사용해 수행 (대칭 암호화 및 비대칭 서명만 가능)

알고리즘

Key Version 생성 시 알고리즘을 선택 할 수 있다. 이 알고리즘은 용도 별로 다르며, 만약 지정하지 않으면 이전 버전에서 사용한 알고리즘을 다시 사용한다.

확률적 암호화를 사용하기 때문에 같은 텍스트를 같은 알고리즘으로 암호화 하더라도 결과는 다르다.

반응형