aws-samples / aws-samples/amazon-comprehend-s3-object-lambda-functions

PII redaction fails from AWS CLI

Open
#2 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
31
Forks
9
PR merge metrics
No merged PRs in 30d

Description

The PII redaction succeeds when the S3 get is done from the console, as described in the corresponding tutorial. But from the AWS CLI it fails:

```
aws s3api get-object --bucket arn:aws:s3-object-lambda:us-west-2:012345678901:accesspoint/my-redacted-bucket-name --key pii-lambda-test/tutorial.txt /tmp/baz
```
The error is:
```
botocore.exceptions.ClientError: An error occurred (SignatureDoesNotMatch) when calling the GetObject operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.
```

Debugging the lambda, I can see that the code is not correctly including `x-amz-` headers like `x-amz-checksum-mode` when calling the presigned URL. The issue doesn't happen from the console because it is not calculating a checksum on the payload, but other SDKs do. This is due to a logic error in `S3Client._filter_request_headers()`. I've tested a fix and will submit a PR.

Contributor guide

Open the contributing guide

Research direction

Start in S3Client._filter_request_headers() and reproduce the failure with the AWS CLI command in the issue. Check the handling of x-amz- headers such as x-amz-checksum-mode; done means the presigned URL request includes the required headers and the CLI GetObject no longer raises SignatureDoesNotMatch.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, python
Domain
backend, cloud
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.