암호화된 스토리지 버킷 관리

이 페이지에서는 암호화된 스토리지 버킷을 관리하는 방법을 안내하며, 특히 v2 암호화의 AEADKeys 새로고침 및 순환에 중점을 둡니다. 여기에서는 kubectl 명령어를 사용하여 AEADKeys 및 kekRef 보안 비밀을 관리하기 위한 사전 요구사항과 단계를 다룹니다. 이 정보를 사용하면 강력한 데이터 보안을 적용하고 효과적인 수명 주기 관리를 통해 암호화 키가 손상될 위험을 최소화할 수 있습니다.

이 페이지는 Google Distributed Cloud (GDC) 에어 갭 환경에서 스토리지 버킷의 암호화 설정을 관리하는 인프라 운영자 그룹의 IT 관리자 또는 애플리케이션 운영자 그룹의 개발자와 같은 사용자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상 독자를 참고하세요.

시작하기 전에

스토리지 버킷은 특정 프로젝트에 범위가 지정된 리소스입니다. 프로젝트는 컨테이너 역할을 하며 버킷을 그룹화하고 Management API 서버를 통해 버킷을 관리할 수 있도록 합니다. 이 페이지에서 작업을 수행하려면 새 프로젝트를 만들거나 충분한 권한이 있는 기존 프로젝트를 선택해야 합니다.

필요한 IAM 역할

IAM 프로젝트 관리자에게 문의하여 프로젝트 네임스페이스에서 다음 역할을 요청하세요.

  • 프로젝트 버킷 관리자 (project-bucket-admin): 스토리지 버킷을 만들고 업데이트하고 삭제합니다.
  • 프로젝트 버킷 객체 뷰어 (project-bucket-object-viewer): 스토리지 버킷 및 객체의 세부정보를 보고 확인합니다.

자세한 내용은 버킷 액세스 권한 부여를 참고하세요.

개발 환경 준비

관리 API 서버 또는 전역 API 서버에 대해 명령어를 실행하려면 다음 단계를 따르세요.

  1. 로그인하고 생성합니다. 영역 관리 API 서버의 kubeconfig 파일이 없는 경우
  2. 이중 영역 버킷의 경우 다음을 수행합니다.

암호화 리소스 관리

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를 삭제합니다.