Skip to content

ACL requirement for AWS S3 Exporter was a breaking change listed as Enhancement #39346

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Erog38 opened this issue Apr 11, 2025 · 3 comments · Fixed by #39354
Closed

ACL requirement for AWS S3 Exporter was a breaking change listed as Enhancement #39346

Erog38 opened this issue Apr 11, 2025 · 3 comments · Fixed by #39354
Labels
bug Something isn't working exporter/awss3 needs triage New item requiring triage

Comments

@Erog38
Copy link
Contributor

Erog38 commented Apr 11, 2025

Component(s)

exporter/awss3

What happened?

Description

Starting in v0.121.0 Users are required to provide a valid ACL for bucket access. Many existing buckets don't support ACLs as a default. This means that we see errors as listed in the logs provided.

This will require a bucket configuration change and a collector change and as such needs to be mentioned as a breaking change.

Steps to Reproduce

  1. Have or create S3 bucket without ACL support

  2. Use provided configuration in any vanilla collector

  3. Then use a tool such as telemetrygen to send:

telemetrygen logs \
    --duration 10m \
    --otlp-endpoint localhost:4317 \
    --otlp-insecure \
    --rate 100

Expected Result

Logs to show up in AWS S3

Actual Result

Error logs as attached.

Collector version

v0.123.0

Environment information

OpenTelemetry Collector configuration

receivers:
    otlp:
        protocols:
            grpc:
                endpoint: 0.0.0.0:4317
processors:
    batch:
        timeout: 10s
      memory_limiter:
        limit_percentage: 80
exporters:
      awss3
        s3uploader:
          region: us-east-1
          compression: gzip
          s3_bucket: $BUCKET
          s3_prefix: "some-prefix"
          role_arn: valid-arn
service:
    telemetry:
        pipelines:
            logs:
                receivers: [otlp]
                processors: [memory_limiter, batch]
                exporters: [awss3]

Log output

Exporting failed. Rejecting data. Try enabling sending_queue to survive temporary failures.
operation error S3: PutObject, https response error StatusCode: 400, RequestID: XXX, HostID: XXX, api error AccessControlListNotSupported: The bucket does not allow ACLs
Sender failed
operation error S3: PutObject, https response error StatusCode: 400, RequestID: XXX, HostID: XXX, api error AccessControlListNotSupported: The bucket does not allow ACLs

Additional context

No response

@Erog38 Erog38 added bug Something isn't working needs triage New item requiring triage labels Apr 11, 2025
Copy link
Contributor

Pinging code owners:

See Adding Labels via Comments if you do not have permissions to add labels yourself.

@arianvp
Copy link

arianvp commented Apr 11, 2025

Many existing buckets don't support ACLs as a default

AWS explicitly recommends to disable ACLs on buckets https://docs.aws.amazon.com/AmazonS3/latest/userguide/ensure-object-ownership.html

If ACLs are mandatory to enable that sounds like a bug in the collector.

@basiljames
Copy link

basiljames commented Apr 11, 2025

The error AccessControlListNotSupported matches the AWS SDK API doc for attempting to set ACL for buckets that have ACL's disabled. Seems the acl attribute should be optional and not defaulted to private.

akshays-19 pushed a commit to akshays-19/opentelemetry-collector-contrib that referenced this issue Apr 23, 2025
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

Fixes a problem where ACLs have become required on configuration of the
AWS S3 exporter.

AWS explicitly recommends to disable ACLs on buckets
https://docs.aws.amazon.com/AmazonS3/latest/userguide/ensure-object-ownership.html

<!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes open-telemetry#39346

<!--Describe what testing was performed and which tests were added.-->
#### Testing

Added test to ensure configuration of the exporter worked as expected
when ACL values were set.

Updated existing config tests to ensure no ACL is set by default.

<!--Describe the documentation added.-->
#### Documentation

Updated README.md to show ACLs are optional and off by default. 

Additionally added myself as a codeowner as I'm willing to take on
partial ownership here.

<!--Please delete paragraphs that you did not use before submitting.-->
Fiery-Fenix pushed a commit to Fiery-Fenix/opentelemetry-collector-contrib that referenced this issue Apr 24, 2025
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

Fixes a problem where ACLs have become required on configuration of the
AWS S3 exporter.

AWS explicitly recommends to disable ACLs on buckets
https://docs.aws.amazon.com/AmazonS3/latest/userguide/ensure-object-ownership.html

<!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes open-telemetry#39346

<!--Describe what testing was performed and which tests were added.-->
#### Testing

Added test to ensure configuration of the exporter worked as expected
when ACL values were set.

Updated existing config tests to ensure no ACL is set by default.

<!--Describe the documentation added.-->
#### Documentation

Updated README.md to show ACLs are optional and off by default. 

Additionally added myself as a codeowner as I'm willing to take on
partial ownership here.

<!--Please delete paragraphs that you did not use before submitting.-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working exporter/awss3 needs triage New item requiring triage
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants