GCP - Storage Enum
스토리지
Google Cloud Platform (GCP) 스토리지는 구조화되지 않은 데이터를 위한 고도로 내구성 및 가용성을 제공하는 클라우드 기반 스토리지 솔루션입니다. 성능, 가용성 및 비용을 기반으로 하는 다양한 스토리지 클래스를 제공하며, 이에는 표준, Nearline, Coldline 및 Archive가 포함됩니다. GCP 스토리지는 라이프사이클 정책, 버전 관리 및 액세스 제어와 같은 고급 기능을 제공하여 데이터를 효과적으로 관리하고 보호합니다.
버킷은 **지역, 2개 지역 또는 멀티 지역(기본값)**에 저장될 수 있습니다.
스토리지 유형
표준 스토리지: 이는 빈번하게 액세스되는 데이터에 대한 고성능, 낮은 대기 시간 액세스를 제공하는 기본 스토리지 옵션입니다. 웹 사이트 콘텐츠 제공, 미디어 스트리밍 및 데이터 분석 파이프라인 호스팅을 포함한 다양한 용도에 적합합니다.
Nearline 스토리지: 이 스토리지 클래스는 표준 스토리지보다 낮은 저장 비용과 약간 더 높은 액세스 비용을 제공합니다. 최소 저장 기간이 30일인 드물게 액세스되는 데이터에 최적화되어 있으며, 백업 및 아카이브용으로 이상적입니다.
Coldline 스토리지: 이 스토리지 클래스는 드물게 액세스되는 데이터의 장기 저장에 최적화되어 있으며, 최소 저장 기간이 90일입니다. Nearline 스토리지보다 낮은 저장 비용을 제공하지만 높은 액세스 비용을 가집니다.
Archive 스토리지: 이 스토리지 클래스는 매우 드물게 액세스되는 콜드 데이터를 위해 설계되었으며, 최소 저장 기간은 365일입니다. 모든 GCP 스토리지 옵션 중 가장 낮은 저장 비용을 제공하지만 가장 높은 액세스 비용을 가집니다. 규정 준수 또는 규제 요건을 충족해야 하는 데이터의 장기 보존에 적합합니다.
자동 분류: 데이터에 대한 액세스 양을 모르는 경우 자동 분류를 선택할 수 있으며, GCP가 비용을 최소화하기 위해 스토리지 유형을 자동으로 변경합니다.
액세스 제어
기본적으로 액세스를 IAM을 통해 제어하는 것이 권장되지만 ACL 사용을 활성화할 수도 있습니다. IAM만 사용하도록 선택하고 90일이 지나면 버킷에 대해 ACL을 활성화할 수 없습니다.
버전 관리
버전 관리를 활성화할 수 있으며, 이는 버킷 내의 이전 버전을 저장합니다. 원하는 버전 수를 구성하고 심지어 비현재 버전(이전 버전)이 유지되는 기간을 설정할 수 있습니다. 권장 사항은 표준 유형의 경우 7일입니다.
비현재 버전의 메타데이터가 유지됩니다. 또한 비현재 버전의 ACL도 유지되므로 이전 버전은 현재 버전과 다른 ACL을 가질 수 있습니다.
자세한 내용은 문서를 참조하세요.
보존 정책
버킷 내의 객체 삭제를 금지할 기간을 지정합니다(최소한 규정 준수에 유용). 버전 관리 또는 보존 정책 중 하나만 활성화될 수 있습니다.
암호화
기본적으로 객체는 Google 관리 키를 사용하여 암호화되지만 KMS 키를 사용할 수도 있습니다.
공개 액세스
외부 사용자(GCP에 로그인한 사용자 또는 아닌 사용자)에게 버킷 콘텐츠에 액세스할 수 있습니다. 기본적으로 버킷이 생성될 때는 버킷을 공개로 노출하는 옵션이 비활성화되지만 충분한 권한이 있으면 변경할 수 있습니다.
버킷에 액세스하는 URL의 형식은 **https://storage.googleapis.com/<bucket-name>
또는 https://<bucket_name>.storage.googleapis.com
**입니다(둘 다 유효).
HMAC 키
HMAC 키는 자격 증명 유형이며 Cloud Storage의 서비스 계정 또는 사용자 계정과 연결될 수 있습니다. HMAC 키를 사용하여 Cloud Storage에 요청을 포함하는 _서명_을 생성합니다. 서명은 특정 요청이 사용자 또는 서비스 계정에 의해 승인된 것을 나타냅니다.
HMAC 키에는 _액세스 ID_와 _비밀_이라는 두 가지 주요 요소가 있습니다.
액세스 ID: 특정 서비스 또는 사용자 계정에 연결된 알파벳과 숫자의 문자열입니다. 서비스 계정에 연결되면 문자열은 61자이며, 사용자 계정에 연결되면 문자열은 24자입니다. 다음은 액세스 ID의 예시입니다:
GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA
비밀: 특정 액세스 ID에 연결된 40자의 Base-64 인코딩된 문자열입니다. 비밀은 사용자 및 Cloud Storage만 알고 있는 사전 공유 키입니다. 인증 프로세스의 일부로 서명을 생성하는 데 비밀을 사용합니다. 다음은 비밀의 예시입니다:
bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ
액세스 ID와 비밀은 HMAC 키를 고유하게 식별하지만, 비밀은 서명 생성에 사용되기 때문에 훨씬 민감한 정보입니다.
만약 버킷을 나열할 때 권한 거부 오류가 발생하면 여전히 콘텐츠에 액세스할 수 있을 수 있습니다. 따라서 이제 버킷의 이름 규칙을 알았으므로 가능한 이름 목록을 생성하고 액세스를 시도할 수 있습니다:
권한 storage.objects.list
및 storage.objects.get
을 사용하면 버킷에서 모든 폴더와 파일을 나열하여 다운로드할 수 있습니다. 다음 Python 스크립트로 이를 달성할 수 있습니다:
권한 상슨
다음 페이지에서 권한 상슨을 위해 저장소 권한을 남용하는 방법을 확인할 수 있습니다:
GCP - Storage Privesc인증되지 않은 열거
GCP - Storage Unauthenticated Enum후방 공격
GCP - Storage Post Exploitation지속성
GCP - Storage PersistenceLast updated