Google Distributed Cloud 버전 1.10은 외부 KMS (키 관리 서비스) 또는 기타 종속 항목 없이도 보안 비밀 암호화를 지원합니다.
고급 클러스터에는 다음과 같은 제한사항이 있습니다.
- 버전 1.31: 상시 보안 비밀 암호화가 고급 클러스터에서 지원되지 않습니다.
- 버전 1.32 이상: 상시 암호화가 고급 클러스터에서 지원됩니다.
상시 보안 비밀 암호화 사용 설정
상시 보안 비밀 암호화는 클러스터의 etcd 데이터베이스에 저장되기 전에 보안 비밀을 암호화하는 데 사용되는 암호화 키를 자동으로 생성하여 작동합니다. 보안 비밀은 보안 비밀 쓰기마다 생성되는 데이터 암호화 키(DEK)를 사용하여 암호화됩니다. 이 DEK는 보안 비밀 객체를 암호화하기 위해 AES-GCM 모드로 사용됩니다. DEK는 키 암호화 키(KEK)로 다시 암호화됩니다. 암호화 알고리즘은 A256GCM(256비트 키를 사용하는 AES GCM)입니다.
키 버전은 현재 사용 중인 키를 나타내는 버전 번호입니다.
클러스터가 이미 생성된 후에 보안 비밀 암호화를 사용 설정할 수 있습니다.
관리자 클러스터의 경우 다음과 같습니다.
관리자 클러스터 구성 파일을 수정하여
secretsEncryption
섹션을 추가합니다.gkectl update
명령어를 실행합니다.gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
사용자 클러스터의 경우 다음과 같습니다.
사용자 클러스터 구성 파일을 수정하여
secretsEncryption
섹션을 추가합니다.gkectl update
명령어를 실행합니다.gkectl update cluster --config USER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
다음을 바꿉니다.
ADMIN_KUBECONFIG
를 관리자 클러스터 kubeconfig 파일의 경로로 바꿉니다.ADMIN_CLUSTER_CONFIG
를 관리자 클러스터 구성 파일의 경로로 바꿉니다.USER_CLUSTER_CONFIG
을 사용자 클러스터 구성 파일의 경로로 바꿉니다.
이 섹션에서 제공하는 gkectl update
명령어를 사용해 해당 클러스터를 업데이트할 수도 있습니다.
키 저장
관리자 클러스터의 암호화 키는 관리자 클러스터 데이터 디스크에 저장됩니다. 이 디스크는 관리자 마스터 머신의 /opt/data에 마운트되며, 암호화 키는 /opt/data/gke-k8s-kms-plugin/generatedkeys/에서 찾을 수 있습니다. 해당 키에서 사용하는 암호화된 보안 비밀에 대한 액세스 권한을 유지하려면 키를 백업해야 합니다. 제어 영역 VM 디스크가 보호되도록 하려면 하이퍼바이저에서 VM/스토리지 암호화 또는 유사한 방법을 사용 설정해야 합니다.
키 순환
클러스터의 기존 암호화 키를 순환하려면 해당 관리자 클러스터 구성 파일 또는 사용자 클러스터 구성 파일의 keyVersion
을 올리고 적절한 gkectl update
명령어를 사용합니다. 이렇게 하면 새 버전 번호와 일치하는 새 키가 생성되고, 각 보안 비밀이 다시 암호화되고, 이전 보안 비밀을 안전하게 삭제됩니다. 이후의 모든 새 보안 비밀은 새 암호화 키를 사용하여 암호화됩니다.
상시 보안 비밀 암호화 사용 중지
기존 클러스터에서 보안 비밀 암호화를 중지하려면 disabled: true
필드를 추가합니다. 그런 다음 해당하는 gkectl update
명령어를 실행합니다. 이 업데이트는 기존의 각 보안 비밀을 복호화하고 각 보안 비밀을 일반 텍스트로 저장합니다. 이후의 모든 새 보안 비밀은 일반 텍스트로 저장됩니다.
secretsEncryption: mode: GeneratedKey generatedKey: keyVersion: KEY_VERSION disabled: true