이 페이지에서는 Apigee에서 CMEK를 사용하는 방법을 설명합니다. 권장사항은 Apigee CMEK 권장사항을 참조하세요.
개요
기본적으로 Google Cloud는 Google에서 소유하고 관리하는 암호화 키를 사용하여 자동으로 저장 데이터를 암호화합니다. 데이터를 보호하는 키와 관련된 특정 규정 준수나 규제 요구사항이 있는 경우에 고객 관리 암호화 키(CMEK)를 사용할 수 있습니다.
Apigee에 CMEK를 사용하는 방법에 대한 자세한 내용은 Apigee에서 CMEK 사용을 참조하세요. CMEK를 사용 설정하는 시기와 이유를 포함한 일반적인 CMEK에 대한 자세한 내용은 Cloud Key Management Service 문서를 참조하세요.
고객 관리 암호화 키(CMEK)를 사용한다고 해서 Google의 기본 암호화 메커니즘보다 보안이 무조건 향상되는 것은 아닙니다. 하지만 보안 및 규정 준수 요구사항을 충족하기 위해 키의 수명 주기 및 관리의 여러 측면을 제어할 수 있습니다.
Google 소유 및 Google 관리 키에서 허용하는 것보다 더 세밀하게 키 작업을 제어해야 하는 경우 고객 관리 암호화 키를 사용하면 됩니다. 이러한 키는 Cloud Key Management Service(Cloud KMS)를 사용하여 생성 및 관리되며, HSM 클러스터에 또는 외부적으로 키를 소프트웨어 키로 저장합니다.
키 관리 기능은 Cloud KMS 서비스에서 제공합니다.
CMEK 사용 사례
이 섹션에서는 Apigee에서 CMEK를 사용하는 일반적인 사용 사례를 설명합니다.
키 순환
키를 자동 또는 수동으로 순환합니다. 키가 순환되면 이전에 Apigee에 저장된 데이터는 새 키 버전으로 자동으로 다시 암호화되지 않지만, 데이터를 암호화하는 데 사용되는 이전 키 버전이 중지되거나 폐기되지 않는 한 계속 액세스할 수 있습니다.
키 순환의 주된 목적은 이전 키 버전을 완전히 대체하는 것이 아니라 데이터 노출을 하나의 키로 제한하는 것입니다.
Apigee는 현재 키 순환 시 재암호화를 지원하지 않습니다.
특히 Apigee의 경우 키를 순환하면 제한된 수의 새 데이터(예: 새 프록시 버전)만 새 기본 키 버전으로 암호화됩니다. 분석 데이터, 런타임 디스크, 이전 프록시 버전과 같은 대부분의 데이터는 여전히 이전 키 버전을 사용합니다.
이전 키 버전을 완전히 삭제하려면 apigee
조직을 다시 만들어야 합니다. 런타임 암호화 키의 경우 이전 키 버전을 완전히 삭제하려면 런타임 인스턴스를 다시 만들어야 합니다. 자세한 내용은
Apigee CMEK 권장사항을 참조하세요.
참조: 키 순환
키 삭제 및 사용 중지
키 버전이 사용 중지되면 해당 키 버전으로 암호화된 Apigee 데이터에 액세스할 수 없게 됩니다. 데이터에 대한 액세스 권한을 복원하려면 키를 다시 사용 설정하면 됩니다.
이전 버전의 CMEK 키만 삭제하거나 사용 중지해도 암호화에 사용되는 키 버전에 따라 apigee
조직이 오작동하기 시작합니다. 특정 API는 데이터를 복호화하는 데 CMEK 키가 필요하므로 즉시 작동을 중지하는 반면, 특정 함수는 Compute Engine 영구 디스크를 다시 마운트하는 것과 같은 일부 시스템 작업이 트리거될 때만 오작동하기 시작합니다. 자세한 내용은
키 사용 중지를 참조하세요.
키 버전이 폐기되면 해당 키 버전으로 암호화된 모든 Apigee 데이터를 읽고 복구할 수 없게 됩니다. 이 작업은 영구적이고 되돌릴 수 없습니다.
참조:
키 복원
키 또는 이전 키 버전을 실수로 삭제하거나 사용 중지한 경우 최대한 빨리 복원해야 합니다.
CMEK는 키를 사용할 수 없는 경우 데이터 손실을 방지하기 위한 기능입니다.
키를 복원해도 apigee
조직의 복구가 보장되지는 않으며 데이터 손실이 발생할 수 있습니다. 자세한 내용은
키 재사용 설정을 참조하세요.
Google Cloud Customer Care에 문의하여 다음으로 취해야 할 조치를 알아보세요.
참조: 키 버전 폐기 및 복원
키 액세스 권한 취소
IAM을 사용하여 Apigee 서비스 에이전트의 키에 대한 액세스 권한을 취소하면 Apigee는 어떤 키 버전으로 암호화된 컨트롤 플레인 데이터에도 액세스할 수 없습니다. 데이터 복호화를 사용하는 Apigee API 작업은 실패합니다. 키에 대한 액세스 권한을 다시 부여하여 데이터에 대한 액세스 권한을 복원할 수 있으며 데이터를 복호화하는 Apigee API 작업도 복원됩니다.
EKM
Apigee는 현재 Cloud 외부 키 관리자(Cloud EKM)를 지원하지 않습니다. Cloud EKM을 사용하는 경우 Cloud EKM 오류가 제대로 전파 및 표시되지 않는 알려진 결함이 있습니다.
키 추적
Apigee는 키 추적을 지원하지 않습니다. 키 사용을 보고 특정 버전의 키가 사용되지 않는 것으로 확인되면 Apigee가 키 추적 기능과 통합되지 않았기 때문에 정확하지 않을 수 있습니다.
할당량
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 Cloud 프로젝트에 CMEK 조직 정책 제약조건이 있는 경우 Apigee는 이러한 제약조건을 준수하도록 적용합니다. Google Cloud UI, CLI를 통해 Apigee를 사용하거나 Apigee API를 통해 직접 Apigee를 사용하는 경우 CMEK 정책이 적용됩니다. Google Cloud Apigee UI를 사용할 때는 UI에서 유효한 규정 준수 구성을 선택하도록 안내할 수 있도록 CMEK 조직 정책 제약조건이 사전 검증됩니다.
CMEK 조직 정책 제약조건을 만들어 다음을 요구할 수 있습니다.
현재 Apigee의 일부 기능은 CMEK를 준수하지 않습니다. CMEK가 필요한 프로젝트가 의도치 않게 CMEK로 보호되지 않는 기능을 사용하지 않도록 하기 위해 CMEK 제약 조건이 적용되는 프로젝트에서는 규정을 준수할 때까지 이러한 기능이 사용 중지됩니다. 기능의 새로운 사용만 사용 중지됩니다(새 리소스 만들기 또는 부가기능 사용 설정). 이미 사용 중인 기능과 리소스는 계속 사용할 수 있고 수정할 수 있지만 CMEK를 준수하지는 않습니다. 다음 기능이 사용 중지됩니다.
- CMEK가 필요한 새로 만든 조직에는 Apigee 기존 UI를 사용할 수 없습니다. CMEK 조직은 기존 UI에서 지원되지 않는 리전 조직이기 때문입니다. 기존 조직은 기존 UI를 계속 사용할 수 있습니다. CMEK 사전 검증은 기존 UI에 구현되지 않으며 API 오류를 사용합니다. 즉, CMEK가 필요한 기존 조직에는 CMEK 구성을 구성하거나 CMEK를 준수하지 않는 기능을 사용 중지하기 위한 안내 UX가 제공되지 않습니다.
-
Apigee Shadow API Discovery는 CMEK 조직 정책의 적용을 받지 않으며 CMEK를 준수하지 않습니다.
- CreateOrganization 평가 조직 API와 평가 프로비저닝 마법사 모두에서 평가 조직 생성이 차단됩니다.
-
Gemini Code Assist를 사용할 수 없습니다.
- CreateOrganization 평가 조직 API 및 평가 프로비저닝 마법사에서 글로벌 조직 생성이 차단됩니다.
- 시정 조치에는 Hybrid 인스턴스 생성을 사용할 수 없습니다.
- CMEK가 필요한 경우 Apigee의 데이터로 Looker Studio를 여는 Looker Studio 버튼이 사용 중지됩니다.
- CreateSite API로 인해 포털 생성이 차단됩니다. 포털 UI는 Google Cloud 콘솔이 아닌 기본 Apigee에만 있고 사전 검증은 기본 Apigee UI에 구현되지 않으므로 이 차단은 API 오류를 사용합니다. 기본 Apigee UI의 만들기 포털 버튼은 사용 중지되지 않습니다.
- 기존 리소스에 대한 규정 준수 소급 적용은 사용할 수 없습니다. 기존 리소스가 규정을 준수하도록 하려면 리소스를 삭제하고 다시 만들어야 합니다.
Apigee에서 조직 정책 제약조건을 사용하는 방법에 관한 자세한 내용은 Apigee에서 조직 정책 제약조건 사용을 참조하세요.
암호화 키를 만드는 방법
기본적으로 Google은 프로비저닝 프로세스 중에 암호화 키 생성을 관리하지만 사용자가 직접 만들 수도 있습니다. 자세한 내용은 Apigee 암호화 키 정보를 참조하세요.
위험 및 완화 조치
이 섹션에서는 잠재적인 위협과 취할 수 있는 조치를 설명합니다.
- 위험:
- 키 손상: 공격자가 KMS의 취약점 또는 키 관리자에 대한 공격을 통해 암호화 키에 액세스할 수 있게 된 경우 발생합니다.
- 서비스 거부: 공격자가 KMS 또는 스토리지 시스템을 공격하여 암호화 키 또는 데이터에 대한 액세스를 방해할 수 있습니다.
- 키 손실: 실수로 키를 삭제하거나 분실하면 데이터가 손실되거나 액세스할 수 없게 될 수 있습니다.
- 완화 조치:
- 강력한 액세스 제어 및 키 관리 정책을 구현합니다.
- 의심스러운 동작이 있는지 KMS 로그와 활동을 모니터링합니다.
문제 해결
다음 표에는 CMEK로 암호화된 configstore 데이터와 관련하여 발생할 수 있는 일반적인 오류 조건, Apigee API에서 반환하는 대략적인 오류 메시지, 권장되는 문제 해결 단계가 나와 있습니다.
오류 메시지/증상 | 원인 | 수행할 단계 |
---|---|---|
Constraint constraints/gcp.restrictNonCmekServices violated for
projects/my-project attempting to create or enable trial org. CMEK is
not supported for trial orgs. To use trial orgs, adjust the
gcp.restrictNonCmekServices constraint for this project.
|
프로젝트에 조직 정책 제약조건이 있는 체험판 조직을 프로비저닝하려고 했습니다. |
체험판/평가 조직에는 CMEK가 지원되지 않습니다. 체험판 조직을 프로비저닝하려면 조직 정책 제약조건 constraints/gcp.restrictNonCmekServices 를 업데이트하여 거부된 서비스 목록에서 Apigee를 삭제해야 합니다.
|
Constraint constraints/gcp.restrictCmekCryptoKeyProjects
violated for projects/my-project attempting to use
projects/my-project/locations/my-location/keyRings/kr-1/cryptoKeys/ck-1
key. Use a key from a project that is allowed by the
gcp.restrictCmekCryptoKeyProjects constraint.
|
프로젝트에 조직 정책 제약조건이 있는 조직을 프로비저닝하려고 했으며 허용 목록에 없는 KMS CryptoKey를 지정했습니다. |
사용자가 나열한 허용된 프로젝트의 CMEK 키를 제공해야 하는 constraints/gcp.restrictCmekCryptoKeyProjects 를 조직 정책에 설정했습니다. 조직 또는 인스턴스를 만들려면 허용된 프로젝트의 CMEK 키를 제공해야 합니다.
또는 원하는 특정 Google Cloud 프로젝트의 키를 허용하도록 조직 정책 제약조건 constraints/gcp.restrictCmekCryptoKeyProjects 를 업데이트할 수 있습니다.
|
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' 키). | 사용자는 올바른 멀티 리전에서 멀티 리전 키를 사용하거나 다른 멀티 리전 컨트롤 플레인 인스턴스를 사용하도록 선택해야 합니다. |