보안 및 개인정보 보호 고려사항

개요

이 도움말 섹션에서는 gsutil에서 데이터 보안을 보호하는 다양한 예방 조치에 대한 세부정보와 고객이 보안을 보호하는 방법을 설명합니다.

전송 계층 보안

gsutil은 공유 네트워크 링크를 통한 데이터 유출을 방지하기 위해 전송 계층 암호화(HTTPS)를 사용하여 모든 작업을 수행합니다. gsutil은 인증(OAuth2)과 재개 가능한 업로드 식별자에 'Bearer 토큰'을 사용하므로 이러한 토큰이 누락되고 재사용되는 것을 방지해야 합니다.

gsutil은 XML API를 통해 이전의 HMAC 인증도 지원합니다(gsutil 도움말: API 참조). HMAC 인증에서는 Bearer 토큰이 사용되지 않아 도청/재생 공격이 발생하지 않으나, 데이터 트래픽을 암호화하는 것이 여전히 중요합니다.

gsutil 출시 버전 4.0 이전에는 boto 구성 파일의 [Boto] 섹션에서 'is_secure' 구성 매개변수를 False로 설정하여 HTTPS 대신 HTTP를 사용할 수 있었습니다. 하지만 gsutil 버전 4.0부터는 is_secure를 False로 설정할 수 없습니다. 다양한 사용자 인증 정보 옵션에 대한 자세한 내용은 gsutil 도움말: 사용자 인증 정보를 참조하세요.

로컬 파일 스토리지 보안

gsutil은 로컬에 저장되는 파일의 보안 악용을 방지하기 위해 여러 예방 조치를 취합니다.

  • gsutil 구성이나 Cloud SDK 설치의 gcloud init 명령어를 실행하면 .boto 구성 파일에서 파일 보호 모드 600('-rw-------')을 설정하기 때문에 사용자(또는 수퍼유저)만 읽을 수 있습니다. 이러한 파일에는 사용자 인증 정보 및 프록시 구성 등 보안에 민감한 정보가 포함되어 있기 때문에 중요합니다.
  • gsutil 구성이나 Cloud SDK 설치의 gcloud init 명령어는 서비스 계정 사용자 인증 정보를 만들 때 로컬에 저장된 비공개 키 파일의 파일 보호 모드 600을 사용합니다.
  • gsutil 명령어로부터 로깅 출력의 기본 수준에는 OAuth2 토큰, 프록시 구성 정보 등 보안에 민감한 정보가 포함되지 않습니다. gsutil -D 옵션을 사용하여 디버그 출력 수준을 높이려면 아래의 '권장되는 사용자 예방 조치' 섹션을 참조하세요.

Windows에서는 보호 모드가 지원되지 않으므로 Windows에서 gsutil을 사용하는 경우 암호화된 파일 시스템과 강력한 계정 비밀번호를 사용하는 것이 좋습니다.

Gsutil에 의해 디스크에 임시로 작성된 보안에 민감한 파일

gsutil은 여러 상황에서 임시 파일의 데이터를 버퍼링합니다.

  • gsutil cp -z/-Z를 통해 업로드되는 데이터를 압축하는 동안 gsutil은 업로드가 완료된 후 삭제하는 보호 조치 600으로 임시 파일의 데이터를 버퍼링합니다(gsutil cp -z/-Z로 업로드되는 파일 다운로드 또는 콘텐츠 인코딩을 'gzip'으로 설정하는 일부 기타 프로세스에도 유사하게 적용). 그러나 업로드가 진행되는 동안 gsutil 프로세스를 종료하면 부분적으로 작성된 파일이 그대로 유지됩니다. 임시 파일이 작성된 위치와 임시 디렉터리 위치를 변경하는 방법은 gsutil 도움말: CP의 '임시 디렉터리 변경' 섹션을 참조하세요.
  • 재개 가능한 업로드를 수행할 때 gsutil은 업로드 ID(위에서 언급한 것처럼 Bearer 토큰이므로 안전하게 보호되어야 함)를 보호 조치 600을 통해 ~/.gsutil/tracker-files 내에 파일 형태로 저장하고, 업로드가 완료되면 이 파일을 삭제합니다. 하지만 업로드가 성공적으로 완료되지 않으면 추적기 파일이 그대로 남아 있기 때문에 재개 가능한 업로드를 향후 다시 시도할 수 있습니다. 재개 가능한 업로드 ID는 일주일 동안만 유효하지만, 시간 경과에 따라 중단된 업로드 시도로부터 이러한 추적기 파일을 누적될 수 있으므로 파일의 보안에 대한 위험은 해당 기간에만 존재합니다. 추적기 디렉터리에 중단된 업로드 ID를 남겨두는 것이 위험성이 너무 높다고 판단되면 업로드 스크립트를 수정하여 추적기 파일을 삭제할 수 있습니다. 또는 크론 작업을 만들어 추적기 디렉터리를 주기적으로 지울 수 있습니다.
  • gsutil rsync 명령어는 소스 및 대상 디렉터리/버킷의 이름, 크기, 체크섬을 포함하는 임시 파일(보호 조치 600 포함)을 저장하며, rsync가 완료되면 이를 삭제합니다. 그러나 rsync가 진행되는 동안 gsutil 프로세스를 종료하면 목록 파일이 그대로 유지됩니다.

gsutil은 데이터 완전 삭제를 수행하지 않는 표준 OS 연결 해제 시스템 호출을 사용하여 임시 파일을 삭제합니다. 따라서 이러한 임시 파일의 콘텐츠는 공격자에 의해 복구될 수 있습니다.

액세스 제어 목록(ACL)

gsutil cp -a 옵션을 사용하는 등 다른 ACL을 지정하지 않는 한, 버킷에 작성된 기본 객체는 해당 버킷의 기본 객체 ACL을 사용합니다. gsutil defacl 명령어 통해 ACL을 수정하지 않는 한, 기본적으로 모든 프로젝트 편집자는 객체에 대한 쓰기 액세스와 객체 메타데이터에 대한 읽기/쓰기 액세스가 허용되며 모든 프로젝트 뷰어는 객체에 대한 읽기 액세스가 허용됩니다.

Cloud Storage 액세스 제어 시스템에서는 객체를 공개적으로 읽을 수 있는지 여부를 지정할 수 있습니다. 이 권한을 사용하여 작성하는 객체가 공개되어도 괜찮은지를 확인해야 합니다. 인터넷의 데이터는 일단 '게시된' 이후에는 여러 곳에 복사될 수 있기 때문에 이 권한을 사용하여 작성한 객체에 대해 읽기를 다시 통제하는 것은 사실상 불가능합니다.

Cloud Storage 액세스 제어 시스템에서는 버킷을 공개적으로 작성할 수 있는지 여부를 지정할 수 있습니다. 공개적으로 작성할 수 있도록 버킷을 구성하는 것이 여러 가지 용도에서 편리할 수 있지만 이 권한을 사용하는 것은 바람직하지 않습니다. 불법적인 콘텐츠 바이러스나 기타 멀웨어를 유포하는 데 악용될 수 있으며, 버킷 소유자가 버킷에 저장된 콘텐츠에 대해 법적 및 재정적 책임을 져야 하기 때문입니다. Google 계정이 없는 고객에게 콘텐츠를 제공해야 하는 경우 서명된 URL을 대신 사용해 보세요(gsutil 도움말: signurl 참조).

소프트웨어 무결성 및 업데이트

gsutil은 gs://pub 버킷에 저장된 tar 및 zip 파일을 통해 독립형 번들로 배포되며, PyPi 모듈이자 번들 Cloud SDK 출시의 일부로 제공됩니다. 이러한 배포 방법은 소프트웨어의 무결성을 보호하기 위해 다양한 보안 예방 조치를 취합니다. 다른 소스(예: 미러링 사이트)에서 gsutil 사본을 가져오지 않는 것이 좋습니다.

프록시 사용

gsutil은 Squid 및 다수의 상업용 제품과 같은 프록시를 통한 액세스를 지원합니다. 이 문서에서는 기능에 대한 자세한 설명을 다루지 않지만 바이러스 검사, 데이터 유출 방지, 인증서/CA의 신뢰성 제어, 콘텐츠 유형 필터링 등 다양한 보안 관련 기능을 지원하도록 프록시를 구성할 수 있습니다. 이러한 기능 중 일부는 정상적인 gsutil 동작을 느려지게 하거나 차단할 수 있습니다. 예를 들어 바이러스 검사는 파일 콘텐츠의 복호화에 의존합니다. 이로 인해 프록시가 gsutil 연결을 종료하고 새 연결을 설정해야 합니다. 경우에 따라 프록시가 체크섬 유효성 검사 오류 및 기타 문제를 일으키는 방식으로 콘텐츠를 다시 작성하기도 합니다.

프록시 구성에 대한 자세한 내용은 gsutil 구성 또는 gcloud init 명령어로 생성된 .boto 구성 파일의 프록시 도움말 텍스트를 참조하세요.

저장 데이터 암호화

모든 Cloud Storage 데이터는 암호화되어 저장됩니다. 자세한 내용은 서버 측 암호화를 참조하세요.

자체 암호화 키를 제공할 수도 있습니다. 자세한 내용은 gsutil 도움말: 암호화를 참조하세요.

데이터 개인정보 보호

Google에서는 절대 사용자 인증 정보, 비밀번호 또는 보안에 민감한 기타 정보를 공유하라고 요청하지 않습니다. 누군가 Google을 가장하여 이러한 정보를 요청하는 잠재적 피싱 사기에 주의하세요.

측정 데이터

gsutil perfdiag 명령어는 성능 문제를 해결하는 데 사용할 수 있도록 로컬 시스템 및 네트워크 환경에 대한 다양한 성능 관련 측정 및 세부정보를 수집합니다. 이 정보는 전송하도록 선택하지 않는 한 Google로 전송되지 않습니다.