이 페이지에서는 공개 액세스 방지 버킷 설정과 관련 공개 액세스 방지 조직 정책 제약조건을 설명합니다. 설정이나 제약조건을 사용하면 데이터에 대한 액세스 권한을 부여할 수 있는 항목(예: 인터넷을 통한 익명 사용자)이 제한됩니다. 액세스 제어 옵션에 대한 개요는 액세스 제어 개요를 참고하세요.
개요
공개 액세스 방지는 Cloud Storage 버킷과 객체가 실수로 일반에 노출되지 않도록 보호합니다. 공개 액세스 방지를 시행하면 누구도 IAM 정책이나 ACL을 통해 해당 버킷의 데이터를 공개할 수 없습니다. 공개 액세스 방지를 시행하는 방법에는 두 가지가 있습니다.
개별 버킷에 공개 액세스 방지를 시행할 수 있습니다.
버킷이 조직 내에 포함된 경우 프로젝트, 폴더 또는 조직 수준에서 조직 정책 제약조건
storage.publicAccessPrevention
를 사용하여 공개 액세스 방지를 적용할 수 있습니다.
공개 액세스 방지를 사용해야 하나요?
데이터가 공개 인터넷에 노출되어서는 안 된다고 알고 있으면 공개 액세스 방지를 사용합니다. 리소스에 최대한의 보안을 제공하려면 가능한 조직의 최상위 수준에서 공개 액세스 방지를 시행합니다.
정적 웹사이트 호스팅과 같은 사용 사례를 위해 버킷을 공개해야 하는 경우에는 공개 액세스 방지를 사용하면 안 됩니다. 공개 액세스 방지를 시행하는 조직에서 이러한 버킷을 예외로 지정하려면 버킷이 포함된 특정 프로젝트에서 공개 액세스 방지를 사용 중지하세요.
적용된 경우의 동작
공개 액세스 방지가 적용되는 리소스에서는 다음과 같이 동작합니다.
allUsers
및allAuthenticatedUsers
를 사용하여 승인된 버킷 및 객체에 대한 요청은 HTTP401
또는403
상태 코드와 함께 실패합니다.allUsers
및allAuthenticatedUsers
에 대한 액세스 권한을 부여하는 기존 IAM 정책 및 ACL은 그대로 유지되지만 공개 액세스 방지에 의해 재정의됩니다.IAM 정책 또는 ACL에서
allUsers
및allAuthenticatedUsers
를 사용한 버킷 또는 객체 생성 요청이 실패하고 다음 예외가 발생합니다.- 버킷에
allUsers
가 포함된 기본 객체 ACL이 있는 경우 해당 버킷의 객체 생성 요청이 성공합니다. 이러한 객체의 ACL에는allUsers
가 포함되지만allUsers
는 공개 액세스 방지에 의해 재정의됩니다.
- 버킷에
IAM 정책 또는 ACL에
allUsers
및allAuthenticatedUsers
를 추가하는 요청이412 Precondition Failed
과 함께 실패합니다.
상속
버킷의 설정에 명시적으로 공개 액세스 방지가 시행되지 않았더라도 버킷에서 여전히 공개 액세스 방지를 상속할 수 있습니다. 조직 정책 제약조건 storage.publicAccessPrevention
이 버킷이 있는 프로젝트, 폴더 또는 조직에 설정되면 발생합니다. 이러한 이유로 버킷 상태를 enforced
또는 inherited
으로만 설정할 수 있습니다.
버킷의 공개 액세스 방지 메타데이터가
enforced
로 설정되면 공개 액세스 방지가 버킷에 적용됩니다.버킷의 공개 액세스 방지 메타데이터가
inherited
로 설정되면storage.publicAccessPrevention
조직 정책 제약조건에서 공개 액세스 방지를 결정합니다.버킷이 포함된 프로젝트에서
storage.publicAccessPrevention
이True
로 설정되면 공개 액세스 방지가 버킷에 적용됩니다.버킷이 포함된 프로젝트에서
storage.publicAccessPrevention
이False
로 설정되면 공개 액세스 방지가 버킷에 적용되지 않습니다.버킷이 포함된 프로젝트에
storage.publicAccessPrevention
이 설정되지 않은 경우 프로젝트가 포함된 폴더(있는 경우)에서 설정한storage.publicAccessPrevention
값에 의해 공개 액세스 방지가 결정됩니다.마찬가지로, 버킷이 포함된 폴더에서
storage.publicAccessPrevention
값을 설정하지 않으면 프로젝트가 포함된 조직에서 설정한storage.publicAccessPrevention
값으로 공개 액세스 방지가 결정됩니다.리소스에
storage.publicAccessPrevention
이 설정되지 않으면 공개 액세스 방지가 버킷에 적용되지 않습니다.
사용 중지된 경우의 동작
공개 액세스 방지가 더 이상 리소스에 시행되지 않으면 다음과 같은 결과가 발생합니다.
allUsers
및allAuthenticatedUsers
에 대한 액세스 권한을 부여하는 기존 IAM 정책 및 ACL이 적용되고 데이터에 공개적으로 액세스할 수 있게 합니다.allUsers
및allAuthenticatedUsers
에 대한 액세스를 허용하는 IAM 정책 또는 ACL 생성 요청이 성공합니다.공개 ACL 없이 공개 액세스 방지에서 생성된 객체는 공개적으로 액세스 가능한 버킷에서 생성된 경우 공개적으로 액세스할 수 있습니다.
언제든지 프로젝트, 폴더, 조직에 공개 액세스 방지를 사용 중지할 수 있습니다. enforced
설정이 있는 버킷은 버킷이 포함된 프로젝트, 폴더, 조직에 사용 중지하더라도 공개 액세스 방지가 계속 적용됩니다.
고려사항
기존 리소스에 공개 액세스 방지를 적용하면
allUsers
및allAuthenticatedUsers
의 모든 기존 승인 및 새로운 추가가 차단됩니다. 이렇게 하면 다음과 같은 방법으로 버킷에 영향을 줄 수 있습니다.애플리케이션이
allUsers
및allAuthenticatedUsers
에 따라 데이터에 액세스하거나 공개 리소스를 만드는 경우 공개 액세스 방지를 사용 설정하면 애플리케이션이 중단될 수 있습니다. 다음 콘텐츠를 펼쳐 다른 애플리케이션이 사용 중일 수 있는 공개 리소스를 식별하는 방법을 확인하세요.공개 리소스 식별 방법
공개 액세스 방지를 시행하기 전에 공개 중인 데이터에 종속 항목이 있는 다른 워크로드가 손상되지 않도록 공개 리소스 인벤토리를 가져오는 것이 좋습니다. 다음 방법을 사용하여 공개 중인 버킷, 객체, 관리형 폴더를 찾을 수 있습니다.
- 공개 데이터에 액세스할 수 있는 워크로드를 식별하는 데 도움이 되도록 사용 로그를 설정합니다. 사용 로그는 공개 리소스에 보낸 데이터 액세스 요청에 대한 정보를 제공할 수 있습니다.
-
버킷에 공개적으로 액세스할 수 있는지 확인하려면 버킷의 IAM 정책을 확인합니다. 주 구성원
allUsers
또는allAuthenticatedUsers
에 역할을 부여하는 정책은 버킷에 공개적으로 액세스할 수 있도록 합니다. 개별 버킷의 IAM 정책을 가져오는 대신 Cloud 애셋 인벤토리를 사용하여 프로젝트, 폴더 또는 조직에 있는 모든 버킷의 정책을 확인할 수 있습니다.버킷에 관리형 폴더가 있으면 관리형 폴더의 IAM 정책을 확인하여 공개적으로 액세스할 수 있는 관리형 폴더를 식별할 수도 있습니다.
- 개별 객체에 공개적으로 액세스할 수 있는지 확인하려면 ACL 객체를 확인합니다.
주 구성원
allUsers
또는allAuthenticatedUsers
에 액세스 권한을 부여하는 ACL은 객체에 공개적으로 액세스할 수 있도록 합니다.
Cloud 감사 로그는 공개된 객체에 대한 액세스를 추적하지 않습니다. 공개 액세스 방지를 시행할 때 데이터 액세스 로그가 사용 설정되면 로그 생성이 증가할 수 있습니다. 이 경우 로그 수집 할당량에 포함되며 Cloud 감사 로그 요금이 청구될 수 있습니다. 이러한 증가는 이전에 공개되었지만 로깅되지 않은 액세스가 로깅되는 특정 승인과 연결될 수 있기 때문에 발생할 수 있습니다.
서명된 URL은 이를 사용하는 모든 사람에게 시간이 제한된 좁은 범위의 액세스 권한을 제공하며, 공개 액세스 방지의 영향을 받지 않습니다.
조직과 연결되지 않은 프로젝트는 조직 정책을 사용할 수 없습니다. 이러한 프로젝트 내 버킷은 버킷 수준 설정을 사용해야 합니다.
공개 액세스 방지는 업데이트 후 읽기에 strong consistency를 가지지만 시행되는 데 최대 10분이 걸릴 수 있습니다.
시행이 시작된 후에도 객체의
Cache-Control
설정에 따라 일정 시간 동안 인터넷 캐시를 통해 계속 공개적으로 객체에 액세스할 수 있습니다. 예를 들어 객체의Cache-Control:max-age
가 기본값인 3,600초로 설정된 경우 객체는 해당 시간 동안 인터넷 캐시에 남아 있을 수 있습니다.
다음 단계
- 공개 액세스 방지 사용 방법 알아보기
- 조직 정책에 대해 자세히 알아보기