이 페이지에서는 Apigee에서 CMEK를 사용하는 방법을 설명합니다.
개요
기본적으로 Google Cloud는 Google에서 소유하고 관리하는 암호화 키를 사용하여 자동으로 저장 데이터를 암호화합니다. 데이터를 보호하는 키와 관련된 특정 규정 준수나 규제 요구사항이 있는 경우에 고객 관리 암호화 키(CMEK)를 사용할 수 있습니다.
Apigee에 CMEK를 사용하는 방법에 대한 자세한 내용은 Apigee에서 CMEK 사용을 참조하세요. CMEK를 사용 설정하는 시기와 이유를 포함한 일반적인 CMEK에 대한 자세한 내용은 Cloud Key Management Service 문서를 참조하세요.
고객 관리 암호화 키(CMEK)를 사용한다고 해서 Google의 기본 암호화 메커니즘보다 보안이 무조건 향상되는 것은 아닙니다. 하지만 보안 및 규정 준수 요구사항을 충족하기 위해 키의 수명 주기 및 관리의 여러 측면을 제어할 수 있습니다.
CMEK의 이점
Google 소유 키와 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' 키). | 사용자는 올바른 멀티 리전에서 멀티 리전 키를 사용하거나 다른 멀티 리전 컨트롤 플레인 인스턴스를 사용하도록 선택해야 합니다. |