이 페이지에서는 Cloud Storage 버킷의 보관 정책을 구성할 수 있는 버킷 잠금 기능을 설명합니다. 이 정책은 버킷의 객체를 보관해야 하는 기간을 제어합니다. 또한 이 기능을 사용하면 버킷의 보관 정책을 잠글 수 있어 정책이 축소되거나 삭제되는 것을 영구 방지할 수 있습니다.
이 기능은 Cloud Storage에 변경할 수 없는 저장소를 제공합니다. Cloud Storage 요청 및 응답 세부정보를 로깅하는 상세한 감사 로깅 모드와 함께 버킷 잠금은 FINRA, SEC, CFTC와 관련된 요구사항과 같은 규제 및 규정 준수 요구사항을 충족하는 데 유용합니다. 또한 버킷 잠금은 특정한 의료업계 보관 규정을 준수하는 데 도움이 됩니다.
개요
버킷에 보관 정책을 추가하여 보관 기간을 지정할 수 있습니다.
버킷 보관 정책을 설정하면 버킷의 객체가 보관 기간보다 오래된 경우에만 버킷의 객체를 삭제하거나 교체할 수 있습니다.
정책은 버킷의 기존 객체뿐만 아니라 버킷에 추가된 새 객체에도 소급 적용됩니다. 이는 객체별로 데이터 보관 요구사항을 정의할 수 있는 객체 보관 잠금 기능과 다릅니다.
버킷의 보관 정책을 잠그면 버킷에 해당 정책을 영구 설정할 수 있습니다.
정책을 잠그면 정책을 삭제하거나 보관 기간을 줄일 수 없습니다.
버킷의 모든 객체가 보관 기간을 충족해야만 잠긴 정책으로 버킷을 삭제할 수 있습니다.
잠긴 정책의 보관 기간을 늘릴 수 있습니다.
버킷 보관 정책
새 버킷을 만들 때 보관 정책을 포함하거나 기존 버킷에 보관 정책을 추가할 수 있습니다. 버킷에 보관 정책을 적용하면 버킷의 현재 및 이후의 모든 객체는 보관 정책에서 정의한 기간에 도달할 때까지 삭제되거나 교체될 수 없습니다. 보관 기간이 지나지 않은 객체를 삭제하거나 교체하려고 하면 403 - retentionPolicyNotMet
오류와 함께 실패합니다.
예를 들어 한 달 전에 추가한 객체 A와 2년 전에 추가한 객체 B라는 두 객체가 있는 버킷이 있다고 가정해 보겠습니다. 버킷에 보관 기간이 1년인 보관 정책을 적용하면 향후 11개월 동안 객체 A를 삭제하거나 교체할 수 없습니다. 객체 A는 현재 1개월이 지났으며 최소한 1년은 지나야 삭제하거나 교체할 수 있습니다. 반면 객체 B는 보관 기간을 경과했기 때문에 즉시 삭제하거나 교체할 수 있습니다. 객체 B를 교체하기로 한 경우 새 버전의 객체 B는 경과 기간이 0년으로 재설정됩니다.
개별 객체를 삭제할 수 있는 시기를 편리하게 추적할 수 있도록 보관 정책이 적용된 버킷의 객체에는 각각 보관 만료 시간 메타데이터가 있습니다. 이러한 메타데이터는 객체의 보관 기간이 만료되는 날짜 및 시간을 보여줍니다.
일반적인 고려사항
보관 정책을 사용할 때 다음 사항에 유의하세요.
버킷의 보관 정책이 잠겨 있으면 정책을 늘리거나 줄이거나 삭제할 수 없습니다.
객체의 편집 가능한 메타데이터는 버킷의 보관 정책을 따르지 않으며 객체 자체를 수정할 수 없는 경우에도 수정될 수 있습니다.
버킷의 보관 정책에는 유효 시간, 즉 버킷의 모든 객체가 보관 기간을 준수한다고 보장하는 시간이 포함됩니다.
보관 정책이 적용된 버킷에서 특정 객체를 삭제할 수 있는 가장 이른 날짜를 확인하려면 객체 메타데이터의 보관 만료 날짜를 확인합니다.
다른 기능의 고려사항
다음은 다른 Cloud Storage 기능과 보관 정책의 상호작용입니다.
버킷 보관 정책과 객체 버전 관리는 Cloud Storage에서 상호 배타적인 기능입니다. 즉, 특정 버킷에서 한 번에 이들 중 하나만 사용 설정할 수 있습니다. 보관 정책을 적용할 때 버킷에 남아 있는 버전 관리된 객체도 보관 정책으로 보호됩니다.
이벤트 기반 보존 조치가 적용되는 객체는 보존 조치가 적용되는 동안 삭제될 수 없습니다. 객체에서 이벤트 기반 보존 조치가 삭제되면 객체의 보관 기간이 재설정됩니다.
개별 객체에는 버킷의 보관 정책과 고유한 개별 보관 구성이 적용될 수 있습니다. 객체에 두 가지 모두가 적용되는 경우 두 보관이 모두 충족될 때까지 보관됩니다.
객체가 해당 보관 만료 시간을 충족하지 않으면 잠긴 버킷의 객체를 암호화하는 Cloud Key Management Service 키 버전을 폐기할 수 없습니다. 자세한 내용은 잠긴 객체를 암호화하는 데 사용되는 키 버전을 참조하세요.
객체 수명 주기 관리를 사용하여 잠긴 정책이 있는 버킷을 비롯한 버킷의 객체를 자동으로 삭제할 수 있습니다. 수명 주기 규칙은 객체가 보관 정책을 충족할 때까지 객체를 삭제하지 않습니다.
버킷에 보관 정책이 있으면 버킷의 최소 보관 기간이 충족될 때까지 구성요소 조각을 삭제할 수 없기 때문에 동시 복합 업로드를 수행하지 않아야 합니다.
결과로 생성된 객체가 아직 보관 기간을 채우지 못한 객체를 덮어쓸 경우 XML API 멀티파트 업로드 완료 시도가 실패합니다.
조직 정책의 보관 정책 제약조건을 사용하여 새 버킷을 만들 때 또는 기존 버킷의 보관 정책을 추가/업데이트할 때 특정 보관 기간이 있는 버킷 보관 정책이 포함되도록 할 수 있습니다.
보관 기간
보관 기간은 초 단위로 측정됩니다. 하지만 Google Cloud Console 및 Google Cloud CLI와 같은 일부 도구를 사용하면 간편하게 다른 시간 단위를 사용하여 보관 기간을 설정 및 확인할 수 있습니다. 이 경우 다음과 같은 변환이 적용됩니다.
- 하루는 86,400초로 간주됩니다.
- 한 달은 31일이며 2,678,400초로 간주됩니다.
- 1년은 365.25일이며 31,557,600초로 간주됩니다.
최대 보관 기간은 3,155,760,000초(100년)로 설정할 수 있습니다.
gcloud CLI 경우 보관 기간을 지정할 때 정수와 단위를 지정합니다. 여기서 단위는 각각 초, 일, 월 또는 년을 나타내는 s
, d
, m
또는 y
일 수 있습니다. 예를 들어 1d43200s
는 보관 기간을 1일 43,200초(1.5일)로 설정합니다.
보관 정책 잠금
버킷의 보관 정책을 잠그면 정책이 삭제되거나 보관 기간이 줄어드는 것(보관 기간을 늘리는 것도 가능)을 방지할 수 있습니다. 잠긴 버킷의 정책 기간을 삭제하거나 줄이려고 하면 400 BadRequestException
오류가 표시됩니다. 보관 정책이 잠기면 버킷의 모든 객체가 보관 기간을 충족할 때까지 버킷을 삭제할 수 없습니다.
버킷의 보관 정책을 잠그면 이를 되돌릴 수 없으므로 이 기능을 사용하기 전에 이에 대한 영향을 잘 알고 있어야 합니다. 잠금 해제된 정책을 사용하면 정책을 삭제할 수 있으므로 필요할 때 객체를 삭제할 수 있습니다. 정책을 잠근 후에 정책을 '삭제'하려면 전체 버킷을 삭제해야 합니다. 그러나 보관 기간을 채우지 못한 객체가 있는 경우에는 버킷을 삭제할 수 없습니다. 따라서 잠긴 정책을 '삭제'하려면 버킷의 모든 객체가 보관 기간을 채울 때까지 기다려야 합니다. 그런 다음에 버킷을 삭제할 수 있습니다.
또한 보관 정책을 잠그면 Cloud Storage가 버킷이 포함된 프로젝트에 대한 projects.delete
권한에 자동으로 선취권을 적용합니다. 선취권이 적용되면 프로젝트를 삭제할 수 없게 됩니다. 프로젝트를 삭제하려면 먼저 해당 선취권을 모두 삭제해야 합니다.
선취권을 삭제하려면 roles/owner
및 roles/resourcemanager.lienModifier
역할의 일부인 resourcemanager.projects.updateLiens
권한이 필요합니다.
보관 정책을 잠그면 데이터가 레코드 보관 규정을 준수하는 데 어떤 도움이 되는지에 대한 자세한 내용은 규정 준수 페이지를 참조하세요.
다음 단계
- 보관 정책 사용 및 잠금 알아보기
- 개별 객체가 삭제되지 않도록 보호하는 방법을 제공하는 객체 보관 잠금 및 객체 유지에 대해 알아보기
- 규제 및 규정 준수 요구사항에도 도움이 되는 상세한 감사 로깅 모드에 대해 알아보기