세분화된 액세스 제어: 세분화된 옵션을 사용하면 IAM과 액세스 제어 목록(ACL)을 함께 사용하여 권한을 관리할 수 있습니다. ACL은 Amazon S3와의 상호 운용성을 위해 설계된 Cloud Storage의 기존 액세스 제어 시스템입니다. 또한 ACL을 사용하면 객체별로 액세스를 지정할 수 있습니다.
세분화된 액세스를 사용하려면 서로 다른 두 액세스 제어 시스템 간에 조정이 필요하므로 의도하지 않은 데이터 노출이 발생할 가능성이 높아지고 리소스에 액세스할 수 있는 사용자를 감사하는 과정이 복잡해집니다.
특히 개인 식별 정보와 같이 민감한 정보가 포함된 객체가 있는 경우 균일한 버킷 수준 액세스가 사용 설정된 버킷에 데이터를 저장하는 것이 좋습니다.
ACL에 IAM 권한 사용
Cloud Storage는 버킷과 객체에 액세스할 수 있는 권한을 사용자에게 부여하는 데 사용되는 두 시스템, IAM과 액세스제어 목록(ACL)을 제공합니다. 이러한 시스템은 동시에 작동합니다. 사용자가 Cloud Storage 리소스에 액세스할 수 있게 하려면 이러한 시스템 중 하나만 사용자에게 권한을 부여해야 합니다. 예를 들어 버킷의 IAM 정책이 일부 사용자만 버킷의 객체 데이터를 읽을 수 있도록 허용하지만 버킷의 객체 중 하나에 공개적으로 읽을 수 있는 ACL이 있는 경우 해당 특정 객체는 공개적으로 노출됩니다.
대부분의 경우 IAM은 리소스에 대한 액세스를 제어하는 데 권장되는 방법입니다. IAM은 Google Cloud에서 권한을 제어하며 버킷 및 프로젝트 수준에서 권한을 부여할 수 있습니다. 의도하지 않은 유출 위험을 줄이기 위해 버킷의 여러 객체에 적용되는 권한에 IAM을 사용해야 합니다. IAM을 단독으로 사용하려면 균일한 버킷 수준 액세스를 사용하여 모든 Cloud Storage 리소스에서 ACL을 사용할 수 없도록 합니다.
ACL은 Cloud Storage 리소스에 대한 권한만 제어하며 한정적인 권한 옵션을 갖지만, 개별 객체당 권한을 부여할 수 있습니다.
다음 사용 사례에 ACL을 사용하는 것이 좋습니다.
버킷 내의 개별 객체에 대한 액세스를 맞춤설정합니다.
Amazon S3에서 데이터를 마이그레이션합니다.
추가 액세스 제어 옵션
IAM 및 ACL 외에도 다음 도구를 사용하여 리소스에 대한 액세스를 제어할 수 있습니다.
서명된 URL(쿼리 문자열 인증)
서명된 URL을 사용하여 생성한 URL을 통해 객체에 대한 일회성 읽기 또는 쓰기 액세스 권한을 부여합니다. 사용자가 URL을 공유하는 사람은 누구나 사용자 계정이 있는지 여부에 관계없이 사용자가 지정하는 시간 동안 객체에 액세스할 수 있습니다.
IAM 및 ACL 외에도 서명된 URL을 사용할 수 있습니다. 예를 들어 IAM을 사용하여 일부 사용자에 대한 버킷 액세스 권한을 부여한 다음 다른 사용자가 버킷 내의 특정 리소스에 액세스할 수 있도록 허용하는 서명된 URL을 생성할 수 있습니다.
서명된 정책 문서를 사용하여 버킷에 업로드할 수 있는 항목을 지정합니다. 정책 문서를 통해 크기, 콘텐츠 유형, 서명된 URL 이외의 기타 업로드 문자를 더 세부적으로 제어할 수 있습니다. 또한 웹사이트 소유자는 정책 문서를 사용하여 방문자가 Cloud Storage에 파일을 업로드하도록 허용할 수 있습니다.
IAM 및 ACL 외에도 서명된 정책 문서를 사용할 수 있습니다.
예를 들어 IAM을 사용하여 조직의 사용자가 객체를 업로드한 다음 웹사이트 방문자가 특정 기준을 충족하는 객체만 업로드할 수 있도록 허용하는 서명된 정책 문서를 만들 수 있습니다.
Firebase 보안 규칙
Firebase 보안 규칙을 사용하여 Cloud Storage용 Firebase SDK를 사용하는 모바일 앱 및 웹 앱에 세부적인 속성 기반 액세스 제어를 제공합니다. 예를 들어, 객체를 업로드 또는 다운로드할 수 있는 사용자, 객체의 최대 크기, 객체를 다운로드할 수 있는 시기를 지정할 수 있습니다.
사용자 인증 정보 액세스 경계를 사용하여 OAuth 2.0 액세스 토큰에서 사용할 수 있는 권한을 축소합니다. 먼저 토큰에서 액세스할 수 있는 버킷과 해당 버킷에서 사용할 수 있는 권한의 상한을 지정하는 사용자 인증 정보 액세스 경계를 정의합니다. 그런 다음 OAuth 2.0 액세스 토큰을 생성하고 이를 사용자 인증 정보 액세스 경계를 준수하는 새 액세스 토큰으로 교환할 수 있습니다.
버킷 IP 필터링
버킷 IP 필터링을 사용해서 요청의 소스 IP 주소를 기준으로 버킷에서 액세스를 제한합니다. 버킷 IP 필터링은 승인되지 않은 네트워크가 버킷 및 데이터에 액세스하지 못하도록 방지함으로써 보안 레이어를 추가합니다.
공개 IP 주소, 공개 IP 주소 범위, 가상 프라이빗 클라우드 내의 IP 주소를 포함하여 허용되는 IP 주소 범위를 구성할 수 있습니다.
목록에 없는 IP 주소에서 시작되는 요청은 모두 차단됩니다.
따라서 승인된 사용자만 버킷에 액세스할 수 있습니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-05(UTC)"],[],[],null,["# Overview of access control\n\nYou control who has access to your Cloud Storage buckets and objects\nand what level of access they have.\n\nChoose between uniform and fine-grained access\n----------------------------------------------\n\nWhen you create a bucket, you should decide whether you want to apply\npermissions using *uniform* or *fine-grained* access.\n\n- **Uniform (recommended)** : [Uniform bucket-level access](/storage/docs/uniform-bucket-level-access) allows you to use\n [Identity and Access Management (IAM)](/storage/docs/access-control/iam) alone to manage permissions. IAM\n applies permissions to all the objects contained inside the bucket or groups of\n objects with common name prefixes. IAM also allows you to use\n features that are not available when working with ACLs, such as\n [managed folders](/storage/docs/managed-folders), [IAM Conditions](/iam/docs/conditions-overview),\n [domain restricted sharing](/resource-manager/docs/organization-policy/restricting-domains), and [workforce identity federation](/iam/docs/workforce-identity-federation).\n\n- **Fine-grained** : The fine-grained option enables you to use\n IAM and [Access Control Lists (ACLs)](/storage/docs/access-control/lists) together to manage\n permissions. ACLs are a legacy access control system for Cloud Storage\n designed for interoperability with Amazon S3. ACLs also allow you to specify\n access on a per-object basis.\n\n Because fine-grained access requires you to coordinate between two different\n access control systems, there is an increased chance of unintentional data\n exposure, and auditing who has access to resources is more complicated.\n Particularly if you have objects that contain sensitive data, such as\n personally identifiable information, we recommend storing that data in a\n bucket with uniform bucket-level access enabled.\n\n| **Note:** Once you enable uniform bucket-level access, you have 90 days to switch back to fine-grained access before uniform bucket-level access becomes permanent.\n\nUsing IAM permissions with ACLs\n-------------------------------\n\nCloud Storage offers two systems for granting users access your buckets\nand objects: IAM and Access Control Lists (ACLs). These systems\nact in parallel - in order for a user to access a Cloud Storage\nresource, only one of the systems needs to grant that user permission. For\nexample, if your bucket's IAM policy only allows a few users to\nread object data in the bucket, but one of the objects in the bucket has an ACL\nthat makes it publicly readable, then that specific object is exposed to the\npublic.\n| **Caution:** In general, IAM cannot detect permissions granted by ACLs, and ACLs cannot detect permissions granted by IAM.\n\nIn most cases, IAM is the recommended method for controlling\naccess to your resources. IAM controls permissioning throughout\nGoogle Cloud and allows you to grant permissions at the bucket and project\nlevels. You should use IAM for any permissions that apply to\nmultiple objects in a bucket to reduce the risks of unintended exposure. To use\nIAM exclusively, enable uniform bucket-level access to disallow ACLs for\nall Cloud Storage resources.\n\nACLs control permissioning only for Cloud Storage resources and have limited\npermission options, but allow you to grant permissions per individual objects.\nYou most likely want to use ACLs for the following use cases:\n\n- Customize access to individual objects within a bucket.\n- Migrate data from Amazon S3.\n\nAdditional access control options\n---------------------------------\n\nIn addition to IAM and ACLs, the following tools are available to help you\ncontrol access to your resources:\n\n### Signed URLs (query string authentication)\n\nUse [signed URLs](/storage/docs/access-control/signed-urls) to give time-limited read or write access to an object\nthrough a URL you generate. Anyone with whom you share the URL can access the\nobject for the duration of time you specify, regardless of whether or not they\nhave a user account.\n\nYou can use signed URLs in addition to IAM and ACLs. For example,\nyou can use IAM to grant access to a bucket for only a few\npeople, then create a signed URL that allows others to access a specific\nresource within the bucket.\n\nLearn how to create signed URLs:\n\n- [with the Google Cloud CLI or client libraries](/storage/docs/access-control/signing-urls-with-helpers).\n- [with your own program](/storage/docs/access-control/signing-urls-manually).\n\n### Signed Policy Documents\n\nUse [signed policy documents](/storage/docs/authentication/signatures#policy-document) to specify what can be uploaded to a bucket. Policy\ndocuments allow greater control over size, content type, and other upload\ncharacteristics than signed URLs, and can be used by website owners to allow\nvisitors to upload files to Cloud Storage.\n\nYou can use signed policy documents in addition to IAM and ACLs.\nFor example, you can use IAM to allow people in your organization\nto upload any object, then create a signed policy document that allows website\nvisitors to upload only objects that meet specific criteria.\n\n### Firebase Security Rules\n\nUse [Firebase Security Rules](https://firebase.google.com/docs/storage/security) to provide granular, attribute-based access control\nto mobile and web apps using the [Firebase SDKs for Cloud Storage](https://firebase.google.com/docs/storage). For example,\nyou can specify who can upload or download objects, how large an object can be,\nor when an object can be downloaded.\n\n### Public access prevention\n\nUse [public access prevention](/storage/docs/public-access-prevention) to restrict public access to your buckets and\nobjects. When you enable public access prevention, users who gain access\nthrough [`allUsers` and `allAuthenticatedUsers`](/iam/docs/principals-overview#principal-types) are disallowed access to\ndata.\n\n### Credential Access Boundaries\n\nUse [Credential Access Boundaries](/iam/docs/downscoping-short-lived-credentials) to downscope the permissions that are\navailable to an OAuth 2.0 access token. First, you define a Credential Access\nBoundary that specifies which buckets the token can access, as well as an upper\nbound on the permissions that are available on that bucket. You can then\n[create an OAuth 2.0 access token](https://developers.google.com/identity/protocols/OAuth2) and exchange it for a new access token\nthat respects the Credential Access Boundary.\n\n### Bucket IP Filtering\n\nUse [Bucket IP filtering](/storage/docs/ip-filtering-overview) to restrict access on your bucket based on the source IP address of the request. Bucket IP filtering adds a layer of security by preventing unauthorized networks from accessing your bucket and its data.\nYou can configure a list of permitted IP address ranges, including public IP addresses,\nranges of public IP addresses and IP addresses within your Virtual Private Cloud.\nAny requests originating from an IP address that's not on your list are blocked.\nAs a result, only authorized users can access your bucket.\n\nWhat's next\n-----------\n\n- Learn how to [use IAM permissions](/storage/docs/access-control/using-iam-permissions).\n- [Refer to IAM permissions and roles specific to Cloud Storage](/storage/docs/access-control/iam-reference)\n- View examples of [sharing and collaboration](/storage/docs/collaboration) scenarios that involve setting bucket and object ACLs.\n- Learn how to [make your data accessible to everyone on the public internet](/storage/docs/access-control/making-data-public).\n- Learn more about when to use a [signed url](/storage/docs/access-control/signed-urls#should-you-use)."]]