Cloud Storage バケットの公開 IAM 権限の確認

公開が必要なデータと操作だけを許可し、内部資料は分離してください。

説明

Cloud Storage IAM の allUsers は匿名ユーザーを含み、allAuthenticatedUsers は組織外の認証済み Google アカウントも含みます。付与したロールと適用される制限により、データの読み取りや変更が許可される場合があります。

想定される影響

  • 内部データやバックアップが外部に公開されるおそれがあります。
  • 書き込みや削除まで公開すると、データ破損やサービス停止につながる場合があります。

対処方法

  • 不要な公開主体を取り除き、承認されたユーザー、グループ、サービスアカウントに必要な最小限のロールだけを付与してください。非公開バケットでは Public access prevention も検討してください。
  • 意図的な公開資料は専用バケットに分離し、読み取りなど必要な操作だけを許可してください。他の IAM・ACL 権限と実際のアクセスも確認してください。

例

既存バケットの IAM メンバー設定です。例の主体は承認されたアカウントに置き換えてください。変更後も広い roles/storage.admin が残るため、業務に合わせて縮小が必要です。

変更前

hcl
resource "google_storage_bucket_iam_member" "example" {
  bucket = google_storage_bucket.default.name
  role   = "roles/storage.admin"
  member = "allUsers"
}

変更後

hcl
resource "google_storage_bucket_iam_member" "example" {
  bucket = google_storage_bucket.default.name
  role   = "roles/storage.admin"
  member = "user:jane@example.com"
}

補足:

  • 変更前: 全ユーザーに管理ロールを付与します。Public access prevention など他の制御も実際のアクセスに影響します。
  • 変更後: 主体を特定ユーザーに限定します。他の公開権限の削除やロールの縮小まで行う変更ではありません。

参考資料