이 페이지에서는 Apigee와 함께 CMEK를 사용하는 방법을 설명합니다.
개요
기본적으로 Google Cloud는 Google에서 관리하는 암호화 키를 사용하여 자동으로 저장 데이터를 암호화합니다. 데이터를 보호하는 키와 관련된 특정 규정 준수나 규제 요구사항이 있는 경우에 고객 관리 암호화 키(CMEK)를 사용할 수 있습니다.
Apigee에서 CMEK 사용에서 Apigee용 CMEK 사용에 대한 자세한 내용을 확인할 수 있습니다. CMEK를 사용 설정하는 시기와 이유를 포함한 일반적인 CMEK에 대한 자세한 내용은 Cloud Key Management Service 문서를 참조하세요.
고객 관리 암호화 키(CMEK)를 사용한다고 해서 Google의 기본 암호화 메커니즘보다 보안이 무조건 향상되는 것은 아닙니다. 하지만 보안 및 규정 준수 요구사항을 충족하기 위해 키의 수명 주기 및 관리의 여러 측면을 제어할 수 있습니다.
CMEK의 이점
Google 관리 암호화 키로 허용되는 것보다 키 작업을 더 확실하게 제어해야 할 경우 고객 관리 암호화 키를 사용할 수 있습니다. 이러한 키는 Cloud Key Management Service(Cloud KMS)를 사용하여 생성 및 관리되며, HSM 클러스터에 또는 외부적으로 키를 소프트웨어 키로 저장합니다.
키 관리 기능은 Cloud KMS 서비스에서 제공됩니다. 일반적인 사용 사례는 다음과 같습니다.
- 키 순환. 키를 자동 또는 수동으로 순환합니다. 키가 순환되면 이전에 Apigee에 저장된 데이터는 새 키 버전으로 자동으로 다시 암호화되지 않지만, 데이터를 암호화하는 데 사용되는 이전 키 버전이 중지되거나 폐기되지 않는 한 계속 액세스할 수 있습니다.
- 키 버전 사용 설정 또는 중지. 키 버전이 사용 중지되면 이 키 버전으로 암호화된 Apigee 데이터에 액세스할 수 없습니다. 데이터에 대한 액세스를 복원하기 위해 키를 다시 사용 설정할 수 있습니다.
- 키 버전 폐기. 키 버전이 폐기되면 해당 키 버전으로 암호화된 모든 Apigee 데이터를 읽고 복구할 수 없게 됩니다. 이 작업은 영구적이고 되돌릴 수 없습니다.
-
IAM을 사용하여 키에 대한 Apigee 서비스 에이전트의 액세스 권한 취소 이렇게 하면 Apigee가 키 버전으로 암호화된 제어 영역 데이터에 액세스할 수 없습니다. 데이터 복호화에 의존하는 Apigee API 작업이 실패합니다. 키에 대한 액세스 권한을 다시 부여하면 데이터에 대한 액세스 권한이 복원될 수 있으며 데이터를 복호화하는 Apigee API 작업이 복원됩니다.
할당량
CMEK 키를 사용하면 일부 Cloud KMS 할당량에 대한 사용량이 생성될 수 있습니다. Cloud KMS 할당량에 대한 최신 정보는 할당량을 참조하세요.
암호화 키 취소
Google Cloud의 Apigee 데이터가 손상되었다고 생각되면 암호화 키를 취소할 수 있습니다. 런타임 인스턴스 CMEK를 취소하여 런타임 인스턴스가 오작동하고 게이트웨이 데이터에 액세스할 수 없도록 합니다. 제어 영역 CMEK를 취소하여 Apigee가 분석 작업을 수행하거나 새 프록시를 배포할 수 없도록 합니다.
Apigee와 함께 CMEK 사용
Apigee 암호화 키는 런타임 및 제어 영역 데이터에 사용되며 프로비저닝 프로세스 중에 생성됩니다.
Apigee 제어 영역 데이터는 런타임 데이터와 다른 암호화 키를 사용하여 암호화되며 다른 리전에 저장될 수 있습니다. CMEK 문서에 따라 이 암호화는 저장 데이터, 즉 디스크에 궁극적으로 저장되는 데이터에만 적용됩니다.
Apigee 제어 영역 데이터에는 프록시 구성(번들), 일부 환경 구성 데이터, 분석 데이터가 포함됩니다. Apigee 런타임 데이터에는 KVM, 캐시, 클라이언트 보안 비밀번호 등의 애플리케이션 데이터가 포함되며, 이후 런타임 데이터베이스에 저장됩니다.
암호화 키 유형에 대한 설명은 Apigee 암호화 키 정보를 참조하세요.
Apigee 조직을 만들 때만 암호화 키를 추가할 수 있습니다. CMEK가 할당되면 조직을 만든 후에는 다른 CMEK로 변경할 수 없습니다.
데이터 상주 제어 영역 CMEK 리전
리전화된 Apigee 제어 영역에서 제어 영역에 대해 2개의 암호화 키를 선택합니다. Apigee 제어 영역의 기반이 되는 일부 구성요소가 항상 제어 영역 위치 내 단일 리전에 있기 때문입니다. 자세한 내용은 데이터 상주 리전을 참조하세요.
세부정보 | 필수 키 |
---|---|
제어 영역 리전은 제어 영역이 실행되는 위치입니다. Apigee의 제어 영역은 여러 기본 구성요소가 Apigee 제어 영역을 구성하는 추상 개념입니다. 제어 영역 데이터는 프록시 구성 및 분석 스토리지입니다. 다른 제어 영역 데이터(예: 애널리틱스 처리, 포털)는 제어 영역의 하위 리전에 있습니다. 모든 하위 리전 구성요소는 서로 동일한 리전에 있게 됩니다. |
제어 영역 데이터용 키 한 개 제어 영역 하위 리전 데이터용 키 한 개 |
암호화 키를 만드는 방법
기본적으로 Google은 프로비저닝 프로세스 중에 암호화 키 생성을 관리하지만 사용자가 직접 만들 수도 있습니다. 자세한 내용은 Apigee 암호화 키 정보를 참조하세요.
위험 및 완화
이 섹션에서는 잠재적인 위협과 취할 수 있는 조치를 설명합니다.
- 위험:
- 키 손상: 공격자가 KMS의 취약점이나 키 관리자에 대한 공격을 통해 암호화 키에 액세스할 수 있을 때 발생합니다.
- 서비스 거부: 공격자가 KMS 또는 스토리지 시스템을 공격하여 암호화 키 또는 데이터에 대한 액세스를 중단할 수 있습니다.
- 키 손실: 우발적인 키 삭제 또는 손실로 인해 데이터 손실 또는 액세스 불가가 발생할 수 있습니다.
- 완화 조치:
- 강력한 액세스 제어 및 키 관리 정책을 구현합니다.
- KMS 로그 및 활동을 모니터링하여 의심스러운 동작을 찾습니다.
문제 해결
다음 표에서는 CMEK로 암호화된 configstore 데이터, Apigee API에서 반환되는 대략적인 오류 메시지, 권장되는 문제 해결 단계에서 발생할 수 있는 몇 가지 일반적인 오류 조건을 설명합니다.
오류 메시지/증상 | 원인 | 수행할 단계 |
---|---|---|
Apigee does not have permission to access key "..."
|
사용자가 제공된 KMS 키에 대한 Apigee의 액세스 권한을 취소했습니다. 즉,
roles/cloudkms.cryptoKeyEncrypterDecrypter 역할을 삭제했습니다.
|
사용자는 KMS 키에 구성된 역할을 확인하고 Apigee 서비스 에이전트에 필요한 권한이 있는지 확인해야 합니다. |
Unable to encrypt/decrypt data. Cloud KMS Error: "..." is not
enabled, current state is: DESTROYED.
|
사용자가 요청된 데이터를 암호화/복호화하는 데 사용되는 키 버전을 사용 중지 또는 삭제했습니다. | 사용자는 가능한 경우 키 버전을 다시 사용 설정해야 합니다. 키 또는 키 버전이 삭제되면 데이터를 설계상 복구할 수 없습니다. |
No new Analytics data for US/EU users
|
이 문제의 가능한 원인 중 하나는 사용자가 단일 리전 키를 취소/사용 중지/삭제한 것일 수 있습니다. | 사용자는 단일 리전 키 액세스를 다시 사용 설정/복원해야 합니다. |
Control plane key "..." in region "..." is not valid for this
control plane instance. Supported region(s) are "…".
|
사용자가 제어 영역의 인스턴스에서 제공하는 리전 또는 멀티 리전에 유효하지 않거나 지원되지 않는 리전에서 단일 리전 제어 영역 키를 제공했습니다. | 사용자는 지원되는 리전 중 하나에서 키를 제공하거나 다른 제어 영역 인스턴스를 사용해야 합니다. |
Multi-region control plane key is not valid for this control
plane instance. Specify only the "apiConsumerDataEncryptionKeyName"
field.
|
사용자가 단일 리전에만 있는 제어 리전(즉, 멀티 리전 제어 영역 아님)의 멀티 리전 제어 영역 키를 제공했습니다. | 사용자는 멀티 리전 키 필드를 생략하거나 멀티 리전 제어 영역 인스턴스를 사용하도록 선택해야 합니다. |
Multi-region control plane key is not valid for this control
plane instance. Specify a multi-region key with region "..."
|
사용자가 잘못된 멀티 리전 제어 영역 인스턴스에 멀티 리전 제어 영역 키를 제공했습니다(예: 'eu' 제어 영역 인스턴스에 'us' 키). | 사용자는 올바른 멀티 리전에서 멀티 리전 키를 사용하거나 다른 멀티 리전 제어 영역 인스턴스를 사용하도록 선택해야 합니다. |