Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › Amazon S3

How to Find and Fix Publicly Exposed Files in Cloud Storage (AWS S3, Google Cloud, and Azure)

By Freedom251 Team · · 10 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To find and fix publicly exposed files, first inventory every bucket, container, account, project, and object in scope; then inspect provider guardrails, bucket or container policies, object ACLs, and public delivery features. A public network endpoint does not by itself prove that anonymous users can read data. Confirm the effective permission, remove unintended public grants or enforce a provider-level prevention control, test approved applications, and monitor for anonymous access after the change.

What “publicly exposed” means in cloud storage

Cloud storage exposure is an effective-access problem, not merely a networking problem. A storage service can have an internet-reachable endpoint while still requiring authentication. Conversely, anonymous reads can be enabled by a policy, ACL, or delivery feature even when administrators do not see an obvious “public” switch.

As an Amazon Associate I earn from qualifying purchases.

Condition What it means What to verify
Anonymous or public permission Unauthenticated users can read some or all objects. Bucket or container policy, IAM bindings, object ACLs, and account-level controls.
Internet-reachable endpoint The service can be reached from the public internet. Whether an unauthenticated request is actually authorized; reachability alone is not proof of exposure.
Public delivery feature A website, CDN, or similar feature intentionally serves content without normal storage authentication. Static website settings, public content containers, signed URLs, tokens, and application dependencies.

Microsoft Defender CSPM distinguishes “exposed to the internet” from “allows public access” in its storage findings. Treat those as separate questions: can the service be reached, and can an anonymous caller retrieve data?

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use this safe remediation sequence

  1. Inventory resources. List storage accounts, buckets, containers, managed folders, and relevant objects across every subscription, project, account, and region covered by your policy.
  2. Map every access layer. Inspect account or organization guardrails, bucket or container IAM, object ACLs where they remain applicable, and public website or static-delivery configuration.
  3. Find the owner and dependency. Identify the application, team, data owner, or external client that depends on each public path. Review logs and metrics before changing access when the provider supports them.
  4. Classify the exposure. Separate intentional public publishing, narrowly scoped tokenized delivery, and accidental broad access. Record which objects, principals, and actions are exposed.
  5. Remediate the smallest effective control. Remove an unintended public binding or ACL. Where public access is not required, apply a provider-level prevention guardrail so a later policy change cannot reopen it.
  6. Test both failure and success paths. Confirm that an anonymous request is rejected for private data while approved applications, signed links, and other required delivery paths still work.
  7. Allow for propagation and caching. Google Cloud documents up to 10 minutes for public access prevention enforcement, and cached objects can remain available according to their Cache-Control settings.
  8. Monitor for recurrence. Alert on anonymous requests, policy drift, new public principals, and re-enabled website features after the change.

How to inventory cloud storage before changing permissions

Build a complete resource list

Start at the highest administrative scope available to you. Include production and development subscriptions or projects, disaster-recovery locations, legacy accounts, and storage created by infrastructure automation. Record the resource name, owner, environment, data classification, public-delivery purpose, and current guardrail state. A bucket or account omitted from the inventory can remain exposed even after the main remediation.

#1 Best Overall
FortiGate-40F Firewall Appliance - 5 Gigabit Ethernet RJ45 Ports, Ideal for Small Businesses (Appliance Only, No Subscription) (FG-40F)
  • Compact and Efficient Design: The FortiGate 40F is designed for small to mid-sized businesses and enterprise branch offices, featuring a compact, fanless desktop form factor that ensures quiet operation and minimizes space usage.
  • Robust Connectivity Options: Equipped with 5 GE RJ45 ports, including 1 WAN port and 4 internal ports, this model provides essential connectivity and flexibility for various network configurations in a small-scale environment.
  • High-Performance Security: Offers up to 1 Gbps IPS throughput and 600 Mbps threat protection throughput, using Fortinet’s purpose-built security processor technology to deliver industry-leading performance and protection for SSL encrypted traffic.
  • Advanced Threat Protection: Integrated with Fortinet’s AI-powered FortiGuard Labs, the FortiGate 40F offers comprehensive cybersecurity, identifying and mitigating both known and unknown threats to maintain robust security across your network.
  • Simplified Management and Deployment: Features a user-friendly management console that provides comprehensive network automation and visibility, coupled with Zero Touch Integration with Fortinet’s Security Fabric for easy deployment.

Search for public principals and anonymous paths

Look for provider-specific public principals such as Google Cloud Storage’s allUsers and allAuthenticatedUsers. Also search policy documents for anonymous actions, public container settings, and website endpoints. A principal that can list objects is more revealing than a permission that only reads a known object, because listing exposes names and structure.

Use posture findings as leads, not proof

Cloud security posture tools can identify resources that meet their definitions of internet exposure or public access across Azure, AWS, and Google Cloud. Use each finding to locate the resource and then inspect its effective permissions directly. A finding that says “internet exposed” still requires a separate check for anonymous data access.

Amazon S3: find the effective public access path

Check Block Public Access at every applicable scope

Review S3 Block Public Access for the account and for each bucket. Organization-level protections may also affect what a bucket can permit. These settings can prevent public policies or ACLs from taking effect, but an administrator should still inspect the underlying policy so the intended state is documented and future guardrail changes do not create a surprise.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Review bucket policies, ACLs, and access analysis

Inspect bucket policies for statements that allow anonymous principals or broad read actions. Where ACLs are enabled, examine object and bucket ACL grants as well. AWS directs administrators to IAM Access Analyzer for S3 to review bucket access. Use the official analyzer documentation for the current console workflow and supported policy conditions rather than relying on an incomplete command recipe.

Distinguish a public endpoint from public reads

An S3 website or regional endpoint may be reachable from the internet while objects still require authorization. Test an unauthenticated request against a representative private object and inspect the response. A successful download, object listing, or metadata response demonstrates effective anonymous access; the endpoint’s existence alone does not.

Remediate and retest

Remove the unintended anonymous statement or ACL grant, then retain the appropriate Block Public Access protection. Re-test known public content separately if the business intentionally publishes it. Verify application roles, cross-account consumers, and signed-request workflows after the policy change.

Google Cloud Storage: locate public IAM and object ACL exposure

Identify buckets with public principals

Inspect each bucket’s IAM policy for allUsers or allAuthenticatedUsers. These principals can grant access to everyone or to any authenticated Google account, respectively; neither should be treated as a private application identity. To search broadly, use Cloud Asset Inventory across a project, folder, or organization and review the bucket policies it returns.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check object ACLs when uniform bucket-level access is off

Uniform bucket-level access makes IAM the controlling authorization layer for bucket objects. If it is not enabled, inspect object ACLs for public principals as well as the bucket IAM policy. A bucket can look private at the IAM layer while an individual object remains readable through an ACL.

Rank #2
FortiGate-60F Network Security Appliance Plus 1 Year FortiGuard Unified Threat Protection (UTP) and FortiCare Premium (FG-60F-BDL-950-12)
  • HARDWARE PLUS SECURITY SERVICES: FortiGate-60F Firewall Appliance bundled with 1 year of FortiCare Premium and FortiGuard Unified Threat Protection.
  • UNIFIED THREAT PROTECTION (UTP): Secures against advanced online threats with comprehensive web filtering and anti-botnet technologies.
  • OPTIMIZED FOR MEDIUM-SIZED BUSINESSES: Tailored for businesses needing robust security without the infrastructure of larger enterprises.
  • RELIABLE CUSTOMER SUPPORT: FortiCare Premium ensures high-quality support and service continuity.
  • EFFECTIVE PROTECTION: Employs advanced filtering technologies to safeguard against sophisticated threats.

Understand what a public viewer grant exposes

To remove a bucket-wide public grant, remove the allUsers binding for roles/storage.objectViewer. That role includes permission to list objects, so the impact can include object names and bucket structure, not just downloads. Google also warns that public bucket permissions can expose object metadata, including the KMS key resource name in some cases.

Apply public access prevention when public access is not required

Public access prevention can be set on an individual bucket or enforced with the storage.publicAccessPrevention organization policy constraint at project, folder, or organization scope. When enforced, grants to allUsers and allAuthenticatedUsers are overridden and new grants to those principals are rejected.

Google recommends inventorying public resources and checking application dependencies before enforcement. A blanket policy can break a website, download service, or partner integration that intentionally relies on anonymous reads. Signed URLs are not affected by public access prevention, so they are a way to preserve time-limited delivery without leaving a bucket publicly readable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Account for propagation and cache behavior

Google states that public access prevention enforcement can take up to 10 minutes. During that interval, an old permission may still appear effective. Separately, a previously public object can remain available from an intermediary cache until its Cache-Control policy permits eviction. Test the storage origin and the delivery path, not only a browser copy.

Azure Blob Storage: reconcile account and container settings

Check the two settings that control anonymous reads

Azure anonymous blob reads require both account-level permission and a container configured for public access. Inspect the storage account’s AllowBlobPublicAccess property and each container’s anonymous access level. If the account disallows public access, that account-level setting overrides a container that is configured as public.

Measure use before disabling anonymous access

Microsoft recommends enabling logging and metrics and reviewing anonymous requests before changing the account setting. Identify client IPs, user agents, paths, and times where available, then map those requests to an owner. This prevents an apparently unused public container from breaking a production integration or published documentation.

Disable account-level anonymous access

When no approved workload needs anonymous reads, set AllowBlobPublicAccess to false. Future anonymous requests will fail after the setting takes effect, even if a container’s individual public-access level remains configured. Test authenticated application traffic separately so a failed anonymous request is not mistaken for a general storage outage.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Isolate content that must remain public

If a business requirement demands anonymous content, Microsoft recommends placing those containers in separate storage accounts reserved for anonymous access. This creates a clearer administrative boundary: private accounts can enforce the account-level block without exceptions, while the deliberately public account can be monitored and limited to publishing workloads.

Rank #3
GL.iNet GL-MT5000 Brume 3 Wired VPN Security Gateway NO Wi-Fi
  • 【Up to 1100 Mbps VPN Speed 】 Hardware-accelerated WireGuard and OpenVPN-DCO deliver up to 1100 Mbps VPN throughput, over 3× faster than Brume 2 for smooth remote access and file transfers.
  • 【Three 2.5G Ports & Multi-WAN】Tri-port 2.5GbE design with flexible WAN LAN configuration supports multi-gigabit wired setups, dual-ISP Multi-WAN and failover to keep home and SOHO networks online.
  • 【Stealth VPN Obfuscation】VPN obfuscation disguises VPN traffic as regular HTTPS, helping you evade blocking, bypass restrictive networks and maintain stable, private connections.
  • 【DPI protection】Deep Packet Inspection with visual dashboards blocks adult/gambling/malicious sites, while SQM and QoS prioritize gaming, calls, and video when bandwidth is tight
  • 【OpenWrt & USB 3.0 Expansion】OpenWrt with 1GB DDR4 and 8GB eMMC lets you install plugins and build VPN, ad-blocking or NAS, while USB 3.0 Type‑C connects high-speed storage or 4G/5G dongles

Check static website hosting and the $web container

Azure static website hosting is a separate delivery feature. The $web content can remain publicly readable while static website hosting is enabled even when allowBlobPublicAccess is false. If the website is not required, disable the static website feature; changing only the account property may not remove that public path.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Do not break intentional delivery

Signed and tokenized links

Some applications publish a private object through a signed URL or another short-lived token. That design is different from granting public read permission to a bucket or container. Before removing a broad grant, locate link-generation code, expiration settings, download clients, and partner documentation. In Google Cloud, public access prevention does not block Signed URLs.

Static websites and public assets

Static website hosting, image hosting, software downloads, and documentation portals often require a public origin. Confirm whether the feature serves a dedicated public container or exposes a wider storage namespace. Keep public content isolated, remove sensitive files from the publishing path, and apply separate ownership and monitoring.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Application dependencies

Search deployment manifests, environment variables, frontend configuration, CI/CD jobs, and customer integrations for storage URLs. A permission change can appear successful while causing broken images, failed downloads, or build failures hours later. Record the replacement access method—authenticated identity, signed URL, proxy, or a dedicated public account—before removing access.

How to verify that remediation worked

Test from an unauthenticated context

Use a client with no cloud credentials, no corporate proxy identity, and no cached session. Request a known-private object, attempt a listing operation where relevant, and inspect metadata responses. A denial at the storage origin is stronger evidence than a browser error caused by a cache or application layer.

Test approved paths

Run the application’s normal authenticated workflow, a valid signed link if one is part of the design, and any approved public website path. Verify expected status codes, content type, redirects, and expiration behavior. Test both a file that should remain available and one that must now be private.

Wait for provider-specific effects

For Google Cloud, allow up to 10 minutes for public access prevention enforcement and account for Cache-Control-based copies. For Azure, verify that anonymous requests stop after AllowBlobPublicAccess changes and that the static website feature is disabled when it is not needed. For S3, confirm that account and bucket Block Public Access settings remain enabled after policy edits.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Monitor after the change

Alert on anonymous request hits, new public principals, changes to bucket or container policies, object ACL modifications, and re-enabled website features. Azure specifically recommends alerting on anonymous access hits after disabling anonymous access. Review alerts with the data owner so a legitimate publishing requirement is not silently restored through an emergency workaround.

Common failure modes and fixes

  • “The endpoint is public, so the files are public.” Test anonymous authorization; network reachability is not equivalent to data access.
  • “The bucket policy is private, so every object is private.” On Google Cloud with uniform bucket-level access disabled, inspect object ACLs individually.
  • “We removed the public grant, but downloads still work.” Check CDN or browser caches, signed links, static websites, and provider propagation windows before concluding that the permission change failed.
  • “The account block broke the website.” Identify whether the site depends on a public container or Azure’s $web feature. Move intentional public content to an isolated publishing account or use a tokenized delivery design.
  • “We blocked anonymous reads, but metadata remains visible.” Recheck list permissions, object ACLs, policy inheritance, and cached responses. Public viewer roles can expose names and metadata in addition to file contents.
  • “A security finding says exposed, but anonymous tests fail.” The finding may describe internet exposure rather than public access. Document the distinction and retain the network control if it is needed.

Provider-neutral remediation checklist

  • Every account, project, subscription, bucket, container, managed folder, and relevant object is inventoried.
  • Account or organization guardrails are documented, including who can change them.
  • Bucket or container IAM policies have been checked for broad or anonymous principals.
  • Object ACLs have been reviewed where the provider and configuration still use them.
  • Static websites, public delivery endpoints, signed URLs, and tokenized integrations are identified.
  • Business owners have approved the removal of each unintended public path.
  • Public content that must remain available is isolated and narrowly scoped.
  • Anonymous requests are denied for private data from an uncached, unauthenticated client.
  • Approved authenticated and signed delivery paths still work.
  • Propagation and cache windows have elapsed before declaring the change complete.
  • Monitoring and drift alerts are active for future anonymous access.

Bottom line

Find exposure by proving effective anonymous access, not by reading a network label. Inventory first, inspect every authorization layer and public delivery feature, then remove unintended grants or enforce the strongest provider-native prevention available. Preserve legitimate publishing through isolated resources or signed delivery, verify from an unauthenticated client, and keep monitoring enabled so the same files do not become public again.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Amazon S3Azure Blob Storagecloud securityCSPMGoogle Cloud Storagepublic accessstorage permissions

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.