액세스 제어 개요

Cloud Storage 버킷과 객체에 액세스할 수 있는 사용자와 해당 사용자의 액세스 수준을 제어할 수 있습니다.

균일한 액세스와 세분화된 액세스 중에서 선택

버킷을 생성할 때 균일한 액세스 또는 세분화된 액세스 사용 권한 적용 여부를 결정해야 합니다.

  • 균일한 액세스 제어(권장): 균일한 버킷 수준 액세스를 사용하면 ID 및 액세스 관리(IAM)만 사용하여 권한을 관리할 수 있습니다. IAM은 일반 이름 프리픽스가 있는 객체 그룹 또는 버킷에 포함된 모든 객체에 권한을 적용합니다. IAM은 IAM 조건 및 Cloud 감사 로그와 같이 ACL 작업 시 사용할 수 없는 기능을 사용할 수도 있습니다.

  • 세분화된 액세스 제어: 세분화된 옵션을 사용하면 IAM과 액세스 제어 목록(ACL)을 함께 사용하여 권한을 관리할 수 있습니다. ACL은 Amazon S3와의 상호 운용성을 위해 설계된 Cloud Storage의 기존 액세스 제어 시스템입니다. 버킷 수준과 개별 객체별로 액세스 권한을 지정하고 권한을 적용할 수 있습니다.

개인 식별 정보와 같이 민감한 정보가 포함된 객체가 있는 경우 권한을 간소화할 수 있도록 균일한 액세스 권한이 있는 버킷에 데이터를 저장하는 것이 좋습니다. 예를 들면 다음과 같습니다.

권장 권장하지 않음
액세스 제어: 균일 액세스 제어: 세분화됨
균일한 액세스 제어 세분화된 액세스 제어
이 설정은 데이터 유출 가능성이 낮습니다. 버킷 수준에서 권한을 추가하면 새 파일이 버킷에 추가되더라도 Max와 Bella가 서로의 데이터를 볼 수 없습니다. 이 설정은 데이터 유출 가능성이 높습니다. 객체 권한을 올바르게 설정하지 않으면 Max와 Bella가 서로의 사진은 물론 버킷에 추가된 새 파일을 볼 수 있습니다.

ACL에 IAM 권한 사용

Cloud Storage는 버킷과 객체에 액세스할 수 있는 권한을 사용자에게 부여하는 데 사용되는 두 시스템, IAM과 액세스제어 목록(ACL)을 제공합니다. 이러한 시스템은 동시에 작동합니다. 사용자가 Cloud Storage 리소스에 액세스할 수 있게 하려면 이러한 시스템 중 하나만 사용자에게 권한을 부여해야 합니다.

대부분의 경우 IAM은 리소스에 대한 액세스를 제어하는 데 권장되는 방법입니다. IAM은 Google Cloud에서 권한을 제어하며 버킷 및 프로젝트 수준에서 권한을 부여할 수 있습니다. 의도하지 않은 유출 위험을 줄이기 위해 버킷의 여러 객체에 적용되는 권한에 IAM을 사용해야 합니다. IAM을 단독으로 사용하려면 균일한 버킷 수준 액세스를 사용하여 모든 Cloud Storage 리소스에서 ACL을 사용할 수 없도록 합니다.

ACL은 Cloud Storage 리소스에 대한 권한만 제어하며 한정적인 권한 옵션을 갖지만, 개별 객체당 권한을 부여할 수 있습니다. 다음 사용 사례에 ACL을 사용하는 것이 좋습니다.

  • 버킷 내의 개별 객체에 대한 액세스를 맞춤설정합니다.
  • Amazon S3에서 데이터를 마이그레이션합니다.

추가 액세스 제어 옵션

IAM 및 ACL 외에도 다음 도구를 사용하여 리소스에 대한 액세스를 제어할 수 있습니다.

서명된 URL(쿼리 문자열 인증)

서명된 URL을 사용하여 생성한 URL을 통해 객체에 대한 일회성 읽기 또는 쓰기 액세스 권한을 부여합니다. 사용자가 URL을 공유하는 사람은 누구나 Google 계정이 있는지 여부에 관계없이 사용자가 지정하는 시간 동안 객체에 액세스할 수 있습니다.

IAM 및 ACL 외에도 서명된 URL을 사용할 수 있습니다. 예를 들어 IAM을 사용하여 일부 사용자에 대한 버킷 액세스 권한을 부여한 다음 다른 사용자가 버킷 내의 특정 리소스에 액세스할 수 있도록 허용하는 서명된 URL을 생성할 수 있습니다.

다음을 사용하여 서명된 URL을 만드는 방법에 대해 알아보세요.

서명된 정책 문서

서명된 정책 문서를 사용하여 버킷에 업로드할 수 있는 항목을 지정합니다. 정책 문서를 통해 크기, 콘텐츠 유형, 서명된 URL 이외의 기타 업로드 문자를 더 세부적으로 제어할 수 있습니다. 또한 웹사이트 소유자는 정책 문서를 사용하여 방문자가 Cloud Storage에 파일을 업로드하도록 허용할 수 있습니다.

IAM 및 ACL 외에도 서명된 정책 문서를 사용할 수 있습니다. 예를 들어 IAM을 사용하여 조직의 사용자가 객체를 업로드한 다음 웹사이트 방문자가 특정 기준을 충족하는 객체만 업로드할 수 있도록 허용하는 서명된 정책 문서를 만들 수 있습니다.

Firebase 보안 규칙

Firebase 보안 규칙을 사용하여 Cloud Storage용 Firebase SDK를 사용하는 모바일 앱 및 웹 앱에 세부적인 속성 기반 액세스 제어를 제공합니다. 예를 들어, 객체를 업로드 또는 다운로드할 수 있는 사용자, 객체의 최대 크기, 객체를 다운로드할 수 있는 시기를 지정할 수 있습니다.

사용자 인증 정보 액세스 경계

사용자 인증 정보 액세스 경계를 사용하여 OAuth 2.0 액세스 토큰에서 사용할 수 있는 권한을 축소합니다. 먼저 토큰에서 액세스할 수 있는 버킷과 해당 버킷에서 사용할 수 있는 권한의 상한을 지정하는 사용자 인증 정보 액세스 경계를 정의합니다. 그런 다음 OAuth 2.0 액세스 토큰을 생성하고 이를 사용자 인증 정보 액세스 경계를 준수하는 새 액세스 토큰으로 교환할 수 있습니다.

다음 단계