Configuration
Change Management

AWS presigned URL vigilance

Prevent presigned URLs for all of your resources, not just S3

Summary

Commonly when we talk about PresignedURLs we all immediately think of Amazon S3 as it is well documented and widely used with presigned URLs. In fact most, if not all AWS API calls can be presigned. Create/Delete calls for EC2, VPC, RDS, Lambda. This is important because presigned URL usage is only currently "easily" detectable in S3 Cloudtrail Datavents, which many/most do not have enabled. In standard cloudtrail, the AuthenticationMethod (which is Query String for presigned URLs) is not present. To prevent presigned URL usage in S3 you can add a statement to a bucket policy. Preventing presigned URL usage for other resources is not documented or well understood. One recommendation is to use Data Perimeter concepts and guardrail the IAM Role/IAM user that creates the presigned url with SourceVPC, SourceIP information to make sure the URL is only available from your expected Networks. Presigned URLS are used throughout the AWS Console and are gobbled up by Chrome Extensions, Browser Plugins, AV products, etc. This is an important guardrail that is almost always overlooked.

Applicable To

Unless there are active measures taken in AWS SCP, Resource policies, or IAM policies

Resources

All AWS Resources

Maturity

Medium

Functions
Security
CSPS

AWS

Author

Houston Hopkins

Additional Links
Back to Home