アクセス制御の概要

Cloud Storage のバケットとオブジェクトへのアクセス権を持つユーザーと、アクセスのレベルを制御します。

均一アクセス権ときめ細かいアクセス権の選択

バケットを作成するときに、均一アクセス権ときめ細かいアクセス権のどちらを使用して権限を適用するかを決定する必要があります。

  • 均一(推奨): 均一なバケットレベルのアクセスを使用すると、Identity and Access Management(IAM)のみを使用して権限を管理できます。IAM は、共通の名前接頭辞を持つ、バケット内のオブジェクトまたはオブジェクトのグループに含まれているすべてのオブジェクトに権限を適用します。IAM では、IAM Conditions や Cloud Audit Logs など、ACL では使用できない機能も使用できます。

  • きめ細かい管理: [きめ細かい管理] オプションを使用すると、IAM と Access Control Lists(ACL)を併用して権限を管理できます。ACL は、Amazon S3 と相互運用できるように設計された Cloud Storage 用のレガシー アクセス制御システムです。バケットレベルと個々のオブジェクトごとの両方で、アクセス権の指定と権限の適用を行えます。

個人を特定できる情報などの機密データを含むオブジェクトがある場合は、権限の管理を容易にするために、均一アクセス権を有効にしたバケットにそのようなデータを保管することをおすすめします。例:

推奨 非推奨
アクセス制御: 均一 アクセス制御: きめ細かい
均一 きめ細かい
この設定では、データが漏洩する可能性が低くなります。バケットレベルで権限を追加すると、新しいファイルがバケットに追加されても、Max と Bella はお互いのデータを表示できません。 この設定では、データが漏洩する可能性が高くなります。オブジェクトの権限を正しく設定しなければ、Max と Bella はお互いの写真やバケットに追加された新しいファイルを表示できる可能性があります。

ACL での IAM 権限の使用

Cloud Storage には、バケットとオブジェクトへのアクセスを制御する方法が 2 つあります。1 つは IAM であり、もう 1 つはアクセス制御リスト(ACL)です。この 2 つは並行して機能します。ユーザーに 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 セキュリティ ルールを使用すると、Firebase SDK for Cloud Storage を使用して、モバイルアプリとウェブアプリに対してきめ細かい属性ベースのアクセス制御を行えます。たとえば、誰がオブジェクトをアップロードまたはダウンロードできるか、オブジェクトの大きさはどれくらいか、またはオブジェクトをいつダウンロードできるかを指定できます。

認証情報のアクセス境界

認証情報のアクセス境界を使用して、OAuth 2.0 アクセス トークンで使用できる権限の範囲を限定します。まず、トークンがアクセスできるバケットと、そのバケットで使用可能な権限の上限を指定する認証情報のアクセス境界を定義します。次に、OAuth 2.0 アクセス トークンを作成し、認証情報のアクセス境界を考慮した新しいアクセス トークンと交換します。

次のステップ