이 페이지에서는 암호화된 스토리지 버킷을 관리하는 방법을 안내하며, 특히 v2 암호화의 AEADKeys 새로고침 및 순환에 중점을 둡니다. 여기에서는 kubectl 명령어를 사용하여 AEADKeys 및 kekRef 보안 비밀을 관리하기 위한 사전 요구사항과 단계를 다룹니다. 이 정보를 사용하면 강력한 데이터 보안을 적용하고 효과적인 수명 주기 관리를 통해 암호화 키가 손상될 위험을 최소화할 수 있습니다.
이 페이지는 Google Distributed Cloud (GDC) 에어 갭 환경에서 스토리지 버킷의 암호화 설정을 관리하는 인프라 운영자 그룹의 IT 관리자 또는 애플리케이션 운영자 그룹의 개발자와 같은 사용자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상 독자를 참고하세요.
시작하기 전에
스토리지 버킷은 특정 프로젝트에 범위가 지정된 리소스입니다. 프로젝트는 컨테이너 역할을 하며 버킷을 그룹화하고 Management API 서버를 통해 버킷을 관리할 수 있도록 합니다. 이 페이지에서 작업을 수행하려면 새 프로젝트를 만들거나 충분한 권한이 있는 기존 프로젝트를 선택해야 합니다.
필요한 IAM 역할
IAM 프로젝트 관리자에게 문의하여 프로젝트 네임스페이스에서 다음 역할을 요청하세요.
- 프로젝트 버킷 관리자 (
project-bucket-admin): 스토리지 버킷을 만들고 업데이트하고 삭제합니다. - 프로젝트 버킷 객체 뷰어 (
project-bucket-object-viewer): 스토리지 버킷 및 객체의 세부정보를 보고 확인합니다.
자세한 내용은 버킷 액세스 권한 부여를 참고하세요.
개발 환경 준비
관리 API 서버 또는 전역 API 서버에 대해 명령어를 실행하려면 다음 단계를 따르세요.
- 로그인하고 생성합니다. 영역 관리 API 서버의 kubeconfig 파일이 없는 경우
- 이중 영역 버킷의 경우 다음을 수행합니다.
- 인프라 운영자 (IO)에게 페어링된 영역에
BucketLocationConfig커스텀 리소스가 생성되었는지 확인합니다. - 전역 API 서버의 kubeconfig 파일을 생성합니다.
- 인프라 운영자 (IO)에게 페어링된 영역에
암호화 리소스 관리
v2 암호화가 있는 버킷에는 kekRef 보안 비밀과 여러 AEADKeys가 생성됩니다. 여기서 kekRef는 사용 중인 활성 기본 AEADKeys를 참조하는 데 사용되며 AEADKeys에는 버킷에 속한 활성 및 보관처리된 AEADKeys가 포함됩니다.
버킷의 활성 기본 AEADKeys 새로고침
약 420억 개의 객체가 작성된 후 버킷의 기본 AEADKeys를 새로고침하는 것이 좋습니다. 이러한 선제적인 단계는 보안을 강화하고 키 소진을 방지합니다. 새로고침 프로세스는 새 kekRef를 만들고 이전 AEADKeys를 비활성화합니다. 새로고침 프로세스를 시작하려면 버킷과 연결된 kekRef 보안 비밀을 삭제합니다.
이전 kekRef는 다음 명령어를 실행하여 가져올 수 있습니다.
kubectl get secrets -n NAMESPACE_NAME -l object.gdc.goog/bucket-name=BUCKET_NAME
그런 다음 다음을 실행하여 기존 kekRef를 삭제할 수 있습니다.
kubectl delete secrets OLD_KEKREF_NAME -n NAMESPACE_NAME
삭제가 완료되면 다음을 실행하여 AGE를 기반으로 새 kekRef가 생성되었는지 확인할 수 있습니다.
kubectl get secrets -n NAMESPACE_NAME -l object.gdc.goog/bucket-name=BUCKET_NAME
AGE를 기반으로 새 기본 AEADKeys가 생성되었는지 확인합니다.
kubectl get aeadkeys -n NAMESPACE_NAME -l cmek.security.gdc.goog/resource-name=BUCKET_NAME
버킷의 기본 AEADKeys 순환
버킷의 AEADKey가 손상된 경우 버킷과 연결된 키 암호화 키를 수동으로 순환해야 합니다.
프로세스를 시작하려면 먼저 활성 기본 키를 새로고침해야 합니다. 이렇게 하면 새 활성 기본 AEADKeys가 생성되고 이전 키 암호화 키가 비활성화된 것으로 표시됩니다. 기본 키를 새로고침한 후 후속 객체 업로드에서는 새 AEADKeys를 키 암호화 키로 사용합니다. 이전 AEADKeys는 삭제되지 않으므로 이러한 키를 사용하여 이전에 암호화된 기존 객체를 복호화할 수 있습니다.
다음으로 단계에 따라 버킷의 객체를 다운로드하고 다시 업로드한 후 이전 객체를 삭제합니다.
버킷의 모든 객체를 다시 업로드한 후 비활성 AEADKeys와 이전 객체를 정리할 수 있습니다. AGE를 기반으로 비활성화된 AEADKeys를 식별합니다.
kubectl get aeadkeys -n NAMESPACE_NAME -l cmek.security.gdc.goog/resource-name=BUCKET_NAME
마지막으로 단계에 따라 AEADKeys를 삭제합니다.