일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Python
- cloud armor
- kubernetes
- github
- 후기
- pub/sub
- vpc peering
- docker
- 우테캠
- cloud
- MIG
- Google Cloud Platform
- cicd
- Java
- 자격증
- gcp
- interconnect
- cloud function
- direnv
- Terraform Cloud
- 보안 규칙
- Clean Code
- Uptime Check
- vm
- CentOS
- terraform
- VAGRANT
- AWS
- devops
- IAM
- Today
- Total
EMD Blog
GCP KMS 본문
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 생성 시 알고리즘을 선택 할 수 있다. 이 알고리즘은 용도 별로 다르며, 만약 지정하지 않으면 이전 버전에서 사용한 알고리즘을 다시 사용한다.
확률적 암호화를 사용하기 때문에 같은 텍스트를 같은 알고리즘으로 암호화 하더라도 결과는 다르다.
'Public Cloud > GCP' 카테고리의 다른 글
GCP Interconnect (0) | 2022.09.03 |
---|---|
GCP 감사 로그 관련 문서 모음 (0) | 2022.09.03 |
GCP Pub/Sub + Cloud Functions로 Google Chat 알림 채널 구성 (0) | 2022.09.03 |
비공개 Uptime Check 구성 (0) | 2022.09.03 |
GCP GCS 커스텀 도메인 적용 (0) | 2022.09.03 |