{
    "api_version": "1",
    "kind": "dse_post",
    "self": "https://update.dsesecurity.com/api/v1/posts/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/",
    "item": {
        "id": "https://update.dsesecurity.com/updates/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/",
        "slug": "migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership",
        "url": "https://update.dsesecurity.com/updates/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/",
        "alternate_urls": {
            "markdown": "https://update.dsesecurity.com/updates/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership.md",
            "json": "https://update.dsesecurity.com/api/v1/posts/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/"
        },
        "title": "Migrate ACL-dependent uploads before enforcing S3 bucket ownership",
        "summary": "Check upload behavior and policy coverage when removing ACL-based authorization.",
        "format": {
            "slug": "guide",
            "name": "Guide"
        },
        "priority": {
            "slug": "info",
            "name": "Information"
        },
        "featured": false,
        "image": {
            "theme": "cyber-defense",
            "label": "Cyber defense",
            "alt": "Layered glass and metal cyber-defense structure with controlled blue and gold signal paths.",
            "card_url": "https://update.dsesecurity.com/assets/editorial/cyber-defense-card.webp?v=1.8.20",
            "hero_url": "https://update.dsesecurity.com/assets/editorial/cyber-defense-hero.webp?v=1.8.20",
            "social_url": "https://update.dsesecurity.com/assets/editorial/cyber-defense-social-v2.jpg?v=1.8.20",
            "width": 2400,
            "height": 1350
        },
        "topics": [
            {
                "slug": "cybersecurity",
                "name": "Cybersecurity",
                "url": "https://update.dsesecurity.com/topic/cybersecurity/"
            },
            {
                "slug": "it",
                "name": "IT",
                "url": "https://update.dsesecurity.com/topic/it/"
            }
        ],
        "author": {
            "name": "DSE Security Editorial Team",
            "url": "https://update.dsesecurity.com/#editorial-team",
            "type": "Organization"
        },
        "publisher": {
            "name": "Detection Systems & Engineering",
            "url": "https://dsesecurity.com/"
        },
        "published_at": "2026-10-20T18:13:24+00:00",
        "modified_at": "2026-10-20T18:34:28+00:00",
        "reviewed_on": "2026-10-20",
        "reading_minutes": 2,
        "word_count": 244,
        "potentially_affected": "This concerns bucket Object Ownership transitions and applications that send ACL headers during uploads.",
        "dse_recommendation": "DSE recommends inventorying upload clients and cross-account writers before the transition.",
        "primary_source": {
            "name": "AWS Documentation",
            "url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html",
            "published_on": null,
            "authority": "docs.aws.amazon.com"
        },
        "publishing_principles": "https://update.dsesecurity.com/updates/dse-updates-editorial-methodology/",
        "usage_info": "https://update.dsesecurity.com/usage/",
        "copyright_notice": "Copyright © 2026 Detection Systems & Engineering. All rights reserved.",
        "content_html": "<p>Check upload behavior and policy coverage when removing ACL-based authorization.</p>\n<h2>Source facts</h2>\n<p>With S3 Bucket owner enforced, ACLs are disabled and policies govern access to all objects. Uploads must omit ACLs or use bucket-owner-full-control; other ACL requests fail with AccessControlListNotSupported. AWS distinguishes this from Bucket owner preferred, where qualifying new uploads transfer ownership while ACLs remain enabled.</p>\n<p>Source: <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html\">AWS Documentation</a>.</p>\n<h2>Applicability</h2>\n<p>This concerns bucket Object Ownership transitions and applications that send ACL headers during uploads.</p>\n<h2>DSE recommendation</h2>\n<p>DSE recommends inventorying upload clients and cross-account writers before the transition. Record the ACL headers they send and replace intended ACL grants with reviewed policies. Pilot representative legacy integrations rather than assuming a successful console upload covers every application. Keep the prior ownership setting and policy evidence available for the change review. Assign an owner to each integration that still depends on ACL operations and agree how it will be updated before enabling enforcement across production buckets. For each writer, specify the policy that replaces its former ACL intent and the owner who will confirm the change. Include automated uploads and historical application clients in the acceptance sample, with a separate decision for any integration that cannot yet migrate.</p>\n<h2>Verification</h2>\n<p>Proposed verification: use disposable objects to test uploads without an ACL, with bucket-owner-full-control, and with a legacy custom ACL. Confirm expected ownership and authorization, then test an approved cross-account reader. Capture error codes and application behavior as evidence for the migration.</p>\n<h2>Official reference</h2>\n<p><a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html\">AWS Documentation</a>. Reviewed October 20, 2026.</p>",
        "content_text": "Check upload behavior and policy coverage when removing ACL-based authorization.\nSource facts\nWith S3 Bucket owner enforced, ACLs are disabled and policies govern access to all objects. Uploads must omit ACLs or use bucket-owner-full-control; other ACL requests fail with AccessControlListNotSupported. AWS distinguishes this from Bucket owner preferred, where qualifying new uploads transfer ownership while ACLs remain enabled.\nSource: AWS Documentation.\nApplicability\nThis concerns bucket Object Ownership transitions and applications that send ACL headers during uploads.\nDSE recommendation\nDSE recommends inventorying upload clients and cross-account writers before the transition. Record the ACL headers they send and replace intended ACL grants with reviewed policies. Pilot representative legacy integrations rather than assuming a successful console upload covers every application. Keep the prior ownership setting and policy evidence available for the change review. Assign an owner to each integration that still depends on ACL operations and agree how it will be updated before enabling enforcement across production buckets. For each writer, specify the policy that replaces its former ACL intent and the owner who will confirm the change. Include automated uploads and historical application clients in the acceptance sample, with a separate decision for any integration that cannot yet migrate.\nVerification\nProposed verification: use disposable objects to test uploads without an ACL, with bucket-owner-full-control, and with a legacy custom ACL. Confirm expected ownership and authorization, then test an approved cross-account reader. Capture error codes and application behavior as evidence for the migration.\nOfficial reference\nAWS Documentation. Reviewed October 20, 2026.",
        "content_markdown": "Check upload behavior and policy coverage when removing ACL-based authorization.\n\n## Source facts\n\nWith S3 Bucket owner enforced, ACLs are disabled and policies govern access to all objects. Uploads must omit ACLs or use bucket-owner-full-control; other ACL requests fail with AccessControlListNotSupported. AWS distinguishes this from Bucket owner preferred, where qualifying new uploads transfer ownership while ACLs remain enabled.\n\nSource: [AWS Documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html).\n\n## Applicability\n\nThis concerns bucket Object Ownership transitions and applications that send ACL headers during uploads.\n\n## DSE recommendation\n\nDSE recommends inventorying upload clients and cross-account writers before the transition. Record the ACL headers they send and replace intended ACL grants with reviewed policies. Pilot representative legacy integrations rather than assuming a successful console upload covers every application. Keep the prior ownership setting and policy evidence available for the change review. Assign an owner to each integration that still depends on ACL operations and agree how it will be updated before enabling enforcement across production buckets. For each writer, specify the policy that replaces its former ACL intent and the owner who will confirm the change. Include automated uploads and historical application clients in the acceptance sample, with a separate decision for any integration that cannot yet migrate.\n\n## Verification\n\nProposed verification: use disposable objects to test uploads without an ACL, with bucket-owner-full-control, and with a legacy custom ACL. Confirm expected ownership and authorization, then test an approved cross-account reader. Capture error codes and application behavior as evidence for the migration.\n\n## Official reference\n\n[AWS Documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html). Reviewed October 20, 2026."
    },
    "json_ld": {
        "@context": "https://schema.org",
        "@graph": [
            {
                "@type": "Organization",
                "@id": "https://dsesecurity.com/#organization",
                "name": "Detection Systems & Engineering",
                "alternateName": "DSE Security",
                "url": "https://dsesecurity.com/",
                "logo": {
                    "@type": "ImageObject",
                    "url": "https://update.dsesecurity.com/assets/dse-logo-20260812.png?v=1.8.20"
                }
            },
            {
                "@type": "Organization",
                "@id": "https://update.dsesecurity.com/#editorial-team",
                "name": "DSE Security Editorial Team",
                "url": "https://update.dsesecurity.com/",
                "parentOrganization": {
                    "@id": "https://dsesecurity.com/#organization"
                }
            },
            {
                "@type": "WebSite",
                "@id": "https://update.dsesecurity.com/#website",
                "name": "DSE Updates",
                "alternateName": "DSE Security Knowledge Hub",
                "url": "https://update.dsesecurity.com/",
                "inLanguage": "en-US",
                "publisher": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "potentialAction": {
                    "@type": "SearchAction",
                    "target": {
                        "@type": "EntryPoint",
                        "urlTemplate": "https://update.dsesecurity.com/?q={search_term_string}"
                    },
                    "query-input": "required name=search_term_string"
                }
            },
            {
                "@type": "WebPage",
                "@id": "https://update.dsesecurity.com/updates/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/",
                "url": "https://update.dsesecurity.com/updates/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/",
                "isPartOf": {
                    "@id": "https://update.dsesecurity.com/#website"
                },
                "lastReviewed": "2026-10-20"
            },
            {
                "@type": "BreadcrumbList",
                "@id": "https://update.dsesecurity.com/updates/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/#breadcrumbs",
                "itemListElement": [
                    {
                        "@type": "ListItem",
                        "position": 1,
                        "name": "DSE Updates",
                        "item": "https://update.dsesecurity.com/"
                    },
                    {
                        "@type": "ListItem",
                        "position": 2,
                        "name": "Cybersecurity",
                        "item": "https://update.dsesecurity.com/topic/cybersecurity/"
                    },
                    {
                        "@type": "ListItem",
                        "position": 3,
                        "name": "Migrate ACL-dependent uploads before enforcing S3 bucket ownership",
                        "item": "https://update.dsesecurity.com/updates/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/"
                    }
                ]
            },
            {
                "@type": [
                    "Article",
                    "TechArticle"
                ],
                "@id": "https://update.dsesecurity.com/updates/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/#article",
                "identifier": "https://update.dsesecurity.com/updates/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/",
                "url": "https://update.dsesecurity.com/updates/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/",
                "headline": "Migrate ACL-dependent uploads before enforcing S3 bucket ownership",
                "description": "Check upload behavior and policy coverage when removing ACL-based authorization.",
                "abstract": "Check upload behavior and policy coverage when removing ACL-based authorization.",
                "articleBody": "Check upload behavior and policy coverage when removing ACL-based authorization.\nSource facts\nWith S3 Bucket owner enforced, ACLs are disabled and policies govern access to all objects. Uploads must omit ACLs or use bucket-owner-full-control; other ACL requests fail with AccessControlListNotSupported. AWS distinguishes this from Bucket owner preferred, where qualifying new uploads transfer ownership while ACLs remain enabled.\nSource: AWS Documentation.\nApplicability\nThis concerns bucket Object Ownership transitions and applications that send ACL headers during uploads.\nDSE recommendation\nDSE recommends inventorying upload clients and cross-account writers before the transition. Record the ACL headers they send and replace intended ACL grants with reviewed policies. Pilot representative legacy integrations rather than assuming a successful console upload covers every application. Keep the prior ownership setting and policy evidence available for the change review. Assign an owner to each integration that still depends on ACL operations and agree how it will be updated before enabling enforcement across production buckets. For each writer, specify the policy that replaces its former ACL intent and the owner who will confirm the change. Include automated uploads and historical application clients in the acceptance sample, with a separate decision for any integration that cannot yet migrate.\nVerification\nProposed verification: use disposable objects to test uploads without an ACL, with bucket-owner-full-control, and with a legacy custom ACL. Confirm expected ownership and authorization, then test an approved cross-account reader. Capture error codes and application behavior as evidence for the migration.\nOfficial reference\nAWS Documentation. Reviewed October 20, 2026.",
                "datePublished": "2026-10-20T18:13:24+00:00",
                "dateModified": "2026-10-20T18:34:28+00:00",
                "mainEntityOfPage": {
                    "@id": "https://update.dsesecurity.com/updates/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/"
                },
                "inLanguage": "en-US",
                "isAccessibleForFree": true,
                "author": {
                    "@type": "Organization",
                    "name": "DSE Security Editorial Team",
                    "url": "https://update.dsesecurity.com/#editorial-team"
                },
                "publisher": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "image": {
                    "@type": "ImageObject",
                    "@id": "https://update.dsesecurity.com/updates/migrate-acl-dependent-uploads-before-enforcing-s3-bucket-ownership/#primaryimage",
                    "url": "https://update.dsesecurity.com/assets/editorial/cyber-defense-social-v2.jpg?v=1.8.20",
                    "contentUrl": "https://update.dsesecurity.com/assets/editorial/cyber-defense-social-v2.jpg?v=1.8.20",
                    "width": 1200,
                    "height": 630,
                    "caption": "Migrate ACL-dependent uploads before enforcing S3 bucket ownership"
                },
                "articleSection": [
                    "Cybersecurity",
                    "IT"
                ],
                "keywords": [
                    "Cybersecurity",
                    "IT",
                    "Guide",
                    "Information priority"
                ],
                "genre": "Guide",
                "about": [
                    {
                        "@type": "Thing",
                        "name": "Cybersecurity",
                        "url": "https://update.dsesecurity.com/topic/cybersecurity/"
                    },
                    {
                        "@type": "Thing",
                        "name": "IT",
                        "url": "https://update.dsesecurity.com/topic/it/"
                    }
                ],
                "wordCount": 244,
                "timeRequired": "PT2M",
                "publishingPrinciples": "https://update.dsesecurity.com/updates/dse-updates-editorial-methodology/",
                "usageInfo": "https://update.dsesecurity.com/usage/",
                "copyrightHolder": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "copyrightNotice": "Copyright © 2026 Detection Systems & Engineering. All rights reserved.",
                "citation": {
                    "@type": "CreativeWork",
                    "name": "AWS Documentation",
                    "url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html"
                }
            }
        ]
    }
}